PROTECTED SOURCE SCRIPT
Momentum Flow Fusion

What it is
Momentum Flow Fusion is a non-repainting momentum-and-money-flow oscillator designed for crypto but robust across all markets and timeframes. It fuses an original dual-wave momentum engine with a composite money-flow score, adds adaptive bands, and optionally gates entries/exits with higher-timeframe confirmation, trend, VWAP proximity, and session filters.
What makes it original
Momentum without RSI or WaveTrend clones: The oscillator is built from a detrended price base (TP = H+L+C / 3 minus its EMA). That detrended series is normalized by a rolling z-score and mapped through a logistic function into 0–100. Two independent waves (fast/slow) are derived from this base, producing momentum cross and regime signals without borrowing RSI or open-source WaveTrend code.
Composite FlowScore (multi-factor money flow): Four clean-room components are independently normalized to 0–100, then combined with user-set weights:
MFI (custom): Typical price × volume flows, accumulated over a window and normalized.
CMF: Chaikin-style Close Location Value × volume, then mapped from [-1,1] to [0,100].
OBV-like: Signed cumulative volume (by close-to-close direction), normalized over a rolling min–max.
Signed Delta: Hybrid sign (close-to-close with body fallback), normalized by the rolling sum of absolute deltas (scale-invariant).
This produces a single FlowScore suitable for capital-in/out regimes that adapts to asset volatility.
Adaptive thresholds everywhere: Both the momentum fast wave and FlowScore are surrounded by dynamic bands using rolling mean ± z·stddev, which adjust automatically across regimes rather than relying on fixed levels.
MTF gating on entries and exits: With lookahead_off, the same conditions that qualify a trade on the current timeframe must also be true on a higher timeframe (momentum alignment, FlowScore above/below its mean, and optional EMA trend direction). This reduces false positives and prevents repaint artifacts.
Practical risk filters: Optional VWAP distance guard (skip extended entries far from session VWAP) and session/weekend filters to align with your venue’s trading hours. All signals can be confirmed on bar close only to avoid intrabar flicker.
How it works (concepts)
Momentum Waves (0–100)
Base series: z = (TP − EMA(TP, baseLen)) normalized by rolling mean/std.
FastWave = EMA(z, fastSmooth), SlowWave = EMA(z, slowSmooth).
Logistic mapping: WaveN = 100 · (1 / (1 + e^(−scale · Wave))).
Signals: Fast crossing above Slow with Fast above its mean-band suggests positive momentum regime; inverse for negative.
FlowScore (0–100, weighted)
MFI: Sum of positive/negative money flow (TP×Vol) across mfiLen, normalized to 0–100 by pos / (pos+neg).
CMF: CLV = (2C − H − L) / (H − L), volume-weighted over cmfLen; mapped to 0–100.
OBV-like: Cumulative sign(volume) by close-to-close direction; normalized over rolling min–max.
Delta: Volume times hybrid sign (close-to-close, fallback to body sign); normalized by rolling |delta| sum for robustness.
FlowScore = weighted average of the four normalized components with user-defined weights (internally normalized to sum to 1).
Adaptive Bands
Momentum banding: mean ± z·std of FastWave (0–100).
FlowScore banding: mean ± z·std of FlowScore (0–100).
Bands are used to frame momentum/flow expansions, pullbacks, and mean reversion.
Filters and gating
Trend: EMAfast > EMAslow (long) or EMAfast < EMAslow (short) on both current TF and HTF (optional).
VWAP guard: Reject entries when |Close−VWAP|/VWAP exceeds a threshold (%).
Session: Only allow signals within configured hours; optional weekend filter.
Confirm-on-close: All entries/exits can be gated to trigger only on confirmed bars.
How to use it
Long bias setup:
FastWave crosses above SlowWave and remains above it.
FlowScore > its mean (or above its upper band for aggressive continuation).
Optional: EMAfast > EMAslow (trend), VWAP distance within threshold, MTF gating true on HTF.
Entry: On the bar close when conditions align (if confirm-on-close is enabled).
Exit: Opposite momentum cross (Fast below Slow), FlowScore falling below mean, or trend flip; exits can also be MTF-gated.
Short bias setup: Mirror the long logic.
Interpreting FlowScore:
Sustained readings above its mean signal net capital inflow; below signal outflow.
Use adaptive bands to identify expansion (above upper band), consolidation (inside bands), and reversion (pullbacks to mean).
Tuning by market/timeframe:
Crypto intraday (scalping): baseLen 21–34, fastSmooth 3–5, slowSmooth 8–12, bandZ 1.2–1.5, mtfTf = 60–240.
Swing (any market): baseLen 34–55, fastSmooth 5–8, slowSmooth 14–21, bandZ 1.5–2.0, mtfTf = D or W.
Flow weights: Increase wDelta and wOBV for perp-heavy or derivatives-driven markets; increase wMFI and wCMF for spot-dominant venues.
Alerts: Enable long/short entry/exit alerts to integrate with automation. For the cleanest behavior, keep confirm-on-close enabled.
Why it’s closed-source
This script implements an original, clean-room momentum oscillator (detrended price → z-score → logistic 0–100 mapping) and an original composite money flow build (MFI/CMF/OBV-like/Delta individually normalized with robust scalers and weighted into a single FlowScore), plus adaptive banding and strict MTF gating on both entries and exits. It does not reproduce open-source WaveTrend/RSI or imported library logic, and it’s engineered to avoid repainting and reduce overfitting through robust normalization and gating. The protected source preserves these design choices and optimization work.
Best practices and tips
Always evaluate with confirm-on-close to avoid intrabar noise.
Use MTF gating in trending environments; consider disabling in very low timeframe scalps where responsiveness is critical.
If you get too few signals, reduce bandZ and/or relax the trend/VWAP filters; if too many, raise bandZ and/or tighten the VWAP threshold.
Keep weights simple (e.g., 0.4/0.3/0.2/0.1) and adjust slowly. Over-tuning weights to a single asset/timeframe can reduce generalization.
Limitations
Volume-derived components can behave differently across venues (spot vs derivatives); re-tune weights accordingly.
Extremely illiquid symbols or gaps may distort rolling normalizations; widen windows or rely more on momentum waves in those cases.
Momentum Flow Fusion is a non-repainting momentum-and-money-flow oscillator designed for crypto but robust across all markets and timeframes. It fuses an original dual-wave momentum engine with a composite money-flow score, adds adaptive bands, and optionally gates entries/exits with higher-timeframe confirmation, trend, VWAP proximity, and session filters.
What makes it original
Momentum without RSI or WaveTrend clones: The oscillator is built from a detrended price base (TP = H+L+C / 3 minus its EMA). That detrended series is normalized by a rolling z-score and mapped through a logistic function into 0–100. Two independent waves (fast/slow) are derived from this base, producing momentum cross and regime signals without borrowing RSI or open-source WaveTrend code.
Composite FlowScore (multi-factor money flow): Four clean-room components are independently normalized to 0–100, then combined with user-set weights:
MFI (custom): Typical price × volume flows, accumulated over a window and normalized.
CMF: Chaikin-style Close Location Value × volume, then mapped from [-1,1] to [0,100].
OBV-like: Signed cumulative volume (by close-to-close direction), normalized over a rolling min–max.
Signed Delta: Hybrid sign (close-to-close with body fallback), normalized by the rolling sum of absolute deltas (scale-invariant).
This produces a single FlowScore suitable for capital-in/out regimes that adapts to asset volatility.
Adaptive thresholds everywhere: Both the momentum fast wave and FlowScore are surrounded by dynamic bands using rolling mean ± z·stddev, which adjust automatically across regimes rather than relying on fixed levels.
MTF gating on entries and exits: With lookahead_off, the same conditions that qualify a trade on the current timeframe must also be true on a higher timeframe (momentum alignment, FlowScore above/below its mean, and optional EMA trend direction). This reduces false positives and prevents repaint artifacts.
Practical risk filters: Optional VWAP distance guard (skip extended entries far from session VWAP) and session/weekend filters to align with your venue’s trading hours. All signals can be confirmed on bar close only to avoid intrabar flicker.
How it works (concepts)
Momentum Waves (0–100)
Base series: z = (TP − EMA(TP, baseLen)) normalized by rolling mean/std.
FastWave = EMA(z, fastSmooth), SlowWave = EMA(z, slowSmooth).
Logistic mapping: WaveN = 100 · (1 / (1 + e^(−scale · Wave))).
Signals: Fast crossing above Slow with Fast above its mean-band suggests positive momentum regime; inverse for negative.
FlowScore (0–100, weighted)
MFI: Sum of positive/negative money flow (TP×Vol) across mfiLen, normalized to 0–100 by pos / (pos+neg).
CMF: CLV = (2C − H − L) / (H − L), volume-weighted over cmfLen; mapped to 0–100.
OBV-like: Cumulative sign(volume) by close-to-close direction; normalized over rolling min–max.
Delta: Volume times hybrid sign (close-to-close, fallback to body sign); normalized by rolling |delta| sum for robustness.
FlowScore = weighted average of the four normalized components with user-defined weights (internally normalized to sum to 1).
Adaptive Bands
Momentum banding: mean ± z·std of FastWave (0–100).
FlowScore banding: mean ± z·std of FlowScore (0–100).
Bands are used to frame momentum/flow expansions, pullbacks, and mean reversion.
Filters and gating
Trend: EMAfast > EMAslow (long) or EMAfast < EMAslow (short) on both current TF and HTF (optional).
VWAP guard: Reject entries when |Close−VWAP|/VWAP exceeds a threshold (%).
Session: Only allow signals within configured hours; optional weekend filter.
Confirm-on-close: All entries/exits can be gated to trigger only on confirmed bars.
How to use it
Long bias setup:
FastWave crosses above SlowWave and remains above it.
FlowScore > its mean (or above its upper band for aggressive continuation).
Optional: EMAfast > EMAslow (trend), VWAP distance within threshold, MTF gating true on HTF.
Entry: On the bar close when conditions align (if confirm-on-close is enabled).
Exit: Opposite momentum cross (Fast below Slow), FlowScore falling below mean, or trend flip; exits can also be MTF-gated.
Short bias setup: Mirror the long logic.
Interpreting FlowScore:
Sustained readings above its mean signal net capital inflow; below signal outflow.
Use adaptive bands to identify expansion (above upper band), consolidation (inside bands), and reversion (pullbacks to mean).
Tuning by market/timeframe:
Crypto intraday (scalping): baseLen 21–34, fastSmooth 3–5, slowSmooth 8–12, bandZ 1.2–1.5, mtfTf = 60–240.
Swing (any market): baseLen 34–55, fastSmooth 5–8, slowSmooth 14–21, bandZ 1.5–2.0, mtfTf = D or W.
Flow weights: Increase wDelta and wOBV for perp-heavy or derivatives-driven markets; increase wMFI and wCMF for spot-dominant venues.
Alerts: Enable long/short entry/exit alerts to integrate with automation. For the cleanest behavior, keep confirm-on-close enabled.
Why it’s closed-source
This script implements an original, clean-room momentum oscillator (detrended price → z-score → logistic 0–100 mapping) and an original composite money flow build (MFI/CMF/OBV-like/Delta individually normalized with robust scalers and weighted into a single FlowScore), plus adaptive banding and strict MTF gating on both entries and exits. It does not reproduce open-source WaveTrend/RSI or imported library logic, and it’s engineered to avoid repainting and reduce overfitting through robust normalization and gating. The protected source preserves these design choices and optimization work.
Best practices and tips
Always evaluate with confirm-on-close to avoid intrabar noise.
Use MTF gating in trending environments; consider disabling in very low timeframe scalps where responsiveness is critical.
If you get too few signals, reduce bandZ and/or relax the trend/VWAP filters; if too many, raise bandZ and/or tighten the VWAP threshold.
Keep weights simple (e.g., 0.4/0.3/0.2/0.1) and adjust slowly. Over-tuning weights to a single asset/timeframe can reduce generalization.
Limitations
Volume-derived components can behave differently across venues (spot vs derivatives); re-tune weights accordingly.
Extremely illiquid symbols or gaps may distort rolling normalizations; widen windows or rely more on momentum waves in those cases.
Script protegido
Este script se publica como código cerrado. Sin embargo, puede utilizarlo libremente y sin limitaciones: obtenga más información aquí.
Exención de responsabilidad
La información y las publicaciones que ofrecemos, no implican ni constituyen un asesoramiento financiero, ni de inversión, trading o cualquier otro tipo de consejo o recomendación emitida o respaldada por TradingView. Puede obtener información adicional en las Condiciones de uso.
Script protegido
Este script se publica como código cerrado. Sin embargo, puede utilizarlo libremente y sin limitaciones: obtenga más información aquí.
Exención de responsabilidad
La información y las publicaciones que ofrecemos, no implican ni constituyen un asesoramiento financiero, ni de inversión, trading o cualquier otro tipo de consejo o recomendación emitida o respaldada por TradingView. Puede obtener información adicional en las Condiciones de uso.