Har meckat vidare för att få ordning på positionsbyten så snyggt som möjligt, nu vägs positionen från Legato och Coda ihop så att simuleringen kan hamna på -2 indexandelar om båda ligger Shrt, -1 om den ena är Shrt och den andra exit, noll om båda är exit eller om de går åt varsitt håll. Det blir +1 om ena ligger Long och andra exit, och +2 om båda ligger Long. Strategierna ligger i samma script, så nu finns bara ett Long och ett Shrt-script för index. Varje strategis position lagras i en global cell, och de adderas ihop för att ett par minuter innan stängning ta position. Det som återstår är att fixa slavmodellerna, men nu går det i alla fall att simulera på index. Notera också hur avkastningsgrafens branthet blir en funktion av vollan....
Scripten ser ut så här just nu:
{ Fusion OMX index long 160414 }
$par1:=10 {0-30}
dagar:=20
advance:=5
pred1=find(lt(d,sub(const(d),30)),25,c,1)
pred2=find(lt(d,sub(const(d),60)),50,c,1)
pred3=find(lt(d,sub(const(d),90)),75,c,1)
pred4=find(lt(d,sub(const(d),120)),100,c,1)
pred5=find(lt(d,sub(const(d),150)),125,c,1)
steg=sub(23,mx(mn(advance,22),1))
år2=aref(c,236)
år3=aref(c,476)
år4=aref(c,729)
år5=aref(c,982)
år6=aref(c,1234)
medel=mov(aref(div(add(add(add(add(år2,år3),år4),år5),år6),6),steg:22),5,s)
pred_tot=aref(div(add(pred1,add(pred2,add(pred3,add(pred4,pred5)))),5),mx(1,$par1):35)
p1=gt(roc(add(medel,pred_tot),5,%),0)
v2=and(lt(dayofmonth(),if(p1,19,14)),gt(dayofmonth(),if(p1,7,6)))
v4=and(lt(dayofmonth(),if(p1,32,31)),gt(dayofmonth(),if(p1,19,27)))
stängning=le(mult(1440,sub(market(c),frac(date()))),10)
öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
dagen_efter=gt(int(d),lasttrade(s,d))
hist=sub(macd2(n),macd2(t))
extremt=lt(hist,-5)
ma100=mov(c,150,s)
över=or(extremt,gt(c,ma100))
longL1a=and(and(lt(c,hhv(aref(c,1),2)),v2),över)
longL1b=and(lt(c,hhv(aref(c,1),3)),v4)
longL2=and(or(longL1a,longL1b),le(getgvar(854),0))
longL3=and(and(longL2,and(öppet,stängning)),dagen_efter)
setgvarif(1,854,longL3)
måndag=eqv(dayofweek(),1)
tisdag=eqv(dayofweek(),2)
ej_fredag=lt(dayofweek(),5)
under=lt(c,mov(c,100,s))
days=if(under,6,3)
köpC1=and(måndag,lt(l,llv(aref(l,1),2)))
köpC2=and(tisdag,lt(l,llv(aref(l,1),2)))
köpC3=and(or(or(köpC1,köpC2),and(lt(l,llv(aref(l,1),days:10)),ej_fredag)),le(innehavC,0))
köpC4=and(and(köpC3,and(öppet,stängning)),dagen_efter)
setgvarif(1,855,köpC4)
lägsta=llv(aref(c,1),dagar)
stoploss=gt(c,add(lasttrade(s,p),mult(3,atr(10))))
coverL1=lt(c,lägsta)
coverL2=and(or(stoploss,coverL1),and(or(stoploss,stängning),öppet))
coverL3=and(coverL2,lt(getgvar(855),0))
setgvarif(0,854,coverL3)
setgvarif(0,855,coverL3)
fusion_pos=add(getgvar(854),getgvar(855))
trade_time=le(mult(1440,sub(market(c),frac(date()))),7)
and(lt(portfolio(v),fusion_pos),trade_time)
{ Fusion OMX index shrt 160414 }
$par1:=10 {0-30}
advance:=5
pred1=find(lt(d,sub(const(d),30)),25,c,1)
pred2=find(lt(d,sub(const(d),60)),50,c,1)
pred3=find(lt(d,sub(const(d),90)),75,c,1)
pred4=find(lt(d,sub(const(d),120)),100,c,1)
pred5=find(lt(d,sub(const(d),150)),125,c,1)
steg=sub(23,mx(mn(advance,22),1))
år2=aref(c,236)
år3=aref(c,476)
år4=aref(c,729)
år5=aref(c,982)
år6=aref(c,1234)
medel=mov(aref(div(add(add(add(add(år2,år3),år4),år5),år6),6),steg:22),5,s)
pred_tot=aref(div(add(pred1,add(pred2,add(pred3,add(pred4,pred5)))),5),mx(1,$par1):35)
p1=lt(roc(add(medel,pred_tot),5,%),0)
v1=or(lt(dayofmonth(),if(p1,8,7)),gt(dayofmonth(),if(p1,30,31)))
v3=and(lt(dayofmonth(),if(p1,23,20)),gt(dayofmonth(),if(p1,10,13)))
stängning=le(mult(1440,sub(market(c),frac(date()))),8)
öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
dagen_efter=gt(int(d),lasttrade(b,d))
ma200=mov(c,200,s)
under=lt(c,ma200)
ej_extremt=gt(macd2(n),-50)
shrtL1=and(lt(c,aref(c,1)),under)
shrtL2=and(and(and(shrtL1,or(v1,v3)),ge(innehavL,0)),ej_extremt)
shrtL3=and(and(shrtL2,and(öppet,stängning)),dagen_efter)
setgvarif(-1,854,shrtL3)
ej_onsdag=not(eqv(dayofweek(),3))
shrtC1=and(ej_onsdag,gt(c,hhv(aref(c,1),2)))
shrtC2=and(shrtC1,lt(c,mov(c,150,s)))
shrtC3=and(shrtC2,ge(getgvar(855),0))
shrtC4=and(and(shrtC3,and(öppet,stängning)),dagen_efter)
setgvarif(-1,855,shrtC4)
ve1=or(lt(dayofmonth(),if(p1,8,6)),gt(dayofmonth(),if(p1,31,30)))
ve3=and(lt(dayofmonth(),if(p1,18,22)),gt(dayofmonth(),if(p1,17,17)))
lägre=lt(c,aref(c,1))
rättd=ge(dayofweek(),2)
stoploss=lt(c,sub(lasttrade(b,p),mult(3,atr(10))))
sellL1=lt(c,llv(aref(c,1),2))
sellL2=and(and(sellL1,or(stoploss,or(ve1,ve3))),gt(getgvar(854),0))
sellL3=and(and(and(sellL2,and(or(lägre,stängning),öppet)),rättd),dagen_efter)
setgvarif(0,854,sellL3)
xhi=hhv(aref(c,1),2)
ma1=mov(c,100,s)
high=and(gt(c,xhi),lt(c,ma1))
fredag=eqv(dayofweek(),5)
säljC1=or(stoploss,or(high,fredag))
säljC2=and(säljC1,gt(getgvar(855),0))
säljC3=and(and(säljC2,and(öppet,stängning)),dagen_efter)
setgvarif(0,855,säljC3)
fusion_pos=add(getgvar(855),getgvar(854))
trade_time=le(mult(1440,sub(market(c),frac(date()))),7)
and(gt(portfolio(v),fusion_pos),trade_time)
Scripten ser ut så här just nu:
{ Fusion OMX index long 160414 }
$par1:=10 {0-30}
dagar:=20
advance:=5
pred1=find(lt(d,sub(const(d),30)),25,c,1)
pred2=find(lt(d,sub(const(d),60)),50,c,1)
pred3=find(lt(d,sub(const(d),90)),75,c,1)
pred4=find(lt(d,sub(const(d),120)),100,c,1)
pred5=find(lt(d,sub(const(d),150)),125,c,1)
steg=sub(23,mx(mn(advance,22),1))
år2=aref(c,236)
år3=aref(c,476)
år4=aref(c,729)
år5=aref(c,982)
år6=aref(c,1234)
medel=mov(aref(div(add(add(add(add(år2,år3),år4),år5),år6),6),steg:22),5,s)
pred_tot=aref(div(add(pred1,add(pred2,add(pred3,add(pred4,pred5)))),5),mx(1,$par1):35)
p1=gt(roc(add(medel,pred_tot),5,%),0)
v2=and(lt(dayofmonth(),if(p1,19,14)),gt(dayofmonth(),if(p1,7,6)))
v4=and(lt(dayofmonth(),if(p1,32,31)),gt(dayofmonth(),if(p1,19,27)))
stängning=le(mult(1440,sub(market(c),frac(date()))),10)
öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
dagen_efter=gt(int(d),lasttrade(s,d))
hist=sub(macd2(n),macd2(t))
extremt=lt(hist,-5)
ma100=mov(c,150,s)
över=or(extremt,gt(c,ma100))
longL1a=and(and(lt(c,hhv(aref(c,1),2)),v2),över)
longL1b=and(lt(c,hhv(aref(c,1),3)),v4)
longL2=and(or(longL1a,longL1b),le(getgvar(854),0))
longL3=and(and(longL2,and(öppet,stängning)),dagen_efter)
setgvarif(1,854,longL3)
måndag=eqv(dayofweek(),1)
tisdag=eqv(dayofweek(),2)
ej_fredag=lt(dayofweek(),5)
under=lt(c,mov(c,100,s))
days=if(under,6,3)
köpC1=and(måndag,lt(l,llv(aref(l,1),2)))
köpC2=and(tisdag,lt(l,llv(aref(l,1),2)))
köpC3=and(or(or(köpC1,köpC2),and(lt(l,llv(aref(l,1),days:10)),ej_fredag)),le(innehavC,0))
köpC4=and(and(köpC3,and(öppet,stängning)),dagen_efter)
setgvarif(1,855,köpC4)
lägsta=llv(aref(c,1),dagar)
stoploss=gt(c,add(lasttrade(s,p),mult(3,atr(10))))
coverL1=lt(c,lägsta)
coverL2=and(or(stoploss,coverL1),and(or(stoploss,stängning),öppet))
coverL3=and(coverL2,lt(getgvar(855),0))
setgvarif(0,854,coverL3)
setgvarif(0,855,coverL3)
fusion_pos=add(getgvar(854),getgvar(855))
trade_time=le(mult(1440,sub(market(c),frac(date()))),7)
and(lt(portfolio(v),fusion_pos),trade_time)
{ Fusion OMX index shrt 160414 }
$par1:=10 {0-30}
advance:=5
pred1=find(lt(d,sub(const(d),30)),25,c,1)
pred2=find(lt(d,sub(const(d),60)),50,c,1)
pred3=find(lt(d,sub(const(d),90)),75,c,1)
pred4=find(lt(d,sub(const(d),120)),100,c,1)
pred5=find(lt(d,sub(const(d),150)),125,c,1)
steg=sub(23,mx(mn(advance,22),1))
år2=aref(c,236)
år3=aref(c,476)
år4=aref(c,729)
år5=aref(c,982)
år6=aref(c,1234)
medel=mov(aref(div(add(add(add(add(år2,år3),år4),år5),år6),6),steg:22),5,s)
pred_tot=aref(div(add(pred1,add(pred2,add(pred3,add(pred4,pred5)))),5),mx(1,$par1):35)
p1=lt(roc(add(medel,pred_tot),5,%),0)
v1=or(lt(dayofmonth(),if(p1,8,7)),gt(dayofmonth(),if(p1,30,31)))
v3=and(lt(dayofmonth(),if(p1,23,20)),gt(dayofmonth(),if(p1,10,13)))
stängning=le(mult(1440,sub(market(c),frac(date()))),8)
öppet=ge(mult(1440,sub(market(c),frac(date()))),6)
dagen_efter=gt(int(d),lasttrade(b,d))
ma200=mov(c,200,s)
under=lt(c,ma200)
ej_extremt=gt(macd2(n),-50)
shrtL1=and(lt(c,aref(c,1)),under)
shrtL2=and(and(and(shrtL1,or(v1,v3)),ge(innehavL,0)),ej_extremt)
shrtL3=and(and(shrtL2,and(öppet,stängning)),dagen_efter)
setgvarif(-1,854,shrtL3)
ej_onsdag=not(eqv(dayofweek(),3))
shrtC1=and(ej_onsdag,gt(c,hhv(aref(c,1),2)))
shrtC2=and(shrtC1,lt(c,mov(c,150,s)))
shrtC3=and(shrtC2,ge(getgvar(855),0))
shrtC4=and(and(shrtC3,and(öppet,stängning)),dagen_efter)
setgvarif(-1,855,shrtC4)
ve1=or(lt(dayofmonth(),if(p1,8,6)),gt(dayofmonth(),if(p1,31,30)))
ve3=and(lt(dayofmonth(),if(p1,18,22)),gt(dayofmonth(),if(p1,17,17)))
lägre=lt(c,aref(c,1))
rättd=ge(dayofweek(),2)
stoploss=lt(c,sub(lasttrade(b,p),mult(3,atr(10))))
sellL1=lt(c,llv(aref(c,1),2))
sellL2=and(and(sellL1,or(stoploss,or(ve1,ve3))),gt(getgvar(854),0))
sellL3=and(and(and(sellL2,and(or(lägre,stängning),öppet)),rättd),dagen_efter)
setgvarif(0,854,sellL3)
xhi=hhv(aref(c,1),2)
ma1=mov(c,100,s)
high=and(gt(c,xhi),lt(c,ma1))
fredag=eqv(dayofweek(),5)
säljC1=or(stoploss,or(high,fredag))
säljC2=and(säljC1,gt(getgvar(855),0))
säljC3=and(and(säljC2,and(öppet,stängning)),dagen_efter)
setgvarif(0,855,säljC3)
fusion_pos=add(getgvar(855),getgvar(854))
trade_time=le(mult(1440,sub(market(c),frac(date()))),7)
and(gt(portfolio(v),fusion_pos),trade_time)
Comment