View Full Version : trailing atr exit
richterm
20th March 2004, 10:30 AM
Whee can I find information about ExtFml("TradeSim.TrailingStop", as it does not appear on my user manual
martin richter
David Samborsky
22nd March 2004, 02:22 AM
Goto http://www.compuvision.com.au/DownloadTradeSim.htm and download Document AN-2.
Jose
2nd April 2004, 11:25 PM
Martin, here is a couple of TradeSim trailing stop chart indicators.
Experiment with the user inputs.
jose '-)
MetaStock -> Tools -> Indicator Builder -> New
Copy and paste two indicators below.
========================
Trailing Stop - TradeSim
========================
---8<---------------------------
{Triggers: Long (+1) & Short (-1) signals at
crossover of user-defined trailing stops}
{Plot on price chart}
{x23 faster than MetaStock's 4-PREV version}
{TradeSim.dll must be in
...\MetaStock\External Function DLLs\ folder}
{©Copyright 2003-2004 Jose Silva}
buffer:=Input("buffer % trailing stop",0,100,8);
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);
Volatility:=C*buffer/100;
stopLong:=ExtFml("TradeSim.TrailingStop",
BAND, {mode: band or trigger}
LONG, {long or short}
Volatility, {user defined see variable above}
CLOSE, {RefPoint for stop calc}
CLOSE); {threshold - stop breached}
stopShort:=ExtFml("TradeSim.TrailingStop",
BAND,SHORT,Volatility,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))*-1,-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))
---8<---------------------------
==============================
Trailing Stop - ATR - TradeSim
==============================
---8<---------------------------
{Triggers: Long (+1) & Short (-1) signals at
crossover of user-defined trailing stops}
{Plot on price chart}
{x23 faster than MetaStock's 4-PREV version}
{TradeSim.dll must be in
...\MetaStock\External Function DLLs\ folder}
{©Copyright 2003 Jose Silva}
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))*-1,-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))
---8<---------------------------
Jose
2nd April 2004, 11:28 PM
Oops, code got munched by the smilies. :roll:
Try again:
MetaStock -> Tools -> Indicator Builder -> New
Copy and paste two indicators below.
========================
Trailing Stop - TradeSim
========================
---8<---------------------------
{Triggers: Long (+1) & Short (-1) signals at
crossover of user-defined trailing stops}
{Plot on price chart}
{x23 faster than MetaStock's 4-PREV version}
{TradeSim.dll must be in
...\MetaStock\External Function DLLs\ folder}
{©Copyright 2003-2004 Jose Silva}
buffer:=Input("buffer % trailing stop",0,100,8);
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);
Volatility:=C*buffer/100;
stopLong:=ExtFml("TradeSim.TrailingStop",
BAND, {mode: band or trigger}
LONG, {long or short}
Volatility, {user defined see variable above}
CLOSE, {RefPoint for stop calc}
CLOSE); {threshold - stop breached}
stopShort:=ExtFml("TradeSim.TrailingStop",
BAND,SHORT,Volatility,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))*-1,-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))
---8<---------------------------
==============================
Trailing Stop - ATR - TradeSim
==============================
---8<---------------------------
{Triggers: Long (+1) & Short (-1) signals at
crossover of user-defined trailing stops}
{Plot on price chart}
{x23 faster than MetaStock's 4-PREV version}
{TradeSim.dll must be in
...\MetaStock\External Function DLLs\ folder}
{©Copyright 2003 Jose Silva}
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))*-1,-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))
---8<---------------------------
:roll: :roll:
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.