OPEN-SOURCE SCRIPT

[KL] Mean Reversion (ATR) Strategy

Updated
This strategy will enter into a position when price volatility is relative high, betting that price will subsequently trend in a favourable direction.

Hypothesis: During periods of high price volatility, ATR will divert from its moving average by at least +/- one standard deviation. Eventually, ATR will revert back to the mean. However, just knowing the magnitude of increase/decrease of ATR does not give a trend signal, so we need to introduce a model in this script to predict whether the next bars will be up/down.

  • Trend Prediction: This strategy calculates the expected logarithmic return of the security (the "Drift") and considers prices to be moving in uptrend if the drift curve is upward sloping or if the drift value is positive.


Entry Conditions: Long position is entered when:
  • (a) ATR has diverted from mean by one standard deviation, and
  • (b) trend is predicted to move in our favor.


Exit Condition: When trailing stop loss is hit.

Results from backtesting against VOO (1H timeframe):
- approx 46% win rate over 491 trades, on average holding for 20 hours per trade
- price at the beginning of backtest (Jan. 2015) was $187.52, giving holding period return of ~120% had we not sold in between ("HPR of HODL'ing")
- this strategy gained ~159%, exceeding ~120% HPR of HODL'ing
Release Notes
Minor changes:
- cleaned up spacings of codes
- uses strategy.exit() with 'close' parameter defined. This gives a more accurate report of backtested results. (previously used strategy.close(), which exited at the opening price of the next bar during stops)
- better alerts
Release Notes
Added profit taking levels. Also amended risk the management strategy.
Changes:
- Order size is based on user-defined percentage of committed capital
- Profit taking over 3 levels based on risk to reward ratio (i.e. 1R, 2R, 3R). When a target is met at each tier, strategy will close out one third of current position size. Unreached targets will eventually be closed at the trailing stoploss price
Average True Range (ATR)driftmeanreversionVolatility

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in publication is governed by House rules. You can favorite it to use it on a chart.

Want to use this script on a chart?

Disclaimer