Tuesday, December 29, 2009


Today I'm writing on a more technically advanced topic applicable to trading systems. I've been working on automating some new volatility measuring and forecasting tools for futures, stock, and options trading purposes. The research that I've seen has shown that different forms of autoregressive moving average models are pretty much the standard fare for option pricing since they are quickly reactive to changing market conditions and usually markets tend to revert to similar volatilities after shocks like the Crash of 1987, Asian Panic, LTCM implosion, and the current credit crisis. Being curious, I decided to design and program a Generalized Autoregressive Conditional Heteroskedasticity (GARCH) Moving Average model into Excel using VBA. The good thing about this model is that I can just load data and run the calculation which requires an optimization function. Very cool stuff.

What does GARCH do?

A GARCH process weights three factors:
1. historic variance
2. excess return
3. prior period forecast deviation

GARCH is not dependent on an operator giving a lookback period like price channels or volatility measures like standard deviation or ATR. The weights are changed every period and optimized (using a least squared error or log likelihood maximization). This is appealing since markets are dynamic and subject to risk premia changing rapidly in periods of market fear.

Why would you want to use it?

For the purposes of futures trading I can see a few good uses and I'm certain that several CTAs use forms of Autoregressive Moving Average (ARMA) models in their trading. The first use is potentially to determine a price channel similar to a bollinger band that would envelop a certain percentage of price history. Since many CTAs are trend following in nature, the idea would be to take trades that exceed the expected X% threshold with the expectation that the trade is one of the 15+R trades that make a year. Another use is for position sizing purposes. Upon taking positions, CTAs will tend to determine position sizing based on some volatility measure such as standard deviation or ATR based on a lookback period. Using a GARCH model for this would seem appealing since it does not necessarily have a lookback period and has dynamic weighting for the three components.

The chart below shows a GARCH model forecast on the weekly returns of the S&P 500 since 1993. Note how quickly the GARCH model reacts to expansion of the squared excess return.

If you are interested in the code, please e-mail me at sigmaseek@gmail.com. I don't think I would give it away as it took several days to put it together, but a small donation for a useful tool sounds fair.

1 comment:

Anonymous said...
This comment has been removed by a blog administrator.