[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GEN: Volatility



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.