Alan Ross

Alan Ross Forex

Free Forex Indicators, MetaTrader Tools and Honest Trading Guides

Indicators

Gopalakrishnan Range Index Tested: GRI Tracked ATR at 0.81 and Made a Trade Rule Better in Only 4 of 11 Runs

Key takeaways

  • The Gopalakrishnan Range Index (GRI) is sold as a “degree of chaos” gauge: high means the market is trending, low means it is going sideways. I tested it on EURUSD and gold, M5 and M15, 12 weeks of data, spread included.
  • GRI moved with ATR at a correlation of 0.81 on three of four charts (0.68 on gold M15). In practice it is a volatility meter, not a trend meter.
  • It did not tell trending stretches from choppy ones. The correlation between GRI and how straight price moved over the next 24 bars was between -0.07 and +0.03 on all four charts.
  • As a filter it made a trade rule better in 4 of 11 runs and worse in 7. On gold M15 it turned a slightly profitable breakout rule (+$0.21 an ounce a trade) into a loser (-$1.32).
  • 1 GRI run passed every check: a Bollinger fade on EURUSD M15, taken only when GRI was low. Across all 53 filter runs in this test, 3 passed, about what luck alone gives.

Every few months a “market chaos” indicator does the rounds on MQL5 and trading forums. The promise is always the same: skip the choppy hours and your trend rule finally works. The Gopalakrishnan Range Index is one of the oldest of them, and it is simple enough to rebuild exactly. So I rebuilt it, put it next to ATR, and asked two questions: what does it really measure, and does it make a rule better?

The same data and cost as the rest of this blog: EURUSD from June 3 to August 26, 2026, 16,926 M5 bars and 5,642 M15 bars, gold over the same weeks, 13,736 M5 bars and 4,577 M15 bars. 1 pip per EURUSD trade, $0.30 an ounce per gold trade, from my spread and swap measurement.

What is the Gopalakrishnan Range Index?

A choppy candlestick chart, the kind of market GRI is meant to flag

Jayanthi Gopalakrishnan published it in 2001. The formula is one line:

GRI = log(highest high of the last n bars – lowest low of the last n bars) / log(n)

The idea: if the range over n bars is wide, price went somewhere, so the market is trending; if the range is narrow, it went nowhere. The usual period is 14. Because the raw value depends on the price of the instrument (a 14-bar range on gold is dollars, on EURUSD it is a fraction of a cent), I used GRI’s rank among the last 288 bars, one trading day of M5 bars: rank above 70% counts as “trending”, below 30% as “choppy”.

What does GRI actually measure?

Reading volatility on a trading screen, which is what GRI really measures
ChartGRI vs log ATR 14GRI vs Choppiness IndexGRI vs ADX 14GRI rank vs straightness of next 24 bars
EURUSD M50.81-0.610.390.03
Gold M50.81-0.550.42-0.05
EURUSD M150.81-0.720.440.03
Gold M150.68-0.540.31-0.07

Pearson correlation, bar by bar. Straightness is the efficiency ratio: net move over the next 24 bars divided by the sum of every bar-to-bar move. 1 is a straight line, 0 is a round trip.

GRI tracks ATR far more closely than it tracks anything to do with trend. That makes sense once you look at the formula: a 14-bar range is wide when bars are big, whether or not they point the same way. Its link to ADX, the classic trend-strength gauge, is weaker at 0.31 to 0.44, and its link to what price did next is close to zero on every chart.

Did high GRI come before trending moves?

GRI rank, fifth of all barsEURUSD M5 straightnessGold M5 straightnessGold M15 straightnessGold M15 move, ATR
Lowest fifth (“choppy”)0.1430.1900.2233.04
Second0.1610.1830.2032.56
Middle0.1580.1910.1942.07
Fourth0.1670.1810.1641.52
Highest fifth (“trending”)0.1790.1750.1811.60

Median over the next 24 bars. Move in ATR is the net move divided by the ATR at the start.

On EURUSD M5 the highest fifth was a little straighter than the lowest, 0.179 against 0.143. On both gold charts it went the other way. On gold M15 the bars GRI called “choppy” were followed by the straightest moves, 0.223, and by moves of 3.04 ATR against 1.60 ATR after “trending” bars. That is volatility doing what volatility does: after a quiet stretch, ranges expand; after a wide one, they shrink. A rule that waits for a wide range is entering after the move, not before it. I saw the same in the ATR volatility breakout test, where following the break of a wide range lost money.

Did GRI make a trading rule better?

