I am trying to predict the intraday moving range of stock/forex (essentially, high-low). Here are some ideas based on what I've been reading recently (do not have quant background, so basic level of understanding).

1) GARCH can be used to model volatility. This seems to model intraday returns (close-open) and not necessarily the daily range. Are there any implications if I choose (high-low) as proxy for returns ? The purpose of using the range predictor is mainly to figure out my stops based on my entry point.

2) I also came across GARMAN-KLASS (OHLC) volatility estimator. Any pros/cons on using this volatility estimator as a time series and use a weighted moving average to predict next-day volatility and map that volatility to a range ?

3) Lastly, the most basic option would be to simply use a weighted moving average of recent ranges and use that as a prediction ?

Appreciate any inputs.

[*EDIT - I've posted this on main page as well since I see this is beta and I am not sure if this gets as much traffic. Please merge when there is a response *]


3 Answers 3


As far as I know, technical analysis won't work to predict intraday Forex movement. I've done so many backtest using technical analysis but it doesn't have any predictive power.

The best way to predict FOREX is to find the difference of interest rates issued by both government of that currency pair.

$$ Pn = P_0 . e^{(r_{jpy}-r_{usd}) \Delta t } $$ $$ \Delta t=\frac{t_n-t_0}{365} $$ From that you can predict daily currency pair change/movement by continuously compounding the interest rate.

You can directly backtest the formula above using USDJPY pair with interest rates issued by US & Japan government in previous year.

$$ \sigma = \sqrt{ \frac{\sum\limits_{n=1}^{365} (P_n- \bar{P} )^2 }{365} } $$

Theoritically you can also predict volatility after you calculate all the prices. Then you can use GARCH to predict intraday price (OHLC).

  • $\begingroup$ Thanks for commenting. Just to clarify, I am not trying to predict the OHLC prices, but rather just the range (high-low) for the next day. Don't know if your answer would change - thought I'd specify. I am investigating your answer. $\endgroup$ Sep 27, 2015 at 15:14
  • $\begingroup$ The only thing that matters in forex are interest rates & velocity of circulation of the money (currency liquidity). But at this time, there's no accurate model for velocity because velocity is not observable. $\endgroup$
    – dns
    Sep 27, 2015 at 19:49
  • $\begingroup$ Can you point out how you arrived at the formula ? I tried to rework from compound interest formula - but couldn't arrive at yours. Thanks! $\endgroup$ Sep 29, 2015 at 6:25
  • $\begingroup$ Imagine if government B produce new money (inflation) at r=7%, government A doesn't produce any money, so r=0%. What would be the exchange rate for AB pair at the end of the year? That's roughly $$P'=P.(r_b-r_a)=P . (0.07)$$ , but the correct formula is (continuously compounded at very small Δt): $$P' = P . e^{(r_{b}-r_{a}) \Delta t }$$ And from there you can calculate the volatility (rough estimation). $\endgroup$
    – dns
    Sep 29, 2015 at 13:58

You could just go with a straight confidence interval. I'll explain it in terms of Gaussian/normal distribution, however, for professional use I'd take the extra steps to do bootstrapping and fitted some fat tail distribution.

  • Select some time lag for your data.
  • Calculate the rate of returns for each time step.
  • Calculate the standard deviation and mean of the rate of returns. Say the standard deviation is $2\%$ and the mean is $3\%$.
  • Choose a confidence interval, say, $95\%$.
  • Use the inverse of the distribution for the interval $2.5\%$ and $97.5\%$ (a width of $95$ percentage points). This gives z-values of $-1.96$ and $+1.96$.
  • Calculate the interval, which comes out to be $-1\% \approx 3\% - 1.96 * 2\%$ and $+7\% \approx 3\% + 1.96 * 2\%$.
  • If you own $\$1000$ of the currency in question then your confidence interval would be between $\$990 = 1000 \times (1+0.01)$ and $\$1070 = 1000 \times (1+0.07)$ with a confidence of $95\%$, meaning that you typically wouldn't see the price go over or under this interval more often than once every $20$ days $(=1/0.05)$.

Again, read up on other distributions than the Gaussian one. Also, note that higher confidence creates wider intervals.

  • $\begingroup$ This won't work on forex market unless you backtest this strategy against historical prices of major currency pairs. $\endgroup$
    – dns
    Sep 28, 2015 at 16:07
  • $\begingroup$ This isn't a "strategy". It's basic statistics with clear mathematical assumptions. Take it for what it is. $\endgroup$ Oct 11, 2015 at 12:19

As you can tell, there are many ways to estimate volatility (standard deviation, range, etc.). What is better or worse depends on the use-case. What all volatility estimators have in common are that they try to measure variability. If this is for trading strategy development, you'll probably want to backtest a variety of methods to see what works best. Some notes on the approaches you mentioned:

GARCH: You can estimate a GARCH model based on range data: I believe the formal term for this specification is CARR (conditional autoregressive range). Classical GARCH uses squared daily returns data to estimate conditional volatility as variance/standard deviation.

Garman-Klass: This is a static estimate which gives you a volatility estimate in terms of standard deviation (like classic GARCH). It is a stylized fact of financial markets that volatility is time-varying, so assuming volatility is constant is risky here. Using a moving window estimate could be a crude solution.

Moving Average of High-Low range: CARR is a sophisticated version of what you described here. ARMA and GARCH processes are types of exponentially smoothed moving averages, with an additional mean-reversion term.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.