
The Start Bots Signal category describes signals and indicators that can start a trading bot. One of the technical indicators is MFI (Money Flow Index).
When creating or editing any bot, there is a Start signal builder block at the bottom of settings. You can choose individual indicators, ready-made presets, and their combinations. Conditions are grouped: AND inside a group, OR between groups. The same indicator can be configured in different ways - for Long and Short, for breakouts and bounces, for level comparisons and for crosses.
What is MFI
MFI (Money Flow Index) is a technical analysis oscillator developed by Gene Quong and Avrum Soudack. It measures the strength of money flowing into or out of an asset and plots the result on a scale from 0 to 100, like RSI. The key difference: every price change is multiplied by trading volume, so MFI shows not only momentum direction but how strongly it is backed by real money.
Values below 20 are traditionally treated as oversold; above 80 as overbought. Thresholds are stricter than RSI (30/70) because the volume filter removes some “empty” moves. In the ELIXOAI start signal builder, MFI is used as an automatic bot start condition: when the indicator reaches a set level or crosses it, the bot can open a new grid or trade sequence.
MFI works best on liquid pairs where volume reflects real participation. On thin altcoins with irregular volume, signals can be noisier - consider a higher timeframe or combine MFI with a trend filter or CMF.
MFI vs RSI: what is the difference
MFI is often called a volume-weighted RSI - the formula is similar, but volume is included in the calculation. Both oscillators range from 0 to 100 and help find overbought and oversold zones, but signal interpretation differs:
- RSI compares price gains and losses only. A rise without volume can push RSI up just like a rise with strong money inflow.
- MFI includes volume: if price rises but volume falls, MFI may not confirm “overheating” - the signal is weaker or lags.
- Levels: MFI classic is 20/80; RSI is 30/70. An MFI extreme below 20 or above 80 is often considered stronger because volume confirms it.
- MFI divergences with price are often viewed as more reliable than RSI divergences: “price higher, MFI lower” means a rise without money inflow.
How MFI works
MFI is built on typical price and volume. Over the chosen period, positive and negative money flow are summed, then a ratio is computed and normalized to a 0–100 scale.
- Typical Price = (High + Low + Close) / 3 - the average price of the candle.
- Raw Money Flow = Typical Price × Volume. If typical price rose vs. the previous candle, flow is positive; if it fell, negative.
- Money Flow Ratio = sum of positive flow over N periods ÷ sum of negative flow over the same N periods.
- MFI = 100 − (100 ÷ (1 + Money Flow Ratio)). The result is a 0–100 oscillator similar to RSI, but volume-weighted.
When positive money flow strongly dominates, MFI moves toward 100. When negative flow dominates, it moves toward 0. A reading of 50 reflects rough balance between inflow and outflow over the period.
In the ELIXOAI builder you set a comparison condition: “MFI less than 20,” “MFI greater than 80,” “MFI crosses above 20,” and so on. The system fetches live MFI from the exchange via TAAPI and checks the condition on your timeframe - at candle close or every minute.
Period parameter
- Range: 2 to 300.
- Default: 14 - the standard setting, matching classic RSI(14) and suitable for most timeframes.
- Short period (5–9): faster MFI, more signals, more noise. Useful on 5m–15m for scalping if you accept more false starts.
- Long period (21–50): smoother MFI, fewer extremes. Better for 1h–4h swing trading - fewer but often stronger signals.
Period is always tied to the selected timeframe: MFI(14) on 5m and MFI(14) on 4h are different indicators with different sensitivity. When you change the interval, revisit both thresholds (20/80) and period.
Ready-made presets in the builder
The builder offers two ready-made MFI presets. Each can be customized: different operator, level, period, or timeframe. Both presets support all six operators, including crosses of levels 20 and 80.
MFI < 20 - Long (mfi_value)
Default condition: MFI value less than 20 on the selected timeframe (15m interval, period 14, check at bar close).
A Long signal on strong volume-confirmed oversold conditions. The bot starts when money flow is “dry” - selling dominated with enough volume. Fits counter-trend setups: bounce after a sharp drop, DCA grid entry on a pullback. You can soften to MFI < 25 or tighten to MFI < 15.
MFI > 80 - Short (mfi_value_down)
Default condition: MFI value greater than 80 on the selected timeframe (15m interval, period 14, check at bar close).
A Short signal on volume-confirmed overbought conditions - the mirror of the Long preset. The bot starts when money inflow has “overheated” the asset. Often used for short grids at local peaks or overbought fades in a range. In a strong bull trend MFI can stay above 80 for a long time.
Operators for both presets
Presets mfi_value and mfi_value_down default to level comparison, but you can switch any of the six operators and set target 20, 80, or another value:
- Less than (lt): MFI strictly below the level right now. Base Long - MFI < 20: oversold with volume confirmation.
- Greater than (gt): MFI strictly above the level. Base Short - MFI > 80: overbought with money inflow.
- Less or equal (lte): MFI at or below the threshold. Useful for filter “MFI ≤ 20” - allows touching the oversold zone.
- Greater or equal (gte): MFI at or above the threshold. Filter “MFI ≥ 80” for Short or “MFI ≥ 50” on a higher timeframe for trend context.
- Crosses above (cross up): MFI was below the level and moved above. Classic Long - cross up 20: leaving oversold. Softer than strict MFI < 20 and produces more signals.
- Crosses below (cross down): MFI was above the level and dropped below. Short signal - cross down 80: leaving overbought. Useful for entry after a local peak when money flow turns down.
Key MFI levels
- 20 - oversold zone; Long via mfi_value or cross up 20. Volume-confirmed “impulse low.”
- 50 - neutral line; above 50 inflow dominates, below 50 outflow dominates. Use as a higher-timeframe filter (MFI 4h > 50 for Long).
- 80 - overbought zone; Short via mfi_value_down or cross down 80. “Overheated” signal with money inflow.
Levels 20 and 80 are MFI standard (vs. 30/70 for RSI). For aggressive entry use lt 20 / gt 80; for softer entry use cross up 20 / cross down 80.
General builder settings
- Timeframe (interval): 1m, 5m, 15m, 30m, 1h, 4h, 1d. Shorter intervals give more signals but more noise. Swing bots often use 1h–4h; scalping uses 5m–15m.
- Check mode: At candle close checks after the candle closes - fewer false triggers. Every minute checks inside the current candle - faster reaction, higher false-start risk.
- Operator: greater than, less than, crosses above, crosses below, greater or equal, and others define how the indicator value is compared to the target.
- Target value: a number (e.g. 30 for RSI), an indicator line (e.g. %D for Stochastic), or price (for Bollinger Bands).
- Condition groups: up to 3 groups with up to 5 conditions each. Example: group 1 - RSI < 30 AND price < lower band; group 2 - Stochastic < 20. The bot starts if group 1 OR group 2 is satisfied.
Setup examples for different strategies
Scalping on 5m–15m
Goal: frequent starts on short impulses with volume confirmation.
Long: mfi_value preset with cross up operator, target 20, 5m or 15m timeframe, period 9, check at candle close.
Short: mfi_value_down with cross down 80, same settings.
Filter: MFI on 1h not below 40 for Long - avoid bounces against higher-timeframe outflow.
Swing on 1h–4h
Goal: fewer but more meaningful moves with confirmed money flow.
Long: mfi_value, 4h interval, period 14, MFI < 20, check at close.
Short: mfi_value_down, MFI > 80 on 4h.
For a DCA bot on trend pullbacks, cross up 20 on 1h often works better - fewer false entries during ongoing drops.
Counter-trend from extremes
Goal: enter on “overheated” or “oversold” price expecting a revert.
Long: MFI < 15 (period 14, 15m) AND close below the lower Bollinger Band on the same interval.
Short: MFI > 85 AND price above the upper BBands line.
Use check at bar close to ignore intrabar noise.
Cross above 20 / cross below 80
Goal: catch the moment of leaving an extreme, not the extreme itself.
Long: MFI crosses above 20 on 15m, period 14 - oscillator was oversold and is recovering.
Short: MFI crosses below 80 on 15m.
Works well for trend pullbacks: price in an uptrend corrects, MFI dips toward 20 and recovers - the bot catches continuation with volume.
Trend filter
Goal: Long only in bullish context, Short in bearish.
Long: MFI cross up 20 on 15m AND MFI on 4h greater than 50 (separate MFI condition, operator “greater than,” target 50, period 14).
Short: MFI cross down 80 on 15m AND MFI on 4h less than 50.
This avoids buying every MFI bounce in a global downtrend without money inflow.
MFI + RSI
Long: MFI < 20 on 15m (period 14) AND RSI < 30 on the same 15m - momentum and volume aligned: both oscillators oversold.
Short: MFI > 80 AND RSI > 70.
Alternative: MFI cross up 20 AND RSI cross up 30 - double confirmation of leaving oversold. If RSI is overbought but MFI is not, the rise may be “empty.”
MFI + CMF
Long: MFI cross up 20 on 15m AND CMF cross up 0 on 15m - oscillator and Chaikin money flow turn up together.
Short: MFI cross down 80 AND CMF cross down 0.
Filter: CMF > 0.05 on 4h AND MFI < 25 on 15m - higher timeframe shows accumulation, lower catches local oversold.
MFI + price
Long: MFI < 20 on 15m AND close below EMA 50 on the same 15m - oversold on a pullback in trend or near support.
Short: MFI > 80 AND price above EMA 50.
Mean-reversion: MFI < 20 AND price below the lower Bollinger Band (20, 2) - classic bounce from extreme with volume confirmation.
Divergence concept
Bullish divergence: price makes a lower low but MFI makes a higher low - selling not confirmed by volume, reversal up possible. Set cross up 20 on 1h after such a pattern.
Bearish divergence: price higher, MFI lower - rise without inflow. Short: cross down 80 or MFI > 80 followed by cross down 80 on 15m.
The builder does not detect divergences automatically - use crosses and levels as proxies for flow shifts.
Multi-timeframe
Long: MFI on 4h ≥ 50 (separate condition, gte, period 14) AND MFI cross up 20 on 15m.
Short: MFI 4h ≤ 50 AND MFI cross down 80 on 15m.
This avoids buying every local MFI spike against global outflow on the higher interval.
DCA grid on a pullback
Long: mfi_value MFI < 20 on 1h, period 14, check at close - start grid on sustained volume-confirmed oversold.
Enhancement: add CMF > −0.05 on 4h - outflow is not catastrophic, bounce possible.
Short grid: MFI > 80 on 1h AND CMF < 0 on 4h - overbought with confirmed distribution.
Condition groups: practical example
A bot with two Long scenarios:
Group 1: MFI cross up 20 on 15m AND MFI 4h > 50 - trend pullback with inflow.
Group 2: mfi_value MFI < 15 on 15m AND RSI < 25 - aggressive counter-trend with dual oscillators.
Groups are combined with OR: either scenario can start the bot. Configure Short symmetrically (cross down 80, MFI > 80).
Tip
MFI includes volume: on news spikes and anomalous candles the reading can jump sharply and give a false signal. Use check at bar close and a higher-timeframe filter. If RSI shows overbought but MFI does not, the rise may lack real money inflow - do not rely on RSI alone. In a strong trend MFI can stay above 80 or below 20 for a long time - counter-trend signals often start the bot against the main move. Combine with CMF, the 50 level on 4h, or a price trend filter.