거래량 MomentumVolumeMean Reversion Builder에서 사용 가능

Money Flow Index (MFI)

MFI

MFI reads like RSI on a 0–100 scale but weights every price move by the volume behind it. That makes it a way to ask whether a move has participation — with one large caveat in FX, where the volume MT5 supplies is tick count rather than traded size.

Default period
14
Common levels
80 / 20
Indicator range
0–100
OverboughtOversoldCentreline 50Divergence

예시용 — 합성 데이터로, 실시간 호가가 아닙니다.

What MFI tells you

MFI splits each bar's typical price move into positive or negative money flow, multiplies it by that bar's volume, and expresses the balance on a 0–100 scale. The intuition is that a move backed by heavy participation matters more than the same move on a quiet bar.

  • Above 80: buying flow has dominated the window
  • Below 20: selling flow has
  • Around 50: participation is balanced between the two sides
  1. 1 Multiply typical price by volume for each bar
  2. 2 Split into positive and negative flow
  3. 3 Express the ratio on a 0–100 scale
공식 및 계산 세부 정보 표시

MFI weights each bar’s price movement by the volume that accompanied it:

  1. Compute the typical price of each bar: TP = (High + Low + Close) / 3.
  2. Multiply by the bar’s volume to get raw money flow: MF = TP × Volume.
  3. Classify it. If today’s typical price is higher than yesterday’s, the flow is positive; if lower, negative.
  4. Sum positive and negative flow separately over the period, form their ratio, and convert to a bounded index: MFI = 100 − (100 / (1 + positive flow / negative flow)).

That last step is identical in form to RSI’s — which is why the two look so similar and why MFI is often described as a volume-weighted RSI. The differences are upstream: MFI is built on typical price rather than the close, and each bar’s contribution is scaled by how much trading happened during it.

The scaling is where the practical caveat lives. On an exchange-traded instrument, volume is contracts changing hands. In retail FX there is no central exchange, so MT5 supplies tick volume — how many times the price changed during the bar. That tracks activity reasonably well, but it is a different quantity, and it varies between brokers because it depends on their price feed.

In MQL5 the call is iMFI(symbol, period, ma_period, applied_volume) and it returns a handle to a single buffer. The last argument is a volume type (VOLUME_TICK or VOLUME_REAL), not an applied price — there is no price selector, because typical price is part of the definition.

One consequence of the shared shape is worth stating: sharing a scale with RSI does not mean sharing its thresholds. MFI is conventionally read at 80 and 20 rather than 70 and 30 precisely because the volume weighting changes how far the readings travel. The Ultimate Oscillator is the same lesson taken further — it runs 0 to 100, is drawn with RSI’s own 70 and 30 lines, and measured across identical series spends 1.13% of its time above 70 where RSI(14) spends 4.94%. Whenever two oscillators share a range, the thresholds still have to be measured rather than assumed.

신호

MFI이 제공하는 백테스트 가능한 뚜렷한 신호 — 및 각 신호에 적합한 시장 상황.

Overbought / Oversold

Builder로 구현 가능
조건
MFI moves above 80 or below 20
최적 시장 상황
Ranging markets
일반적인 사용
Fade the extreme — with a volatility or trend filter

Centreline Cross

Builder로 구현 가능
조건
MFI crosses 50
최적 시장 상황
Trending markets
일반적인 사용
Flip flow bias without waiting for an extreme

Divergence

고급 로직
조건
Price makes a new extreme, MFI does not
최적 시장 상황
Trend exhaustion
일반적인 사용
Read a move that price is making without participation

Failure to Confirm

고급 로직
조건
A breakout in price with MFI staying mid-range
최적 시장 상황
Breakout filtering
일반적인 사용
Question a break that nobody joined

MT5 구현

MetaTrader 5가 실제로 계산하고 그리는 내용 — 이 페이지의 모든 규칙이 기준으로 삼는 사양입니다.

버퍼

인덱스 버퍼 MT5 표시 방식 저장 값
0 MAIN_LINE Line The MFI value, 0–100. One buffer only — there is no signal line.

플랫폼 참고

가장 잘 작동하는 경우 / 주의해서 사용

어떤 지표도 보편적인 우위를 가지지 않습니다. MFI이 도움이 되는 곳 — 그리고 오해를 일으키는 곳.

가장 잘 작동하는 경우

  • Instruments with meaningful volume
  • Ranging markets
  • As a participation cross-check
  • With a volatility filter

주의해서 사용

  • FX, where volume is tick count
  • Extremes as standalone entries
  • Strong one-way trends
  • Comparing MFI across brokers

MFI 전략 구축

