Den mest effektiva flytande stoppen som reagerar på högsta toppen efter inköp har en liten svaghet. Det är att funktionen LastTrade() som ingår för att ta reda på senaste inköpstillfälle inte kan backtestas i diagram. Detta för att den inte levererar en hel dataserie uatn alltid bara senaste verkliga affären.
Ett sätt att komma förbi detta är att man har ett script där man kan ange olika köptillfällen som fasta tidpunkter, och man får en korrekt stoppkurva baserat på dessa inköpstidpunkter man angett.
flytnivå:=0.975
bakåt1:=300
d1:=Date(20010906.5)
d2:=Date(20010907.395)
d3:=Date(20010910.5)
buy1:=ge(d,d1)
buy2:=ge(d,d2)
buy3:=ge(d,d3)
buytime1:=if(buy1,h,0)
buytime2:=if(buy2,h,0)
buytime3:=if(buy3,h,0)
max1:=hhv(buytime1,bakåt1)
max2:=hhv(buytime2,bakåt1)
max3:=hhv(buytime3,bakåt1)
i10(mult(if(buy2,if(buy3,max3,max2),max1),flytnivå))
10-minuters intradayperiod vald här och en stoppnivåkurva bildas av detta scriptet.
'flytnivå' anger här 2.5% stoppnivå under högsta efter inköp.
'bakåt1' skall ha ett tillräckligt spann bakåt för att söka sig bakåt förbi inköpsperioden. Dvs tillräckligt för att täcka ett innehavs längd.
Ett papper som handlas hela tiden(ovan någon gång per 10 minuter minst) får 6 perioder per timma, dvs 48 perioder per börsdag. Värde 300 täcker alltså 6 börsdagar bakåt som det längsta innehavet.
Denna typ av stopp lär ju lösa ut inom mycket kortare intervall förutom extremt långa börsuppgångar.
Datumformat anges i i 'd1'-'d3' på formen
20010906.5 som är 6 Sept 2001 kl. 12.00.
Heltalet alltså ett datum utan skiljetecken, sedan tidpunkten på dagen som ett decimaltal.
20010906.375 motsvarar 6 Sept 2001 kl 9.30
Heltalet dvs datumet skrivs som ihop med siffror utan skiljetecken.
Decimaldelen är tid in på det dygnet.
1 dygn 1440 minuter.
Kl 9.30 blir 9x60+30=570 minuter
570/1440=0.375
Modifierar man scriptet på slutet så det görs en test så kan det användas i vinstrapport.
i10(lt(l,mult(if(buy2,if(buy3,max3,max2),max1),flytnivå)))
Byt sista raden mot den ovan för görs test att low varit under stoppnivån.
Ett sätt att komma förbi detta är att man har ett script där man kan ange olika köptillfällen som fasta tidpunkter, och man får en korrekt stoppkurva baserat på dessa inköpstidpunkter man angett.
flytnivå:=0.975
bakåt1:=300
d1:=Date(20010906.5)
d2:=Date(20010907.395)
d3:=Date(20010910.5)
buy1:=ge(d,d1)
buy2:=ge(d,d2)
buy3:=ge(d,d3)
buytime1:=if(buy1,h,0)
buytime2:=if(buy2,h,0)
buytime3:=if(buy3,h,0)
max1:=hhv(buytime1,bakåt1)
max2:=hhv(buytime2,bakåt1)
max3:=hhv(buytime3,bakåt1)
i10(mult(if(buy2,if(buy3,max3,max2),max1),flytnivå))
10-minuters intradayperiod vald här och en stoppnivåkurva bildas av detta scriptet.
'flytnivå' anger här 2.5% stoppnivå under högsta efter inköp.
'bakåt1' skall ha ett tillräckligt spann bakåt för att söka sig bakåt förbi inköpsperioden. Dvs tillräckligt för att täcka ett innehavs längd.
Ett papper som handlas hela tiden(ovan någon gång per 10 minuter minst) får 6 perioder per timma, dvs 48 perioder per börsdag. Värde 300 täcker alltså 6 börsdagar bakåt som det längsta innehavet.
Denna typ av stopp lär ju lösa ut inom mycket kortare intervall förutom extremt långa börsuppgångar.
Datumformat anges i i 'd1'-'d3' på formen
20010906.5 som är 6 Sept 2001 kl. 12.00.
Heltalet alltså ett datum utan skiljetecken, sedan tidpunkten på dagen som ett decimaltal.
20010906.375 motsvarar 6 Sept 2001 kl 9.30
Heltalet dvs datumet skrivs som ihop med siffror utan skiljetecken.
Decimaldelen är tid in på det dygnet.
1 dygn 1440 minuter.
Kl 9.30 blir 9x60+30=570 minuter
570/1440=0.375
Modifierar man scriptet på slutet så det görs en test så kan det användas i vinstrapport.
i10(lt(l,mult(if(buy2,if(buy3,max3,max2),max1),flytnivå)))
Byt sista raden mot den ovan för görs test att low varit under stoppnivån.
Comment