Skip to main content
On this page

Market Facilitation Index: Formula, Color States, and TradingView Setup

· 6 min read
Pineify Team
Pine Script and AI trading workflow research team

The Market Facilitation Index, often written BW MFI, divides a bar's high–low range by its volume. Bill Williams used changes in this ratio together with changes in volume to classify market activity. The calculation does not identify institutional orders, determine price direction, or establish that a breakout will succeed.

Market Facilitation Index Indicator - TradingView

Calculation and Four Conditions​

The MetaQuotes indicator reference gives the calculation as the high minus the low, divided by volume. Compare that ratio with the previous bar's ratio, and compare current volume with previous volume. These are two separate comparisons.

Pineify's implementation uses these conditions and default colors:

Ratio changeVolume changePineify colorState label
RisingRisingGreenGreen
FallingFallingBlueFade
RisingFallingGrayFake
FallingRisingRedSquat

The ratio is range per unit of volume, not raw range. For example, in a hypothetical pair of bars, range rising from 2 to 3 while volume doubles from 100 to 200 makes the ratio fall from 0.02 to 0.015. That is a squat condition despite the larger raw range. It is also not a comparison of closing-price direction: a green MFI state can occur on a down-close candle.

Color conventions vary between implementations. Use the condition definitions rather than assuming every platform uses Pineify's palette. If either change is exactly zero, none of the four strict rising/falling combinations applies. Missing volume, zero volume, or a zero prior ratio can also prevent a meaningful comparison.

What Pineify Plots​

The reviewed Pineify version is a chart overlay that draws colored circles below price. Its output labeled MFI is the marker's price coordinate, calculated as low minus low multiplied by the offset. It is not the numerical range-to-volume ratio. Use the Green Bar, Fade Bar, Fake Bar, and Squat Bar Boolean outputs when building conditions from these classifications.

The default offset is 0.005, which places a marker 0.5% below a positive low price. It is a fraction in the implementation, despite the percentage wording in the input label. Changing the offset moves the marker; it does not alter signal sensitivity. The configured circle width defaults to 4.

Add and Verify the Indicator​

Select Market Facilitation Index in Pineify, inspect the inputs, and generate the script. Open TradingView's Pine Editor from the right toolbar, paste and save the script, and add it to a chart. Resolve any errors and confirm your account has access to the selected Pineify feature.

How to search for and add indicator pages in the Pineify editor

For a basic calculation check, choose two completed bars with positive volume and nonzero ranges. Calculate each range divided by volume, compare both quantities, and check the displayed color. Repeat for an equal-volume bar and a session boundary. This verifies the interpretation more directly than judging whether the circles look useful on a winning chart.

Interpret Activity Without Inventing Direction​

A green state shows that both the ratio and volume increased. A fade state shows both decreased. “Fake” and “squat” are conventional labels for the remaining combinations; they are not proof of a trap, manipulation, accumulation, or distribution.

A squat state can motivate examination of the surrounding range, but it does not say which side will break. If a proposed strategy buys a breakout after such a state, the breakout definition supplies the direction. The MFI condition itself does not.

Similarly, On-Balance Volume or another price-and-volume indicator does not reveal the identity or intent of the traders involved. An additional indicator can be a testable filter, but correlated inputs are not independent confirmation by default.

Volume and Timeframe Limits​

Establish what the chart's volume field represents: traded units, contracts, exchange-specific volume, or tick activity. Different markets and data feeds can have different meanings and coverage. A daily interval does not automatically make the source more complete or its signals more reliable.

During an unfinished bar, high, low, and volume can change, so the classification can change too. Use completed-bar conditions if your research assumes completed information. Compare the same instrument, feed, session, and timeframe throughout the test; absolute ratio values are not directly comparable across arbitrary assets or volume units.

Design a Test Before Counting Wins​

One research hypothesis is a breakout following a squat bar. Specify the setup on a completed bar, the range boundary that triggers an order, how long the order remains active, an initial stop, position sizing, and an exit. These are proposed rules, not a strategy with a demonstrated win rate.

Compare the breakout rule with and without the MFI filter using the same dates and execution model. Include fees, spread, slippage, and unfilled orders. Track sample size, net results, drawdown, exposure, and the trades the filter excludes. Use a later period that was not involved in selecting the rule.

TradingView's strategy documentation explains how orders are simulated. An indicator overlay alone does not produce a Strategy Tester result, and a stop order does not guarantee a fill exactly at its trigger during a gap.

Pineify Website
The Best Pine Script Generator
Is Market Facilitation Index the same as Money Flow Index?

No. BW MFI uses range divided by volume. Money Flow Index is a separate bounded oscillator based on typical price and volume. Their shared abbreviation does not make the signals interchangeable.

Does green mean the price is rising?

No. It means the range-to-volume ratio and volume both increased from the preceding bar. Closing-price direction is a separate observation.

Why does changing the offset not change signal frequency?

In Pineify, the offset changes the plotted marker's distance below the low. It is not a threshold in the state calculation.

Which timeframe has the best win rate?

This guide provides no measured win-rate ranking. Results depend on the complete trading rule, feed, costs, and evaluation period.