PureBytes Links
Trading Reference Links
|
On the topic of volatility: one thing that I've found while
experimenting with short term mechanical trading systems on the S&P
(futures) is that there is a "sweet spot" where there's enough
volatility in the market to make trading profits and still have some
degree of risk control. For the systems that I evaluated (usually some
variant of volatility breakout), I used the Average True Range taken
over the past 10 days. The best operating range was generally in the
range 0.75% <= R <= 2.0%. When the ATR (as a percentage of the current
close) got up above 2%, it was generally unprofitable trading almost
anything that I could come up with.
In Tradestation's Easy Language (EL), the volatility filter looks
something like this:
{ simple volatility breakout system.
vfac - controls the sensitity of the system. Should generally
range between 1.0 and 3.0
vmin - minimum volatility (as % of ATR) to initiate or stay
in a trade
vmax - maximum volatility (as % of ATR) to initiate or stay
in a trade
(end of day system)
}
inputs: vfac(1.5), vmin(0.75), vmax(2.0);
vars: atr(0), blimit(0), slimit(0);
atr = 100.0 * AveargeTrueRange(10)/Close;
if atr < vmin or atr > vmax then begin
exitlong;
exitshort;
end else begin
blimit = (1.0 + 0.01 * vfac) * Close;
slimit = (1.0 - 0.01 * vfac) * Close;
buy blimit stop;
sell slimit stop;
end;
The system above is provided just as an example.
Something that Alex (DrOEX) noted - is the tendency for markets
(ie, stocks and stock indices) to go up during times of lower
volatility. This inspires the following system, which uses
both minimum and maximum ranges, and trades long only when
volatility is decreasing. It still uses a min/max volatility
to trade, and has 2% stop loss on entry.
{ Trade long only when volatility is decreasing.
Len - Lookback for determining whether current volatility
is trending down.
vmin - minimum volatility (as % of ATR) to initiate or stay
in a trade
vmax - maximum volatility (as % of ATR) to initiate or stay
in a trade
(end of day system)
}
inputs: Len(5), vmin(0.75), vmax(2.0);
vars: atr(0), mp(0), sloss(0);
atr = 100.0 * AveargeTrueRange(10)/Close;
mp = marketposition(0);
if currentbar > Len then begin
if atr >= atr[Len] or atr < vmin or atr > vmax then begin
exitlong;
end else begin
if mp <= 0 then begin
buy on close;
sloss = close * 0.98;
end;
exitlong sloss stop;
end;
end;
I haven't tried exactly the system above, but did find that simply
being long (stock indexes) as volatility was declining (but not too
low/high) was a net win. There are times when volatility is high and
the market keeps climbing, but they don't occur often, and obviously
risk is higher then.
|