Allmänt meddelande

Collapse
No announcement yet.

Raptor

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

  • Ursprungligen postat av Rikard Autostock Visa inlägg
    Bara att testa ju, scripten ligger en bit upp i tråden.

    Här kommer en riktig nybörjarfråga - jag är riktigt sugen på att lära mig att koda själv, men det tar sin lilla tid att ens förstå uppbyggnaden och koden.

    I teorin då.. är det bara att köra copy-paste och lägga in i ett enda script? Eller består koden av olika script? Jag har förstått att det finns olika typer av script, men inte riktigt än förstått alla olika scripttypers inerbörd. För många är det en självklarhet, men jag är en riktig nyböjare när det gäller att koda själv i NAT - jag har inte fått diagnosen NAT än ;-P

    Comment


    • Vi har en introduktionskurs i kodning här:

      http://www.autostock.se/produkter/ut...g-egna-robotar

      Det är lite att sätta sig in i, men är man intresserad brukar det fastna.

      Comment


      • Jag signade på i juni. Började med att bara använda det som faktiskt fanns i Autotrader. Mitt första skript skrev jag i augusti (3 rader) som skickade en MACD-signal. Sen skrev jag några orderskript. Mitt stora break var när jag skaffade Pro-versionen i september. Därefter så sköt det iväg ordentligt. Då fick jag ju feedback direkt från simulatorn om det funkade eller inte. Därefter så skrev jag ett skript som tar fram Next day forecast sannolikheter (samma output som Rikards skript som säljs här), var maxade ut antal anrop mm. Tror det är bra att ha något man vill skapa.

        Jag skulle läsa hela vanliga manualen och sedan skumma igenom skriptreferenserna. Kolla i webinargrejen som Rikard refererar till. Kolla i forumet. Allt finns nästan här. Prova bygg något enkelt. Copy-paste och gör lite justeringar i det som då använder. Så småningom så blir du bättre och bättre.

        Comment


        • Ursprungligen postat av HenrikSyst Visa inlägg
          Jag signade på i juni. Började med att bara använda det som faktiskt fanns i Autotrader. Mitt första skript skrev jag i augusti (3 rader) som skickade en MACD-signal. Sen skrev jag några orderskript. Mitt stora break var när jag skaffade Pro-versionen i september. Därefter så sköt det iväg ordentligt. Då fick jag ju feedback direkt från simulatorn om det funkade eller inte. Därefter så skrev jag ett skript som tar fram Next day forecast sannolikheter (samma output som Rikards skript som säljs här), var maxade ut antal anrop mm. Tror det är bra att ha något man vill skapa.

          Jag skulle läsa hela vanliga manualen och sedan skumma igenom skriptreferenserna. Kolla i webinargrejen som Rikard refererar till. Kolla i forumet. Allt finns nästan här. Prova bygg något enkelt. Copy-paste och gör lite justeringar i det som då använder. Så småningom så blir du bättre och bättre.
          Aj , aj. Där smittade du ju walle med NAT-viruset...
          mvh
          Bertil

          Comment


          • Ursprungligen postat av Bertil Visa inlägg
            Aj , aj. Där smittade du ju walle med NAT-viruset...
            mvh
            Bertil
            Hehe någon måste ju göra det ;-) Tack så mycket för bra tips! Det är bara att bänka sig med ett par lurar, helst med noise cancelling, då kan barnen föra hur mycket liv dom vill ;-)

            Comment


            • Fundering

              I longskriptet så kollas NDF-edgen för uppgång nedan. var 12 används sedan i shortskriptet, men borde inte short ha sin egen där

              hitrate2=div(sum(mult(aref(setup,1),lt(l,aref(c,1))),2000),hits) ?

              För Long
              hits=sum(setup,2000)
              hitrate1=div(sum(mult(aref(setup,1),gt(h,aref(c,1))),2000),hits)
              setgvarif(hitrate1,12,and(stängning,öppet))
              hitrate2=getgvar(12)

              Comment


              • Intressant skript. Ska kolla igenom vidare
                Last edited by HenrikSyst; 2016-12-17, 14:34.

                Comment


                • Värdet skrivs ner i cell 12 strax innan stängning och används dagen efter.

                  Men jag har gjort om lite i en senare version som kommer snart.

                  Comment


                  • Ursprungligen postat av Rikard Autostock Visa inlägg
                    Värdet skrivs ner i cell 12 strax innan stängning och används dagen efter.

                    Men jag har gjort om lite i en senare version som kommer snart.

                    Så om man använder direkt när det görs så borde det vara aref(c,1) jmf med aref(c,2)?

                    Comment


                    • Hmm....men då blir det ju gårdagens formation man letar efter bakåt också.

                      Comment


                      • Men om man inte skriver till cell 12 med villkor att det ska ha stängt så måste man idag kola på gårdagens dvs aref(c,1) och jämföra den med dagen innan aref(c,2)

                        Comment


                        • Jo, men om man skriver ett par minuter innan stängning "idag" blir det helt ok. Men visst, man kan ju testa på gårdagens "stängda" edge också.

                          Comment


                          • Nya scriptversioner, har skippat Predictive Average åtminstone tillfälligt och ersatt med fasta datum så att modellen arbetar efter månadscykeln. Lite ändringar i logiken för hur den kliver på och av de olika gridnivåerna.

                            Max Result Drawdown 7.8444 %
                            Sharpekvot 0.3155 (månadsresultat) (pre 1994 0.3155)
                            -2.6406 (årsomräknat) (pre 1994 -2.6406)
                            Effektivt Resultat: 106.3543% - Slutsaldo kontot: 17538.40

                            Avkastning 10635.43 kr 0.38% på 1823 affärer under 13829:36:57 tim
                            Av dessa blankat 110 st med avkastning 548.73 kr 0.24%
                            Innehav 1673 st med vinst 19312.98 kr 0.90%
                            Innehav 40 st med förlust -9226.28 kr -2.24%
                            Blankning 63 st med vinst 2360.11 kr 2.09%
                            Blankning 47 st med förlust -1811.38 kr -1.56%



                            { Raptor Supermarket Long }

                            {$opt(forecast_k,0.5,0.65,0.05)}
                            {$opt(datum1,2,7,1)}
                            {$opt(datum2,23,29,1)}

                            datum1:=5
                            datum2:=28
                            maxgrids:=10
                            grid_atr:=0.25
                            forecast_k:=0.5



                            startdag=ge(dayofmonth(),datum1)
                            slutdag=le(dayofmonth(),datum2)
                            tradezone=and(startdag,slutdag)
                            draw(mult(tradezone,3),1,bsbf)

                            { testa om vi är nära stängning }
                            stängning=le(mult(1440,sub(market(c),frac(date()))),10)
                            öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
                            inpådagen=gt(frac(date()),0.38)


                            { Scanna historiskt utfall stapelformation och veckodag }
                            stig=gt(c,aref(c,1))
                            fall=le(c,aref(c,1))
                            sf1=topbars(fall,20,1)
                            ss1=topbars(stig,20,1)
                            cc1=const(if(gt(ss1,sf1),sf1,sub(0,ss1)))
                            cc2=if(gt(ss1,sf1),sf1,sub(0,ss1))

                            veckodag=const(dayofweek())
                            setup=and(eqv(cc1,cc2),eqv(dayofweek(),veckodag))

                            hits=sum(setup,2000)
                            hitrate1=div(sum(mult(aref(setup,2),gt(hhv(h,2),aref(c,1))),2000),hits)
                            setgvarif(hitrate1,12,and(stängning,öppet))
                            hitrate2=getgvar(12)



                            { koppla ihop villkor, antingen v2 eller v2 samt innehav noll eller blankat }
                            long2=and(and(lt(l,aref(l,1)),gt(hitrate2,forecast_k)),le(portfolio(v),0))

                            { koppla ihop Long-signal med nära stängning samt ingen säljtransaktion under dagen }
                            long3=and(and(long2,and(öppet,stängning)),gt(int(d),lasttrade(s,d)))



                            minst5min_sedan_sälj=gt(date(),add(lasttrade(s,d),div(5,1440)))
                            minst3p_sedan_sälj=gt(abs(sub(c,lasttrade(s,p))),3)

                            köp_senare_än_sälj=gt(lasttrade(b,d),lasttrade(s,d))
                            grid1=sub(lasttrade(b,p),mult(grid_atr,atr(10)))
                            grid2=sub(h,mult(grid_atr,atr(10)))
                            {grid2=sub(lasttrade(s,p),mult(grid_atr,atr(10)))}
                            grid3=if(köp_senare_än_sälj,grid1,grid2)
                            long4=or(long3,and(gt(hitrate2,forecast_k),and(gt(portfolio(v),0),lt(c,grid3))))
                            long5=and(and(tradezone,long4),lt(portfolio(v),maxgrids))
                            long6=and(long5,inpådagen)
                            long7=and(long6,and(minst5min_sedan_sälj,minst3p_sedan_sälj))

                            mult(long6,1)





                            { Raptor Sell }


                            grid_atr:=0.25

                            { Testa om lutning på Predictive Average är ned }
                            p1=getgvar(14)


                            { testa om kurs är lägre än gårdagens lägsa }
                            lägre=lt(c,aref(c,1))

                            { testa om vi är nära stängning samt någon minut in på dagen }
                            inpådagen=gt(frac(date()),0.376)
                            stängning=le(mult(1440,sub(market(c),frac(date()))),10)
                            öppet=and(inpådagen,ge(mult(1440,sub(market(c),frac(date()))),6))

                            { testa om veckodag är tisdag eller senare }
                            rättd=ge(dayofweek(),5)

                            { Stoploss 2 ATR över shrt }
                            stoploss=lt(l,mov(c,50,s))
                            vinst=gt(c,portfolio(p))



                            { koppla ihop säljvillkor med tillåtna datum och att innehav större än noll }
                            sell2=and(stoploss,gt(portfolio(v),0))

                            { koppla ihop villkor med nära stängning alternativt lägre kurs än }
                            { gårdagens lägsta samt veckodag tis eller senare samt ingen köptransaktion idag }
                            sell3=and(and({rättd}0,and(or(lägre,stängning),öppet)),gt(int(d),lasttrade(b,d)))
                            setgvarif(if(sell3,0,1),10,1)

                            gridnivå_k=add(lasttrade(b,p),mult(grid_atr,atr(10)))
                            gridnivå_s=add(lasttrade(s,p),mult(grid_atr,atr(10)))
                            köp_senare_än_sälj=gt(lasttrade(b,d),lasttrade(s,d))
                            sälj_senare_än_köp=gt(lasttrade(s,d),lasttrade(b,d))
                            sell4=and(and(gt(c,gridnivå_k),gt(portfolio(v),0)),köp_senare_än_sälj)
                            sell5=and(and(gt(c,gridnivå_s),gt(portfolio(v),0)),sälj_senare_än_köp)
                            sell6=and(vinst,and(or(or(sell3,sell4),sell5),gt(portfolio(v),0)))

                            mult(sell6,10)



                            { Raptor Supermarket shrt }

                            datum1:=5
                            datum2:=28
                            maxgrids:=-10
                            grid_atr:=0.25
                            forecast_s:=0.6

                            ma20=mov(c,20,s)
                            ma50=mov(c,50,s)
                            klimat=lt(ma20,ma50)

                            startdag=gt(dayofmonth(),datum2)
                            slutdag=lt(dayofmonth(),datum1)
                            tradezone=or(startdag,slutdag)

                            { testa om vi är nära stängning }
                            stängning=le(mult(1440,sub(market(c),frac(date()))),8)
                            öppet=ge(mult(1440,sub(market(c),frac(date()))),5)
                            inpådagen=gt(frac(date()),0.38)

                            { Scanna historiskt utfall stapelformation och veckodag }
                            stig=gt(c,aref(c,1))
                            fall=le(c,aref(c,1))
                            sf1=topbars(fall,20,1)
                            ss1=topbars(stig,20,1)
                            cc1=const(if(gt(ss1,sf1),sf1,sub(0,ss1)))
                            cc2=if(gt(ss1,sf1),sf1,sub(0,ss1))

                            veckodag=const(dayofweek())
                            setup=and(eqv(cc1,cc2),eqv(dayofweek(),veckodag))

                            hits=sum(setup,2000)
                            hitrate1=div(sum(mult(aref(setup,2),lt(llv(l,2),aref(c,2))),2000),hits)
                            setgvarif(hitrate1,13,and(stängning,öppet))
                            hitrate2=getgvar(13)

                            ok_att_handla=hhv(lt(c,mov(c,20,s)),10)

                            shrt2=and(and(gt(h,aref(h,1)),gt(hitrate2,forecast_s)),ge(portfolio(v),0))
                            shrt3=and({ok_att_handla}1,and(and(shrt2,and(öppet,stängning)),gt(int(d),lasttrade(b,d))))




                            minst5min_sedan_köp=gt(date(),add(lasttrade(b,d),div(5,1440)))
                            minst3p_sedan_köp=gt(abs(sub(c,lasttrade(b,p))),3)

                            sälj_senare_än_köp=gt(lasttrade(s,d),lasttrade(b,d))
                            grid1=add(lasttrade(s,p),mult(grid_atr,atr(10)))
                            grid2=add(l,mult(grid_atr,atr(10)))
                            grid3=if(sälj_senare_än_köp,grid1,grid2)
                            shrt4=or(shrt3,and(klimat,and(gt(hitrate2,forecast_s),and(lt(portfolio(v),0),gt(c,grid3)))))
                            shrt5=and(and(tradezone,shrt4),gt(portfolio(v),maxgrids))


                            shrt6=and(shrt5,inpådagen)


                            mult(shrt6,1)




                            { Raptor cover 161207 }


                            grid_atr:=0.25

                            { testa om nära stängning samt någon minut in på dagen }
                            inpådagen=gt(frac(date()),0.376)
                            stängning=le(mult(1440,sub(market(c),frac(date()))),6)
                            öppet=and(inpådagen,ge(mult(1440,sub(market(c),frac(date()))),4))
                            vinst=lt(c,portfolio(p))


                            { Stoploss 2 ATR över shrt }
                            stoploss=gt(c,add(lasttrade(s,p),mult(2,atr(10))))
                            onsdag=eqv(dayofweek(),2)

                            { koppla ihop villkor med nära stängning samt ingen säljtransaktion under dagen }
                            cover2=and(and(or({stoploss}0,{onsdag}0),and(or(stoploss,stängning),öppet)),gt(int(d),lasttrade(s,d)))
                            cover3=and(cover2,lt(portfolio(v),0))
                            setgvarif(if(cover3,0,1),11,1)

                            gridnivå_k=sub(lasttrade(b,p),mult(grid_atr,atr(10)))
                            gridnivå_s=sub(lasttrade(s,p),mult(grid_atr,atr(10)))
                            köp_senare_än_sälj=gt(lasttrade(b,d),lasttrade(s,d))
                            sälj_senare_än_köp=gt(lasttrade(s,d),lasttrade(b,d))
                            cover4=and(and(lt(c,gridnivå_s),lt(portfolio(v),0)),sälj_senare_än_köp)
                            cover5=and(and(gt(c,gridnivå_k),lt(portfolio(v),0)),köp_senare_än_sälj)
                            cover6=and(vinst,or(or(cover3,cover4),cover5))

                            mult(cover6,10)

                            Comment


                            • Det gick att slopa bakåtskanningen helt och förenkla villkoren radikalt och ändå få bättre resultat. Färre villkor = robustare modell.
                              Dessutom går den ca 40 ggr snabbare att simulera. Återstår lite städning i koden, men framför allt att "kommersialisera" det hela så att det går lätt att backtesta och koppla in etc.

                              Så här ser resultatet ut just nu:

                              Max Result Drawdown 5.9049 %
                              Sharpekvot 0.3509 (månadsresultat) (pre 1994 0.3509)
                              -2.7891 (årsomräknat) (pre 1994 -2.7891)
                              Effektivt Resultat: 121.2248% - Slutsaldo kontot: 17477.94

                              Avkastning 12122.48 kr 0.47% på 1705 affärer under 14201:05:57 tim
                              Av dessa blankat 111 st med avkastning 841.38 kr 0.39%
                              Innehav 1552 st med vinst 18687.98 kr 0.93%
                              Innehav 42 st med förlust -7406.87 kr -1.96%
                              Blankning 62 st med vinst 2572.56 kr 2.38%
                              Blankning 49 st med förlust -1731.18 kr -1.62%


                              { Raptor Supermarket Long }


                              {$opt(datum1,2,7,1)}
                              {$opt(datum2,23,29,1)}

                              datum1:=5
                              datum2:=28
                              maxgrids:=10
                              grid_atr:=0.25


                              startdag=ge(dayofmonth(),datum1)
                              slutdag=le(dayofmonth(),datum2)
                              tradezone=and(startdag,slutdag)
                              draw(mult(tradezone,3),1,bsbf)

                              { testa om vi är nära stängning }
                              stängning=le(mult(1440,sub(market(c),frac(date()))),10)
                              öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
                              inpådagen=gt(frac(date()),0.38)



                              ma50=mov(c,50,s)
                              ma200=mov(c,200,s)
                              ej_ras=or(hhv(gt(h,mov(c,20,s)),10),gt(ma50,ma200))

                              { koppla ihop villkor, antingen v2 eller v2 samt innehav noll eller blankat }
                              long2=and(lt(l,aref(l,1)),le(portfolio(v),0))

                              { koppla ihop Long-signal med nära stängning samt ingen säljtransaktion under dagen }
                              long3=and(and(long2,and(öppet,stängning)),gt(int(d),lasttrade(s,d)))



                              köp_senare_än_sälj=gt(lasttrade(b,d),lasttrade(s,d))
                              grid1=sub(lasttrade(b,p),mult(grid_atr,mx(atr(20),atr(5))))
                              grid2=sub(h,mult(grid_atr,mx(atr(20),atr(5))))

                              grid3=if(köp_senare_än_sälj,grid1,grid2)
                              long4=or(long3,and(ej_ras,and(gt(portfolio(v),0),lt(c,grid3))))
                              long5=and(and(tradezone,long4),lt(portfolio(v),maxgrids))
                              long6=and(long5,inpådagen)

                              mult(long6,1)




                              { Raptor Sell }


                              grid_atr:=0.25

                              { Testa om lutning på Predictive Average är ned }
                              p1=getgvar(14)


                              { testa om kurs är lägre än gårdagens lägsa }
                              lägre=lt(c,aref(c,1))

                              { testa om vi är nära stängning samt någon minut in på dagen }
                              inpådagen=gt(frac(date()),0.376)
                              stängning=le(mult(1440,sub(market(c),frac(date()))),10)
                              öppet=and(inpådagen,ge(mult(1440,sub(market(c),frac(date()))),6))

                              { testa om veckodag är tisdag eller senare }
                              rättd=ge(dayofweek(),5)

                              { Stoploss 2 ATR över shrt }
                              stoploss=lt(l,mov(c,50,s))
                              vinst=gt(c,portfolio(p))



                              { koppla ihop säljvillkor med tillåtna datum och att innehav större än noll }
                              sell2=and(stoploss,gt(portfolio(v),0))

                              { koppla ihop villkor med nära stängning alternativt lägre kurs än }
                              { gårdagens lägsta samt veckodag tis eller senare samt ingen köptransaktion idag }
                              sell3=and(and({rättd}0,and(or(lägre,stängning),öppet)),gt(int(d),lasttrade(b,d)))
                              setgvarif(if(sell3,0,1),10,1)

                              gridnivå_k=add(lasttrade(b,p),mult(grid_atr,mx(atr(20),atr(5))))
                              gridnivå_s=add(lasttrade(s,p),mult(grid_atr,mx(atr(20),atr(5))))
                              köp_senare_än_sälj=gt(lasttrade(b,d),lasttrade(s,d))
                              sälj_senare_än_köp=gt(lasttrade(s,d),lasttrade(b,d))
                              sell4=and(and(gt(c,gridnivå_k),gt(portfolio(v),0)),köp_senare_än_sälj)
                              sell5=and(and(gt(c,gridnivå_s),gt(portfolio(v),0)),sälj_senare_än_köp)
                              sell6=and(vinst,and(or(or(sell3,sell4),sell5),gt(portfolio(v),0)))

                              mult(sell6,10)



                              { Raptor Supermarket shrt }

                              datum1:=5
                              datum2:=28
                              maxgrids:=-10
                              grid_atr:=0.25

                              ma10a=mov(c,10,s)
                              ma100=mov(c,100,s)
                              klimat=lt(ma10a,ma100)

                              startdag=gt(dayofmonth(),datum2)
                              slutdag=lt(dayofmonth(),datum1)
                              tradezone=or(startdag,slutdag)

                              { testa om vi är nära stängning }
                              stängning=le(mult(1440,sub(market(c),frac(date()))),8)
                              öppet=ge(mult(1440,sub(market(c),frac(date()))),5)
                              inpådagen=gt(frac(date()),0.38)



                              shrt2=and(gt(h,aref(h,1)),ge(portfolio(v),0))
                              shrt3=and({ok_att_handla}1,and(and(shrt2,and(öppet,stängning)),gt(int(d),lasttrade(b,d))))


                              sälj_senare_än_köp=gt(lasttrade(s,d),lasttrade(b,d))
                              grid1=add(lasttrade(s,p),mult(grid_atr,mx(atr(20),atr(5))))
                              grid2=add(l,mult(grid_atr,mx(atr(20),atr(5))))
                              grid3=if(sälj_senare_än_köp,grid1,grid2)
                              shrt4=or(shrt3,and(klimat,and(lt(portfolio(v),0),gt(c,grid3))))
                              shrt5=and(and(tradezone,shrt4),gt(portfolio(v),maxgrids))


                              shrt6=and(shrt5,inpådagen)


                              mult(shrt6,1)




                              { Raptor cover 161207 }


                              grid_atr:=0.25

                              { testa om nära stängning samt någon minut in på dagen }
                              inpådagen=gt(frac(date()),0.376)
                              stängning=le(mult(1440,sub(market(c),frac(date()))),6)
                              öppet=and(inpådagen,ge(mult(1440,sub(market(c),frac(date()))),4))
                              vinst=lt(c,portfolio(p))


                              { Stoploss 2 ATR över shrt }
                              stoploss=gt(c,add(lasttrade(s,p),mult(2,atr(10))))
                              onsdag=eqv(dayofweek(),2)

                              { koppla ihop villkor med nära stängning samt ingen säljtransaktion under dagen }
                              cover2=and(and(or({stoploss}0,{onsdag}0),and(or(stoploss,stängning),öppet)),gt(int(d),lasttrade(s,d)))
                              cover3=and(cover2,lt(portfolio(v),0))
                              setgvarif(if(cover3,0,1),11,1)

                              gridnivå_k=sub(lasttrade(b,p),mult(grid_atr,mx(atr(20),atr(5))))
                              gridnivå_s=sub(lasttrade(s,p),mult(grid_atr,mx(atr(20),atr(5))))
                              köp_senare_än_sälj=gt(lasttrade(b,d),lasttrade(s,d))
                              sälj_senare_än_köp=gt(lasttrade(s,d),lasttrade(b,d))
                              cover4=and(and(lt(c,gridnivå_s),lt(portfolio(v),0)),sälj_senare_än_köp)
                              cover5=and(and(gt(c,gridnivå_k),lt(portfolio(v),0)),köp_senare_än_sälj)
                              cover6=and(vinst,or(or(cover3,cover4),cover5))

                              mult(cover6,10)
                              Attached Files

                              Comment


                              • Ingen NDF?

                                Resultaten ser ju suveräna ut. Riktigt spännande. Också positivt med färre villkor som ger högre robusthet.
                                Last edited by HenrikSyst; 2016-12-18, 11:37.

                                Comment

                                Working...
                                X