Allmänt meddelande

Collapse
No announcement yet.

Volume Break Out

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

  • Volume Break Out

    Administrator HenrikSyst klagade på mig i tråden "Hur går era affärer" att jag redovisade för mycket och att det kunde ta fokus från "inlägg om mer generella diskussioner om strategier som alla kan ta del av eller nya grejer som någon kommit på."
    Så för att han skall bli nöjd tar jag och publicerar en komplett daytradingstrategi (fastän den är inte helt färdig) som jag tog fram den gångna helgen.
    Den bygger på liknande tankegångar som min swingstrategi Mach1. Strategin analyserar och handlar förstås terminen eftersom volymen är med. Lägg märke till att "triggermotorn" bara tittar 9 minuter bakåt.

    { Mitt BolVol9 köp }
    { 181104 }
    innehav:=Portfolio(v)
    ok_att_handla:=eqv(innehav,0)
    perioder01:=9
    minSedanStart:=Sub(int(mult(frac(d),1440)),541)
    perioder02:=Mn(minSedanStart,60)

    tidspärr1:=450
    tidspärr2:=450

    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(
    tid0=eqv(int(mult(frac(d),1440)),540)
    tid1=gt(int(mult(frac(d),1440)),570)
    { före kl 17.10 }
    tid2=lt(int(mult(frac(d),1440)),1030)

    SetGVarIf(0,100,tid0,T)
    SetGVarIf(1,202,tid0,T)

    col=Div(Add(Add(c,H),L),3)
    vol=MX(v,1)

    hugo02=mov(mult(mult(mult(col,vol),mult(col,vol)),mult(mult(col,vol),mult(col,vol))),perioder01)
    sliten02=mov(mult(mult(mult(vol,vol),vol),vol),perioder01)

    not01=sqrt(sqrt(Div(hugo02,sliten02)))
    not02=wild(not01,2)

    biggest=hhvbars(vol,perioder01)
    lowest=llvbars(vol,perioder01)
    vyl=aref(vol,lowest)
    cyl=aref(col,lowest)
    hugo03=div(mult(mult(mult(cyl,vyl),mult(cyl,vyl)),mult(mult(cyl,vyl),mult(cyl,vyl))),perioder01)
    sliten03=div(mult(mult(mult(vyl,vyl),vyl),vyl),perioder01)
    not03=sqrt(sqrt(Div(hugo03,sliten03)))
    not04=wild(not03,2)

    släng01=mov(col,5)
    släng02=wild(col,7)
    Draw(not02,2,dgqb0)
    Draw(släng02,3,mqb0)
    Draw(not04,4,kqb0)

    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=Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92))))

    villkor01=Gt(mov(sub(släng01,not02),20),0.1)
    villkor02=Gt(sub(col,släng01),0.01)
    villkor03=Gt(mov(Sub(not02,not04),1),0.01)
    villkor04=Gt(mov(sub(släng01,not04),1),0.1)
    villkor05=Gt(sub(not04,aref(not04,1)),0.01)
    villkor06=Gt(sub(col,aref(col,1)),0.01)
    { villkor07=Ge(abs(sub(hhvbars(v,30),llvbars(v,30))),15) }
    villkor07=Ge(div(hhv(v,20),llv(v,20)),5)
    Glapp01=div(sub(hhv(H,perioder01),llv(L,perioder01)),HHV(H,perioder01))
    Glapp02=div(sub(hhv(v,perioder01),Add(llv(v,perioder01),1)),HHV(v,perioder01))
    Glapp03=mult(div(glapp01,glapp02),100)
    villkor08=And(Gt(glapp03,0.1),Lt(Glapp03,0.3))

    Glapp04=div(sub(hhv(H,perioder02),llv(L,perioder02)),HHV(H,perioder02))
    Glapp05=div(sub(hhv(v,perioder02),Add(llv(v,perioder02),1)),HHV(v,perioder02))
    Glapp06=mult(div(glapp04,glapp05),100)
    Glapp07=sub(hhv(H,perioder02),llv(L,perioder02))
    villkor09=And(if(Lt(glapp07,4),Gt(glapp06,0.2),Gt(glapp06,0.3)),Lt(glapp06,0.99))


    villkor10=and(and(and(and(and(and(and(and(villkor01,villkor02),villkor03),villkor04),villkor05),villkor06),villkor07),villkor08),villkor09)

    Köpa=And(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 )}

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

    { Mitt BolVol9 köp vänd }
    { 181104 }
    innehav:=Portfolio(v)
    ok_att_handla:=Lt(innehav,0)
    perioder01:=9

    tidspärr1:=1
    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)
    perioder02:=Int(Mn(MN(minSedanköp,minSedanSälj),60))


    i1(
    tid1=gt(int(mult(frac(d),1440)),540)
    { före kl 17.10 }
    tid2=lt(int(mult(frac(d),1440)),1030)

    col=Div(Add(Add(c,H),L),3)
    vol=MX(v,1)

    hugo02=mov(mult(mult(mult(col,vol),mult(col,vol)),mult(mult(col,vol),mult(col,vol))),perioder01)
    sliten02=mov(mult(mult(mult(vol,vol),vol),vol),perioder01)

    not01=sqrt(sqrt(Div(hugo02,sliten02)))
    not02=wild(not01,2)

    biggest=hhvbars(vol,perioder01)
    lowest=llvbars(vol,perioder01)
    vyl=aref(vol,lowest)
    cyl=aref(col,lowest)
    hugo03=div(mult(mult(mult(cyl,vyl),mult(cyl,vyl)),mult(mult(cyl,vyl),mult(cyl,vyl))),perioder01)
    sliten03=div(mult(mult(mult(vyl,vyl),vyl),vyl),perioder01)
    not03=sqrt(sqrt(Div(hugo03,sliten03)))
    not04=wild(not03,2)

    släng01=mov(col,5)
    släng02=mov(col,7)
    Draw(not02,2,dgqb0)
    Draw(släng01,3,mqb0)
    Draw(not04,4,kqb0)

    villkor01=Gt(mov(sub(släng01,not02),20),0.1)
    villkor02=Gt(sub(col,släng01),0.01)
    villkor03=Gt(mov(Sub(not02,not04),1),0.01)
    villkor04=Gt(mov(sub(släng01,not04),1),0.1)
    villkor05=Gt(sub(not04,aref(not04,1)),0.01)
    villkor06=Gt(sub(col,aref(col,1)),0.01)
    { villkor07=Ge(abs(sub(hhvbars(v,30),llvbars(v,30))),15) }
    villkor07=Ge(div(hhv(v,20),llv(v,20)),3)
    Glapp01=div(sub(hhv(H,perioder01),llv(L,perioder01)),HHV(H,perioder01))
    Glapp02=div(sub(hhv(v,perioder01),Add(llv(v,perioder01),1)),HHV(v,perioder01))
    Glapp03=mult(div(glapp01,glapp02),100)
    villkor08=And(Gt(glapp03,0.1),Lt(Glapp03,0.3))

    Glapp04=div(sub(hhv(H,perioder02),llv(L,perioder02)),HHV(H,perioder02))
    Glapp05=div(sub(hhv(v,perioder02),Add(llv(v,perioder02),1)),HHV(v,perioder02))
    Glapp06=mult(div(glapp04,glapp05),100)
    Glapp07=sub(hhv(H,perioder02),llv(L,perioder02))
    villkor09=if(Lt(glapp07,4),Gt(glapp06,0.2),Gt(glapp06,0.3))


    villkor10=and(and(and(and(and(and(and(and(villkor01,villkor02),villkor03),villkor04),villkor05),villkor06),villkor07),villkor08),villkor09)

    Köpa=And(villkor10,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)

    profit01=Add(GetGVar(100),Sub(LastTrade(S,P),c))
    SetGVarIf(profit01,100,köpsignal,T)
    SetGVarIf(date(),99,köpsignal,T)
    Mult(köpsignal,10)
    )

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

    mvh
    Bertil
    Last edited by Bertil; 2018-11-05, 19:32.

  • #2
    Och här är säljordermodellerna

    { Mitt BolVol9 sälj }
    { 181104 }
    innehav:=Portfolio(v)
    ok_att_handla:=eqv(innehav,0)
    perioder01:=9
    minSedanStart:=Sub(int(mult(frac(d),1440)),541)
    perioder02:=Mn(minSedanStart,60)

    tidspärr1:=450
    tidspärr2:=450

    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)),540)
    { före kl 17.10 }
    tid2=lt(int(mult(frac(d),1440)),1030)

    col=Div(Add(Add(c,H),L),3)
    vol=MX(v,1)

    hugo02=mov(mult(mult(mult(col,vol),mult(col,vol)),mult(mult(col,vol),mult(col,vol))),perioder01)
    sliten02=mov(mult(mult(mult(vol,vol),vol),vol),perioder01)

    not01=sqrt(sqrt(Div(hugo02,sliten02)))
    not02=wild(not01,2)

    biggest=hhvbars(vol,perioder01)
    lowest=llvbars(vol,perioder01)
    vyl=aref(vol,lowest)
    cyl=aref(col,lowest)
    hugo03=div(mult(mult(mult(cyl,vyl),mult(cyl,vyl)),mult(mult(cyl,vyl),mult(cyl,vyl))),perioder01)
    sliten03=div(mult(mult(mult(vyl,vyl),vyl),vyl),perioder01)
    not03=sqrt(sqrt(Div(hugo03,sliten03)))
    not04=wild(not03,2)

    släng01=mov(col,5)
    släng02=mov(col,7)
    Draw(not02,2,dgqb0)
    Draw(släng01,3,mqb0)
    Draw(not04,4,kqb0)

    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=Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92))))

    villkor01=Lt(mov(sub(släng01,not02),20),-0.2)
    villkor02=Lt(col,släng01)
    villkor03=Lt(mov(sub(not02,not04),5),-0.1)
    villkor04=Lt(mov(sub(släng01,not04),5),-0.01)
    villkor05=Lt(not04,aref(not04,1))
    villkor06=Lt(sub(col,aref(col,1)),-0.01)
    { villkor07=Ge(abs(sub(hhvbars(v,30),llvbars(v,30))),15) }
    villkor07=Ge(div(hhv(v,20),llv(v,20)),5)
    Glapp01=div(sub(hhv(H,perioder01),llv(L,perioder01)),HHV(H,perioder01))
    Glapp02=div(sub(hhv(v,perioder01),Add(llv(v,perioder01),1)),HHV(v,perioder01))
    Glapp03=mult(div(glapp01,glapp02),100)
    villkor08=And(Gt(glapp03,0.1),Lt(Glapp03,0.3))

    Glapp04=div(sub(hhv(H,perioder02),llv(L,perioder02)),HHV(H,perioder02))
    Glapp05=div(sub(hhv(v,perioder02),Add(llv(v,perioder02),1)),HHV(v,perioder02))
    Glapp06=mult(div(glapp04,glapp05),100)
    Glapp07=sub(hhv(H,perioder02),llv(L,perioder02))
    villkor09=And(if(Lt(glapp07,4),Gt(glapp06,0.2),Gt(glapp06,0.3)),Lt(glapp06,0.99))


    villkor10=and(and(and(and(and(and(and(and(villkor01,villkor02),villkor03),villkor04),villkor05),villkor06),villkor07),villkor08),villkor09)

    Sälja=And(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(1,OMX Stock )}

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

    { Mitt BolVol9 sälj vänd }
    { 181104 }
    innehav:=Portfolio(v)
    ok_att_handla:=Gt(innehav,0)
    perioder01:=9

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

    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)
    perioder02:=Int(Mn(MN(minSedanköp,minSedanSälj),60))

    i1(
    tid1=gt(int(mult(frac(d),1440)),540)
    { före kl 17.10 }
    tid2=lt(int(mult(frac(d),1440)),1030)

    col=Div(Add(Add(c,H),L),3)
    vol=MX(v,1)

    hugo02=mov(mult(mult(mult(col,vol),mult(col,vol)),mult(mult(col,vol),mult(col,vol))),perioder01)
    sliten02=mov(mult(mult(mult(vol,vol),vol),vol),perioder01)

    not01=sqrt(sqrt(Div(hugo02,sliten02)))
    not02=wild(not01,2)

    biggest=hhvbars(vol,perioder01)
    lowest=llvbars(vol,perioder01)
    vyl=aref(vol,lowest)
    cyl=aref(col,lowest)
    hugo03=div(mult(mult(mult(cyl,vyl),mult(cyl,vyl)),mult(mult(cyl,vyl),mult(cyl,vyl))),perioder01)
    sliten03=div(mult(mult(mult(vyl,vyl),vyl),vyl),perioder01)
    not03=sqrt(sqrt(Div(hugo03,sliten03)))
    not04=wild(not03,2)

    släng01=mov(col,5)
    släng02=mov(col,7)
    Draw(not02,2,dgqb0)
    Draw(släng01,3,mqb0)
    Draw(not04,4,kqb0)

    villkor01=Lt(mov(sub(släng01,not02),20),-0.2)
    villkor02=Lt(col,släng01)
    villkor03=Lt(mov(sub(not02,not04),5),-0.1)
    villkor04=Lt(mov(sub(släng01,not04),5),-0.01)
    villkor05=Lt(not04,aref(not04,1))
    villkor06=Lt(sub(col,aref(col,1)),-0.01)
    { villkor07=Ge(abs(sub(hhvbars(v,30),llvbars(v,30))),15) }
    villkor07=Ge(div(hhv(v,20),llv(v,20)),3)
    Glapp01=div(sub(hhv(H,perioder01),llv(L,perioder01)),HHV(H,perioder01))
    Glapp02=div(sub(hhv(v,perioder01),Add(llv(v,perioder01),1)),HHV(v,perioder01))
    Glapp03=mult(div(glapp01,glapp02),100)
    villkor08=And(Gt(glapp03,0.1),Lt(Glapp03,0.3))
    Glapp04=div(sub(hhv(H,perioder02),llv(L,perioder02)),HHV(H,perioder02))
    Glapp05=div(sub(hhv(v,perioder02),Add(llv(v,perioder02),1)),HHV(v,perioder02))
    Glapp06=mult(div(glapp04,glapp05),100)
    Glapp07=sub(hhv(H,perioder02),llv(L,perioder02))
    villkor09=if(Lt(glapp07,4),Gt(glapp06,0.2),Gt(glapp06,0.3))


    villkor10=and(and(and(and(and(and(and(and(villkor01,villkor02),villkor03),villkor04),villkor05),villkor06),villkor07),villkor08),villkor09)

    Sälja=And(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)
    profit01=Add(GetGVar(100),Sub(c,LastTrade(B,P)))
    SetGVarIf(profit01,100,säljsignal,T)
    SetGVarIf(date(),99,säljsignal,T)
    Mult(säljsignal,10)
    )

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

    Dessutom har jag med TP lång och TP kort samt avslut för dagen ca 17.23

    mvh
    Bertil

    Comment


    • #3
      Nå hur går då denna strategi? Den går hyfsat andra halvan av 2018 som är rätt så volatil men mindre bra den första halvan.

      Här är simuleringen för 2018
      -11,25
      -33
      -2
      49,75
      44,9
      22,75
      -0,5
      8,5
      8,45
      58
      0,5
      Summa 146,1

      Den volatila J-terminen ser ut så här:
      Avkastning 58.00 kr 0.12% på 30 affärer under 70:27:55 tim
      Av dessa blankat 14 st med avkastning 22.50 kr 0.10%
      Innehav 11 st med vinst 61.00 kr 0.35%
      Innehav 5 st med förlust -25.50 kr -0.32%
      Blankning 10 st med vinst 37.00 kr 0.23%
      Blankning 4 st med förlust -14.50 kr -0.22%

      Kräver som sagt lite fler villkor relaterade till volatilitet innan man vågar köra den skarpt. Har ni några idéer?

      mvh
      Bertil

      Comment

      Working...
      X