The IBS strategy is one of the simplest mean-reversion ideas in trading: when a market closes near the bottom of its daily range, buy it and wait for a bounce. We tested internal bar strength on Nasdaq-100 futures (NQ) from June 2010 to April 2026 to see whether this tiny formula still earns its reputation, and which threshold actually worked.
What internal bar strength (IBS) measures
Internal bar strength is where the close sits inside the day's range:
IBS = (Close − Low) / (High − Low)
A reading of 0 means the market closed on its low; 1 means it closed on its high. The idea behind IBS mean reversion is that a close pinned to the low often reflects short-term selling exhaustion in an index that drifts upward over time, so the next day or two tends to bounce.
The origin of IBS is fuzzy. Some code libraries credit it to Volker Knapp, but we could not find a primary source for that. The best-known research on it is a 2013 paper by Alexander Pagonidis, "The IBS Effect: Mean Reversion in Equity ETFs," which found low IBS readings in equity index ETFs were followed by higher next-day returns. We're testing the same idea on Nasdaq futures instead of ETFs.
The exact IBS strategy rules we tested
- Market: NQ continuous front-month futures, daily bars, June 7, 2010 to April 16, 2026.
- Entry (long only): buy at the daily close when IBS is below the threshold. We tested 0.1, 0.2 and 0.3.
- Trend-filter variant: IBS below 0.2 and the close above its 200-day simple moving average.
- Exit: sell at the close on the first day that either closes above the prior day's high or has an IBS above 0.8.
- Stop: none. This is a pure time-and-signal exit, which matters for risk (more below).
- Costs: 1.0 NQ point per round trip deducted from every trade for slippage and commission.
- Units: results are in NQ index points per 1 contract. MNQ is worth $2 per point and NQ $20 per point, so MNQ dollars = points × 2.
IBS mean reversion results on Nasdaq futures
| Variant | Trades | Win rate | Avg pts | Total pts | Profit factor | Closed-trade DD (pts) | Pts 2010–19 | Pts 2020–26 | PF 2020–26 |
|---|---|---|---|---|---|---|---|---|---|
| IBS < 0.1 | 319 | 69.6% | 38.40 | 12,250.0 | 1.88 | -1,383.2 | 2,220.0 | 10,030.0 | 1.94 |
| IBS < 0.2 | 575 | 70.1% | 36.87 | 21,201.5 | 1.94 | -1,990.0 | 3,301.5 | 17,900.0 | 2.10 |
| IBS < 0.3 | 769 | 69.2% | 22.91 | 17,620.8 | 1.50 | -3,112.2 | 3,359.0 | 14,261.8 | 1.53 |
| IBS < 0.2 + above 200-day SMA | 423 | 69.7% | 31.99 | 13,530.0 | 1.92 | -1,254.2 | 1,933.5 | 11,596.5 | 2.19 |
For reference, simply buying and holding NQ over the same span gained 24,677.2 points, with a worst peak-to-trough decline of 5,878.2 points.
What the numbers say
- 0.2 was the sweet spot. IBS below 0.2 produced 575 trades, a 70.1% win rate, a profit factor of 1.94 and 21,201.5 points (about $42,403 on one MNQ contract). Tightening to 0.1 cut the trade count almost in half without improving the edge per trade much (38.4 vs 36.87 points). Loosening to 0.3 added trades but dropped the profit factor to 1.5.
- Win rate stayed near 70% at every threshold. But look at the payoff: at 0.2 the average winner was 108.52 points and the average loser -131.0 points. Losers were bigger than winners. That is the usual shape of mean reversion: lots of small wins, occasional larger losses.
- The 200-day filter smoothed the ride but did not add profit. It cut closed-trade drawdown from 1,990.0 to 1,254.2 points and raised the 2020–2026 profit factor to 2.19, but total points fell from 21,201.5 to 13,530.0. In 2022 it did the opposite of what you'd hope: the filtered version lost -1,073.8 points while the unfiltered version made 1,495.8, because the filter only let trades through early in the year, before the index fell below its 200-day average.
The robustness check: 2010–2019 vs 2020–2026
NQ rose from roughly 1,800 to roughly 26,000 during this test, so one point in 2025 is a much smaller percentage move than one point in 2011. Point totals are naturally dominated by recent years. That's why we split every result by decade.
IBS below 0.2 made 3,301.5 points in 2010–2019 and 17,900.0 points in 2020–2026. The early decade was positive but modest, with small losing years in 2011 (-153.0), 2014 (-2.8) and 2015 (-149.0). Most of the headline number comes from the higher-priced, more volatile market since 2020. The edge was present in both periods, which is encouraging, but the dollar size of the edge depends heavily on where the index trades.
What this backtest does not model
- Daily bar definition. Our daily bars come from the full electronic session, split at midnight UTC. Their "close" is not the 4:00 pm ET cash close most IBS research uses. A cash-session version could give different numbers.
- Fills at the exact close. Signals and fills both use the same close. In live trading you'd compute IBS a minute or two before the close and fill with some slippage beyond our 1-point allowance.
- Contract rolls. The continuous contract has roll gaps that aren't adjusted, and that can distort a few trades.
- Open-trade drawdown, overnight gaps, margin calls and taxes are not in the closed-trade numbers.
This is a historical backtest. Past results don't guarantee future results, and nothing here is financial advice.
Key takeaways
- The IBS strategy (buy when IBS < 0.2, exit on a close above yesterday's high or IBS > 0.8) was profitable on NQ from 2010–2026: 575 trades, profit factor 1.94, after 1 point of costs per trade.
- 0.2 beat 0.1 and 0.3. Win rate was about 70% at every level, but the average loss was larger than the average win.
- The 200-day filter lowered closed-trade drawdown but cut total points, and it lost money in 2022.
- Positive in both 2010–2019 and 2020–2026, but most points came after 2020 because NQ trades at a much higher price.
- No stop means real drawdowns were deeper than the closed-trade figures show.
Put the research to work on your Desk
Explore the tools behind the research, compare the available access, or open your Desk if you already have an account.
FAQ
What is the best IBS threshold for Nasdaq futures?
In our 2010–2026 NQ backtest, buying when IBS was below 0.2 gave the best balance: 575 trades, a 70.1% win rate and a profit factor of 1.94 after 1 point of costs per trade. 0.1 had fewer trades and 0.3 had a lower profit factor.
How do you calculate internal bar strength?
IBS = (Close − Low) / (High − Low). It ranges from 0 (closed on the low) to 1 (closed on the high).
Does a 200-day moving average filter improve the IBS strategy?
Partly. On NQ it cut closed-trade drawdown from 1,990.0 to 1,254.2 points, but total points fell from 21,201.5 to 13,530.0, and it lost money in 2022 while the unfiltered version made money.
Does the IBS strategy use a stop loss?
Not in our test. It exits on a close above the prior day's high or an IBS above 0.8. Because there's no stop, open-trade drawdowns can be much larger than the closed-trade drawdown we report.
Loomi.Ai provides educational market research, not financial advice. Trading futures and options involves substantial risk of loss, and backtested results are historical and do not guarantee future returns.
Sources
- Loomi backtest: blog_strategy_tests.py + results JSON, Loomi research
- Internal Bar Strength for Mean Reversion, Alvarez Quant Trading
- (IBS) Internal Bar Strength – TA-Lib proposal drafts, issue #99, GitHub / TA-Lib
- The Internal Bar Strength Indicator, Jonathan Kinlay