신호를 진입 및 청산 규칙에 연결하고, 컴파일 가능한 MT5 EA를 내보내세요 — 코드 없이.

  1. MFI (14)
  2. Fast StdDev (10) below slow StdDev (40)
  3. MFI below 20 in a quiet market → Open Buy · SL 40 / TP 80
  4. MFI above 80 in a quiet market → Open Sell

MFI을 다른 지표와 결합

하나의 지표만으로는 충분하지 않습니다. 이 조합들이 MFI의 취약점을 보완합니다.

MFI + Standard Deviation

  1. MFI below 20
  2. Fast StdDev below slow
  3. Buy
이유
Only fade a flow extreme while dispersion is contracting, because mean reversion needs a market that is not expanding away from you
최적 시장 상황
Ranging
이 전략 구축 →

MFI + RSI

  1. RSI < 30
  2. MFI > 40
  3. Question the signal
이유
Compare a volume-weighted reading against an unweighted one — when they disagree, the difference is participation
최적 시장 상황
Either regime

No single-flow template pairs MFI with RSI. Start from MFI + StdDev and add an RSI node with its own Compare.

Builder 열기 →

MFI + Bollinger Bands

  1. Price at lower band
  2. MFI below 20
  3. Buy
이유
Require price to be statistically stretched at the same moment flow is one-sided, so two independent conditions have to agree
최적 시장 상황
Ranging

No single-flow template pairs MFI with Bollinger Bands. Start from MFI + StdDev and add band nodes with a Price node into a Compare.

Builder 열기 →

매개변수

자신의 통화쌍과 시간 프레임에서 검증할 초기값 — 보장된 설정이 아닙니다.

매개변수 기본값 권장 테스트 범위 기능
Period 14 7–30 How many bars of money flow are summed. 14 mirrors RSI's default; longer periods make extremes rarer and more meaningful.
Overbought / Oversold 80 / 20 70–90 / 10–30 Your levels, not indicator inputs — iMFI has no threshold argument. Note these are wider than RSI's conventional 70/30.
Volume type Tick volume Tick / Real Which volume feeds the weighting. VOLUME_REAL exists in MQL5 but most FX brokers do not supply it, so VOLUME_TICK — the number of price changes — is what you get in practice.
Shift 0 0–3 Which bar back the value is read from. Shift 1 compares against a fully closed bar.

초기 프리셋

Reactive 7 Frequent extremes
Standard 14 The Builder template's baseline
Smooth 28 Rare, swing-level readings

시장 예시

MFI이 작동하는 곳, 실패하는 곳, 그리고 필터가 결과를 어떻게 바꾸는지.

성공

Flow extreme in a quiet market

MFI drops under 20 while dispersion is contracting, and the fade back toward the middle plays out — the configuration the template trades.

실패

Extreme during an expansion

MFI hits 20 as the market accelerates away. The reading is correct — flow really is one-sided — and fading it means standing in front of the move.

필터링됨

Dispersion filter suppresses the trade

The same extreme appears while the short-window standard deviation is above the long one, the entry is skipped, and the move continues.

FAQ

Is MFI just RSI with volume?
Close, but two things differ. MFI weights each bar's flow by volume, and it is defined on typical price rather than the close. Where the two disagree, the gap is telling you that the price move and the participation behind it are not aligned — which is the whole reason to run MFI instead of RSI.
Does MFI work in forex?
With a caveat. FX has no central exchange and most brokers report tick volume — the number of price changes in a bar — rather than traded size. That is a reasonable activity proxy and MFI remains usable, but the readings are broker-specific and 'money flow' is a metaphor rather than a measurement. On instruments with real exchange volume the indicator does what its name says.
Why are the levels 80 and 20 instead of 70 and 30?
Convention, and it reflects that MFI moves further than RSI on the same data because the volume weighting amplifies active bars. They are your levels either way — iMFI takes no threshold argument — so test them rather than inheriting them.
Can I use real volume instead of tick volume?
MQL5 supports it: iMFI takes an applied-volume argument that accepts VOLUME_REAL. Whether you get anything back depends on the broker and the instrument. On most retail FX feeds real volume is absent or zero, which is why the Builder uses VOLUME_TICK.
Can I build an MFI EA without coding?
Yes for level rules and centreline crosses — one MFI node plus a Compare, with the period as an EA input. The MFI + Standard Deviation template also shows the dispersion filter that makes a fade survivable. Divergence and 'a breakout with no participation' are the exceptions and need custom MQL5.
How should I validate settings before going live?
Backtest on quality tick data first, then run the EA on a demo account before risking money. With MFI specifically, remember the tick-volume caveat — a strategy tuned on one broker's tick counts may behave differently on another's. When optimising, hold back data the search never saw.

Glossary

핵심 용어