MFI vs RSI: what volume changes and which tests better on futures
RSI measures the size of recent price changes; MFI measures the same ratio with each bar's typical price weighted by volume, so it jumps on volume surges RSI never sees. Volume is an extra input, not an automatic improvement: on futures it splits between contract months and thins at night, so only a side-by-side test on your own bars with equal costs says which reacts better.
By Soren Huang · Published · updated · Editorial policy
Contents
What is the difference between MFI and RSI?
MFI vs RSI comes down to one input: RSI measures the size of recent price changes, while the Money Flow Index weights each bar's typical price by its volume. MFI therefore jumps on volume surges that RSI never sees. Which reaction helps is not fixed; only a side-by-side test on your own futures bars decides it.
RSI (Relative Strength Index) is an oscillator that compares the average size of up-closes with the average size of down-closes over a lookback and maps the result onto a 0–100 scale. MFI (Money Flow Index) is an oscillator that makes the same comparison, but each bar enters the sum as its typical price multiplied by its volume, so a bar with heavy trading counts for more than a quiet bar of the same size. A simple comparison: RSI tells you how far the crowd moved, MFI tells you how far it moved and how many people were in it. Both belong to the oscillator family described in the guide to technical analysis tools and indicators, and the RSI indicator page covers the base indicator in detail, so this article spends its words on what volume changes and how to test it.
My view: volume weighting is a change, not an upgrade. On a stock with one share class, volume is one clean number. On a futures contract, volume belongs to a specific contract month and a specific session, and MFI inherits every quirk of how that volume was recorded.
How is RSI calculated, and what does MFI add to it?
Both indicators turn a ratio of up-moves to down-moves into a 0–100 number with the same final step; they differ in what counts as a move and how the moves are smoothed. RSI, introduced by Wilder (1978), works from the change between one close and the previous close. MFI works from money flow, which is the bar's typical price multiplied by the bar's volume. Typical price is the average of a bar's high, low and close.
The steps line up like this:
- Measure each bar. RSI takes close minus previous close. MFI takes typical price times volume.
- Sort bars into up and down. RSI uses the sign of the close change. MFI compares this bar's typical price with the previous bar's typical price; a higher typical price makes the whole money flow positive, a lower one makes it negative.
- Add up the two groups over the lookback. RSI uses Wilder smoothing, which is an exponential average that adds each new bar with a weight of one divided by the lookback, so old bars fade slowly. MFI uses a plain sum over the lookback, so a bar drops out completely once it leaves the window.
- Form the ratio and scale it. Both divide the up total by the down total and apply the same scaling, shown once below.
index = 100 − 100 ÷ (1 + ratio)
Here ratio is the up total divided by the down total over the lookback, and index is the RSI or MFI value. A ratio of 1 (up and down equal) gives 50; a ratio that grows without limit pushes the index toward 100; a ratio near zero pushes it toward 0.
| Step | RSI | MFI |
|---|---|---|
| Input per bar | Close minus previous close | Typical price × volume |
| Up or down bar | Sign of the close change | Typical price above or below previous typical price |
| Smoothing over lookback | Wilder smoothing (old bars fade) | Simple sum (old bars drop out) |
| Final step | 100 − 100 ÷ (1 + ratio) | 100 − 100 ÷ (1 + ratio) |
| Output scale | 0–100 | 0–100 |
The practical consequence is that one bar can dominate MFI. In RSI, a bar can contribute at most its own price change. In MFI, a bar with five times the usual volume contributes five times as much as a bar of the same size, and because the sum is not smoothed, it enters at full weight and leaves at full weight when the window moves past it.
Hypothetical example
Over 14 bars, the up-closes add to 30 points and the down-closes add to 20 points. The ratio is 1.5, so RSI = 100 − 100 ÷ 2.5 = 60. Now suppose one of the up bars carried three times normal volume. In money-flow units the positive total might be 120 and the negative total 60. The ratio is 2, so MFI = 100 − 100 ÷ 3 ≈ 67. Same prices, one heavy bar, and MFI sits seven points higher. When that bar leaves the 14-bar window, MFI drops back in one step while RSI, which never saw the volume, does not move.
What thresholds are normally used for MFI and RSI?
RSI is usually read against 70 and 30, and MFI against 80 and 20, because MFI swings wider on the same bars and would cross 70/30 far more often. Wilder (1978) proposed 70/30 for RSI with a 14-bar lookback, and most charting platforms ship RSI that way. The 80/20 convention for MFI is a practical adjustment: volume multiplies the bar contributions, so the ratio moves further from 1 and the index spends more time near the edges.
| Setting | RSI | MFI |
|---|---|---|
| Common lookback | 14 bars | 14 bars |
| Overbought line | 70 | 80 |
| Oversold line | 30 | 20 |
| Midline | 50 | 50 |
| Why the gap | Price change only; moderate swings | Volume multiplies swings; wider range |
A threshold is a rule parameter like any other, so the textbook value is a starting point for the test, not the answer. Two things to check before you keep a threshold:
- Neighbouring values behave alike. If 80/20 works and 75/25 and 85/15 both fail, the result depends on one lucky line. Test a small grid around the default and look for a region, not a point.
- The indicator does not stay pinned in trends. In a strong trend both oscillators can sit above their overbought line for many bars while price keeps rising; what a reading stuck at the extreme means, and how to test it, is covered in what it means when KD or RSI stays overbought. The same logic applies to MFI, with the added twist that a volume surge at a trend top can keep MFI pinned even longer.
Why is volume a problem for MFI on futures?
Futures volume belongs to one contract month and one session, so the same MFI rule gives different readings on different data series built from the same market. Rollover is the point where traders move from the expiring contract month to the next one, and in that week the front month's volume drains away while the next month's volume rises to replace it. A continuous contract is a series stitched from successive contract months so that a backtest can run across years; how it is stitched decides what volume MFI sees.
Three situations change MFI without changing price:
- Roll week. A series that follows the front month until expiry shows volume collapsing for several days before the switch. Money flow shrinks with it, so a normal price move produces a small MFI change, and the first bars after the switch carry a sudden jump in volume. A series that rolls when volume crosses over sees a much smoother volume path, and the two MFI lines diverge for about a week. The timing of these switches for Nasdaq futures, which follow the same quarterly cycle as ES, is explained in when NQ contract rollover happens and how it affects a backtest.
- Night session. Volume in the overnight hours is a small fraction of the day session. On full-session bars, MFI is built from a mix of heavy day bars and light night bars, so a modest day move outweighs a large night move. On day-only bars this mix disappears. A rule tested on one session layout behaves differently on the other.
- Standard and micro contracts. ES and MES are separate contracts with separate volume. Their prices track the same index, but a volume-weighted indicator computed from MES data is not the same series as one computed from ES data, even on the same day and bar size.
The response is procedural rather than mathematical. Build the test on the exact series you will trade: same continuous-contract method, same session template, same contract. Then compare MFI readings in roll weeks with the rest of the history; if roll-week readings generate a disproportionate share of the signals, add a check of how the rule performs with those weeks excluded. RSI is unaffected by all three issues, which is itself one reason it may test better on a given futures series: it has fewer ways to be wrong about the data.
Can MFI and RSI be used together?
Yes, and the common way is to use one as a confirmation filter for the other, but the filter removes trades, so the pair must earn its place against each indicator alone on the same data. A confirmation filter is a second condition that must be true before a signal from the first indicator is taken. Requiring RSI below 30 and MFI below 20 at the same time keeps only the bars where both agree.
The pair is popular because the two indicators disagree for a reason: when price falls on light volume, RSI reaches oversold and MFI does not, and the idea is that the light-volume drop is less likely to be a real exhaustion. That is a hypothesis about your market, and it has the same status as any other filter, including a candlestick pattern used as confirmation; the test of bullish and bearish candlestick patterns shows the same trade-off between fewer signals and a higher bar for each one. A third oscillator added for "more confirmation" makes the trade count smaller again, and each oscillator brings its own lag; the Hilbert oscillator guide measures that lag for a cycle indicator and the method applies here too.
Judge the pair on three numbers, all after costs and all on the same bars:
- Trade count. The pair will have fewer trades than either indicator alone. Fewer trades mean a less certain average.
- Average trade after costs. This is where the filter has to show its value: the trades it keeps should be better, not just fewer.
- Net result and drawdown. A higher average on far fewer trades can still mean less total result and a similar drawdown.
Hypothetical example
On the same out-of-sample bars, RSI alone gives 300 trades at $40 average after costs, which is $12,000. MFI alone gives 250 trades at $45, which is $11,250. The pair gives 120 trades at $70, which is $8,400. The pair has the best average trade and the smallest total. With only 120 trades, the $70 average is also the least certain of the three; a difference of $25 per trade over 120 trades can be noise. Whether the pair is worth keeping depends on which number you decided in advance to rank by.
Which tests better on futures, MFI or RSI?
Neither indicator tests better in general; the one that tests better on your ES bars is found by running both with identical settings and choosing by out-of-sample average trade after costs. A fair comparison changes only the indicator and holds everything else fixed, which is the discipline Pardo (2008) describes for evaluating strategies: the result must come from the rule, not from a difference in the test conditions.
- Same ES bars and session. One data series, one continuous-contract method, one session template, for every run.
- Same lookback and thresholds. RSI 14 with 70/30, MFI 14 with 80/20, then the same small grid of neighbours for each.
- Same costs and execution. One commission figure, one slippage figure, and next-bar execution for all runs, so no version benefits from fills it could not have had.
- One split date, written down before the run. Tune on the earlier part, grade on the later part, as laid out in how to split in-sample and out-of-sample data.
- Compare the out-of-sample columns. Average trade after costs and trade count for RSI, MFI and the pair.
Step 3 is the one most often skipped, because costs feel like a detail to add at the end. They are not: an oscillator rule on ES trades often, and a few dollars of slippage per side decide whether the average trade is positive. When AlphaPrime (Valynox) runs an RSI version and an MFI version, each candidate is charged the same commission and slippage and filled on the next bar inside backtesting, so the two columns you compare were produced under one set of rules rather than two.
To show what a kept candidate's report looks like, and which parts to compare between an RSI version and an MFI version, here is a real run. It did not test MFI or RSI. It tested a stand-in rule built from a standard indicator, Bulls Power, as its only entry and exit on ES daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, with no stop, target or filter. From 1,024 tried candidates, this is the keeper, chosen on its return-to-drawdown balance.
Source: AlphaPrime product engine (CPU), run 2026-10-31. ES daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $25 slippage per trade.
| Number | Result |
|---|---|
| Net profit (closed trades) | $98,870 |
| Max drawdown | $62,462.5 |
| Trades | 249 |
| Win rate | 57.03% |
| Profit factor | 1.283 |
| Average trade | $397.07 |
| Time in market | 72.45% |
Read this table as a template, not as a result for MFI or RSI. The figures belong to one candidate kept out of many, and picking the best after the fact flatters it: Bailey et al. (2014) show that the best backtest out of a large set carries a selection bonus that the next period does not repeat. The columns to put side by side when you run your own RSI and MFI versions are the average trade (here $397.07 against $45 of costs per trade), the trade count (249, enough to make the average meaningful but not large), and the maximum drawdown ($62,462.5, which is large relative to the net profit for a one-contract rule with no stop). Neither this rule nor any indicator earned that money in a sense a reader can expect; it is what one kept candidate looked like on that history.

