Allmänt meddelande

Collapse
No announcement yet.

Pairtrading OMXS30 DAX intradag

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

  • #31
    Vi har ju ingen riktig Stop Loss så vad händer då om indexen börjar att dra iväg åt var sitt håll?

    Nu är det ju så fiffigt att det är medelvärdesbildningen i hjälpfunktionen som automatiskt tar hand om detta.
    ---------------------------------------------------
    { Orca swing hjälp }
    { 180302 }

    { Tag 30 medelvärden på dagclose med början för 15 dagar sedan }

    OMXS30ref=mov(cmpref(c,30,a),15)
    DAXref=mov(cmpref(c,30,b),15)
    ......................................
    Detta ger resultatet:

    Avkastning 26180.00 kr 0.11% på 440 affärer under 10613:43:47 tim
    Av dessa blankat 220 st med avkastning -15929.26 kr -0.13%
    Innehav 145 st med vinst 87167.50 kr 1.08%
    Innehav 75 st med förlust -45058.24 kr -1.04%
    Blankning 132 st med vinst 56330.92 kr 0.76%
    Blankning 88 st med förlust -72260.18 kr -1.47%


    ----------------------------------------------------
    Om man istället ändrar till:
    { Orca swing hjälp }
    { 180302 }

    { Tag 5 medelvärden på dagclose med början för 5 dagar sedan }

    OMXS30ref=mov(cmpref(c,5,a),5)
    DAXref=mov(cmpref(c,5,b),5)
    .......................................................
    Fås följande resultat, allt annat lika:

    Avkastning 30179.15 kr 0.06% på 898 affärer under 8085:18:38 tim
    Av dessa blankat 449 st med avkastning -7152.50 kr -0.03%
    Innehav 267 st med vinst 135548.60 kr 0.87%
    Innehav 182 st med förlust -98216.96 kr -0.90%
    Blankning 265 st med vinst 119577.35 kr 0.78%
    Blankning 184 st med förlust -126729.85 kr -1.16%
    --------------------------------------------------------------

    mvh
    Bertil


    Edit: Ovanstående simuleringar är gjorda med inställningarna:

    { Trigg då DAX större än OMXS30 }
    Trigg01:=0.5
    { Trigg då OMXS30 större än DAX }
    Trigg02:=0.5

    samt med TP inställda på 0.3
    Last edited by Bertil; 2018-03-03, 09:30.

    Comment


    • #32
      Tar vi bort courtaget/slipp ur simuleringen får vi:

      Avkastning 39260.34 kr 0.15% på 440 affärer under 10613:43:47 tim

      Respektive med den kortare medelvärdesbildningen också utan courtage:

      Avkastning 55431.18 kr 0.09% på 898 affärer under 8083:50:15 tim

      mvh
      Bertil

      Comment


      • #33
        God morgon Bertil!

        Jag tog lite sovmorgon idag och nu han du före med det jag tänkte på i natt, en stoploss som slår till när båda indexen går åt fel håll.

        Jag har labbat lite med att stänga positionen efter antal dagar när TP villkoret inte uppfylls.

        { Egen Orca swing TP lång }
        { 180302 }
        innehav:=Portfolio(v)
        ok_att_handla:=Gt(innehav,0)
        tidspärr1:=30
        tidspärr2:=30
        lt1:=LastTrade(S,D)
        lt2:=LastTrade(S,D)
        minSedanSälj:=Mult(Sub(Date(),lt1),1440)
        minSedanTrans:=Mult(Sub(Date(),lt2),1440)
        delay_ok:=gt(minSedanSälj,tidspärr1)
        trans_ok:=gt(minSedanTrans,tidspärr2)


        i1(

        köpdag=int(lasttrade(b,d))
        maxdgr=gt(d,add(köpdag,16))

        tid1=gt(int(mult(frac(d),1440)),575)
        { före kl 09.11 }
        tid2=lt(int(mult(frac(d),1440)),1041)

        villkor01=Lt(Abs(GetGVar(8003)),0.5)
        sälja=And(Or(villkor01,maxdgr),1)

        ditt_säljscript=And(And(And(sälja,tid1),tid2),1)
        säljsignal=And(ditt_säljscript,ok_att_handla)

        Mult(säljsignal,25)
        )


        { Egen Orca swing TP kort }
        { 180227 }
        innehav:=Portfolio(v)
        ok_att_handla:=Lt(innehav,0)
        tidspärr1:=30
        tidspärr2:=30
        lt1:=LastTrade(B,D)
        lt2:=LastTrade(B,D)
        minSedanKöp:=Mult(Sub(Date(),lt1),1440)
        minSedanTrans:=Mult(Sub(Date(),lt2),1440)
        delay_ok:=gt(minSedanKöp,tidspärr1)
        trans_ok:=gt(minSedanTrans,tidspärr2)


        i1(

        säljdag=int(lasttrade(s,d))
        maxdgr=gt(d,add(säljdag,7))

        tid1=gt(int(mult(frac(d),1440)),575)
        { före kl 09.11 }
        tid2=lt(int(mult(frac(d),1440)),1041)

        villkor01=Lt(Abs(GetGVar(8003)),0.5)
        Köpa=and(Or(villkor01,maxdgr),1)

        ditt_köpscript=And(And(And(köpa,tid1),tid2),1)
        köpsignal=And(ditt_köpscript,ok_att_handla)
        Mult(köpsignal,25)
        )


        Har även ändrat villkor01 och tid1 om det blev bättre vet jag inte riktigt ännu.

        Comment


        • #34
          Jag väntar med spänning på dina resultat.
          En annan sak vi kan jämföra är hur snabba våra datorer är att utföra simuleringen.
          Min dator (gammal laptop med tidig i7 processor och win7) tar, 5s inställning.
          Arbetad tid: 456646ms dvs 456 sekunder för simuleringen.

          mvh
          Bertil

          Comment


          • #35
            Här är resultatet,

            2012-01-01 till 2018-02-28, 5s, inge slipp eller courtage.

            Gör inga affärer före kl 09.35 då det kan bli fel på Daxen.

            Analys klar!
            100.000%
            Arbetad tid: 373828ms
            9467343 gjorda perioder
            2270 skapade signaler
            Tid:20180303 12:05:02
            Analyzern ej längre aktiv på detta jobbet


            Max Result Drawdown 8.7129 %
            Sharpekvot 0.0122 (månadsresultat) (pre 1994 0.0122)
            -0.8429 (årsomräknat) (pre 1994 -0.8429)
            Effektivt Resultat: 43.1687% - Slutsaldo kontot: 151785.60

            Avkastning 43168.70 kr 0.07% på 1134 affärer under 6691:58:08 tim
            Av dessa blankat 566 st med avkastning -2458.14 kr -0.01%
            Innehav 367 st med vinst 135841.59 kr 0.64%
            Innehav 201 st med förlust -90214.75 kr -0.75%
            Blankning 334 st med vinst 109312.25 kr 0.57%
            Blankning 232 st med förlust -111770.39 kr -0.82%

            Comment


            • #36
              Har labbat lite med viktningen mellan paren och då DAX index har större rörelse än OMX blir det bättre om man kör med detta,

              { Orca antal }

              i1(
              köpantal=Int(Div(Div(GetGVar(8000),if(lt(c,3500),1.7,2.7)),c))
              Add(köpantal,0)
              )

              Comment


              • #37
                Ursprungligen postat av Wheelie Visa inlägg
                Har labbat lite med viktningen mellan paren och då DAX index har större rörelse än OMX blir det bättre om man kör med detta,

                { Orca antal }

                i1(
                köpantal=Int(Div(Div(GetGVar(8000),if(lt(c,3500),1.7,2.7)),c))
                Add(köpantal,0)
                )

                Jo det är säkert sant, men då frångår man ju tricket att vara lika exponerad lång som blank för att undgå effekten av börskrascher mm.

                Däremot är det dumt som jag skrev i Orka köp
                tidspärr1:=500
                tidspärr2:=500

                Det betyder ju att man inte kan gå in i handel igen samma dag. Ändra till
                tidspärr1:=3
                tidspärr2:=3

                Så ökar vinsten.

                Jag har även trimmat lite på TP scripten samt fixat hur man skall agera då OMXS30 är öppen men DAX är stängd.

                Återkommer med lite trimmade script då jag simulerat mer.
                mvh
                Bertil

                Comment


                • #38
                  Bertil,

                  För att ta fler signaler kanske man skall göra delköp lika Alfa Shark?

                  Comment


                  • #39
                    Ursprungligen postat av Wheelie Visa inlägg
                    Bertil,

                    För att ta fler signaler kanske man skall göra delköp lika Alfa Shark?

                    Det är möjligt, men det blir en helt annan teknik som jag inte behärskar.
                    Då man bara skall trimma in principerna är det ju tydligare att göra som upplägget är nu.
                    Sedan bygger ju delköp och hög handelfrekvens på att slipage är litet och courtaget obefintligt. Det är ju något som vi bara haft i kanske 2 år med nuvarande minis. Om vi tar fram strategier som gör saftiga vinster på minisarna kommer ju utfärdarna att höja slipage annars försvinner ju deras vinst.

                    mvh
                    Bertil

                    Comment


                    • #40
                      Du har så rätt Bertil, inte lätt att bli vinnare i börsspelet.

                      Comment


                      • #41
                        En variant med två delköp,


                        { Orca swing köp }
                        { 180302 }

                        { Trigg då DAX större än OMXS30 }
                        Trigg03:=0.7
                        Trigg04:=0.3

                        { Trigg då OMXS30 större än DAX }
                        Trigg05:=0.7
                        Trigg06:=0.3

                        { Trigg för Take Profit short och long }
                        TP01:=0.1 {0.1}

                        tidspärr1:=500
                        tidspärr2:=500

                        i1(

                        volla02=stdev(div(cmpref(c,0,C),aref(cmpref(c,0,C),1)),3)
                        hög_vo=hhv(gt(volla02,0.015),100)

                        ma10=mov(cmpref(c,0,C),20,s)
                        ma50=mov(cmpref(c,0,C),50,s)
                        ma200=mov(cmpref(c,0,C),200,s)
                        klimat=and(and(gt(ma10,ma50),gt(ma200,aref(ma200,1))),1)

                        Trigg01=if(hög_vo,Trigg03,Trigg04)
                        Trigg02=if(hög_vo,Trigg05,Trigg06)

                        SetGVarIf(TP01,8009,1,T)
                        SetGVarIf(trigg01,8001,1,T)

                        ok_att_handla1=or(eqv(Portfolio(v),0),and(lt(lasttrade(b,0),1),gt(portfolio(v),0)))
                        ok_att_handla2=or(eqv(Portfolio(v),0),and(lt(lasttrade(s,0),1),lt(portfolio(v),0)))


                        lt1=LastTrade(S,D)
                        lt2=LastTrade(B,D)
                        minSedanSälj=Mult(Sub(Date(),lt1),1440)
                        minSedanKöp=Mult(Sub(Date(),lt2),1440)
                        delay_ok=gt(minSedanSälj,tidspärr1)
                        trans_ok=gt(minSedanKöp,tidspärr2)

                        { kl 09.00 }
                        tid0=eqv(int(mult(frac(d),1440)),541)
                        SetGVarIf(cash(T),8000,and(ok_att_handla1,tid0),T)
                        SetGVarIf(d,8006,tid0,T)

                        { kl 09.01 }
                        tid1=gt(int(mult(frac(d),1440)),545)

                        { före kl 13.00 }
                        tid2=lt(int(mult(frac(d),1440)),780)

                        indexOMXS30=Mult(Div(Sub(cmpref(c,0,a),GetGVar(8011)),GetGVar(8011)),100)
                        indexDAX=Mult(Div(Sub(cmpref(c,0,b),GetGVar(8012)),GetGVar(8012)),100)

                        skillnad01=sub(indexDAX,indexOMXS30)
                        SetGVarIf(skillnad01,8003,1,T)

                        start01=if(ge(d,GetGVar(8006)),skillnad01,0)
                        maxhittills01=HHV(start01,510)
                        gräns01=mult(maxhittills01,0.9)

                        villkor11=Gt(skillnad01,trigg01)
                        villkor12=Lt(skillnad01,gräns01)
                        villkor13=EQV(crcid(),468276556)
                        villkor19=And(And(villkor11,villkor12),villkor13)


                        skillnad02=sub(indexOMXS30,indexDAX)

                        start02=if(ge(d,GetGVar(8006)),skillnad02,0)
                        maxhittills02=HHV(start02,510)
                        gräns02=mult(maxhittills02,0.9)


                        villkor21=Gt(skillnad02,trigg02)
                        villkor22=Lt(skillnad02,gräns02)
                        villkor23=EQV(crcid(),2930203935)
                        villkor29=And(And(villkor21,villkor22),villkor23)

                        Köpa=Or(villkor19,villkor29)
                        ditt_köpscript=And(And(And(And(köpa,tid1),tid2),delay_ok),trans_ok)
                        köpsignal=And(ditt_köpscript,ok_att_handla1)
                        SetGVarIf(skillnad01,8002,köpsignal,T)
                        SetGVarIf(1,8005,köpsignal,T)

                        retval(if(not(gt(Portfolio(v),0)),0,add(lasttrade(b,0),1)),0)

                        Mult(köpsignal,10)

                        )

                        {@A(1,OMX Stock )@B(1,B-IDX-DAXI)@C(0,OMX Stock )}



                        { Orca swing sälj }
                        { 180302 }

                        tidspärr1:=1
                        tidspärr2:=1

                        i1(

                        ok_att_handla=or(eqv(Portfolio(v),0),and(lt(lasttrade(s,0),1),lt(portfolio(v),0)))

                        lt1=LastTrade(S,D)
                        lt2=LastTrade(B,D)
                        minSedanSälj=Mult(Sub(Date(),lt1),1440)
                        minSedanKöp=Mult(Sub(Date(),lt2),1440)
                        delay_ok=gt(minSedanSälj,tidspärr1)
                        trans_ok=gt(minSedanKöp,tidspärr2)

                        villkor01=Gt(GetGVar(8002),0)
                        villkor02=Eqv(GetGVar(8005),1)
                        villkor03=EQV(crcid(),2930203935)
                        villkor09=And(And(villkor01,villkor02),villkor03)

                        villkor11=Lt(GetGVar(8002),0)
                        villkor12=Eqv(GetGVar(8005),1)
                        villkor13=EQV(crcid(),468276556)
                        villkor19=And(And(villkor11,villkor12),villkor13)


                        Sälja=or(villkor09,villkor19)
                        ditt_säljscript=And(And(sälja,delay_ok),trans_ok)
                        säljsignal=And(ditt_säljscript,ok_att_handla)
                        SetGVarIf(0,8004,säljsignal,T)
                        SetGVarIf(0,8005,säljsignal,T)

                        retval(if(not(lt(Portfolio(v),0)),0,add(lasttrade(s,0),1)),0)

                        Mult(säljsignal,10)


                        { Orca antal }

                        i1(
                        köpantal=Int(Div(Div(GetGVar(8000),4),c))
                        Add(köpantal,0)
                        )

                        Comment


                        • #42
                          Första positionen på testkonto,

                          10:30 ORDER "sl) 28 Pair trading ORCA DAX Long B-IDX-DAXI" kurs 12302.20
                          10:30 ORDER "sl) 28 Pair trading ORCA OMX Short OMXS30" kurs 1584.22

                          Comment


                          • #43
                            Hehe, då ligger den lika med Alpha Shark just nu.

                            Comment


                            • #44
                              Spännande!

                              Comment


                              • #45
                                Ursprungligen postat av Wheelie Visa inlägg
                                Första positionen på testkonto,

                                10:30 ORDER "sl) 28 Pair trading ORCA DAX Long B-IDX-DAXI" kurs 12302.20
                                10:30 ORDER "sl) 28 Pair trading ORCA OMX Short OMXS30" kurs 1584.22

                                Spännande, återkom med resultat!
                                Kör/simulerar du direkt mot index eller simulerar du mot minisar på något sätt?

                                Jag har ett annat projekt som jag ska avsluta sedan ska jag titta på detta med "pair".

                                Comment

                                Working...
                                X