Startar en tråd om smarta kontroller som bör ligga i alla script som handlar skarpt.
Fyll gärna på med fler tips eller om jag glömt några viktiga kontroller.
{ account safety villkor- säkerställer kontakt med depån och lite annat }
timelock:=1
lt1:=LastTrade(B,D)
lt2:=LastTrade(S,D)
minSedanKöp:=mult(sub(date(),lt1),1440)
minSedanSälj:=mult(sub(date(),lt2),1440)
{Säkerställer att det gått tillräckligt lång tid för Nordnet att registrera senaste affär.}
orderdelay_ok=and(gt(minSedanKöp,timelock),gt(minSedanSälj,timelock))
{Säkerställer att systemtid och databastid är på samma dag.}
datum_ok=eqv(int(d),int(date()))
{Säkerställer kontakt med Nordnetdepån}
account_ok=not(eqv(cash(d),0))
{Som account_ok men lite annorlunda.}
positions_ok=not(eqv(portfolio(d),0))
{Blir falskt om spreaden ökar över 1%.}
spread_ok:=lt(div(s,b),1.01)
{Blir falskt om antingen köp- eller säljkursen är noll.}
kurs_finns:=and(gt(b,0),gt(s,0))
cash(?) kan användas med olika parametrar för att säkerställa handelsutrymmet på kontot.
{ Kolla att all kursdata finns under en given period }
per:=50
datanu_ok=and(and(gt(H,0),gt(L,0)),gt(C,0))
kursdata_ok=eqv(sum(datanu_ok,per),per)
{ Start och stängvillkor }
minut_nu:=mult(frac(date()),1440)
start_delay:=6
close_delay:=15
{ säkerställ att det är minst "close_delay" minuter kvar till börsstängning }
öppet:=ge(mult(1440,sub(market(c),frac(date()))),close_delay)
{ säkerställ att det gått minst "start_delay" minuter innan handeln startar }
inpådagen:=gt(minut_nu,add(540,start_delay)) { 540 är kl 9.00 }
{ Halvdag Heldag }
heldag:=ge(mult(sub(market(c),market(o)),1440),500)
halvdag=not(heldag)
{ Övriga Villkor }
{ Kollar om scriptet kör i live_läge och inte i diagramläge }
live=and(eqv(int(d),int(date())),eqv(cum(1),1)) { Särskilt behändigt vid loopar så att loopning endast sker live (sparar en massa resurser) }
Fyll gärna på med fler tips eller om jag glömt några viktiga kontroller.
{ account safety villkor- säkerställer kontakt med depån och lite annat }
timelock:=1
lt1:=LastTrade(B,D)
lt2:=LastTrade(S,D)
minSedanKöp:=mult(sub(date(),lt1),1440)
minSedanSälj:=mult(sub(date(),lt2),1440)
{Säkerställer att det gått tillräckligt lång tid för Nordnet att registrera senaste affär.}
orderdelay_ok=and(gt(minSedanKöp,timelock),gt(minSedanSälj,timelock))
{Säkerställer att systemtid och databastid är på samma dag.}
datum_ok=eqv(int(d),int(date()))
{Säkerställer kontakt med Nordnetdepån}
account_ok=not(eqv(cash(d),0))
{Som account_ok men lite annorlunda.}
positions_ok=not(eqv(portfolio(d),0))
{Blir falskt om spreaden ökar över 1%.}
spread_ok:=lt(div(s,b),1.01)
{Blir falskt om antingen köp- eller säljkursen är noll.}
kurs_finns:=and(gt(b,0),gt(s,0))
cash(?) kan användas med olika parametrar för att säkerställa handelsutrymmet på kontot.
{ Kolla att all kursdata finns under en given period }
per:=50
datanu_ok=and(and(gt(H,0),gt(L,0)),gt(C,0))
kursdata_ok=eqv(sum(datanu_ok,per),per)
{ Start och stängvillkor }
minut_nu:=mult(frac(date()),1440)
start_delay:=6
close_delay:=15
{ säkerställ att det är minst "close_delay" minuter kvar till börsstängning }
öppet:=ge(mult(1440,sub(market(c),frac(date()))),close_delay)
{ säkerställ att det gått minst "start_delay" minuter innan handeln startar }
inpådagen:=gt(minut_nu,add(540,start_delay)) { 540 är kl 9.00 }
{ Halvdag Heldag }
heldag:=ge(mult(sub(market(c),market(o)),1440),500)
halvdag=not(heldag)
{ Övriga Villkor }
{ Kollar om scriptet kör i live_läge och inte i diagramläge }
live=and(eqv(int(d),int(date())),eqv(cum(1),1)) { Särskilt behändigt vid loopar så att loopning endast sker live (sparar en massa resurser) }
Comment