Allmänt meddelande

Collapse
No announcement yet.

Legato OMX omarbetad och gratis

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

  • #91
    Har ett par ideer att testa imorgon.

    Comment


    • #92
      Christer, det vore bra om du redovisar värdet av CAGR nästa gång. Då kan jag testa om jag kan fåt samma i AT(kan vara bra att testa fram ett fungerande sätt i programmet). Använder du återinvestering och
      CAGR ((slutvärde/startvärde)^1/antal år)-1

      Comment


      • #93
        Ursprungligen postat av Henric Visa inlägg
        Christer, det vore bra om du redovisar värdet av CAGR nästa gång. Då kan jag testa om jag kan fåt samma i AT(kan vara bra att testa fram ett fungerande sätt i programmet). Använder du återinvestering och
        CAGR ((slutvärde/startvärde)^1/antal år)-1
        Exakt! Och med beaktande av courtage enligt Active Trader (startkapital 100k) och en halv spread (50% * 0,15%) per transaktion. 2x gearing.

        CAGR modell 1 (inlägg 64) = 58%
        CAGR modell 2 (inlägg 67) = 49%

        Comment


        • #94
          Version 20150924 = 51% CAGR
          Version 20150922 = 52% CAGR

          Jag har alltså inte versionen enligt inlägg 64.
          Vad får du för max drawdown?

          Comment


          • #95
            Här är lite mer testat, jag lade till ett försök till stoploss och då gick det att ändra antal dagar för att stänga shrt. Inga stora ändringar, men kanske värt att räkna på med återinvestering.

            Max Result Drawdown 0.1980 %
            Sharpekvot 0.5353 (månadsresultat) (pre 1994 0.5353)
            -0.9973 (årsomräknat) (pre 1994 -0.9973)
            Effektivt Resultat: 3.6394% - Slutsaldo kontot: 102220.71

            Avkastning 3639.39 kr 1.19% på 311 affärer under 17584:39:57 tim
            Av dessa blankat 88 st med avkastning 1141.16 kr 1.43%
            Innehav 146 st med vinst 3912.97 kr 2.68%
            Innehav 77 st med förlust -1414.74 kr -1.78%
            Blankning 62 st med vinst 1743.03 kr 3.00%
            Blankning 26 st med förlust -601.87 kr -2.77%





            { Legato OMX index long 150929 }

            $par1:=10 {0-30}

            { Definiera medelvärden för Predictive Average }
            pred1=find(lt(d,sub(const(d),30)),25,c,1)
            pred2=find(lt(d,sub(const(d),60)),50,c,1)
            pred3=find(lt(d,sub(const(d),90)),75,c,1)
            pred4=find(lt(d,sub(const(d),120)),100,c,1)
            pred5=find(lt(d,sub(const(d),150)),125,c,1)

            { Addera medelvärden och ta genomsnitt - förskjut kurvan med par1 perioder }
            pred_tot=aref(div(add(pred1,add(pred2,add(pred3,add(pred4,pred5)))),5),mx(1,$par1):35)

            { Testa om lutning på Predictive Average är upp }
            p1=gt(roc(pred_tot,5,%),0)

            { Definiera v2 och v4 som tillåtna datum att gå long }
            v2=and(lt(dayofmonth(),if(p1,19,14)),gt(dayofmonth(),if(p1,7,6)))
            v4=and(lt(dayofmonth(),if(p1,32,31)),gt(dayofmonth(),if(p1,19,27)))

            { 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)

            { beräkna histogram för MACD och testa om extremt översålt }
            hist=sub(macd2(n),macd2(t))
            extremt=lt(hist,-5)

            { definiera långt medelvärde för trend och testa om index är över eller extremt översålt }
            ma100=mov(c,150,s)
            över=or(extremt,gt(c,ma100))

            { Testa om Close är under senaste två dagarnas högsta stängning i kombination med v2 }
            long1a=and(and(lt(c,hhv(aref(c,1),2)),v2),över)

            { Testa om Close är under senaste tre dagarnas högsta stängning i kombination med v4 }
            long1b=and(lt(c,hhv(aref(c,1),3)),v4)

            { koppla ihop villkor, antingen v2 eller v2 samt innehav noll eller blankat }
            long2=and(or(long1a,long1b),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)))

            { skriv signal till cell 880 som minifuture-modeller läser av och lägger order }
            setgvarif(11,880,long3)
            mult(long3,11)



            { Legato OMX index sell 150929 }

            $par1:=10 {0-30}

            { Definiera medelvärden för Predictive Average }
            pred1=find(lt(d,sub(const(d),30)),25,c,1)
            pred2=find(lt(d,sub(const(d),60)),50,c,1)
            pred3=find(lt(d,sub(const(d),90)),75,c,1)
            pred4=find(lt(d,sub(const(d),120)),100,c,1)
            pred5=find(lt(d,sub(const(d),150)),125,c,1)

            { Addera medelvärden och ta genomsnitt - förskjut kurvan med par1 perioder }
            pred_tot=aref(div(add(pred1,add(pred2,add(pred3,add(pred4,pred5)))),5),mx(1,$par1):35)

            { Testa om lutning på Predictive Average är ned }
            p1=gt(roc(pred_tot,5,%),0)

            { Definiera ve1 och ve3 som tillåtna datum att gå ur position }
            ve1=or(lt(dayofmonth(),if(p1,8,6)),gt(dayofmonth(),if(p1,31,30)))
            ve3=and(lt(dayofmonth(),if(p1,18,22)),gt(dayofmonth(),if(p1,17,17)))

            { 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(),2)

            { Stoploss 2 ATR över shrt }
            stoploss=lt(c,sub(lasttrade(b,p),mult(3,atr(10))))

            { definiera säljvillkor som kurs lägre än föregående 2 dagars lägsta stängningskurs }
            sell1=lt(c,llv(aref(c,1),2))

            { koppla ihop säljvillkor med tillåtna datum och att innehav större än noll }
            sell2=and(and(sell1,or(stoploss,or(ve1,ve3))),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(and(sell2,and(or(lägre,stängning),öppet)),rättd),gt(int(d),lasttrade(b,d)))

            { skriv signal till cell 880 som minifuture-modeller läser av och lägger order }
            setgvarif(10,880,sell3)

            mult(sell3,10)



            { Legato OMX index shrt 150929 }

            $par1:=10 {0-30}

            { Definiera medelvärden för Predictive Average }
            pred1=find(lt(d,sub(const(d),30)),25,c,1)
            pred2=find(lt(d,sub(const(d),60)),50,c,1)
            pred3=find(lt(d,sub(const(d),90)),75,c,1)
            pred4=find(lt(d,sub(const(d),120)),100,c,1)
            pred5=find(lt(d,sub(const(d),150)),125,c,1)

            { Addera medelvärden och ta genomsnitt - förskjut kurvan med par1 perioder }
            pred_tot=aref(div(add(pred1,add(pred2,add(pred3,add(pred4,pred5)))),5),mx(1,$par1):35)

            { Testa om lutning på Predictive Average är ned }
            p1=lt(roc(pred_tot,5,%),0)

            { Definiera v1 och v3 som tillåtna datum att gå shrt }
            v1=or(lt(dayofmonth(),if(p1,8,7)),gt(dayofmonth(),if(p1,30,31)))
            v3=and(lt(dayofmonth(),if(p1,23,20)),gt(dayofmonth(),if(p1,10,13)))

            { 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()))),6)

            { definiera långt medelvärde för trend och testa om index är under }
            ma200=mov(c,200,s)
            under=lt(c,ma200)

            { beräkna histogram för MACD och testa om extremt översålt }
            ej_extremt=gt(macd2(n),-50)

            { testa om kurs är under gårdagens stängning samt lång trend nedåt }
            shrt1=and(lt(c,aref(c,1)),under)

            { koppla ihop shrt-villkor med tillåtna datum samt innehav noll eller större }
            shrt2=and(and(and(shrt1,or(v1,v3)),ge(portfolio(v),0)),ej_extremt)

            { koppla ihop villkor med nära börsstängning samt ingen köptransaktion under dagen }
            shrt3=and(and(shrt2,and(öppet,stängning)),gt(int(d),lasttrade(b,d)))

            { skriv signal till cell 880 som minifuture-modeller läser av och lägger order }
            setgvarif(9,880,shrt3)

            mult(shrt3,10)




            { Legato OMX index cover 150929 }

            { ange dagar för att testa exitvillkor }
            dagar:=20

            { 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))

            { testa om kurs är den lägsta stängningen senaste x dagarna }
            lägsta=llv(aref(c,1),dagar)

            { koppla ihop cover-villkor med blankat innehav }
            cover1=lt(c,lägsta)

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

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

            { skriv signal till cell 880 som minifuture-modeller läser av och lägger order }
            setgvarif(10,880,cover3)

            mult(cover3,10)
            Attached Files

            Comment


            • #96
              Ser spännande ut, Rikard. Har du resultatfilen?

              Comment


              • #97
                Sådär, glömde den. Ligger i inlägget ovan så att den inte blandas ihop med andra scriptversioner.

                Comment


                • #98
                  Rikard/Henrik, nån som hunnit testa med mina "original" script och sett vad ni får för resultat?

                  Scripten i #95, är det fortfarande utan courtage?

                  Hur optimerar jag minus parametrar?
                  Blir det t ex Från -30 Till 0 Stega10

                  Comment


                  • #99
                    Ja utan courtage. Det ska funka att optimera -100 till 0 tex.

                    Comment


                    • Då har jag räknat på utfallet enligt Rikards senaste version av Legato OMX (inlägg 95) och den ger en CAGR på 61% (2x gearing). Att jämföra med resultaten i mitt inlägg 93. Max drawdown ca 9,5% (i 1x), men färre stora drawdowns.

                      Bra jobbat! Men nu när resultaten trimmats, finns det någon risk för curve-fitting?
                      Last edited by Christer; 2015-09-30, 09:14.

                      Comment


                      • Sweet, då börjar jag väl tycka att modellen är "färdig". Man vill inte gå för långt med tanke på risken för curve fitting. Det är fortfarande väldigt få villkor, så jag tror inte risken är så hög nu, men det är inte så många hundra affärer och då ökar alltid risken för oavsiktlig överoptimering. Det som ändå känns ganska bra är att vi faktiskt fått med någon form av stoploss utan att sänka resultatet, även om den är ganska generös.



                        PS. Jag lägger ut den här versionen i Hjälp-menyn så att alla som vill kan ladda ner den enkelt.

                        Comment


                        • Toppen! Ett par frågor:

                          a) Hur lång historik på OMXS30-data behövs för att modellen ska fungera?
                          b) Vilka instrument skulle du vilja föreslå, minifuters, ETF etc? Vilken utgivare rekommenderar ni?

                          Comment


                          • a. Det behövs ca 6 mån historik för att beräkna predictive average-kurvan.
                            b. Kör man låg hävstång fungerar både ETFer, ETNer utan större avbränning. Fördelen är att man alltid vet hävstången. Annars är minifutures nästan alltid det bättre alternativet men då får man hålla lite koll så att hävstången inte drar iväg för långt åt något håll när index stiger eller faller kraftigt över tid. BNP Paribas är seriösa och erbjuder en bra range av hävstänger för både long och shrt. De har en bra telefon-app "Traderbox" som gör det väldigt enkelt att leta upp lämpliga instrument. Deras hemsida ligger på www.bnpp.se



                            PS. Telefon-appen testade vi i senaste Börshandlat: http://artiklar.borshandlat.se/nyhet...september-2015

                            (en bit ner på sidan)

                            Comment


                            • Ursprungligen postat av Emil Visa inlägg
                              Rikard/Henrik, nån som hunnit testa med mina "original" script och sett vad ni får för resultat?

                              Scripten i #95, är det fortfarande utan courtage?

                              Hur optimerar jag minus parametrar?
                              Blir det t ex Från -30 Till 0 Stega10
                              Jag fick liknande resultat som ver 20150924

                              Comment


                              • Ursprungligen postat av Christer Visa inlägg
                                Då har jag räknat på utfallet enligt Rikards senaste version av Legato OMX (inlägg 95) och den ger en CAGR på 61% (2x gearing). Att jämföra med resultaten i mitt inlägg 93. Max drawdown ca 9,5% (i 1x), men färre stora drawdowns.

                                Bra jobbat! Men nu när resultaten trimmats, finns det någon risk för curve-fitting?
                                Jag laddade ner nya versionen(om samma som resultatfilen är baserad på) och fick CAGR 54%? Hoppas det ligger hos mig! Jag använder år=12.75 och bara hela enheter avrundat nedåt. Samtidigt är det så bra siffror att drawdown är det viktigaste.

                                Edit: Ej extremt använder ett absolut tal och blir beroende av kursen. Villkoret påverkar olika om kursen är 400 eller 2000. Jag tycker villkoret ska bytas till någon relation i % eller momentum(%) och simulera fram samma resultat. Som vanligt har jag åsikter och jag hoppas inte det uppfattas som negativt.
                                Last edited by Henric; 2015-09-30, 12:22.

                                Comment

                                Working...
                                X