jag har testat/lekt och försökt att modifiera flytande stoploss scriptet som jag fick från Rikard men lyckas inte få signal i bänken. Har inte ändrat stoploss inställningarna så den är inte optimal i en strategi men den borde ändå ge en köpsignal, tycker jag. Mest troligt gör jag nått fel....
Så här har jag modifierat:
{ Köp flytande Long mod }
{ 190730 }
tid_innan_stäng:=4 { minuter innan stängning }
max_spread_procent:=4 { max tillåten spread i procent }
tidspärr1:=0.33 { minuter mellan orderförsök }
målantal:=0 {tidigare ScrPar(2) och i indata script är värdet 0}
stoppgräns1:=2 {tidigare ScrPar(1) men ville bara testa att lägga den i scriptet}
{ }
i1(
öppet=ge(mult(1440,sub(market(c),frac(d))),tid_innan_stäng)
stoppgräns2=sub(1,div(abs(stoppgräns1),100))
innehav=Portfolio(v)
kl10=and(eqv(xtime(d,h),10),eqv(xtime(d,m),0)) {tidigare lt1=Lasttrade(B,D) men vill att denna ska köpa kl 10}
minSedanKöp=Mult(Sub(d,kl10),1440) {tidigare var kl10=lt1}
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=and(and(spreadcheck1,gt(s,b)),gt(b,0))
start=if(and(öppet,ge(d,kl10)),if(spreadcheck2,b,0),0)
lookback=if(le(innehav,0),1000,20) {ändrat gt=le}
maxhittills=hhv(start,lookback:1000)
level1=Sub(maxhittills,stoppgräns1)
level2=Mult(maxhittills,stoppgräns2)
level3=if(lt(scrpar(1),0),level2,level1)
flytstopp=Lt(b,level3)
Draw(If(and(delay_ok,le(innehav,målantal)),level3,0),9,rqb) {ändrat gt=le}
signal1=And(And(flytstopp,le(innehav,målantal)),le(innehav,0)) {ändrat gt=le}
signal2=And(And(signal1,xor(stoppgräns1,0)),delay_ok)
signal3=and(and(and(and(signal2,inpådagen),öppet),spreadcheck2),gt(b,0))
Mult(signal3,10)
)
Kanske går det inte att byta ut Lasttrade(b,d) med kl10 utan måste returnera ett D värde.
Tacksam för guidning, det är kul men svårt att bygga script har jag insett...
Så här har jag modifierat:
{ Köp flytande Long mod }
{ 190730 }
tid_innan_stäng:=4 { minuter innan stängning }
max_spread_procent:=4 { max tillåten spread i procent }
tidspärr1:=0.33 { minuter mellan orderförsök }
målantal:=0 {tidigare ScrPar(2) och i indata script är värdet 0}
stoppgräns1:=2 {tidigare ScrPar(1) men ville bara testa att lägga den i scriptet}
{ }
i1(
öppet=ge(mult(1440,sub(market(c),frac(d))),tid_innan_stäng)
stoppgräns2=sub(1,div(abs(stoppgräns1),100))
innehav=Portfolio(v)
kl10=and(eqv(xtime(d,h),10),eqv(xtime(d,m),0)) {tidigare lt1=Lasttrade(B,D) men vill att denna ska köpa kl 10}
minSedanKöp=Mult(Sub(d,kl10),1440) {tidigare var kl10=lt1}
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=and(and(spreadcheck1,gt(s,b)),gt(b,0))
start=if(and(öppet,ge(d,kl10)),if(spreadcheck2,b,0),0)
lookback=if(le(innehav,0),1000,20) {ändrat gt=le}
maxhittills=hhv(start,lookback:1000)
level1=Sub(maxhittills,stoppgräns1)
level2=Mult(maxhittills,stoppgräns2)
level3=if(lt(scrpar(1),0),level2,level1)
flytstopp=Lt(b,level3)
Draw(If(and(delay_ok,le(innehav,målantal)),level3,0),9,rqb) {ändrat gt=le}
signal1=And(And(flytstopp,le(innehav,målantal)),le(innehav,0)) {ändrat gt=le}
signal2=And(And(signal1,xor(stoppgräns1,0)),delay_ok)
signal3=and(and(and(and(signal2,inpådagen),öppet),spreadcheck2),gt(b,0))
Mult(signal3,10)
)
Kanske går det inte att byta ut Lasttrade(b,d) med kl10 utan måste returnera ett D värde.
Tacksam för guidning, det är kul men svårt att bygga script har jag insett...
Comment