Assumption for the easy language code example
The code assumes that the trailing stop is to be based on how much profit will disappear from the highest high value since you entered your trade to the current close. Thus, the plot will be based on:
- Highest high value since the entry point (if there is a buy defined)
- If there is no buy order defined, the plot will be based on the highest high value since the last close would have triggered the exit if a buy had occurred.
The easylanguage code is importable to Supercharts/Tradestation from the following file: volatility and Percentage based trailing stop indicator
The easylanguage code in the indicator looks like below:
Inputs: NumberOfATRs(3),TrueRangeLength(10),PercentTrail(10);
Variables:
PosHigh(0),ATRValue(0),MyMarketPosition(0),MyATRTrailStop(0),MyPcntTrailStop(0);
ATRValue=AvgTrueRange(TrueRangeLength)*NumberOfATRs;
MyMarketPosition=I_MarketPosition;
If currentBar=1 then
PosHigh=High;
If MyMarketPosition=1 and MyMarketPosition[1]=0 Then
PosHigh=highest(High,2);
If High>PosHigh Then
PosHigh=High;
MyATRTrailStop=PosHigh-ATRValue;
MyPcntTrailStop=PosHigh*(1-PercentTrail/100);
if MyMarketPosition=1 and close<MyATRTrailStop[1] then
Alert("ATRTrail");
if MyMarketPosition=1 and close<MyPcntTrailStop[1] then
Alert("PcntTrail");
plot1(MyATRTrailStop[1],"ATRTrail");
plot2(MyPcntTrailStop[1],"PcntTrail");
if close<MyATRTrailStop[1] and MyMarketPosition<1 then Begin
PosHigh=High;
MyATRTrailStop=PosHigh-ATRValue;
MyPcntTrailStop=PosHigh*(1-PercentTrail/100);
End;