Allmänt meddelande

Collapse
No announcement yet.

Flytande stop-loss (standardmodell) -långsam

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

  • Flytande stop-loss (standardmodell) -långsam

    Hej, jag har fått för mig att det skulle kunna vara bra att använda flytande stoploss i en trendföljande aktiestrategi. Jag försöker använda "Stoploss Mini Long" som finns som standardmodell i NAT. Men när jag kör Analysbänken så tar det flera timmar per aktie, så det är lite svår att utvärdera. Någon som kan föreslå några justeringar som gör att skriptet blir snabbare? Alla förslag välkomna.

    Det gäller nedan sälj script (jag har flyttat in stoppgräns1 och målantal i skriptet, istället för att ha det som parametrar per aktie) :

    { Stoploss Mini Long }
    { 160829 }
    elastisk:=1 { 1=JA 0=NEJ - använd 0 för minifutures}
    tid_innan_stäng:=4 { minuter innan stängning }
    max_spread_procent:=4 { max tillåten spread i procent }
    tidspärr1:=3000 { minuter mellan orderförsök }
    stoppgräns1:=-4
    målantal:=0
    { }
    i1(
    öppet=ge(mult(1440,sub(market(c),frac(d))),tid_innan_stäng)
    stoppgräns2=sub(1,div(abs(stoppgräns1),100))
    lastbuy=LastTrade(B,P)
    innehav=Portfolio(v)
    index=and(and(eqv(hhv(v,10),0),and(eqv(s,0),eqv(b,0))),gt(llv(c,10),0))
    mv1=Mov(if(index,c,b),2,s)
    fastmfi=Mov(LinReg(Mfi(3),4),4,e)
    mfiner=Lt(LlvBars(fastmfi,2),1)
    lt1=LastTrade(B,D)
    minSedanKöp=Mult(Sub(d,lt1),1440)
    delay_ok=gt(minSedanKöp,tidspärr1)
    inpådagen=gt(frac(date()),0.376)
    spreadcheck1=lt(div(s,b),add(1,div(max_spread_procent,100)))
    spreadcheck2=or(index,and(and(spreadcheck1,gt(s,b)),gt(b,0)))
    start=if(and(öppet,ge(d,lasttrade(b,d))),if(spreadcheck2,if(index,c,b),0),0)
    maxhittills=hhv(start,2000)
    level1=Sub(maxhittills,stoppgräns1)
    level2=Mult(maxhittills,stoppgräns2)
    level3=if(lt(stoppgräns1,0),level2,level1)
    flytstopp1=And(Lt(if(index,c,b),level3),Lt(mv1,level3))
    flytstopp2=Lt(if(index,c,b),level3)
    flytstopp3=If(elastisk,flytstopp1,flytstopp2)
    Draw(If(and(delay_ok,Gt(innehav,målantal)),level3,0),9,rqb)
    signal1=And(And(And(or(mfiner,Not(elastisk)),flytstopp3),Gt(innehav,målantal)),Gt(innehav,0))
    signal2=And(And(signal1,xor(stoppgräns1,0)),delay_ok)
    signal3=and(and(and(and(signal2,inpådagen),öppet),spreadcheck2),or(index,gt(b,0)))
    Mult(signal3,10)
    )

    Tack!!


    //David Flyden
    // David

  • #2
    Man kan tänka sig att köra glesare upplösning om det inte är en blixtsnabb modell. Prova att ändra i1( till tex i30(

    och även sänka antal perioder som stoppen tittar bakåt, raden:

    maxhittills=hhv(start,2000)

    Ändra till 100 perioder så borde det gå 20 ggr snabbare.

    Comment

    Working...
    X