I took three rules from earlier tests and ran each without a filter and with GRI:

  • Donchian breakout: close above the 20-bar high, buy; below the 20-bar low, sell. Stop 1.5 ATR, target 3 ATR, 48 bars at most. GRI allowed it only when the rank was above 70%.
  • EMA 20/50 cross: same exit, same filter.
  • Bollinger fade: close outside the 20/2 band, trade back towards the middle line, stop 1 ATR. A range rule, so GRI allowed it only when the rank was below 30%.
Chart and ruleNo filter, tradesNo filter, after costWith GRI, tradesWith GRI, after costBetter?
EURUSD M5 breakout774-1.39 pips431-1.34 pipsyes
EURUSD M5 EMA cross284-0.86 pips110-0.61 pipsyes
EURUSD M5 Bollinger fade838-0.36 pips223-0.50 pipsno
Gold M5 breakout582-$0.75304-$1.33no
Gold M5 EMA cross229-$0.1690+$1.65yes*
Gold M5 Bollinger fade677-$0.58183-$0.66no
EURUSD M15 breakout227-0.26 pips135-0.72 pipsno
EURUSD M15 EMA cross93-0.71 pips35-1.88 pipsno
EURUSD M15 Bollinger fade277-0.18 pips84+0.75 pipsyes, passed
Gold M15 breakout177+$0.21101-$1.32no
Gold M15 Bollinger fade231+$0.4168-$0.21no

Average per trade after cost; gold in dollars an ounce. One trade at a time. Gold M15 EMA cross with GRI had only 24 trades and is left out. *Gold M5 EMA cross lost $3.83 a trade in the first half and made $4.13 in the second, so it did not pass.

4 better, 7 worse. Two of the four improvements were a loss getting slightly smaller. The gold M5 EMA cross looks good in total, but all of its profit came after July 15; before that it lost more than the unfiltered rule.

The one run that passed every check was the opposite of how GRI is usually sold: a range rule on EURUSD M15, allowed only when GRI was in its lowest 30%. 84 trades, +0.75 pips a trade after cost, +0.67 and +0.82 in the two halves, while random entries with the same exit averaged -1.23 pips and reached -0.38 pips in their best 5% of runs. It is a real result on this data, but it is 1 of 11, and on gold M15 the same filter made the same rule worse.

How did I decide what “passed”?

Three checks, the same as in every test here: the average trade is positive after cost; it is positive in both halves, before and after July 15, 2026; and it beats the best 5% of 200 runs of random entries with the same exit and the same number of trades. The rule vs random entry test explains why that last line matters.

Across this whole test, with GRI, the Choppiness Index and ADX as filters, 53 runs had at least 30 trades and 3 passed. With 53 tries, about 2 or 3 would pass by luck at that 5% line. The full comparison of the three filters is in Choppiness Index vs ADX vs GRI.

Is GRI useless, then?

Not useless, mislabelled. As a volatility gauge it does the same job as ATR, which you already have. If you want a reading of how big bars are right now, the ATR settings guide gives the numbers for EURUSD and gold. If you want a reading of trend, GRI does not give it: its rank said nothing about how straight the next 24 bars would be on any of four charts.

The one thing it did hint at is when not to chase. Wide-range bars on gold were followed by smaller moves in ATR terms, so a breakout taken after a wide range is late. That is consistent with the ADX 25 filter test, where waiting for a strong reading also cost more than it saved.

Frequently asked questions

What is the Gopalakrishnan Range Index?

A one-line indicator: the log of the range of the last n bars (highest high minus lowest low) divided by the log of n. High values are read as trending, low as choppy. The common period is 14.

Does GRI show when the market is trending?

Not in this test. Its correlation with how straight price moved over the next 24 bars was between -0.07 and +0.03 on EURUSD and gold, M5 and M15.

Is GRI the same as ATR?

Close to it. GRI correlated with log ATR 14 at 0.81 on EURUSD M5, gold M5 and EURUSD M15, and at 0.68 on gold M15.

Does a GRI filter improve a trend strategy?

In 4 of 11 runs it improved the rule and in 7 it made it worse. On gold M15 it turned a breakout rule from +$0.21 to -$1.32 an ounce a trade.

What GRI period should I use?

14 is the default. Periods 10, 14, 20 and 30 are compared in the Choppiness Index and GRI settings guide for MT4.

Want a clean indicator to install right now?

It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

Download the Free DeMARK Indicator

Written by Alan Ross

Forex trader and MetaTrader indicator developer. I build and test MT4 and MT5 tools, then write the honest version of how they actually work. More about me.

Last reviewed October 2026
Alan Ross
Alan Ross

Forex educator and indicator developer. I build and trade my own MetaTrader tools, and share the ones that genuinely help.

Leave a comment

Your email address will not be published. Comments are reviewed before they appear.