Trailing Resistance &nd Support Stops
In his article "Trailing Resistance &nd Support Stops", the final part of a three-part series, Sylvain Vervoort has demonstrated a method of using a short-term trailing stop that moves close to the price action and is based on a trailing resistance & support stop that looks directly at the price movement.
Using the Function Builder, you create the SVE_TRENDS_Trail function for a Trailing Resistance and Support Stop:
function (Period:numeric=5,atrfact:Numeric=3.5):Numeric;
var
HiLo:=0;
Href:=0;
Lref:=0;
diff1:=0;
diff2:=0;
atrmod:=0;
loss:=0;
result:=0;
support:= 0;
end_var
HiLo:=iff(H - L < 1.5 * Mov(H - L, period, S),
H - L, 1.5 * Mov(H - L, period, S));
Href:=iff(L <= Ref(H, -1), H - Ref(C, -1),
(h - ref(C, -1)) - (L - Ref(H, -1)) / 2);
Lref:=iff(H >= Ref(L, -1), Ref(C, -1) - L,
(Ref(C, -1) - L) - (Ref(L, -1) - H) / 2);
diff1:=Max(HiLo, Href);
diff2:=Max(diff1, Lref);
atrmod:=EMA(diff2,period);
loss:=atrfact*atrmod;
support := iff(L >= Ref(L, -2)
and Ref(L, -1) >= Ref(L, -2)
and Ref(L, -3) >= Ref(L, -2)
and Ref(L, -4) >= Ref(L, -2),
Ref(L, -2), iff(L >Ref(H, -1) * 1.0013,
Ref(H, -1) * 0.9945,
iff(L > this\1\ * 1.1, this\1\ * 1.05,
this\1\)));
if HISTORYSIZE <= period then result := C;
else
begin
if C > this\1\ AND C\1\ > this\1\
then result := Max(this\1\,support);
else
begin
if C < this\1\ then result := Min(this\1\,C+loss);
else
begin
if C > this\1\ then result := support;
else result := C+loss;
end;
end;
end;
return result;
Then you specify the strategy rules
in Tradecision's Strategy Builder:
Entry Long:
if Date() = 080102 then return true;
return false;
Exit Long:
return CrossBelow(SVE_TRENDS_Trail(5,3.5),C);
Entry Short:
if Date() = 081201 then return true;
return false;
Exit Short:
return CrossAbove(SVE_TRENDS_Trail(5,3.5),C);
You need to enter the starting date manually as mentioned in the article. To define Date(), use a numeric value in the YYMMDD format. Date returns 080102 if the day is January 2nd, 2008.
|