- Katılım
- 23 Eki 2020
- Mesajlar
- 1,823
Triggers: Long (+1) & Short (-1) signals at crossover of user-defined trailing stops |
|
Trailing Stop - ATR Chandelier Exit v2.0 pds:=Input("ATR periods",1,252,10); pds1:=Input("ATR lookback periods",1,252,21); multi:=Input("ATR multiplier",0,10,2.5); plot:=Input("plot: trailing stop=1, Long+Short=2, signals=3",1,3,1); adv:=Input("plot: today's trailing stop=0, tomorrow's stop=1",0,1,0); delay:=Input("Entry and Exit signal delay", 0,5,0); StLong:=HHV(C-multi*ATR(pds),pds1); StShort:=LLV(C+multi*ATR(pds),pds1); stopLong:=If(C<PREV,StLong,Max(StLong,PREV)); stopShort:=If(C>PREV,StShort,Min(StShort,PREV)); In:=Cross(C,Ref(stopShort,-1)); Out:=Cross(Ref(stopLong,-1),C); Init:=Cum(In+Out>-1)=1; InInit:=Cum(In)=1; flag:=BarsSince(Init OR In) < BarsSince(Init OR Out)+InInit; signals:=Ref((InInit AND Alert(InInit=0,2) OR flag AND Alert(flag=0,2)) -(flag=0 AND Alert(flag,2)),-delay); stop:=Ref(If(flag=1,stopLong,stopShort),-1+adv); If(plot=1,stop, If(plot=2,Ref(stopLong,-1+adv),0)); If(plot=1,stop, If(plot=2,Ref(stopShort,-1+adv),signals)) |
�
Copyright 2003 Jose Silva josesilva22[at]yahoo[dot]com | |
Trailing Stop - ATR - TradeSim============================== ---8<--------------------------- { Triggers: Long (+1) & Short (-1) signals at crossover of user-defined trailing stops } { x23 faster than MetaStock's 4-PREV version } { TradeSim.dll must be in ...\MetaStock\External Function DLLs\ folder } { ©Copyright 2003 Jose Silva } { http://www.metastocktools.com } pds:=Input("ATR periods",1,252,10); multi:=Input("ATR multiplier",0,10,2.5); plot:=Input("plot: trailing stop=1, Long+Short=2, signals=3",1,3,1); adv:=Input("plot: today's trailing stop=0, tomorrow's stop=1",0,1,0); delay:=Input("Entry and Exit signal delay", 0,5,0); stopLong:=ExtFml("TradeSim.TrailingStop", BAND,LONG,multi*ATR(pds),C,C); stopShort:=ExtFml("TradeSim.TrailingStop", BAND,SHORT,multi*ATR(pds),C,C); In:=Cross(C,Ref(stopShort,-1)); Out:=Cross(Ref(stopLong,-1),C); Init:=Cum(In+Out>-1)=1; InInit:=Cum(In)=1; flag:=BarsSince(Init OR In) < BarsSince(Init OR Out)+InInit; signals:=Ref((InInit AND Alert(InInit=0,2) OR flag AND Alert(flag=0,2)) -(flag=0 AND Alert(flag,2)),-delay); stop:=Ref(If(flag=1,stopLong,stopShort),-1+adv); If(plot=1,stop, If(plot=2,Ref(stopLong,-1+adv),0)); If(plot=1,stop, If(plot=2,Ref(stopShort,-1+adv),signals)) | |
Source / From: | |