I wrote this MultiCharts .NET indicator for risk management, but you could implement it elsewhere pretty easily.

I size my positions based on historical volatility (standard deviation of log returns). If I have several positions on for the same reason, I’ll size them so that the dollar PnL moves from expected volatility “noise” are approximately equal. I’ve developed a little function and indicator that shows this expected dollar PnL move.

I’ve done some back-testing on this, and have found that a 28-day lookback period is approximately optimal. I also like that it requires relatively little data, as most realized volatility calculations are based on a 252 lookback period.

Here’s a short illustrating example:

As of this writing, QQQ’s 28 day realized volatility was ~0.52% and GLD’s was 0.62%. Does that mean that a GLD position has been more volatile? In terms of % returns, yes. However, QQQ’s last print was $205.10/share and GLD’s was $137.86. Apply those realized volatilities to these prices, and you get what I call a “standard move”.

QQQ: $205.1/share * 0.52% = $1.07
GLD: $137.86/share * 0.62% = $0.85

So the holder of one share of QQQ would actually have experienced more dollar PnL volatility than the holder of one share of GLD. My goal is to keep those moves equal; if for some crazy reason I want to be long both of these, I’d try to keep the standard move of both positions approximately equal. In this case, if you held QQQ and GLD with a 4:5 position ratio you’d be pretty close to equal.

I use this indicator to keep an eye on my risk. It has a multiplier parameter which is useful if you are trading futures. Set it to your position size times the multiplier appropirate for your instrument. For example, a full point in COMEX gold futures is worth $100, so if you have three of those the multiplier should be set to $300.

Choosing 1 standard deviation is pretty arbitrary. It doesn’t matter at all when you’re using this approach to equal-vol weight different positions, as the “2” in a 2-standard deviation calculation would cancel out anyway. Regardless, I have chosen for myself a 1 standard deviation dollar move that I am comfortable with based on emotional trading experience. So I use this indicator for risk management to keep an eye on that so I know when to pare down or when I can load up.

Here’s the exported MultiCharts .NET code.