I remember testing a trend following method that allows me to change position size exponentially according to volatility. In other words, if volatility was great then I could trade position size squared or the square root of position size, change position size drastically. Trading results were about the same. Focusing on volatility does not improve trading results much in my test cases. Maybe changes results a little. I suspect the risk level employed is much more important than the trading method used.
The only issue I've seen with the ATR method is that it can leave you having a large position when ATR/vol is low - just before a big event. So if we look at situations where vol is compressing, your positions should be bigger and bigger - fine if the position goes your way when vol expands, but problematic if you're on the wrong end. Just a thought.
This is true, especially when someone is not sure about the future actual performance of a system. But if you have a system that has behaved well under actual market conditions and in real trading then Kelly%, or a modification thereof, is the answer. The article by Michael Harris on the Relation of Expected Gain to Kelly Formula is a good read on this subject: http://www.tradingpatterns.com/Abou...s/articles.html Ron
Sorry about the bad link. The correct link to the article "Relation of Expected Gain to Kelly Formula" is: http://www.tradingpatterns.com/About_Us/articles/articles.html Ron
This is strategy dependent. Thus, some methods you should be decreasing your position size as volatility rises (increasing size as volatility declines). However, other methods you should be increasing your position size as volatility rises (decreasing size as volatility declines). One of the most simple ways to determine how your method performs in rising and declining volatility market conditions is to simply backtest it. Next, you compare your hourly, daily, weekly or monthly results to either the VIX or ATR. Position size management is a very powerful approach to trading. Mark (a.k.a. NihabaAshi) Japanese Candlestick term
That simply means that you can't set it based on extreme low volatilities or you will be scaling off as it wins (or loses).
anybody with backtesting software can set PS for long-term stock positions to: 6*stdev(C,10) or 10 * atr(10) Amibroker does this in your sleep.
if you use just ATR you can be deceived. for example... if ATR is 2 on Oct 1, and now the ATR is 4 on Nov 1, did the volatility increase? Now what if I tell you the price on Oct 1 was 20 and the price on Nov 1 was 60 a better measure of volatility is ATR/PRICE. In the case above, the ATR doubled but the volatility really dropped from .1 to .067
good info trend guy. Do you use this formula in your design? In TS, there is a volatility function as follows Volatility (Function) The Volatility series function measures the market volatility by plotting a smoothed average of the TrueRange. It returns an average of the TrueRange over a specific number of bars, giving higher weight to the TrueRange of the most recent bar. Looks like the difference here in just using ATR is that it weights the current bar.
Also there is a VolatilityStdDev function VolatilityStdDev (Function) Disclaimer The VolatilityStdDev function calculates the statistical volatility, sometime called historical volatility, based on a standard deviation of closes for the number of days specified. Syntax VolatilityStdDev(NumDays) Returns (Double) A numeric value containing VolatilityStdDev, based on a standard deviation of closes for the number of days specified. Parameters Name Type Description NumDays Numeric Sets the number of bars to include in the volatility calculation Remarks The statistical volatility is sometimes called historical volatility. The volatility returned is annualized and is an indication of how much price movement as a percent has been observed over the specified time period. Example Assigns to Value1 the annualized statistical volatility for the last 30 days of closing prices for the symbol using the Standard Deviation of Closes Method. Value1 = VolatilityStdDev(30);