Skip to content
MT5MT4soonTradingViewsooncTradersoonNinjaTradersoonPythonsoon
Volatility & ranges

Choppiness index

Also called CHOP, CI, Choppiness Index indicator

The Choppiness Index (CHOP) is a 0–100 indicator that tells you whether a market is trending or moving sideways. High readings mean choppy, range-bound price. Low readings mean a directional move, but the indicator never says which direction.

Before you place a trade, CHOP helps you choose your approach: a trend tactic, a range tactic, or no trade at all. If you run a breakout or trend system while the market is chopping sideways, you usually end up with a string of small stop-outs. CHOP is built to flag those conditions.

How the Choppiness Index formula separates trends from noise

CHOP = 100 × log10( SUM(TR, n) ÷ (HH(n) − LL(n)) ) ÷ log10(n)
  • True range (TR) is how far price travelled in one bar, including any gap from the previous close.
  • SUM(TR, n) adds up those bar-by-bar distances over the last n bars. Think of it as the total path price walked.
  • HH(n) − LL(n) is the highest high minus the lowest low over the same n bars. This is the ground price actually covered.

Charts often default to a 14-bar period. This page uses 10 so that log10(n) = 1 and the maths stays simple, which is why the readings here may differ from the ones on your own chart.

If price walks a long path but ends up covering little ground, it is going back and forth, and CHOP reads high. If almost every step goes the same way, path and ground are nearly equal, and CHOP reads low. Dividing by log10(n) keeps the result between 0 and 100 whatever period you use. The picture below shows both cases side by side.

Choppy versus trending price: path walked compared with ground covered
Same idea, two results: the more the path exceeds the ground, the higher CHOP reads.

The figures in this worked example are illustrative and use the 10-bar period.

  • Choppy case: the true ranges add up to 200 pips and the 10-bar high-to-low range is 40 pips. 200 ÷ 40 = 5, and log10(5) = 0.699. So CHOP = 100 × 0.699 ÷ 1 = 69.9.
  • Trending case: the same 200-pip path, but the range is 100 pips. 200 ÷ 100 = 2, and log10(2) = 0.301. So CHOP = 30.1.
Choppiness Index worked out by hand for a 10-bar period, choppy and trending cases
Choppy: path ÷ range (200-pip path, 40-pip range)200 ÷ 40= 5
Choppy: scale log10(5) to 0–100, dividing by log10(10)100 × 0.699 ÷ 1= 69.9
Trending: path ÷ range (200-pip path, 100-pip range)200 ÷ 100= 2
Trending: scale log10(2) to 0–100, dividing by log10(10)100 × 0.301 ÷ 1= 30.1
CHOP readings69.9 choppy vs 30.1 trending

Reading CHOP on the chart: the 61.8 and 38.2 lines

CHOP is read against two reference lines, at 61.8 and 38.2.

  • Above 61.8: price is consolidating. Trend entries tend to fail here, and range tactics fit better.
  • Below 38.2: price has been moving strongly in one direction.
  • Between the lines: the market is in transition. Wait for one side to win.

The chart below is an illustration. Price boxes sideways while CHOP stays high. Then price breaks out, CHOP falls below 38.2, and CHOP rises again as the move stalls.

Choppiness Index falling from above 61.8 to below 38.2 as a range breaks into a trendIllustration
CHOP (10)Choppy 61.8Trending 38.2Short 1.1025BreakoutBelow 38.2Back above 38.2
Illustration: CHOP (10) is computed from these candles. The first nine readings use fewer than ten bars, so treat them as warm-up.

The common misread: traders take a low CHOP reading as a sell signal. It is not. CHOP has no direction. A reading of 30 means the same thing after a rally as after a sell-off. Check the price chart for direction.

The second misread: by the time CHOP drops below 38.2, the trend has already run for several bars. A low reading means a trend is under way. It does not mean a trend is about to start. A fresh breakout tends to start when CHOP is just leaving a high, flat stretch. If you only spot the move once CHOP is already deep below 38.2, skip the breakout entry and wait for a pullback instead.

When the Choppiness Index helps and when to ignore it

Works well:

  • As a filter that switches a trend or breakout system on and off.
  • In markets that alternate between clear ranges and clear trends.
  • On 1-hour and higher charts, where each bar's true range is large compared with the spread. On 5-minute and 15-minute charts, the spread makes up a bigger share of every true range, so expect more false flips.

Avoid or discount it:

  • In the bars right after a major news release. One huge candle stretches the high-to-low range and pushes CHOP down even when there is no real trend.
  • On very low timeframes in thin trading hours, where spread noise dominates each bar.
  • As a stand-alone entry signal. It tells you what kind of market you are in, not where to enter.
