Hej!
Jag håller på att göra ett eget backtestingscript på Terminatorn och lägger då Long / Short / TP Long / TP Short i samma script och håller reda på innehav och ackumulerad vinst med globala celler. Det funklar fint, men jag vet inte exakt hur signalgenereringen sker med upplösningar och close osv. Nedan följer lite kod med kommentarer efter ****:
{Terminator long }
{ 120107 60 min }
datum_ok:=eqv(int(d),int(date())) **** Byts ut mot alltid 1 i backtesting
innehav_ok:=Le(Portfolio(v),0) **** Byts ut mot global cell i backtesting
period2:=Gt(Frac(d),0.41) **** Varför är det inte date() här egentligen? Borde dock fungera som den är även i backtesting
öppet=ge(mult(1440,sub(market(c),frac(date()))),20) **** date() byts mot d i backtesting
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i60(
stoplevelk1=Add(Find(stoppsetk,30,Aref(h,2),1),1)
Draw(stoplevelk1,2,dgqb)
signalk1=and(Gt(c,stoplevelk1),gt(c,aref(h,1))) **** Ges signalen bara på close i 60 mins upplösning? Blir det exakt samma i backtesning?
köp1=And(And(signalk1,period2),öppet)
köp2=And(And(köp1,innehav_ok),datum_ok) **** Dessa 2 ges också bara på close i 60 mins upplösning eller?
Mult(köp2,5)
)
****
Om jag vill ha annan upplösning på signalerna än på nivålinjeritningen så antar jag att jag flyttar nedanstående
---
signalk1=and(Gt(c,stoplevelk1),gt(c,aref(h,1)))
köp1=And(And(signalk1,period2),öppet)
köp2=And(And(köp1,innehav_ok),datum_ok)
Mult(köp2,5)
---
till säg i5(...)
Men jag får inte dubbla upplösningar att fungera, men ska prova igen.
Men huvudfrågan är om signalerna genereras på exakt samma tidpunkt om jag byter ut det som är kommenterat ovan. Framförallt gäller det väl date() till d. Alltså, genereras historiska signaler endast på hela staplar eller genereras de minut för minut?
Om signalen inte genereras på hela staplar, är det då close som innehåller den aktuella triggerkursen?
Tacksam om någon kan klargöra lite. Gärna om det generellt är problem med de dubbla upplösningarna.
Mvh
Jag håller på att göra ett eget backtestingscript på Terminatorn och lägger då Long / Short / TP Long / TP Short i samma script och håller reda på innehav och ackumulerad vinst med globala celler. Det funklar fint, men jag vet inte exakt hur signalgenereringen sker med upplösningar och close osv. Nedan följer lite kod med kommentarer efter ****:
{Terminator long }
{ 120107 60 min }
datum_ok:=eqv(int(d),int(date())) **** Byts ut mot alltid 1 i backtesting
innehav_ok:=Le(Portfolio(v),0) **** Byts ut mot global cell i backtesting
period2:=Gt(Frac(d),0.41) **** Varför är det inte date() här egentligen? Borde dock fungera som den är även i backtesting
öppet=ge(mult(1440,sub(market(c),frac(date()))),20) **** date() byts mot d i backtesting
stoppsetk=And(And(Lt(Aref(l,1),Aref(l,2)),Lt(Aref(h,1),Aref(h,2))),1)
i60(
stoplevelk1=Add(Find(stoppsetk,30,Aref(h,2),1),1)
Draw(stoplevelk1,2,dgqb)
signalk1=and(Gt(c,stoplevelk1),gt(c,aref(h,1))) **** Ges signalen bara på close i 60 mins upplösning? Blir det exakt samma i backtesning?
köp1=And(And(signalk1,period2),öppet)
köp2=And(And(köp1,innehav_ok),datum_ok) **** Dessa 2 ges också bara på close i 60 mins upplösning eller?
Mult(köp2,5)
)
****
Om jag vill ha annan upplösning på signalerna än på nivålinjeritningen så antar jag att jag flyttar nedanstående
---
signalk1=and(Gt(c,stoplevelk1),gt(c,aref(h,1)))
köp1=And(And(signalk1,period2),öppet)
köp2=And(And(köp1,innehav_ok),datum_ok)
Mult(köp2,5)
---
till säg i5(...)
Men jag får inte dubbla upplösningar att fungera, men ska prova igen.
Men huvudfrågan är om signalerna genereras på exakt samma tidpunkt om jag byter ut det som är kommenterat ovan. Framförallt gäller det väl date() till d. Alltså, genereras historiska signaler endast på hela staplar eller genereras de minut för minut?
Om signalen inte genereras på hela staplar, är det då close som innehåller den aktuella triggerkursen?
Tacksam om någon kan klargöra lite. Gärna om det generellt är problem med de dubbla upplösningarna.
Mvh
Comment