Allmänt meddelande

Collapse
No announcement yet.

Script funkar inte!

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Script funkar inte!

    Kan någon förklara för mig vad jag har gjort för fel.. Tanken är att variabeln ma skall ges ett värde beroende på vilket år det är.. men det funkar inte.

    //Script
    OutSample1=eqv(yearnumber(),2020)
    OutSample2=eqv(yearnumber(),2019)
    OutSample3=eqv(yearnumber(),2018)
    OutSample4=eqv(yearnumber(),2017)
    OutSample5=eqv(yearnumber(),2016)


    ma=if(OutSample1,50,if(OutSample2,60,if(OutSample3,90,if(OutSample4,200,if(OutSample5,200,0)))))

  • #2
    I skriptet du använder varaibeln "ma" kan du att testa att begränsa med kolon.

    typ

    MOV(C,ma:200,S)
    AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com

    Comment


    • #3
      Ska OutSample4 och OutSample5 ha samma värde?
      Annars borde det fungera. Vad är det som inte fungerar?
      ma är lite väl kort och risk för det är ett delnamn. Jag skulle använda något längre för att vara säker, men borde inte skapa något problem här.

      Comment


      • #4
        Ändra längden på namnet för variabeln funkade inte... Någon annan som kan hjälpa mig??

        HEnric:
        Variabeln MA får inget värde... när jag skriver ma:=50 då får ma ett värde. men skriver enl. ovan eller typ ma=add(50,10) så får inte ma variabeln något värde... börja undra om det är något fel på mitt program!?!?

        Outsample4 och 5 har samma värde för att Walkforward simuleringen har visat det. Jag bygger mina strategier med hjälp av Walkforward metoden bland annat..

        Comment


        • #5
          Testar du i Debug-dialogen?

          Comment


          • #6
            Nej.. men jag får inga köpsignaler i analysbänken. Ändrar jag sedan ma till ma:=50.. så får jag köpsignaler..

            Comment


            • #7
              Ursprungligen postat av Skpgnisse Visa inlägg
              Ändra längden på namnet för variabeln funkade inte... Någon annan som kan hjälpa mig??

              HEnric:
              Variabeln MA får inget värde... när jag skriver ma:=50 då får ma ett värde. men skriver enl. ovan eller typ ma=add(50,10) så får inte ma variabeln något värde... börja undra om det är något fel på mitt program!?!?

              Outsample4 och 5 har samma värde för att Walkforward simuleringen har visat det. Jag bygger mina strategier med hjälp av Walkforward metoden bland annat..
              Nja, jag har aldrig menat att ma inte fungerar. Bara att det finns risk för namnkrock.

              Ditt script fungerar som tänkt. Åtminstone det som är utlagt i den här tråden. Jag har kollat värdena på ma för olika år. Prova att debugga som Rikard skriver. Annars bryt ner scriptet i mindre delar för att isolera problem.

              Intressant med walk-forward. Det går ju inte att köra automatiskt. Är det någon from av subjektiva parameterval eller liknande val för varje period som sedan gäller nästa period framåt?

              Comment


              • #8
                Testade nu i Scriptutvecklingsvyn då visar den att den ger rätt värde till ma.. då verkar allt funka.... men inte i analysbänken..

                Comment


                • #9
                  Jo det fungerar även i analysbänken. Det är något att problem.

                  Comment


                  • #10
                    Kanske bästa att ta bort och installera om!??!

                    Hur säkerhetskopierar jag mina script och ordermodeller samt data för alla instrument jag har laddat er??

                    Comment


                    • #11
                      All data, script, analyzer, etc ligger i C:\ProgramData\AutoTraderBas
                      Jag brukar kopiera hela foldern. Vill man återställa är det bara att radera foldern och lägga tillbaka den från back-up. Jag brukar uppdatera till senaste version innan jag kopierar, men kanske inte påverkar.

                      Tveksamt om det har med installationen att göra. Går dock aldrig att utesluta.

                      Projektet i simulatorn skulle kunna vara korrupt. Radera gamla och skapa ett helt nytt projekt. Kör syntaxkoll på sl), va) vl) xk). Om projektet sedan körs och att det inte blir några signaler i simulatorn skulle jag dubbelkolla att scripten fungerar som tänkt. Kanske bryta ner det i delar.
                      Last edited by Henric; 2020-10-15, 18:51.

                      Comment


                      • #12
                        JAg har gjort en ominstallation. Det funkar iaf inte.. Jag bifogar koden så får vi se om det funkar hos er eller om jag har missat något..

                        //Script
                        Hävstång:=1
                        setgvarif(Hävstång,2000,1)

                        OutSample1=if(eqv(yearnumber(),2020),50,0)
                        OutSample2=if(eqv(yearnumber(),2019),60,0)
                        OutSample3=if(eqv(yearnumber(),2018),90,0)
                        OutSample4=if(eqv(yearnumber(),2017),200,0)
                        OutSample5=if(eqv(yearnumber(),2016),200,0)


                        movingavg=mx(mx(mx(OutSample1,OutSample2),mx(OutSample3,OutSample4)),OutSample5)
                        {setgvarif(ma_value,2010,1)}

                        close=cmpref(c,0,a)

                        stängning=le(mult(1440,sub(market(c),frac(date()))),15)

                        {Ej innehav}
                        ej_innehav=eqv(portfolio(v),0)

                        vilkor001=and(lt(RSIWSex(2,a),10),gt(close,mov(close,movingavg,s)))

                        vilkor002=and(ej_innehav,stängning)
                        vilkor003=gt(aref(d,1),lasttrade(s,d)) {Säkerställer att 1st bars skillnad mellan köp och sälj}

                        köp001=and(and(vilkor001,vilkor002),vilkor003)

                        {@A(0,)}

                        Comment


                        • #13
                          Nu fick jag till det... Problemet var MOV(b,p,sew). Den kan inte ta emot nya värden under en analys.

                          fick skriva om det till

                          //Script
                          MovAvg=if(eqv(yearnumber(),2016),mov(close,200,s),if(eqv(yearnumber(),2017),mov(close,200,s),if(eqv(yearnumber(),2018),mov(close,90,s),if(eqv(yearnumb er(),2019),mov(close,60,s),if(eqv(yearnumber(),2020),mov(close,50,s),0)))))

                          då funka det fint =)

                          Comment


                          • #14
                            Problemet var också att "Testa syntax" sa inte att det var fel först... då tror man ju att scriptet är rätt skrivet..

                            Comment


                            • #15
                              Jag vet att det kan vara frustrerande när man inte får syntaxfel.

                              Ofta kan man använda dynamiska perioder. Det brukar fungerar bra. Jag har dock inte provat metoden på mov
                              mov(close,movingavg:200,s)))

                              Sedan är det tveksamt om det gör scripten snabbare när bara ett begränsat antal kända varianter kan användas.

                              Lord_S skrev just om mov i början av tråden. Hur visste han det...

                              Comment

                              Working...
                              X