Jo, den ligger där som en rest från lite labb-övningar. Det är bara att ta bort den.
Allmänt meddelande
Collapse
No announcement yet.
Terminator
Collapse
X
-
Lite uppdateringar för Terminator som ger bättre resultat i backtester. Perioden behöver nu inte stänga utanför break-nivåerna, men däremot har vi lagt till en punkt på köpnivån och dragit av en punkt på säljnivån. Dessutom en HHV-sats som "kommer ihåg" om kursen korsat en breaknivå inom 3 perioder för att säkerställa att man får signal tidigare på dagen om trenden var stark dagen innan osv.
{Terminator long }
{ 110922 30 min }
{ }
innehav_ok:=Le(Portfolio(v),0)
period2:=Gt(Frac(d),0.395)
öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
stoppsets=And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1)
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i30(
stoplevels=Sub(Find(stoppsets,30,Aref(l,2),1),1)
stoplevelk=Add(Find(stoppsetk,30,Aref(h,2),1),1)
Draw(stoplevelk,2,dgqb)
signalk=And(Gt(c,stoplevelk),hhv(lt(aref(l,1),stoplevelk),3))
köp1=And(And(signalk,period2),öppet)
köp2=And(köp1,innehav_ok)
köp3=And(köp2,Gt(l,stoplevels))
SetGVarIf(0,35,1)
SetGVarIf(1,35,köp3)
Mult(köp3,5)
)
{Terminator short }
{ 110922 30 min }
{ }
stängning:=le(mult(1440,sub(market(c),frac(date()))),20)
innehav_ok:=Ge(Portfolio(v),0)
period2:=Gt(Frac(d),0.395)
öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
stoppsets=And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1)
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i30(
stoplevels=Sub(Find(stoppsets,30,Aref(l,2),1),1)
stoplevelk=Add(Find(stoppsetk,30,Aref(h,2),1),1)
Draw(stoplevels,2,rqb)
signals=And(Lt(c,stoplevels),hhv(gt(aref(h,1),stoplevels),3))
sälj1=And(And(signals,period2),öppet)
sälj2=And(sälj1,innehav_ok)
sälj3=And(sälj2,Lt(c,stoplevelk))
SetGVarIf(0,36,1)
SetGVarIf(2,36,sälj3)
Mult(or(stängning,sälj3),5)
)
Comment
-
En ändring till, om man skippar sista villkoret får man några punkter till.
{Terminator long }
{ 110923 30 min }
{ }
innehav_ok:=Le(Portfolio(v),0)
period2:=Gt(Frac(d),0.395)
öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
stoppsets=And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1)
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i30(
stoplevels=Sub(Find(stoppsets,30,Aref(l,2),1),1)
stoplevelk=Add(Find(stoppsetk,30,Aref(h,2),1),1)
Draw(stoplevelk,2,dgqb)
signalk=And(Gt(c,stoplevelk),hhv(lt(aref(l,1),stoplevelk),3))
köp1=And(And(signalk,period2),öppet)
köp2=And(köp1,innehav_ok)
SetGVarIf(0,35,1)
SetGVarIf(1,35,köp2)
Mult(köp2,5)
)
{Terminator short }
{ 110923 30 min }
{ }
stängning:=le(mult(1440,sub(market(c),frac(date()))),20)
innehav_ok:=Ge(Portfolio(v),0)
period2:=Gt(Frac(d),0.395)
öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
stoppsets=And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1)
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i30(
stoplevels=Sub(Find(stoppsets,30,Aref(l,2),1),1)
stoplevelk=Add(Find(stoppsetk,30,Aref(h,2),1),1)
Draw(stoplevels,2,rqb)
signals=And(Lt(c,stoplevels),hhv(gt(aref(h,1),stoplevels),3))
sälj1=And(And(signals,period2),öppet)
sälj2=And(sälj1,innehav_ok)
SetGVarIf(0,36,1)
SetGVarIf(2,36,sälj2)
Mult(sälj2,5)
)
Comment
-
Ursprungligen postat av Rikard Nilsson Visa inläggBra dagar för Terminator:
2011-09-22 +16,75
2011-09-23 +33,25
2011-09-26 +12,0
2011-09-27 +15,0
Skumt om jag testar i AT8 så får jag bara +1 idag och 68,75 punkter för alla fyra dagarna tillsammans. Är backtestning så orealistisk?
Finns det någon sammansatt termin för backtestning? Jag har för mig att jag har läst om det tidigare i forumet...
Anders
Comment
-
Nja, det går inte att testa så enkelt när det rör sig om både köpta och blankade positioner samtidigt som Exit. Däremot brukar det stämma väldigt bra om man kör backtestning enligt Innehav - Kontant - Innehav, eller Innehav - Blankning - Innehav utan exit-signaler.
Hur fick du signalerna idag? Kör du på senaste scriptversionerna ovan?
Comment
-
Ursprungligen postat av Rikard Nilsson Visa inläggNja, det går inte att testa så enkelt när det rör sig om både köpta och blankade positioner samtidigt som Exit. Däremot brukar det stämma väldigt bra om man kör backtestning enligt Innehav - Kontant - Innehav, eller Innehav - Blankning - Innehav utan exit-signaler.
Hur fick du signalerna idag? Kör du på senaste scriptversionerna ovan?
Anders
Comment
-
Jag testade lite snabbt med Kundservice-data:
2011-09-27 09:30:00 OMXS301J K 896,50 Innehav
2011-09-27 14:41:00 OMXS301J S 901,75 5,25 0,53 05:11:00
2011-09-27 15:30:00 OMXS301J K 907,00 Innehav
Det stämmer i princip exakt med det jag fick "live" i NAT idag. Till detta ska läggas exit-signalen som kommer kl 17:15 på 921,5. Det blir:
Long 896,5
Short 901,75 (+5,25)
Long 907 (-5,25)
Exit 921,5 (+14,5)
Summa +14,5
Comment
-
Lite mer uppdatering för Terminator-scripten, vi har lagt till ett villkor som kan flytta motsatta break-nivån om H resp L befinner sig "utanför" båda nivåerna. Det betyder i praktiken att man tenderar att "låsa in" en vinst aningen snabbare. I simulering ger det klart bättre resultat.
{Terminator long }
{ 111008 30 min }
{ }
innehav_ok:=Le(Portfolio(v),0)
period2:=Gt(Frac(d),0.395)
öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
stoppsets=And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1)
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i30(
stoplevels1=Sub(Find(stoppsets,30,Aref(l,2),1),1)
stoplevelk1=Add(Find(stoppsetk,30,Aref(h,2),1),1)
stoplevelk2=if(lt(h,stoplevels1),sub(stoplevels1,sub(aref(h,1),aref(l,1))),stoplevelk1)
Draw(stoplevelk2,2,dgqb)
signalk=and(And(Gt(c,stoplevelk2),gt(c,aref(h,1))),hhv(lt(l,stoplevelk2),2))
köp1=And(And(signalk,period2),öppet)
köp2=And(köp1,innehav_ok)
SetGVarIf(0,35,1)
SetGVarIf(1,35,köp2)
Mult(köp2,5)
)
{Terminator short }
{ 111008 30 min }
{ }
stängning:=le(mult(1440,sub(market(c),frac(date()))),20)
innehav_ok:=Ge(Portfolio(v),0)
period2:=Gt(Frac(d),0.395)
öppet=ge(mult(1440,sub(market(c),frac(date()))),20)
stoppsets=And(And(Gt(Aref(h,1),Aref(h,2)),Gt(Aref(l,1),Aref(l,2))),1)
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i30(
stoplevels1=Sub(Find(stoppsets,30,Aref(l,2),1),1)
stoplevelk1=Add(Find(stoppsetk,30,Aref(h,2),1),1)
stoplevels2=if(gt(l,stoplevelk1),add(stoplevelk1,sub(aref(h,1),aref(l,1))),stoplevels1)
Draw(stoplevels2,2,rqb)
signals=and(and(lt(c,stoplevels2),lt(c,aref(l,1))),hhv(gt(h,stoplevels2),2))
sälj1=And(And(signals,period2),öppet)
sälj2=And(sälj1,innehav_ok)
SetGVarIf(0,36,1)
SetGVarIf(2,36,sälj2)
Mult(sälj2,5)
)
Comment
Comment