Jag vill göra en slags trailing-stoploss och även kunna vinsttesta funktionen...
Funktionen är följande (för nuvarande, men kan ändras)
1) Från köpnivån skapas en stoploss -0.5%
2) När kursen passerat +0.5% börjar stoplossen s.k. flyta med -0.5% från högsta nivån (räknat från tiden för köpet).
3) När kursen passerar 1% utökas stoplossen med -0.2% (alltså totalt -0.7% från högstanivån)
4) För varje 1% adderas ytterliggare -0.2% från högsta nivån, så +10% är 0.5%+(0.2%x9)=2.3% från högsta nivån
Mina stoploss är lite snålt tilltagen men det är en inställningsfråga...
Jag använder mig av Lastrade och globala minnesceller som känns diffust, eftersom de globala minnescellerna kan bara användas under realtid (hur ska jag veta att mitt script fungerar????)
-----Scriptet med lite svengelska variabler--------
nLowPerc:=0.995
nPercLev1:=1.005
nPercLev2:=1.01
nAddPerc:=0.2
nBuyPrice:=LastTrade(B,P)
nBuyDate:=LastTrade(B,D)
nFirst:=MULT(nBuyPrice,nLowPerc)
{Kollar av close och höjer ribban}
nPastHigh:=GetGVar(400)
nHigh:=If(GT(C,nPastHigh),C,nPastHigh)
SetGVarIf(nHigh,400,1)
Phase1:=And(GE(nHigh,MULT(nLowPerc,nBuyPrice)),LT(nHigh,MULT(nPercLev1,nBuyPrice)))
Phase2:=And(GE(nHigh,MULT(nPercLev1,nBuyPrice)),LT(nHigh,MULT(nPercLev2,nBuyPrice)))
Phase3:=GE(nHigh,MULT(nPercLev2,nBuyPrice))
nGetOut1:=MULT(nBuyPrice,nLowPerc)
nGetOut2:=If(Phase2,MULT(nHigh,nLowPerc),nGetOut1)
{ > 1% ökar stopploss nivån 0.2% per 1%, t.ex. +10% fr. köppris ger 0.5%+(0.2*9)= 2.3% från högsta pris}
{Original (nHigh*(1-(0.005+(nAddPerc*(-0.01+(nHigh/nBuyPrice))))}
{<10 paranteser (nHigh*(0.995-(nAddPerc*(-0.01+(nHigh/nBuyPrice)))}
{Autostock style MULT(nHigh,SUB(0.995,MULT(nAddPerc,ADD(-0.01,DIV(nHigh,nBuyPrice)))))}
nGetOut3:=If(Phase3,MULT(nHigh,SUB(0.995,MULT(nAddPerc,ADD(-0.01,DIV(nHigh,nBuyPrice))))),nGetOut2)
nSell:=LE(C,nGetOut3)
I1(
nSell
)
-----------------------------------------------------------
1) Jag behöver veta/förstå hur lagras köp resp sälj i minnescellerna (minnescell=inget vinsttest=Funkar inte i diagrammet).
2) Lagra variabel för högstanivå (om jag vet klockslag och datum för köpet kan jag räkna antal steg till köpet från nutid och mäta högsta nivån, iallafall 9999 minuter hoppas jag).
Det vore bra om om jag fick hjälp på vägen eftersom köpscriptet är iallafall färdigt...
Funktionen är följande (för nuvarande, men kan ändras)
1) Från köpnivån skapas en stoploss -0.5%
2) När kursen passerat +0.5% börjar stoplossen s.k. flyta med -0.5% från högsta nivån (räknat från tiden för köpet).
3) När kursen passerar 1% utökas stoplossen med -0.2% (alltså totalt -0.7% från högstanivån)
4) För varje 1% adderas ytterliggare -0.2% från högsta nivån, så +10% är 0.5%+(0.2%x9)=2.3% från högsta nivån
Mina stoploss är lite snålt tilltagen men det är en inställningsfråga...
Jag använder mig av Lastrade och globala minnesceller som känns diffust, eftersom de globala minnescellerna kan bara användas under realtid (hur ska jag veta att mitt script fungerar????)
-----Scriptet med lite svengelska variabler--------
nLowPerc:=0.995
nPercLev1:=1.005
nPercLev2:=1.01
nAddPerc:=0.2
nBuyPrice:=LastTrade(B,P)
nBuyDate:=LastTrade(B,D)
nFirst:=MULT(nBuyPrice,nLowPerc)
{Kollar av close och höjer ribban}
nPastHigh:=GetGVar(400)
nHigh:=If(GT(C,nPastHigh),C,nPastHigh)
SetGVarIf(nHigh,400,1)
Phase1:=And(GE(nHigh,MULT(nLowPerc,nBuyPrice)),LT(nHigh,MULT(nPercLev1,nBuyPrice)))
Phase2:=And(GE(nHigh,MULT(nPercLev1,nBuyPrice)),LT(nHigh,MULT(nPercLev2,nBuyPrice)))
Phase3:=GE(nHigh,MULT(nPercLev2,nBuyPrice))
nGetOut1:=MULT(nBuyPrice,nLowPerc)
nGetOut2:=If(Phase2,MULT(nHigh,nLowPerc),nGetOut1)
{ > 1% ökar stopploss nivån 0.2% per 1%, t.ex. +10% fr. köppris ger 0.5%+(0.2*9)= 2.3% från högsta pris}
{Original (nHigh*(1-(0.005+(nAddPerc*(-0.01+(nHigh/nBuyPrice))))}
{<10 paranteser (nHigh*(0.995-(nAddPerc*(-0.01+(nHigh/nBuyPrice)))}
{Autostock style MULT(nHigh,SUB(0.995,MULT(nAddPerc,ADD(-0.01,DIV(nHigh,nBuyPrice)))))}
nGetOut3:=If(Phase3,MULT(nHigh,SUB(0.995,MULT(nAddPerc,ADD(-0.01,DIV(nHigh,nBuyPrice))))),nGetOut2)
nSell:=LE(C,nGetOut3)
I1(
nSell
)
-----------------------------------------------------------
1) Jag behöver veta/förstå hur lagras köp resp sälj i minnescellerna (minnescell=inget vinsttest=Funkar inte i diagrammet).
2) Lagra variabel för högstanivå (om jag vet klockslag och datum för köpet kan jag räkna antal steg till köpet från nutid och mäta högsta nivån, iallafall 9999 minuter hoppas jag).
Det vore bra om om jag fick hjälp på vägen eftersom köpscriptet är iallafall färdigt...
Comment