How one news candle stretches the high-to-low range and pushes the Choppiness Index down without a trend
Illustrative values. Price was moving sideways, but one large news candle makes the high-to-low range much wider. CHOP falls even though there is no trend.
CHOP zoneCHOP slopeWhat to do
Above 61.8FlatFade the range edges, with a stop beyond the edge
Above 61.8Edging lower, price still inside the boxWait. No new fades near an edge
Dropping through 61.8Falling, with a close outside the boxTake the breakout
Below 38.2Falling or flatTrail the open trade only. No fresh breakout entry
Back above 38.2RisingNo new trend entry. Tighten or close the trend trade

Trading setups that use CHOP as a market filter

Both setups below use the illustrative chart above, not real market prices. Candles are counted from 1, starting at the left edge.

Range-to-trend breakout

For the first twelve candles, price stayed between 1.1001 and 1.1030, and CHOP held above 61.8.

  • Entry: the 13th candle (marked Breakout) closed outside the box at 1.1045, and CHOP dropped from 81 to 61. Price breaking out while CHOP leaves its high zone is your trigger.
  • Stop loss: back inside the box, around its middle at 1.1015. That puts 30 pips at risk.
  • Exit: CHOP fell below 38.2 on the 16th candle and climbed back above it on the 24th, the last candle (marked Back above 38.2). Closing at that candle's close of 1.1116 would have captured 71 pips (1.1116 − 1.1045).

Fading the range edges while CHOP stays high

  • Entry: sell near the top of the box and buy near the bottom, but only while CHOP stays flat above 61.8. In the chart, the 7th candle (marked Short 1.1025) pushed up to 1.1028 with CHOP at 86, so a short near 1.1025 fits the rule.
  • Stop loss: a few pips beyond the edge, for example 1.1036 on the short.
  • Exit: near the opposite side of the box, around 1.1005. If a candle closes beyond the edge and CHOP drops toward 61.8 on that same close, the range has already broken, so close whatever is left of the trade instead of waiting for the stop.

The same chart shows where this setup breaks. The 12th candle closed at 1.1027, near the top of the box, and CHOP still read 81, deep in the choppy zone. A short there fit the rule, yet the 13th candle's high of 1.1048 went straight through a 1.1036 stop. CHOP only dropped to 61 on that breakout candle itself, so it gave no warning in advance. The rule: when you fade a range edge, your stop beyond the edge is the protection, because CHOP confirms a breakout only after it has happened.

Choosing a Choppiness Index period for your style

Trading styleChartPeriodNotes
Scalping5-minute / 15-minute10–14Reacts faster but flips more often. Confirm with a session high or low
Day trading1-hour14A balanced choice. Use the 61.8 / 38.2 lines as given
Swing trading4-hour / daily14–21Slower and steadier. Good for deciding whether to run a trend system that week

If your market makes large single-bar spikes, each spike stretches HH − LL and pulls CHOP down for the next n bars even without a trend. Use the longer end of each period range there, because a longer window gives one bar less weight, or wait for two closes past a level.

Practical tips and a quick checklist

  • Watch the slope, not only the level. A long, flat stretch above 61.8 often comes before an expansion.
  • Use a volatility-based stop, such as an ATR multiple. CHOP measures how messy price is, not how far it moves.
  • Read CHOP on the chart you trade from. A 15-minute chart can chop sideways inside a clean 4-hour trend, so check the higher chart before you call the whole market choppy.
  • Log the CHOP reading in your trade journal. After a few dozen trades you can see whether your losing trades cluster above 61.8.

Quick checklist:

  1. Is CHOP above 61.8, below 38.2, or in between?
  2. Is it rising, falling or flat?
  3. Does my tactic match: range trade, trend trade, or no trade?
  4. Was there a major news spike inside the last n bars?

FAQ

Why are the CHOP lines at 61.8 and 38.2, and can I change them?

They come from the Fibonacci ratios 0.618 and 0.382, scaled to 100. They are a convention, not something the formula produces. You can move them: lines further apart give fewer but cleaner trend and range calls, and lines closer together give more calls and more false ones. Whatever you choose, test it and keep it fixed.

Does the Choppiness Index repaint?

The value on the bar that is still forming changes until that bar closes, because its high, low and true range are still moving. Values on closed bars stay fixed. Base your decisions on closed-bar readings.

Can I use the Choppiness Index on stock indices or crypto?

Yes. It only needs high, low and close prices, so it works the same way on indices, metals, crypto and currency pairs. Gaps need care. A gap counts in true range, so it raises SUM(TR), but it also stretches the high-to-low range. A single one-way gap therefore lowers CHOP, the same way one large candle does. Only gaps that go back and forth, up one session and down the next, push CHOP up.

Related terms