Your next step is a single afternoon of work: load the ES series you would trade, write down a split date, run RSI 14 at 70/30 and MFI 14 at 80/20 as the only entry and exit with your real commission and slippage, and read the out-of-sample average trade for each. If MFI is ahead, rerun it with the roll weeks excluded and see whether it stays ahead; if RSI is ahead, the volume on your series was not adding information, and you can stop there.
Frequently asked questions
Is MFI better than RSI?
Not in general. MFI is RSI with each bar weighted by volume, so it reacts to volume surges that RSI ignores. Whether that reaction helps depends on whether the volume on your series carries information; on futures, volume splits between contract months and thins out at night, which can add noise. Run both on the same bars with the same costs and compare the out-of-sample average trade.
What are the standard settings for the money flow index?
The common default is a 14-bar lookback with overbought at 80 and oversold at 20. The lines sit wider than RSI's 70/30 because volume multiplies the bar contributions and makes MFI swing further. Treat 14 and 80/20 as a starting grid and check that neighbouring values give similar results before you keep them.
Does the MFI indicator work on futures without reliable volume?
MFI needs a volume figure for every bar, and it reads whatever volume the data series contains. On futures, volume depends on which contract month the series follows, how it was rolled, and which session the bars cover, so the same rule gives different readings on different series. Test MFI on the exact series you will trade, and compare its readings in roll weeks with the rest of the history.
What does it mean when MFI and RSI disagree?
A disagreement usually means price moved on unusual volume. If price falls and RSI reaches oversold while MFI does not, the drop happened on light volume; if MFI reaches an extreme first, a few heavy bars drove it. Traders use the disagreement as a filter, but whether the agreeing trades are better than the full set is a test result on your data, not a rule.
References
- Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.

