logo
Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
TimW  
#1 Posted : Thursday, June 16, 2011 7:29:21 AM(UTC)
TimW

Rank: Member

Groups: Registered, Registered Users
Joined: 6/6/2011(UTC)
Posts: 27

Thanks: 2 times
I have installed Advanced Trailing Stop by Richard Dale, but I cannot find the indicator in the menus. Richard suggested installing using "Run as Administrator" and I have done this. There is a AdvancedStop.dll file in the External Function DLLs folder. I have MetaStock 11 on Windows 7. How do I find this indicator?
jjstein  
#2 Posted : Thursday, June 16, 2011 11:14:47 AM(UTC)
jjstein

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 5/13/2005(UTC)
Posts: 715
Location: Midwest, USA

Was thanked: 1 time(s) in 1 post(s)
There should be several entries starting with RAD*, but they are listed AFTER the built-in indicators.

The drop down is one list, but think of it as two separate alphabetical lists, one after the other.

TimW  
#3 Posted : Friday, June 17, 2011 1:13:08 AM(UTC)
TimW

Rank: Member

Groups: Registered, Registered Users
Joined: 6/6/2011(UTC)
Posts: 27

Thanks: 2 times
Thanks Jonathan, but the RAD* entries are not in either part of the list. I notice that the External Function DLLs folder contains some other files: Simulation.dll, DynamicTradingTools.dll etc, but I don't see these in the Indicators lists either.
jjstein  
#4 Posted : Friday, June 17, 2011 10:39:54 AM(UTC)
jjstein

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 5/13/2005(UTC)
Posts: 715
Location: Midwest, USA

Was thanked: 1 time(s) in 1 post(s)
Well, it's bothersome that it won't install right -- you might try a fresh download from the source.

But, I've extracted the code for the six indicators, so you can just copy & paste, to install it manually:

{ RAD*ChandelierStopLong }

entryday:=Input("Day of month",1,31,1);
entrymonth:=Input("Month",1,12,1);
entryyear:=Input("Year",1800,2020,2003);
entryprice:=Input("Entry Price (leave as zero for close of the day)",0,5000,0);
entryprice2 := If(entryprice>0,entryprice,C);
initatr:=Input("Initial stop ATR multiplier",0.1,6,2);
trailatr:=Input("Trailing stop ATR multiplier from High",0.1,6,2.5);

entryfulldate := (entryyear)+(entrymonth/12)+(entryday/365);
fulldate := Year()+Month()/12+DayOfMonth()/365;
entry:= entryfulldate > Ref(fulldate,-1) AND entryfulldate <= fulldate;
ExtFml( "AdvancedStop.StopLong", entry,entryprice2-initatr*ATR(10),0,H-trailatr*ATR(10),0,0,0,0);




{ RAD*ChandelierStopLongPyramid }

entryday:=Input("Day of month",1,31,1);
entrymonth:=Input("Month",1,12,1);
entryyear:=Input("Year",1800,2020,2003);
entryprice:=Input("Entry Price (leave as zero for close of the day)",0,5000,0);
entryprice2 := If(entryprice>0,entryprice,C);
initstop:=entryprice2-2*ATR(10);
trans:=entryprice2+2*ATR(10);
trailstop:=H-3.5*ATR(10);
pyr1point:=C+4*ATR(10);
pyr1tps := H-3*ATR(10);
pyr2point:=C+6*ATR(10);
pyr2tps := H-2.5*ATR(10);

entryfulldate := (entryyear)+(entrymonth/12)+(entryday/365);
fulldate := Year()+Month()/12+DayOfMonth()/365;
entry:= entryfulldate > Ref(fulldate,-1) AND entryfulldate <= fulldate;
entryprice2 := If(entryprice>0,entryprice,C);
ExtFml( "AdvancedStop.StopLong", entry,initstop,trans,trailstop,pyr1point,pyr1tps,pyr2point,pyr2tps);




{ RAD*ChandelierStopLongWithTransition }

entryday:=Input("Day of month",1,31,1);
entrymonth:=Input("Month",1,12,1);
entryyear:=Input("Year",1800,2020,2003);
entryprice:=C;
initatr:=Input("Initial stop ATR multiplier",0.1,6,2);
transatr:=Input("Transition ATR from initial to breakeven/trailing",0.1,6,2);
trailatr:=Input("Trailing stop ATR multiplier from High",0.1,6,2.5);

entryfulldate := (entryyear)+(entrymonth/12)+(entryday/365);
fulldate := Year()+Month()/12+DayOfMonth()/365;
entry:= entryfulldate > Ref(fulldate,-1) AND entryfulldate <= fulldate;
entryprice2 := If(entryprice>0,entryprice,C);
ExtFml( "AdvancedStop.StopLong", entry,entryprice2-initatr*ATR(10),entryprice2+transatr*ATR(10),H-trailatr*ATR(10),0,0,0,0);




{ RAD*ChandelierStopShort }

entryday:=Input("Short entry Day of month",1,31,1);
entrymonth:=Input("Month",1,12,1);
entryyear:=Input("Year",1800,2020,2003);
entryprice:=Input("Entry Price (leave as zero for close of the day)",0,5000,0);
initatr:=Input("Initial stop ATR multiplier",0.1,6,2);
trailatr:=Input("Trailing stop ATR multiplier from Low",0.1,6,2.5);

