17 KiB
Institutional Chaos-Weighted RSI Pro (Enterprise Ultra Edition v2.50)
1. Executive Summary & Microstructure Foundations
The Institutional Chaos-Weighted RSI Pro (ChaosWeightedRSI_Pro) is an institutional-grade adaptive momentum oscillator developed for MetaTrader 5 (Year 2026 Enterprise Edition). It resolves the classic limitations of J. Welles Wilder's Relative Strength Index (RSI, 1978) by dynamically modulating the internal smoothing factor using non-linear Fractal Dimension (Chaos) Metrics.
The Flaw of the Classical Static RSI
Wilder's traditional RSI employs a static smoothing constant:
\alpha_{\text{base}} = \frac{1}{\text{Length}}
In electronic liquidity pools, this static factor creates an unavoidable structural dilemma:
- During low-volatility, chaotic consolidation: The static alpha overreacts to high-frequency micro-whipsaws, generating frequent false overbought/oversold extremes and premature counter-trend signals.
- During explosive directional trends: The static alpha rapidly saturates into extreme territory (
>70or<30), misleading traders into exiting winning runners prematurely.
The Adaptive Chaos-Dampening Solution
ChaosWeightedRSI_Pro bridges fractal geometry with momentum:
- It continuously measures the Fractal Dimension Index (FDI) of the price path via the central
CFractalEngine. - When the market enters a chaotic, noisy regime (
Chaos \to 1.0), the smoothing alpha decays toward zero (\alpha_{\text{adj}} \to 0.001). The oscillator dampens and freezes, refusing to generate false whipsaws. - When the market enters a clean, persistent trend (
Chaos \to 0.0), the smoothing alpha expands back to its maximum velocity, tracking directional order flow with instantaneous responsiveness.
2. Mathematical & DSP Engine Specifications
The calculation engine CChaosWeightedRSI_Calculator operates on chronological arrays (ArraySetAsSeries(..., false)) and embeds CFractalEngine alongside CHeikinAshi_Calculator.
+-------------------------------------------------------------------------------+
| CHAOS-WEIGHTED RSI CALCULATION PIPELINE |
+-------------------------------------------------------------------------------+
Price Stream: P_t (Standard or Heikin Ashi via ENUM_APPLIED_PRICE_HA_ALL)
|
v
Central CFractalEngine:
Compute Sevcik Path Length L over InpDisorderLength (default: 20)
FDI_t = 1.0 + ln(L) / ln(2*(N-1))
|
v
Normalized Chaos Ratio (Chaos_t in [0.0, 1.0]):
Chaos_t = Clamp( (FDI_t - 1.0) / 0.5, 0.0, 1.0 )
|
v
Modulated Smoothing Factor (alpha_adj):
alpha_adj = Clamp( alpha_base* (1.0 - Chaos_t)^Sensitivity, 0.001, 1.0 )
|
v
Pipelined Adaptive RMA Accumulators:
AvgGain_t = AvgGain_{t-1} + alpha_adj *(Gain_t - AvgGain_{t-1})
AvgLoss_t = AvgLoss_{t-1} + alpha_adj* (Loss_t - AvgLoss_{t-1})
|
v
Chaos-Weighted RSI Output (WRSI_t in [0.0, 100.0]):
RS = AvgGain_t / AvgLoss_t --> WRSI = 100.0 - (100.0 / (1.0 + RS))
|
v
Unified Moving Average Engine (Optional Signal Line via MovingAverage_Engine.mqh)
A. The Chaos-Modulated Smoothing Equation
The base smoothing alpha is derived from the user-defined RSI length:
\alpha_{\text{base}} = \frac{1}{\text{InpRSILength}}
The non-linear modulation equation adjusts the responsiveness based on market entropy:
\alpha_{\text{adj}} = \max\Big( 0.001, \, \min\big( 1.0, \, \alpha_{\text{base}} \cdot (1.0 - Chaos_t)^{\text{InpSensitivity}} \big) \Big)
- In a Clean Trend (
Chaos = 0.0):(1.0 - 0.0)^{\text{Sens}} = 1.0 \implies \alpha_{\text{adj}} = \alpha_{\text{base}}. Full momentum tracking. - In Extreme Chaos (
Chaos = 1.0):(1.0 - 1.0)^{\text{Sens}} = 0.0 \implies \alpha_{\text{adj}} = 0.001. The recursive filter locks in place, acting as an automatic whipsaw brake.
B. Gain and Loss Formulation
\text{Change}_t = P_t - P_{t-1}
\text{Gain}_t = \max(\text{Change}_t, \, 0.0), \quad \text{Loss}_t = \max(-\text{Change}_t, \, 0.0)
\text{AvgGain}_t = \text{AvgGain}_{t-1} + \alpha_{\text{adj}} \cdot (\text{Gain}_t - \text{AvgGain}_{t-1})
\text{AvgLoss}_t = \text{AvgLoss}_{t-1} + \alpha_{\text{adj}} \cdot (\text{Loss}_t - \text{AvgLoss}_{t-1})
\text{WRSI}_t = \begin{cases} 100.0 & \text{if } \text{AvgLoss}_t \le 1.0 \times 10^{-12} \\ 0.0 & \text{if } \text{AvgGain}_t \le 1.0 \times 10^{-12} \\ 100.0 - \left( \frac{100.0}{1.0 + \frac{\text{AvgGain}_t}{\text{AvgLoss}_t}} \right) & \text{otherwise} \end{cases}
3. Centralized CFractalEngine Integration
In accordance with Level 5 Enterprise Architecture conventions (Single Responsibility Principle & DRY), CChaosWeightedRSI_Calculator does not duplicate fractal dimension mathematics. Instead, it embeds <MyIncludes\Fractal_Engine.mqh>:
- The fractal engine precalculates coordinate invariants
(\Delta x)^2and denominator logs inInit(). - On each bar,
m_fractal_engine.CalculateChaosPoint()is evaluated inO(\text{DisorderLength})time. - Pipelined reciprocal multiplication (
inv\_range = 1.0 / \text{Range}) eliminates runtime divisions.
4. Non-Repainting Divergence Engine & Subwindow Trendlines
The indicator includes a strictly non-repainting Subwindow Divergence Engine that detects structural discrepancies between price extremes and the Chaos-Weighted RSI:
Regular Bullish Divergence (Subwindow Trendline: clrMediumSeaGreen, Dotted)
Price Action: Lower Low (P_2 < P_1)
Chaos RSI: Higher Low (WRSI_2 > WRSI_1)
Interpretation: Selling momentum is exhausted despite lower price. Imminent reversal up.
Regular Bearish Divergence (Subwindow Trendline: clrCrimson, Dotted)
Price Action: Higher High (P_2 > P_1)
Chaos RSI: Lower High (WRSI_2 < WRSI_1)
Interpretation: Buying momentum is exhausted despite higher price. Imminent reversal down.
The p + d Non-Repainting Protocol
- A pivot at bar
prequiresdconfirmation bars to the left anddbars to the right (InpDivStrength). - Therefore, a pivot is permanently confirmed and locked at bar
p + d. - Once confirmed, a trendline is drawn connecting the confirmed pivot points in the subwindow (
OBJ_TREND, Style:STYLE_DOT). - Zero Repaint Guarantee: The trendline coordinates are anchored to historical timestamps. They will never move or disappear on future ticks.
5. High-Performance 2026 MTF Fast-Path & Multi-Instance Architecture
A. True MTF Divergences (Eliminating the Stepped-Curve Paradox)
When viewing higher timeframe CWRSI on an execution chart (e.g., viewing H1 CWRSI on an M15 chart):
- Conventional indicators run divergence checks on the stepped lower timeframe curve, resulting in false triggers on flat steps.
ChaosWeightedRSI_Proevaluates divergences strictly in the clean, unstepped HTF domain (h_time[],h_high[],h_low[],h_res_wrsi[]).- Confirmed HTF divergence trendlines are anchored directly to the higher timeframe candle open timestamps (
h_time), projecting clean, mathematically pure macro divergence lines onto the lower timeframe chart.
B. Multi-Instance Namespace Isolation (InpInstanceID)
To enable multiple indicator instances on a single chart (e.g., H1 CWRSI in Subwindow 1 and H4 CWRSI in Subwindow 2):
-
Every graphical object is prefixed with a deterministic instance-isolated token:
g_prefix = StringFormat("CWRSI_%I64d_%s_%d_%d_%d_", ChartID(), EnumToString(g_calc_timeframe), InpRSILength, InpDisorderLength, InpInstanceID); -
Different instances will never delete, overwrite, or collide with each other's graphical objects.
-
GetIndicatorSubwindow()automatically binds each instance's trendlines to its own designated subwindow.
6. Comprehensive Parameter Reference & Calibration Matrix
Input Settings
| Parameter | Type | Default | Description | Operational Profile |
|---|---|---|---|---|
InpTimeframe |
ENUM_TIMEFRAMES |
PERIOD_CURRENT |
Calculation timeframe (Current or HTF). | Native O(1) or Two-Pointer MTF. |
InpRSILength |
int |
14 |
Base RSI analysis window length. | Governs momentum lookback. |
InpDisorderLength |
int |
20 |
Fractal Dimension (Chaos) lookback window. | Governs noise filter sensitivity. |
InpSensitivity |
double |
1.0 |
Chaos dampening exponent (0.1–5.0). | Higher = more aggressive freezing in chop. |
InpPriceSource |
ENUM_APPLIED_PRICE_HA_ALL |
PRICE_CLOSE_STD |
Applied price source (Standard / Heikin Ashi). | Full Heikin Ashi support. |
InpHistoryBars |
int |
1000 |
Historical lookback limit (0 = Full Chart). | Eliminates cold-start freezes. |
InpColorRSI |
color |
clrDodgerBlue |
Monochrome CWRSI line color. | Primary indicator plot. |
InpWidthRSI |
int |
2 |
CWRSI line thickness. | Visual width. |
InpShowSignal |
bool |
false |
Display Moving Average Signal Line. | Optional momentum overlay. |
InpSignalPeriod |
int |
9 |
Signal Line smoothing period. | Governs signal responsiveness. |
InpSignalType |
ENUM_MA_TYPE |
EMA |
Signal Line MA Type (SMA, EMA, SMMA, etc.). | Unified Moving Average Engine. |
InpColorSignal |
color |
clrMagenta |
High-contrast Signal Line color. | Universal contrast on light/dark themes. |
InpWidthSignal |
int |
2 |
Signal Line thickness. | Visual width. |
InpShowDivLines |
bool |
true |
Display subwindow divergence trendlines. | Toggles graphical lines. |
InpDivStrength |
int |
15 |
Divergence pivot confirmation strength (d). |
Bars required left and right. |
InpBullDivColor |
color |
clrMediumSeaGreen |
Bullish divergence trendline color. | Visual trendline styling. |
InpBearDivColor |
color |
clrCrimson |
Bearish divergence trendline color. | Visual trendline styling. |
InpInstanceID |
int |
1 |
Unique instance identifier for multi-setups. | Prevents multi-indicator collisions. |
Quantitative Calibration Matrix
| Trading Style | Asset Class | Base Chart | Target TF | RSI / FDI Length | Sensitivity | Price Source | Strategy Focus |
|---|---|---|---|---|---|---|---|
| Micro-Scalping | Crypto / Indices | M1 / M3 | PERIOD_CURRENT |
9 / 14 |
1.2 |
PRICE_MEDIAN_STD |
Ultra-fast momentum with tight noise freezing during order book sweeps. |
| Day Trading | Majors FX / Metals | M5 / M15 | M15 / H1 | 14 / 20 |
1.0 |
PRICE_CLOSE_STD |
Standard institutional calibration for session momentum and divergence fades. |
| Swing Structure | Equities / Crude Oil | H1 / H4 | H4 / D1 | 14 / 24 |
1.5 |
PRICE_HA_CLOSE |
Macro trend surfing filtered by Heikin Ashi smoothing to eliminate daily wicks. |
7. Quantitative Synergy Playbooks
Playbook A: Chaos-Filtered Trend Momentum (RSI Cross 50)
Price Action
| [ACCELERATING TREND BREAKOUT] /=====> STRONG BUY ENTRY
| /
|-----------------------------------------------------/------------------------------ Resistance
CWRSI Subwindow
| ----------------------------------------------------------------------------------- Level 70.0 (Overbought)
| /======================> WRSI SURGES ABOVE 50.0
| ============================/====================================================== Level 50.0 (Centerline)
| ^
| |-- BULLISH MOMENTUM CROSS (Market Order Confirmed)
| ----------------------------------------------------------------------------------- Level 30.0 (Oversold)
- Setup:
- Market breaks out of a consolidation pattern.
CWRSIbreaks cleanly above the50.0median centerline.- Diagnosis: Because the indicator dynamically dampens in noise, a cross above 50 occurs only when the trend has sufficient directional efficiency.
- Execution Trigger:
- Enter Long on the bar close confirming
BufferWRSI[1] > 50.0. - (Optional: If
InpShowSignal = true, verifyBufferWRSI[1] > BufferSignal[1]).
- Enter Long on the bar close confirming
- Exit: Hold trade while
BufferWRSIremains above 50.0. Exit on a close back below 50.0 or upon divergence formation.
Playbook B: Non-Repainting Macro Divergence Reversal
- Setup:
- Load
ChaosWeightedRSI_Proon an M15 chart withInpTimeframe = PERIOD_H1andInpShowDivLines = true. - Price prints a higher high on the chart, but a dashed red trendline (
clrCrimson) appears in the subwindow connecting a lower high on the H1 CWRSI.
- Load
- Execution Trigger:
- Wait for an M15 reversal candle (e.g., Bearish Engulfing or rejection wick) confirming the H1 macro divergence.
- SELL: Enter Short targeting the opposing H1 pivot or the 30.0 oversold level.
- Risk Management:
- Stop Loss: 5 ticks above the H1 swing high.
Playbook C: The Quad-Suite Gated Alignment
Combine all four core suite engines for institutional execution:
- Regime State (
Entropy_Pro): SampEn< 0.80(Structural order confirmed). - Volatility Trigger (
VolatilityRegime_Pro): Ratio surges from Blue (< 0.75) into Lime (> 1.00). - Adaptive Momentum (
ChaosWeightedRSI_Pro): CWRSI crosses above 50.0 with no opposing bearish divergence. - Trend Geometry (
KAMA_Bands_Pro): Price band-walks along+1.0\sigma.
- Trade Quality: Institutional Grade A+ Setup.
8. Developer Integration & Expert Advisor Guide
The indicator exposes its visual buffers directly to MetaTrader 5 Expert Advisors (EAs) via the native iCustom() API:
Buffer Index Map
| Buffer Index | Identifier | Description | Range / Output |
|---|---|---|---|
0 |
BufferWRSI |
Chaos-Weighted RSI value. | Continuous double (0.0 \dots 100.0). |
1 |
BufferSignal |
Signal Line (Unified Moving Average). | Continuous double (0.0 \dots 100.0) or EMPTY_VALUE. |
Example MQL5 EA Integration Snippet
//+------------------------------------------------------------------+
//| Using ChaosWeightedRSI_Pro in an Automated Expert Advisor (EA) |
//+------------------------------------------------------------------+
int h_cwrsi = INVALID_HANDLE;
int OnInit()
{
// Bind to ChaosWeightedRSI_Pro via iCustom
h_cwrsi = iCustom(_Symbol, PERIOD_CURRENT, "ChaosWeightedRSI_Pro",
PERIOD_CURRENT, // Timeframe
14, // RSI Length
20, // Disorder Length (FDI)
1.0, // Sensitivity
PRICE_CLOSE_STD, // Price Source
1000, // History Bars Limit
clrDodgerBlue, // RSI Line Color
2, // RSI Line Width
true, // Enable Signal Line
9, // Signal Period
EMA, // Signal MA Type (ENUM_MA_TYPE)
clrMagenta, // Signal Color
STYLE_SOLID, // Signal Style
2, // Signal Width
false, // Disable GUI Trendlines in EA for speed!
15, // Divergence Strength
clrMediumSeaGreen, // Bullish Div Color
clrCrimson, // Bearish Div Color
1); // Instance ID
if(h_cwrsi == INVALID_HANDLE)
{
Print("Critical Error: Failed to create handle for ChaosWeightedRSI_Pro!");
return INIT_FAILED;
}
return INIT_SUCCEEDED;
}
void OnTick()
{
double wrsi[2], signal_line[2];
// Read bar 1 and bar 2 (completed closed bars) for non-repainting execution
if(CopyBuffer(h_cwrsi, 0, 1, 2, wrsi) <= 0 ||
CopyBuffer(h_cwrsi, 1, 1, 2, signal_line) <= 0)
return;
double wrsi_curr = wrsi[1];
double wrsi_prev = wrsi[0];
double signal_curr = signal_line[1];
double signal_prev = signal_line[0];
// RULE 1: MOMENTUM ACCELERATION CROSSOVER
bool bull_cross = (wrsi_prev <= signal_prev && wrsi_curr > signal_curr && wrsi_curr > 50.0);
bool bear_cross = (wrsi_prev >= signal_prev && wrsi_curr < signal_curr && wrsi_curr < 50.0);
if(bull_cross)
{
// Chaos-filtered bullish momentum confirmed! Execute Long.
ExecuteOrder(ORDER_TYPE_BUY);
}
else if(bear_cross)
{
// Chaos-filtered bearish momentum confirmed! Execute Short.
ExecuteOrder(ORDER_TYPE_SELL);
}
}
*Enterprise Quantitative Software Suite — 2026 Ultra Edition