Allmänt meddelande

Collapse
No announcement yet.

Omxspi

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

  • Bertil
    replied
    Den publicerade strategin blir så här för OMXS306A till OMXS306L

    Max Result Drawdown 0.2209 %
    Sharpekvot 0.4017 (månadsresultat) (pre 1994 0.4017)
    -5.4016 (årsomräknat) (pre 1994 -5.4016)
    Effektivt Resultat: 0.4358% - Slutsaldo kontot: 100435.75
    Avkastning 435.75 kr 0.21% på 146 affärer under 145:52:10 tim
    Av dessa blankat 77 st med avkastning 236.50 kr 0.22%
    Innehav 35 st med vinst 497.50 kr 1.03%
    Innehav 34 st med förlust -298.25 kr -0.63%
    Blankning 31 st med vinst 741.50 kr 1.73%
    Blankning 46 st med förlust -505.00 kr -0.79%

    Med vänlig hälsning
    Bertil
    Last edited by Bertil; 2017-03-26, 11:43.

    Leave a comment:


  • Bertil
    replied
    09:12 ORDER "sl) Mitt SPI sälj vänd OMXS307D" kurs 1553.75 +10.25

    Skarpt sedan 1/7: -66.45 punkter

    mvh
    Bertil

    Leave a comment:


  • Bertil
    replied
    Scripten ovan är rensade något från det jag kör skarpt så det kan finnas någon bugg. Det är meningen att man skall labba med scripten i Analysatorn och kanske lägga till några egna villkor.

    Med vänlig hälsning
    Bertil

    Leave a comment:


  • Bertil
    replied
    { Bertils nolla kontot }
    innehav:=Portfolio(v)
    i1(
    slutantal=Abs(innehav)
    Add(slutantal,0)
    )
    ovanstående script är onödigt. Använd istället:
    -----------------------------------------------------
    { Bertils allt innehav av aktuellt instrument}

    i1(
    Abs(portfolio(v))
    )
    Last edited by Bertil; 2017-03-25, 10:26.

    Leave a comment:


  • Bertil
    replied
    Sedan behövs ett par TP script. Sälj med va) scriptet "Bertils allt innehav av aktuellt instrument"
    -------------------------------

    { Bertils dynamiska TP lång }
    { 170324 }
    innehav:=Portfolio(v)
    ok_att_handla:=Gt(innehav,0)

    glapp:=div(mult(30,c),1250)
    maxis:=div(mult(12,c),1250)
    tidspärr1:=10
    tidspärr2:=10
    lt1:=LastTrade(B,D)
    lt2:=LastTrade(B,D)
    Lastbuy:=LastTrade(B,P)
    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(
    tid1=gt(int(mult(frac(d),1440)),570)
    { före kl 09.11 }
    tid2=lt(int(mult(frac(d),1440)),1035)
    del01=Sub(Mx(cmpref(H,1,a),cmpref(H,0,a)),MN(cmpref(L,1,a),cmpref(L,0,a)))
    del02=Sub(Mx(cmpref(H,2,a),cmpref(H,1,a)),MN(cmpref(L,2,a),cmpref(L,1,a)))
    del03=Sub(Mx(cmpref(H,3,a),cmpref(H,2,a)),MN(cmpref(L,3,a),cmpref(L,2,a)))
    del04=Sub(Mx(cmpref(H,4,a),cmpref(H,3,a)),MN(cmpref(L,4,a),cmpref(L,3,a)))
    hoppig01=Div(MX(MX(MX(del01,del02),del03),del04),1)
    stortrigg=div(mult(MN(Div(hoppig01,4),12),c),1250)
    lilltrigg=div(mult(10,c),1250)
    stoppgränsa=div(mult(3,c),1250)


    swing01=Gt(Sub(HHV(cmpref(H,1,a),3),LLV(cmpref(L,1,a),3)),glapp)
    triggvinst=if(swing01,stortrigg,lilltrigg)

    start=if(ge(d,LastTrade(b,d)),c,0)
    maxhittills=hhv(start,2500)
    högstav=Sub(maxhittills,lastbuy)

    stoppgräns3=ADD(Div(Sub(högstav,triggvinst),2),stoppgränsa)
    stoppgräns2=IF(GE(stoppgräns3,maxis),maxis,stoppgräns3)
    stoppgräns1=IF(GE(stoppgräns2,stoppgränsa),stoppgräns2,stoppgränsa)

    tillåt=ge(högstav,triggvinst)
    level1=Sub(maxhittills,stoppgräns1)
    sälja=And(And(Le(c,level1),tillåt),Gt(Sub(c,lastbuy),13))

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

    Mult(säljsignal,25)
    )



    {@A(0,)}
    Last edited by Bertil; 2017-03-25, 11:46. Anledning: Rättat script

    Leave a comment:


  • Bertil
    replied
    Sedan behövs ett par TP script. Köp med va) scriptet "Bertils allt innehav av aktuellt instrument"
    --------------------------------------------

    { Bertils dynamiska TP kort }
    { 170324 }
    innehav:=Portfolio(v)
    ok_att_handla:=Lt(innehav,0)

    maxis:=div(mult(12,c),1250)
    tidspärr1:=10
    tidspärr2:=10
    lt1:=LastTrade(S,D)
    lt2:=LastTrade(S,D)
    Lastsell:=LastTrade(S,P)
    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(
    tid1=gt(int(mult(frac(d),1440)),570)
    { före kl 09.11 }
    tid2=lt(int(mult(frac(d),1440)),1035)
    glapp=div(mult(18,c),1250)
    del01=Sub(Mx(cmpref(H,1,a),cmpref(H,0,a)),MN(cmpref(L,1,a),cmpref(L,0,a)))
    del02=Sub(Mx(cmpref(H,2,a),cmpref(H,1,a)),MN(cmpref(L,2,a),cmpref(L,1,a)))
    del03=Sub(Mx(cmpref(H,3,a),cmpref(H,2,a)),MN(cmpref(L,3,a),cmpref(L,2,a)))
    del04=Sub(Mx(cmpref(H,4,a),cmpref(H,3,a)),MN(cmpref(L,4,a),cmpref(L,3,a)))

    hoppig01=Div(MX(MX(MX(del01,del02),del03),del04),1)
    stortrigg=div(mult(MN(Div(hoppig01,4),12),c),1250)
    lilltrigg=div(mult(10,c),1250)
    stoppgränsa=div(mult(3,c),1250)


    swing01=Gt(Sub(HHV(cmpref(H,1,a),3),LLV(cmpref(L,1,a),3)),glapp)
    triggvinst=if(swing01,stortrigg,lilltrigg)

    start=if(ge(d,LastTrade(s,d)),c,9999)
    minhittills=Llv(start,2500)
    högstav=Sub(lastsell,minhittills)
    just=Sub(lastsell,c)

    stoppgräns3=ADD(Div(Sub(högstav,triggvinst),2),stoppgränsa)
    stoppgräns2=IF(GE(stoppgräns3,maxis),maxis,stoppgräns3)
    stoppgräns1=IF(GE(stoppgräns2,stoppgränsa),stoppgräns2,stoppgränsa)

    tillåt=And(ge(högstav,triggvinst),ge(just,triggvinst))
    level1=Add(minhittills,stoppgräns1)
    köpa=And(Ge(c,level1),tillåt)
    ditt_köpscript=And(And(And(köpa,tid1),tid2),delay_ok)
    köpsignal=And(ditt_köpscript,ok_att_handla)
    Mult(köpsignal,25)
    )


    {@A(0,)}
    Last edited by Bertil; 2017-03-25, 11:47. Anledning: Rättat scriptbugg

    Leave a comment:


  • Bertil
    replied
    va) scripet "Bertils allt innehav av aktuellt instrument"
    ------------------------------------------
    { Bertils allt innehav av aktuellt instrument}

    i1(
    Abs(portfolio(v))
    )

    Leave a comment:


  • Bertil
    replied
    Sedan måste man ha sl) script för att gå ur terminen varje månad. Nedanstående säljscript skall kombineras med va) scriptet "Bertils allt innehav av aktuellt instrument"
    ------------------------------------------
    { Bertils sälj vid terminsslut }

    minuter:=5.25
    { ange antal minuter innan stängning du vill att scriptet ska slå till }
    stängning:=le(mult(1440,sub(market(c),frac(date()))),minuter)
    lastbuy:=LastTrade(B,P)
    i1(

    O4FE=Eqv(Int(date()),2456825)
    O4GE=Eqv(Int(date()),2456855)
    O4HE=Eqv(Int(date()),2456884)
    O4IE=Eqv(Int(date()),2456918)
    O4JE=Eqv(Int(date()),2456946)
    O4KE=Eqv(Int(date()),2456981)
    O4LE=Eqv(Int(date()),2457009)
    O5AE=Eqv(Int(date()),2457037)
    O5BE=Eqv(Int(date()),2457072)
    O5CE=Eqv(Int(date()),2457100)
    O5DE=Eqv(Int(date()),2457127)
    O5EE=Eqv(Int(date()),2457155)
    O5FE=Eqv(Int(date()),2457191)
    O5GE=Eqv(Int(date()),2457220)
    O5HE=Eqv(Int(date()),2457253)
    O5IE=Eqv(Int(date()),2457282)
    O5JE=Eqv(Int(date()),2457309)
    O5KE=Eqv(Int(date()),2457345)
    O5LE=Eqv(Int(date()),2457374)
    O6AE=Eqv(Int(date()),2457402)
    O6BE=Eqv(Int(date()),2457435)
    O6CE=Eqv(Int(date()),2457464)
    O6DE=Eqv(Int(date()),2457491)
    O6EE=Eqv(Int(date()),2457526)
    O6FE=Eqv(Int(date()),2457554)
    O6GE=Eqv(Int(date()),2457582)
    O6HE=Eqv(Int(date()),2457617)
    O6IE=Eqv(Int(date()),2457645)
    O6JE=Eqv(Int(date()),2457680)
    O6KE=Eqv(Int(date()),2457708)
    O6LE=Eqv(Int(date()),2457736)
    O7AE=Eqv(int(date()),2457771)
    O7BE=Eqv(int(date()),2457799)
    07CE=Eqv(int(date()),2457827)


    villkor99=or(or(or(or(or(or(or(or(or(or(O4FE,O4GE),O4HE),O4IE),O4JE),O4KE),O4LE),O5AE),O5BE),O5CE),O5DE)
    villkor22=or(or(or(or(or(or(or(or(or(or(O5EE,O5FE),O5GE),O5HE),O5IE),O5JE),villkor99),O5KE),O5LE),O6AE),O6BE)
    villkor23=or(or(or(or(or(or(or(or(or(or(villkor22,O6CE),O6DE),O6EE),O6FE),O6GE),O6HE),O6IE),O6JE),O6KE),O6LE)
    villkor02=or(or(or(villkor23,O7AE),O7BE),07CE)

    signal=And(And(gt(Portfolio(v),0),stängning),villkor02)

    Mult(signal,10)
    )
    Last edited by Bertil; 2017-03-25, 10:20.

    Leave a comment:


  • Bertil
    replied
    Sedan måste man ha sl) script för att gå ur terminen varje månad. Nedanstående köpscript skall kombineras med va) scriptet "Bertils allt innehav av aktuellt instrument"
    ------------------------------------------
    { Bertils cover vid terminsslut }

    minuter:=5.25
    { ange antal minuter innan stängning du vill att scriptet ska slå till }
    stängning:=le(mult(1440,sub(market(c),frac(date()))),minuter)
    lastsell:=LastTrade(S,P)
    tidspärr1:=1
    lt1:=LastTrade(S,D)
    minSedanShort:=Mult(Sub(Date(),lt1),1440)
    delay_ok:=gt(minSedanShort,tidspärr1)
    i1(

    O4FE=Eqv(Int(date()),2456825)
    O4GE=Eqv(Int(date()),2456855)
    O4HE=Eqv(Int(date()),2456884)
    O4IE=Eqv(Int(date()),2456918)
    O4JE=Eqv(Int(date()),2456946)
    O4KE=Eqv(Int(date()),2456981)
    O4LE=Eqv(Int(date()),2457009)
    O5AE=Eqv(Int(date()),2457037)
    O5BE=Eqv(Int(date()),2457072)
    O5CE=Eqv(Int(date()),2457100)
    O5DE=Eqv(Int(date()),2457127)
    O5EE=Eqv(Int(date()),2457155)
    O5FE=Eqv(Int(date()),2457191)
    O5GE=Eqv(Int(date()),2457220)
    O5HE=Eqv(Int(date()),2457253)
    O5IE=Eqv(Int(date()),2457282)
    O5JE=Eqv(Int(date()),2457309)
    O5KE=Eqv(Int(date()),2457345)
    O5LE=Eqv(Int(date()),2457374)
    O6AE=Eqv(Int(date()),2457402)
    O6BE=Eqv(Int(date()),2457435)
    O6CE=Eqv(Int(date()),2457464)
    O6DE=Eqv(Int(date()),2457491)
    O6EE=Eqv(Int(date()),2457526)
    O6FE=Eqv(Int(date()),2457554)
    O6GE=Eqv(Int(date()),2457582)
    O6HE=Eqv(Int(date()),2457617)
    O6IE=Eqv(Int(date()),2457645)
    O6JE=Eqv(Int(date()),2457680)
    O6KE=Eqv(Int(date()),2457708)
    O6LE=Eqv(Int(date()),2457736)
    O7AE=Eqv(int(date()),2457771)
    O7BE=Eqv(int(date()),2457799)
    07CE=Eqv(int(date()),2457827)



    villkor99=or(or(or(or(or(or(or(or(or(or(O4FE,O4GE),O4HE),O4IE),O4JE),O4KE),O4LE),O5AE),O5BE),O5CE),O5DE)
    villkor22=or(or(or(or(or(or(or(or(or(or(O5EE,O5FE),O5GE),O5HE),O5IE),O5JE),villkor99),O5KE),O5LE),O6AE),O6BE)
    villkor23=or(or(or(or(or(or(or(or(or(or(villkor22,O6CE),O6DE),O6EE),O6FE),O6GE),O6HE),O6IE),O6JE),O6KE),O6LE)
    villkor02=or(or(or(villkor23,O7AE),O7BE),07CE)

    signal=And(And(And(lt(Portfolio(v),0),stängning),delay_ok),villkor02)
    Mult(signal,10)
    )
    Last edited by Bertil; 2017-03-24, 19:47.

    Leave a comment:


  • Bertil
    replied
    va) scriptet "Bertils vända innehav"
    ------------------

    { Bertils vända innehav }

    innehav:=Portfolio(v)
    ok_att_handla:=1

    i1(

    tid7=le(int(mult(frac(d),1440)),585)
    tid8=ge(int(mult(frac(d),1440)),581)
    villkorTT=If(Gt(innehav,0),Not(And(tid7,tid8)),1)
    skara=div(mult(frac(d),1440),90)
    vara=sub(skara,int(skara))
    villkorPP=if(ok_att_handla,and(gt(vara,0.011),Lt(vara,0.99999)),1)
    slutantal=Mult(Mult(ABS(innehav),2),villkorPP)
    Add(slutantal,0)

    )
    Last edited by Bertil; 2017-03-24, 20:37.

    Leave a comment:


  • Bertil
    replied
    va) scriptet "Bertils antal"
    Detta script köper (eller blankar) 1 enhet på den termin som är aktuell. Man kan kryssa för flera terminer då man simulerar. Detta script håller reda på när varje termin är aktiv. OBS börja simuleringen bara med 1 termin. Kör sedan tex 2 (detta kommer att ta 4 gånger längre simuleringstid) Obs anpassa tiden för analysen så att den stämmer överens med när terminerna handlas, annars tar det väldigt lång tid att analysera. Om man skall simulera alla terminer som finns i scripten samtidigt så tar simuleringen runt ett dygn beroende på hur snabb dator man har.
    -------------------------------

    { Bertils antal }

    i1(
    köpantal=Add(0,1)
    innehav=Portfolio(v)
    övermål=Ge(innehav,köpantal)
    slutantal1=If(övermål,0,SUB(köpantal,innehav))

    O4FB=Ge(date(),2456794)
    O4FE=Lt(date(),2456826)
    O4GB=Ge(date(),2456826)
    O4GE=Lt(date(),2456856)
    O4HB=Ge(date(),2456856)
    O4HE=Lt(date(),2456888)
    O4IB=Ge(date(),2456888)
    O4IE=Lt(date(),2456919)
    O4JB=Ge(date(),2456919)
    O4JE=Lt(date(),2456947)
    O4KB=Ge(date(),2456947)
    O4KE=Lt(date(),2456982)
    O4LB=Ge(date(),2456982)
    O4LE=Lt(date(),2457010)
    O5AB=Ge(date(),2457010)
    O5AE=Lt(date(),2457038)
    O5BB=Ge(date(),2457038)
    O5BE=Lt(date(),2457073)
    O5CB=Ge(date(),2457073)
    O5CE=Lt(date(),2457101)
    O5DB=Ge(date(),2457101)
    O5DE=Lt(date(),2457128)
    O5EB=Ge(date(),2457128)
    O5EE=Lt(date(),2457156)
    O5FB=Ge(date(),2457156)
    O5FE=Lt(date(),2457192)
    O5GB=Ge(date(),2457192)
    O5GE=Lt(date(),2457221)
    O5HB=Ge(date(),2457221)
    O5HE=Lt(date(),2457254)
    O5IB=Ge(date(),2457254)
    O5IE=Lt(date(),2457283)
    O5JB=Ge(date(),2457283)
    O5JE=Lt(date(),2457310)
    O5KB=Ge(date(),2457310)
    O5KE=Lt(date(),2457346)
    O5LB=Ge(date(),2457346)
    O5LE=Lt(date(),2457375)
    O6AB=Ge(date(),2457375)
    O6AE=Lt(date(),2457403)
    O6BB=Ge(date(),2457403)
    O6BE=Lt(int(date()),2457436)
    O6CB=Ge(int(date()),2457436)
    O6CE=Lt(int(date()),2457465)
    O6DB=Ge(int(date()),2457465)
    O6DE=Lt(date(),2457492)
    O6EB=Ge(date(),2457492)
    O6EE=Lt(date(),2457527)
    O6FB=Ge(date(),2457527)
    O6FE=Lt(date(),2457555)
    O6GB=Ge(date(),2457555)
    O6GE=Lt(date(),2457583)
    O6HB=Ge(date(),2457583)
    O6HE=Lt(date(),2457618)
    O6IB=Ge(date(),2457618)
    O6IE=Lt(date(),2457646)
    O6JB=Ge(date(),2457646)
    O6JE=Lt(date(),2457681)
    O6KB=Ge(date(),2457681)
    O6KE=Lt(date(),2457709)
    O6LB=Ge(date(),2457709)
    O6LE=Lt(date(),2457737)
    O7AB=Ge(date(),2457737)
    O7AE=Lt(date(),2457772)
    O7BB=Ge(date(),2457772)
    O7BE=Lt(date(),2457800)
    O7CB=Ge(date(),2457800)
    O7CE=Lt(date(),2457828)
    O7DB=Ge(date(),2457828)
    O7DE=Lt(date(),2457867)


    villkor4F=And(And(O4FB,O4FE),eqv(crcid(),1391064143))
    villkor4G=And(And(O4GB,O4GE),eqv(crcid(),1395367544))
    villkor4H=And(And(O4HB,O4HE),eqv(crcid(),1484249413))
    villkor4I=And(And(O4IB,O4IE),eqv(crcid(),1505080178))
    villkor4J=And(And(O4JB,O4JE),eqv(crcid(),1542655275))
    villkor4K=And(And(O4KB,O4KE),eqv(crcid(),1513187100))
    villkor4L=And(And(O4LB,O4LE),eqv(crcid(),1602122137))
    villkor5A=And(And(O5AB,O5AE),eqv(crcid(),4011492783))
    villkor5B=And(And(O5BB,O5BE),eqv(crcid(),3982244854))
    villkor5C=And(And(O5CB,O5CE),eqv(crcid(),3969798593))
    villkor5D=And(And(O5DB,O5DE),eqv(crcid(),3922806596))
    villkor5E=And(And(O5EB,O5EE),eqv(crcid(),3893570931))
    villkor5F=And(And(O5FB,O5FE),eqv(crcid(),3931476778))
    villkor5G=And(And(O5GB,O5GE),eqv(crcid(),3952605469))
    villkor5H=And(And(O5HB,O5HE),eqv(crcid(),3771448864))
    villkor5I=And(And(O5IB,O5IE),eqv(crcid(),3775517719))
    villkor5J=And(And(O5JB,O5JE),eqv(crcid(),3813632590))
    villkor5K=And(And(O5KB,O5KE),eqv(crcid(),3800891513))
    villkor5L=And(And(O5LB,O5LE),eqv(crcid(),3888256764))
    villkor6A=And(And(O6AB,O6AE),eqv(crcid(),4256115265))
    villkor6B=And(And(O6BB,O6BE),eqv(crcid(),4293497880))
    villkor6C=And(And(O6CB,O6CE),eqv(crcid(),4264295983))
    villkor6D=And(And(O6DB,O6DE),eqv(crcid(),4217694378))
    villkor6E=And(And(O6EB,O6EE),eqv(crcid(),4205216413))
    villkor6F=And(And(O6FB,O6FE),eqv(crcid(),4175445188))
    villkor6G=And(And(O6GB,O6GE),eqv(crcid(),4179777267))
    villkor6H=And(And(O6HB,O6HE),eqv(crcid(),4068348366))
    villkor6I=And(And(O6IB,O6IE),eqv(crcid(),4089215993))
    villkor6J=And(And(O6JB,O6JE),eqv(crcid(),4059743648))
    villkor6K=And(And(O6KB,O6KE),eqv(crcid(),4030246807))
    villkor6L=And(And(O6LB,O6LE),eqv(crcid(),4118264082))
    villkor7A=And(And(O7AB,O7AE),eqv(crcid(),1158892836))
    villkor7B=And(And(O7BB,O7BE),eqv(crcid(),1196815229))
    villkor7C=And(And(O7CB,O7CE),eqv(crcid(),1184340298))
    villkor7D=And(And(O7DB,O7DE),eqv(crcid(),1138266063))

    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))))
    villkor99=or(or(or(or(or(or(or(or(or(or(villkor4I,villkor4H),villkor4G),villkor4F),villkor5D),villkor5E),villkor5F),villkor5G),villkor5H),villkor5L),v illkor6B)
    villkor22=or(or(or(or(or(or(or(or(or(or(villkor4L,villkor5A),villkor5B),villkor5C),villkor4K),villkor4J),villkor99),villkor5I),villkor5J),villkor5K),v illkor6A)
    villkor23=or(or(or(or(or(or(or(or(or(or(villkor22,villkor6C),villkor6D),villkor6E),villkor6F),villkor6G),villkor6H),villkor6I),villkor6J),villkor6K),v illkor6L)
    villkor02=or(or(or(or(villkor23,villkor7A),villkor7B),villkor7C),villkor7D)

    slutantal2=Mult(if(And(and(villkor98,villkor98),villkor02),slutantal1,0),1)

    Add(slutantal2,0)
    )

    {@A(0,)}

    --------------------
    Edit: Om man simulerar ett helt år dvs kryssar för 12 terminer samtidigt så är simuleringstiden 144 gånger längre än om man simulerar1 termin.
    Last edited by Bertil; 2017-03-25, 10:15. Anledning: Rättat script

    Leave a comment:


  • Bertil
    replied
    Ordermodellen skall innehålla va) scriptet "Bertils vända innehav".
    ------------------------------

    { Bertils SPI sälj vänd }
    { 170324 }
    innehav:=Portfolio(v)
    ok_att_handla:=gt(innehav,0)
    tidspärr1:=1010
    tidspärr2:=510
    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(
    tidA=gt(int(mult(frac(d),1440)),550)
    vinst01=int(sub(c,LastTrade(b,p)))
    tidB=gt(int(mult(frac(d),1440)),600)
    tidC=gt(int(mult(frac(d),1440)),630)

    nyss=Lt(minSedanSälj,1500)
    kosing=gt(vinst01,21)
    tidD=if(kosing,tidB,tidA)

    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))))
    villkor51=And(villkor98,EQV(DayOfWeek(),1))

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

    S30då=mov(cmpref(c,1,a),60)
    SPIdå=mov(cmpref(c,1,b),60)
    S30nu=cmpref(c,0,a)
    SPInu=div(mult(cmpref(c,0,b),S30då),SPIdå)
    perioder01=Sub(int(mult(frac(d),1440)),550)
    lågaliten=Llv(L,perioder01)

    kurva01=mov(c,10)
    kurva02=mov(c,5)
    medel=Add(mult(SPInu,0.5),mult(S30nu,0.5))
    senast01=Mov(abs(sub(medel,aref(medel,1))),8)
    senast02=Abs(Mov(sub(medel,aref(medel,1)),8))
    Kvot=Div(senast01,senast02)
    skillnad01=sub(medel,aref(medel,1))
    skillnad02=sub(medel,aref(medel,2))
    skillnad03=sub(medel,aref(medel,3))
    värde01=if(gt(kvot,2),skillnad01,skillnad02)
    värde02=if(gt(kvot,1.3),skillnad01,skillnad03)

    Draw(Add(kvot,medel),3,bqb0)
    Draw(Add(0,medel),4,rqb0)
    villkor01=Lt(värde01,-0.9)
    villkor02=Lt(Div(Sub(kurva01,aref(kurva01,1)),kurva01),-0.0001)
    villkor03=Gt(Div(Sub(kurva02,aref(kurva02,1)),kurva02),-0.00001)
    villkor04=Lt(sub(medel,aref(medel,1)),-0.3)
    villkor05=Lt(värde02,-0.5)
    villkor06=or(Gt(Sub(Lasttrade(b,p),c),0),Lt(Sub(Lasttrade(b,p),c),-3))
    villkor07=or(Gt(Sub(Lasttrade(s,p),c),3),Lt(Sub(Lasttrade(s,p),c),-3))
    villkor08=and(villkor06,villkor07)
    villkor09=Lt(minSedanSälj,3000)
    villkor10=if(villkor09,villkor07,1)
    villkor11=And(EQV(DayOfWeek(),1),Lt(minSedanSälj,8000))
    villkor12=And(Lt(Sub(Lasttrade(s,p),c),3),Gt(Sub(Lasttrade(s,p),c),-3))
    villkor13=And(Lt(Sub(Lasttrade(b,p),c),3),Gt(Sub(Lasttrade(b,p),c),-3))
    villkor14=And(villkor12,villkor13)
    villkor50=Lt(c,add(lågaliten,1))
    villkor52=if(villkor51,villkor50,1)

    tid1=if(and(villkor14,villkor11),tidC,tidD)

    sälja=And(And(And(And(villkor01,villkor02),villkor04),villkor52),villkor01)

    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 )@B(0,SX All-Sha)}
    Last edited by Bertil; 2017-03-24, 20:53.

    Leave a comment:


  • Bertil
    replied
    Ordermodellen för denna säljstrategi skall kombineras med va) scriptet "Bertils antal"
    -----------------------------------

    { Bertils SPI sälj }
    { 170324 }
    innehav:=Portfolio(v)
    ok_att_handla:=eqv(innehav,0)
    tidspärr1:=1010
    tidspärr2:=1010
    lt1:=LastTrade(B,D)
    lt2:=LastTrade(S,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.00 }
    tid2=lt(int(mult(frac(d),1440)),1020)

    S30då=mov(cmpref(c,1,a),60)
    SPIdå=mov(cmpref(c,1,b),60)
    S30nu=cmpref(c,0,a)
    SPInu=div(mult(cmpref(c,0,b),S30då),SPIdå)

    kurva01=mov(c,10)
    medel=Div(Add(SPInu,S30nu),2)
    senast01=Mov(abs(sub(medel,aref(medel,1))),8)
    senast02=Abs(Mov(sub(medel,aref(medel,1)),8))
    Kvot=Div(senast01,senast02)
    skillnad01=sub(medel,aref(medel,1))
    skillnad02=sub(medel,aref(medel,2))
    skillnad03=sub(medel,aref(medel,3))
    värde01=if(gt(kvot,2),skillnad01,skillnad02)

    villkor01=Lt(sub(medel,aref(medel,1)),-2.0)
    villkor02=Lt(Div(Sub(kurva01,aref(kurva01,1)),kurva01),-0.0001)
    villkor03=Lt(värde01,-0.9)

    { Blanka ej från nollinnehav måndagar och fredagar annat än vid mycket hög 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=Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92))))

    Draw(medel,3,dgqb0)

    sälja=And(And(And(And(villkor01,villkor02),villkor03),villkor98),villkor01)

    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 )@B(0,SX All-Sha)}
    Last edited by Bertil; 2017-03-24, 19:35.

    Leave a comment:


  • Bertil
    replied
    Ordermodellen skall innehålla va) scriptet "Bertils vända innehav".
    -----------------------------------------

    { Bertils SPI köp vänd }
    { 170324 }
    innehav:=Portfolio(v)
    ok_att_handla:=lt(innehav,0)
    tidspärr1:=510
    tidspärr2:=510
    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(
    tidA=gt(int(mult(frac(d),1440)),600)
    vinst01=int(sub(LastTrade(s,p),c))
    tidB=gt(int(mult(frac(d),1440)),660)
    tidC=gt(int(mult(frac(d),1440)),770)

    kosing=gt(vinst01,30)
    tidD=if(kosing,tidB,tidA)
    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))))
    villkor51=And(villkor98,EQV(DayOfWeek(),5))


    { före kl 17.00 }
    tid2=lt(int(mult(frac(d),1440)),1020)
    perioder01=Sub(int(mult(frac(d),1440)),580)
    högastor=Hhv(H,perioder01)

    S30då=mov(cmpref(c,1,a),60)
    SPIdå=mov(cmpref(c,1,b),60)
    S30nu=cmpref(c,0,a)
    SPInu=div(mult(cmpref(c,0,b),S30då),SPIdå)
    SPIjust=div(mult(cmpref(c,0,c),S30då),SPIdå)

    kurva01=mov(c,10)
    kurva02=mov(SPIjust,10)
    medel=Div(Add(SPInu,S30nu),2)
    Draw(S30nu,1,dgqb0)
    Draw(SPInu,2,rqb0)
    Draw(medel,3,bqb0)
    senast01=Mov(abs(sub(medel,aref(medel,1))),6)
    senast02=Abs(Mov(sub(medel,aref(medel,1)),6))
    Kvot=Div(senast01,senast02)
    skillnad01=sub(medel,aref(medel,1))
    skillnad02=sub(medel,aref(medel,2))
    värde01=if(gt(kvot,0.1),skillnad01,skillnad02)

    villkor01=Gt(värde01,1.55)
    villkor02=Gt(Div(Sub(kurva01,aref(kurva01,1)),kurva01),0.00015)
    villkor03=Gt(Div(Sub(kurva02,aref(kurva02,1)),kurva02),0.00001)
    villkor04=Gt(sub(SPInu,aref(SPInu,1)),0.4)
    villkor05=or(Gt(Sub(Lasttrade(b,p),c),0),Lt(Sub(Lasttrade(b,p),c),-3))
    villkor06=or(Gt(Sub(Lasttrade(s,p),c),0),Lt(Sub(Lasttrade(s,p),c),-15))
    villkor07=or(villkor05,villkor06)
    villkor08=Lt(minSedanKöp,3000)
    villkor09=if(villkor08,villkor07,1)
    villkor10=or(EQV(DayOfWeek(),1),villkor08)
    villkor11=or(Gt(Sub(Lasttrade(b,p),c),3),Lt(Sub(Lasttrade(b,p),c),-3))
    tid1=if(and(not(villkor11),villkor10),tidC,tidD)
    villkor50=Gt(c,Sub(högastor,1))
    villkor52=if(villkor51,villkor50,1)


    köpa=And(And(And(And(villkor01,villkor02),villkor09),villkor52),villkor01)

    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 )@B(0,SX All-Sha)@C(1,SX All-Sha)}
    Last edited by Bertil; 2017-03-24, 20:54.

    Leave a comment:


  • Bertil
    replied
    Efter önskemål från Palgrave publicerar jag min SPI strategi. Den handlar direkt på terminen, alltså inte på index.
    Ordermodellen för denna köpstrategi skall kombineras med va) scriptet "Bertils antal"
    --------------------------------------

    { Bertils SPI köp }
    { 170324 }
    innehav:=Portfolio(v)
    ok_att_handla:=eqv(innehav,0)
    tidspärr1:=1010
    tidspärr2:=1010
    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(
    tidA=gt(int(mult(frac(d),1440)),600)
    tidB=gt(int(mult(frac(d),1440)),660)
    nyss=or(Lt(minSedanKöp,1400),Lt(minSedanSälj,1400))
    tid1=if(nyss,tidB,tidA)
    { före kl 17.00 }
    tid2=lt(int(mult(frac(d),1440)),1020)
    perioder01=Sub(int(mult(frac(d),1440)),540)
    högastor=Hhv(H,perioder01)
    S30då=mov(cmpref(c,1,a),60)
    SPIdå=mov(cmpref(c,1,b),60)
    S30nu=cmpref(c,0,a)
    SPInu=div(mult(cmpref(c,0,b),S30då),SPIdå)
    SPIjust=div(mult(cmpref(c,0,c),S30då),SPIdå)


    diffSPIS30=sub(SPInu,S30nu)
    kurva01=mov(c,10)
    kurva02=mov(SPIjust,10)
    medel=Div(Add(SPInu,S30nu),2)
    Draw(S30nu,1,dgqb0)
    Draw(kurva02,2,rqb0)
    Draw(medel,3,bqb0)

    villkor01=Gt(sub(medel,aref(medel,1)),1)
    villkor02=Gt(Div(Sub(kurva01,aref(kurva01,1)),kurva01),0.00025)
    villkor03=Gt(Div(Sub(kurva02,aref(kurva02,1)),kurva02),0.00001)
    villkor04=Gt(sub(SPInu,aref(SPInu,1)),0.4)

    { Köp ej från nollinnehav måndagar och fredagar annat än vid mycket hög 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=Or(Not(or(EQV(DayOfWeek(),1),EQV(DayOfWeek(),5))),or(And(villkor92,villkor93),and(EQV(DayOfWeek(),5),or(villkor92,villkor92))))

    villkor50=Gt(c,sub(högastor,7))

    köpa=And(And(And(villkor01,villkor02),villkor02),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 )@B(0,SX All-Sha)@C(1,SX All-Sha)}
    Last edited by Bertil; 2017-03-24, 19:35.

    Leave a comment:

Working...
X