Allmänt meddelande

Collapse
No announcement yet.

Swing-o-plan

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

  • Swing-o-plan

    På Liseberg fanns förr i världen en åkattraktion som hette Swing-o-plan

    Detta kan vara ett passande namn på en snabb swingstrategi.

    mvh
    Bertil
    Attached Files
    Last edited by Bertil; 2018-04-15, 12:46.

  • #2
    Jag handlar ju nästan alltid efter olika typer av medelvärden. Den enklaste strategin är ju att man handlar då två olika kurvor med olika medelvärden skär varandra tex MA200 och MA50.

    Problemet med medelvärden är ju att man får en fördröjning, samt att det antal perioder man önskar att medelvärdesbilda bör vara beroende av volatiliteten.

    Jag har därför skapat ordermodeller som har en dynamisk medelvärdesbildning.
    Som korsande medelvärde använder jag en omvänd (rev) beräkning av min dynamiska medelvärdeskurva.
    Att detta kunde gå att handla efter upptäckte jag i förrgår.
    Vill därför dela med mig av de 4 triggande ordermodeller som strategin är uppbyggd av. Nedanstående strategi ger +811 punkter räknat på terminshandel från 2015-01-01 till 2018-03-15. Med lite andra värden på variabeln knapp kan man få +950 punkter under samma tid fast med större drawdown som inträffar i mitten av tidsintervallet.

    mvh
    Bertil
    Attached Files
    Last edited by Bertil; 2018-04-15, 12:52.

    Comment


    • #3
      Hehe, kul ide! Har du kollat Out of sample med tidigare data? Blir det stor skillnad i avkastning?

      Comment


      • #4
        { Swing-o-plan köp }
        { 180414 }
        innehav:=Portfolio(v)
        ok_att_handla:=eqv(innehav,0)

        tidspärr1:=60
        tidspärr2:=60
        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)


        i1(
        { Efter kl 10.00 }
        tid1=gt(int(mult(frac(d),1440)),600)
        { Före kl 17.00 }
        tid2=lt(int(mult(frac(d),1440)),1020)

        { Handla ej mån och fre förutom vid extrem volatilitet }
        villkor92=And(Gt(Sub(Mx(cmpref(H,2,a),cmpref(H,1,a)),MN(cmpref(L,2,a),cmpref(L,1,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
        villkor93=And(Gt(Sub(Mx(cmpref(H,3,a),cmpref(H,2,a)),MN(cmpref(L,3,a),cmpref(L,2,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
        villkor98=And(Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92)))),1)

        { Beräkna ett dynamiskt antal perioder baserat på volatiliteten }
        antal01=add(20,0)
        slang01=mov(c,3)
        slang02=Aref(slang01,1)
        happmax01=Sub(hhv(slang01,antal01),llv(slang01,antal01))
        lång01=Div(sum(abs(sub(slang01,slang02)),antal01),happmax01)
        antal02=add(100,0)
        slang03=mov(c,15)
        slang04=Aref(slang03,1)
        happmax02=Sub(hhv(slang03,antal02),llv(slang03,antal02))
        lång02=Div(sum(abs(sub(slang03,slang04)),antal02),happmax02)
        antal04=Div(lång01,lång02)
        perioder01=Sub(int(mult(frac(d),1440)),550)
        antal05=Mov(Mult(antal04,50),20)
        antal06=Int(MN(MN(antal05,perioder01),90))
        { Beräkna den dynamiska kurvan }
        kurva05=mov(c,antal06:200)
        { Beräkna den dynamiska bakvända kurvan }
        sling01=mov(rev(c),antal06:200)
        { Lägg i globala variabler för att spara processorkraft }
        SetGVarIf(kurva05,5000,1,T)
        SetGVarIf(aref(kurva05,26),5004,1,T)
        SetGVarIf(sling01,5001,1,T)
        { Anpassa trigg till volatilitet }
        knapp=MN(Int(Div(Sub(HHV(c,120),LLV(c,120)),2)),4)
        SetGVarif(knapp,5002,1,T)
        SetGVarif(mult(-1,knapp),5003,1,T)

        Draw(kurva05,2,mqb0)
        Draw(sling01,3,dgqb0)

        villkor09=Gt(GetGVar(5000),GetGVar(5004))
        villkor10=Lt(sub(GetGVar(5001),GetGVar(5000)),GetGVar(5003))

        köpa=and(and(villkor09,villkor10),villkor98)
        ditt_köpscript=And(And(And(And(köpa,tid1),tid2),delay_ok),trans_ok)
        köpsignal=And(ditt_köpscript,ok_att_handla)
        Mult(köpsignal,10)
        )

        {@A(0,OMX Stock )}


        -----------------------------------------------------------
        { Swing-o-plan köp vänd }
        { 180414 }
        innehav:=Portfolio(v)
        ok_att_handla:=Lt(innehav,0)

        tidspärr1:=30
        tidspärr2:=30
        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)
        i1(
        tid1=gt(int(mult(frac(d),1440)),660)
        tid2=lt(int(mult(frac(d),1440)),1020)
        villkor09=Gt(GetGVar(5000),GetGVar(5004))
        villkor10=Lt(sub(GetGVar(5001),GetGVar(5000)),GetGVar(5003))

        köpa=and(villkor09,villkor10)
        ditt_köpscript=And(And(And(And(köpa,tid1),tid2),delay_ok),trans_ok)
        köpsignal=And(ditt_köpscript,ok_att_handla)
        Mult(köpsignal,10)
        )

        --------------------------------------------------

        { Swing-o-plan sälj }
        { 180414 }
        innehav:=Portfolio(v)
        ok_att_handla:=eqv(innehav,0)

        tidspärr1:=60
        tidspärr2:=60
        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)

        i1(
        tid1=gt(int(mult(frac(d),1440)),600)
        tid2=lt(int(mult(frac(d),1440)),1020)
        villkor92=And(Gt(Sub(Mx(cmpref(H,2,a),cmpref(H,1,a)),MN(cmpref(L,2,a),cmpref(L,1,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
        villkor93=And(Gt(Sub(Mx(cmpref(H,3,a),cmpref(H,2,a)),MN(cmpref(L,3,a),cmpref(L,2,a))),35),or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5)))
        villkor98=And(Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92)))),1)
        villkor09=Lt(GetGVar(5000),GetGVar(5004))
        villkor10=Gt(sub(GetGVar(5001),GetGVar(5000)),GetGVar(5002))

        sälja=and(and(villkor09,villkor10),villkor98)
        ditt_säljscript=And(And(And(And(sälja,tid1),tid2),delay_ok),trans_ok)
        säljsignal=And(ditt_säljscript,ok_att_handla)
        Mult(säljsignal,10)
        )


        {@A(0,OMX Stock )}


        ---------------------------------------------------------


        { Swing-o-plan sälj vänd }
        { 180414 }
        innehav:=Portfolio(v)
        ok_att_handla:=Gt(innehav,0)

        tidspärr1:=30
        tidspärr2:=30
        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)

        i1(
        tid1=gt(int(mult(frac(d),1440)),660)
        { före kl 17.10 }
        tid2=lt(int(mult(frac(d),1440)),1020)
        villkor09=Lt(GetGVar(5000),GetGVar(5004))
        villkor10=Gt(sub(GetGVar(5001),GetGVar(5000)),GetGVar(5002))

        sälja=and(and(villkor09,villkor10),villkor10)
        ditt_säljscript=And(And(And(And(sälja,tid1),tid2),delay_ok),trans_ok)
        säljsignal=And(ditt_säljscript,ok_att_handla)
        Mult(säljsignal,10)
        )


        -------------------------------------------------


        mvh
        Bertil
        Last edited by Bertil; 2018-04-16, 07:34.

        Comment


        • #5
          Så här blir resultatet per termin med ovanstående inställning, 1 min upplösning vid beräkningen och handel på terminens sälj resp köpkurs.
          5a 23
          5b 45,5
          5c 45,25
          5d 21,75
          5e 138,25
          5f -18,5
          5g -5,75
          5h -22
          5i -12,5
          5j -44
          5k 93,5
          5L 47,25
          6a 77,25
          6b 104
          6c 16
          6d 68,75
          6e 37,25
          6f 23,25
          6g 190
          6h -23
          6i -14,5
          6j -6,75
          6k 59,5
          6L 26,25
          7a -59,5
          7b -29,5
          7c -8,5
          7d -34,25
          7e 30,5
          7f -11,25
          7g 6,55
          7h -16,5
          7i -7
          7J 0
          7k 30,5
          7L 8
          8A 8
          8B 12,5
          8C -49,25
          8D 61,75
          811,8

          mvh
          Bertil


          Edit: Så här ser senaste terminen 8D ut:

          Avkastning 61.75 kr 0.15% på 28 affärer under 168:24:00 tim
          Av dessa blankat 14 st med avkastning 40.00 kr 0.19%
          Innehav 6 st med vinst 70.75 kr 0.78%
          Innehav 8 st med förlust -49.00 kr -0.40%
          Blankning 8 st med vinst 68.50 kr 0.57%
          Blankning 6 st med förlust -28.50 kr -0.32%
          Last edited by Bertil; 2018-04-15, 13:04.

          Comment


          • #6
            Jag har bara gjort runt 3-5 körningar med strategin och framförallt ändrat värdet på knapp, om man får handla på måndagar och fredagar, mintid mellan affärer och när första affären får ske på morgonen.

            Ni får gärna testa strategin, fungerar även direkt på index. Kommer ni på någon fiffig optimering så dela gärna med er.

            mvh
            Bertil

            Comment


            • #7
              Vilke modeller er på köpsidan og säljsidan?

              Comment


              • #8
                Ursprungligen postat av Palgrave Visa inlägg
                Vilke modeller er på köpsidan og säljsidan?
                köp och köp vänd är förstås på köpsidan samt sälj och sälj vänd på säljsidan.
                Dessutom har jag en Take Profit lång och kort men de blir nästan aldrig aktiva.
                mvh
                Bertil

                Comment


                • #9
                  Ursprungligen postat av Bertil Visa inlägg
                  köp och köp vänd är förstås på köpsidan samt sälj och sälj vänd på säljsidan.
                  Dessutom har jag en Take Profit lång och kort men de blir nästan aldrig aktiva.
                  mvh
                  Bertil
                  Har du et antalskriptet?

                  Comment


                  • #10
                    Köp vänd och Sälj vänd har detta antalscript
                    ---------------------------------
                    { Vända innehav }
                    innehav:=Portfolio(v)

                    i1(
                    slutantal=Mult(ABS(innehav),2)
                    Add(slutantal,0)
                    )

                    ---------------------------------

                    Köp och sälj har bara antalsscriptet 1

                    mvh
                    Bertil

                    Comment


                    • #11
                      Jag har lagt in de 4 ordermodellerna för Swing-o-plan i min strategi OMXSPI. Den första affären gjordes idag.
                      mvh
                      Bertil
                      Attached Files
                      Last edited by Bertil; 2020-06-20, 19:56.

                      Comment


                      • #12
                        Hur går det för din Swing-o-plan Bertil?
                        Nu har du väl lite riktig "Out of Sample" körning med strategin.
                        Hur ser resultatet ut i livehandel?

                        Comment


                        • #13
                          Ursprungligen postat av EMA Visa inlägg
                          Hur går det för din Swing-o-plan Bertil?
                          Nu har du väl lite riktig "Out of Sample" körning med strategin.
                          Hur ser resultatet ut i livehandel?
                          Hej!
                          Jag kör inte swing-o-plan skarpt längre gjorde det bara 2018-04-16 till 2018-04-17 tillsammans med min OMXSPI strategi, men det fungerade inte så bra (blev för många förlustaffärer) så jag tog bort den. Sedan i våras har jag ju tagit fram min Mach1 strategi som jag kör skarpt på eget konto.
                          Swing-o-plan får ju bara sin information från c medan Mach1 även använder volymen.
                          mvh
                          Bertil
                          Attached Files
                          Last edited by Bertil; 2020-06-22, 10:17.

                          Comment

                          Working...
                          X