entryfulldate := (entryyear)+(entrymonth/12)+(entryday/365);
fulldate := Year()+Month()/12+DayOfMonth()/365;
entry:= entryfulldate > Ref(fulldate,-1) AND entryfulldate <= fulldate;
entryprice2 := If(entryprice>0,entryprice,C);
ExtFml( "AdvancedStop.StopShort", entry,entryprice2+initatr*ATR(10),0,L+trailatr*ATR(10),0,0,0,0);




{ RAD*ChandelierStopShortPyramid }

entryday:=Input("Day of month",1,31,1);
entrymonth:=Input("Month",1,12,1);
entryyear:=Input("Year",1800,2020,2003);
entryprice:=Input("Entry Price (leave as zero for close of the day)",0,5000,0);
entryprice2 := If(entryprice>0,entryprice,C);
initstop:=entryprice2+2*ATR(10);
trans:=entryprice2-2*ATR(10);
trailstop:=L+4*ATR(10);
pyr1point:=C-4*ATR(10);
pyr1tps := L+3*ATR(10);
pyr2point:=C-6*ATR(10);
pyr2tps := L+2.5*ATR(10);

entryfulldate := (entryyear)+(entrymonth/12)+(entryday/365);
fulldate := Year()+Month()/12+DayOfMonth()/365;
entry:= entryfulldate > Ref(fulldate,-1) AND entryfulldate <= fulldate;
entryprice2 := If(entryprice>0,entryprice,C);
ExtFml( "AdvancedStop.StopShort", entry,initstop,trans,trailstop,pyr1point,pyr1tps,pyr2point,pyr2tps);




{ RAD*ChandelierStopShortWithTransition }

entryday:=Input("Short entry Day of month",1,31,1);
entrymonth:=Input("Month",1,12,1);
entryyear:=Input("Year",1800,2020,2003);
entryprice:=C;
initatr:=Input("Initial stop ATR multiplier",0.1,6,2);
transatr:=Input("Transition ATR from initial to breakeven/trailing",0.1,6,2);
trailatr:=Input("Trailing stop ATR multiplier from Low",0.1,6,2.5);

entryfulldate := (entryyear)+(entrymonth/12)+(entryday/365);
fulldate := Year()+Month()/12+DayOfMonth()/365;
entry:= entryfulldate > Ref(fulldate,-1) AND entryfulldate <= fulldate;
entryprice2 := If(entryprice>0,entryprice,C);
ExtFml( "AdvancedStop.StopShort", entry,entryprice2+initatr*ATR(10),entryprice2-transatr*ATR(10),L+trailatr*ATR(10),0,0,0,0);





TimW  
#5 Posted : Friday, June 17, 2011 3:24:22 PM(UTC)
TimW

Rank: Member

Groups: Registered, Registered Users
Joined: 6/6/2011(UTC)
Posts: 27

Thanks: 2 times
That's great. Works a treat now with the code you provided. Thanks so much Jonathan! One question though.. What is the difference between the "Initial Stop ATR multiplier" box and the "Trailing Stop ATR multiplier from High" box. Should I just set them to the same value? Tim
jjstein  
#6 Posted : Friday, June 17, 2011 6:27:20 PM(UTC)
jjstein

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 5/13/2005(UTC)
Posts: 715
Location: Midwest, USA

Was thanked: 1 time(s) in 1 post(s)
Usually, you set a tighter stop after entry, so if you're wrong about direction, you're out sooner and with a smaller loss. If you're right, you want the stop to follow the trade, but not so close that volatility gets you out too soon.

There are no "set in concrete" choices -- experiment with your chosen trading instruments as well as other stuff. For example, Indices/ETFs/Mutual Funds (like the S&P500/SPY/VFINX) might perform better with a different ATR multiple under your trading system than an individual stock.

About the only thing for sure is that a stop should not serve as the sole exit.

CAREFULLY read -- then, re-read -- the documentation page. In fact, print it out; it's only six pages. Study and consider the combinations of conditions. If you don't make any notes, you're probably not understanding the possible complexity...

For example: When Long, you can choose to exit when the stop level is violated during the day by the low, while the equivalent when Short is stop violated by the high.

Or you can keep it simple, just exit at the end of the day if the close violates the stop. If you want to vet this approach, compare relative range (high - low) of the NASDAQ Index with the QQQ ETF ("Cubes") -- there are times you can see the traders/market-makers "scooping" up the stop-losses on the ETF!

Similarly, you can "hang" the stop off either the close or the high/low. Another decision you need to make.

Also, try testing under WEEKLY periodicity and see how that effects results. FWIW, I prefer something like VSTfree/pro or TradeSim rather than the System Tester. There is also a new version of Trade Equity, but I haven't yet broken it to harness <g>.

My $0.02 worth for the day.
TimW  
#7 Posted : Friday, June 24, 2011 6:06:02 AM(UTC)
TimW

Rank: Member

Groups: Registered, Registered Users
Joined: 6/6/2011(UTC)
Posts: 27

Thanks: 2 times
Thanks again Jonathan - for your assistance with the code and for you advice regarding setting stops. My trading is with UK Pension Funds (similar I guess to Mutual Funds) and I get data weekly. I am fairly new at this but it does seem that with so much 'bad news' arriving from many different corners of the world, it is more common than ever to see a stop violated only to see the price bounce back a day or too later! Tim
jjstein  
#8 Posted : Friday, June 24, 2011 8:03:43 AM(UTC)
jjstein

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 5/13/2005(UTC)
Posts: 715
Location: Midwest, USA

Was thanked: 1 time(s) in 1 post(s)
Well, if you trade weekly on the close, you'll have a bit less volatility. There's nothing like quite like getting "whipsaw":

Users browsing this topic
Guest (Hidden)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.