Work on a market replay/simulation stack continues with four components: Expert Advisor, position indicator, Chart Trade, and Mouse Study. Current guidance is demo-first; the EA and position indicator still require stability work, while Chart Trade and Mouse Study are safe but depend on the EA for execution.
Two cleanup issues are addressed: removing the EA leaves orphaned position indicators, and switching the tracked contract can leave misleading visuals. Handling DeInit in OnDeinit and deleting indicators by their short name (derived from the position ticket) resolves both.
A separate failure appears on timeframe changes due to pointer state across OnInit reinitialization. Explicitly resetting pointers in OnInit prevents runtime unloads.
Next focus is NETTING vs HEDGING behavior. NETTING changes average price on volume increases, but indicators...
π Read | Forum | @mql5dev
Two cleanup issues are addressed: removing the EA leaves orphaned position indicators, and switching the tracked contract can leave misleading visuals. Handling DeInit in OnDeinit and deleting indicators by their short name (derived from the position ticket) resolves both.
A separate failure appears on timeframe changes due to pointer state across OnInit reinitialization. Explicitly resetting pointers in OnInit prevents runtime unloads.
Next focus is NETTING vs HEDGING behavior. NETTING changes average price on volume increases, but indicators...
π Read | Forum | @mql5dev
β€53π17β‘3π2π₯1
CKS Position Risk Dashboard is a lightweight MT5 chart indicator focused on pre-trade risk review and position visibility. It is informational only and does not open, modify, or close orders.
The panel shows account and symbol metrics including balance, equity, free margin, margin level, bid/ask, spread, and broker volume constraints (min/max/step). It also reports open-position count and floating P/L for the current chart symbol, plus estimated protected risk when a stop loss is present. Tick size, tick value, and symbol digits are handled automatically. Panel colors, placement, width, and refresh interval are configurable.
Key inputs include risk percent, planned stop distance in points, balance vs equity selection, and a maximum cap for suggested lot size. The suggested volume remains an estimate and should be verified against final margin and sym...
π Read | AppStore | @mql5dev
The panel shows account and symbol metrics including balance, equity, free margin, margin level, bid/ask, spread, and broker volume constraints (min/max/step). It also reports open-position count and floating P/L for the current chart symbol, plus estimated protected risk when a stop loss is present. Tick size, tick value, and symbol digits are handled automatically. Panel colors, placement, width, and refresh interval are configurable.
Key inputs include risk percent, planned stop distance in points, balance vs equity selection, and a maximum cap for suggested lot size. The suggested volume remains an estimate and should be verified against final margin and sym...
π Read | AppStore | @mql5dev
β€23π6π2π1
A multi-timeframe, multi-symbol SuperTrend setup can simplify monitoring when it is implemented with strict data handling and clear output.
Key requirements include per-symbol and per-timeframe state separation, deterministic bar indexing, and consistent ATR/SuperTrend parameterization across feeds. Updates should be event-driven to avoid redundant recalculation, with safeguards for missing history and session gaps.
For usability, dashboards should prioritize current direction, last flip time, and distance to the band. Alerts need debouncing and a cooldown window to prevent repeated signals during consolidation.
π Read | CodeBase | @mql5dev
Key requirements include per-symbol and per-timeframe state separation, deterministic bar indexing, and consistent ATR/SuperTrend parameterization across feeds. Updates should be event-driven to avoid redundant recalculation, with safeguards for missing history and session gaps.
For usability, dashboards should prioritize current direction, last flip time, and distance to the band. Alerts need debouncing and a cooldown window to prevent repeated signals during consolidation.
π Read | CodeBase | @mql5dev
β€23π7π3
Building time-aware EAs starts with timezone hygiene. Session-based logic breaks when broker server time shifts for DST, and MT5 testing does not provide reliable GMT via TimeGMT(). Without a verified broker UTC offset and DST rule, session windows cannot be mapped correctly.
A practical DST detector can be built from NFP timestamps in the MQL5 Economic Calendar plus EURUSD M15 volatility spikes. When the expected spike alignment flips by one hour, a DST transition is inferred and matched against EU/US/AU transition calendars computed from weekday-occurrence rules.
The implementation uses modular MQL5 architecture: indicator layer (multi-AMA pairwise voting across timeframes), strategy layer (signal-to-direction mapping), and a dedicated time layer (DST-aware session conversion, calendar filters, intraday open/mid/close windows). TimeTradeServer() ...
π Read | VPS | @mql5dev
A practical DST detector can be built from NFP timestamps in the MQL5 Economic Calendar plus EURUSD M15 volatility spikes. When the expected spike alignment flips by one hour, a DST transition is inferred and matched against EU/US/AU transition calendars computed from weekday-occurrence rules.
The implementation uses modular MQL5 architecture: indicator layer (multi-AMA pairwise voting across timeframes), strategy layer (signal-to-direction mapping), and a dedicated time layer (DST-aware session conversion, calendar filters, intraday open/mid/close windows). TimeTradeServer() ...
π Read | VPS | @mql5dev
β€35π4π¨βπ»3β2π2π2
The article breaks Forex arbitrage into a graph problem: currencies are vertices, tradable pairs are directed edges weighted by executable bid/ask prices. Profitable βcyclesβ are those where the rate product stays above 1 after subtracting relative spreads, enabling near-zero market risk when executed correctly.
It outlines an MT5 Expert Advisor built as modular components: real-time graph construction, cycle discovery using a modified FloydβWarshall (maximize products, track spread growth, reconstruct paths) plus a DFS pass to enumerate alternative cycles while avoiding reuse of the same symbol.
A key engineering focus is zero-exposure sizing: lots are derived by propagating a base notional through the cycle, then normalized to broker constraints (contract size, min lot, step), with proportional downscaling to cap risk. Execution and fault handling are tr...
π Read | NeuroBook | @mql5dev
It outlines an MT5 Expert Advisor built as modular components: real-time graph construction, cycle discovery using a modified FloydβWarshall (maximize products, track spread growth, reconstruct paths) plus a DFS pass to enumerate alternative cycles while avoiding reuse of the same symbol.
A key engineering focus is zero-exposure sizing: lots are derived by propagating a base notional through the cycle, then normalized to broker constraints (contract size, min lot, step), with proportional downscaling to cap risk. Execution and fault handling are tr...
π Read | NeuroBook | @mql5dev
β€23π5π3
MetaTrader 5 ships with a single-timeframe volume histogram, but multi-timeframe volume context and anchoring require custom tooling. An MQL5 implementation can render synchronized profiles across the main chart and a subwindow using objects, not indicator plots.
The design uses a draggable vertical anchor to define the start of analysis, with the viewportβs right edge as the end. Anchor time is normalized to valid bar times, restored if deleted, and auto-centered when needed. HTF selection is validated to ensure it is above the chart timeframe.
Bin sizing is interactive and stateful. Edit mode activates only when the anchor is selected: double-click E to enter numeric input, double-click S to commit. Invalid or empty input falls back to the last valid value. OnChartEvent drives recalculation on zoom, scroll, drag, and keystrokes, while rendering POC and...
π Read | AlgoBook | @mql5dev
The design uses a draggable vertical anchor to define the start of analysis, with the viewportβs right edge as the end. Anchor time is normalized to valid bar times, restored if deleted, and auto-centered when needed. HTF selection is validated to ensure it is above the chart timeframe.
Bin sizing is interactive and stateful. Edit mode activates only when the anchor is selected: double-click E to enter numeric input, double-click S to commit. Invalid or empty input falls back to the last valid value. OnChartEvent drives recalculation on zoom, scroll, drag, and keystrokes, while rendering POC and...
π Read | AlgoBook | @mql5dev
β€27π4π3
AFMLβs sequential bootstrap is often presented as the fix for bagging with overlapping triple-barrier labels, by supposedly decorrelating trees. This study isolates what actually reduces between-tree correlation: fewer sampled rows, not the sequential sampling rule itself.
A four-regime experiment holds the same DecisionTree base learner constant and varies only the row sampler: full vs uniqueness-throttled sample count, and standard vs sequential draw rule. The key metric is correlation of out-of-bag probability predictions, making the AFML variance term observable.
Results are consistent across tick, tick-imbalance, and a higher-density M5 replication: cutting max_samples to average uniqueness produces most of the decorrelation; switching to sequential sampling at the same count adds little and can even worsen correlation at full count. Out-of-bag...
π Read | NeuroBook | @mql5dev
A four-regime experiment holds the same DecisionTree base learner constant and varies only the row sampler: full vs uniqueness-throttled sample count, and standard vs sequential draw rule. The key metric is correlation of out-of-bag probability predictions, making the AFML variance term observable.
Results are consistent across tick, tick-imbalance, and a higher-density M5 replication: cutting max_samples to average uniqueness produces most of the decorrelation; switching to sequential sampling at the same count adds little and can even worsen correlation at full count. Out-of-bag...
π Read | NeuroBook | @mql5dev
β€18π3π2β‘1
This article digs into why random-access file code fails when the fileβs internal layout is misunderstood. The key takeaway: file position doesnβt advance by βone byteβ in a meaningful way unless reads and writes are defined by an explicit structure.
Using MQL5-style examples, it contrasts text parsing (tab-delimited strings) with binary layouts, showing how a small format change turns clean reads into garbage output. The fix is to design a self-describing record: write a length field, then the payload, and use FileSeek to backfill the length after writing.
For trading systems, this enables fast, reliable logging and replay of variable-length messages, with deterministic offsets and safer recovery during analysis or debugging.
π Read | NeuroBook | @mql5dev
Using MQL5-style examples, it contrasts text parsing (tab-delimited strings) with binary layouts, showing how a small format change turns clean reads into garbage output. The fix is to design a self-describing record: write a length field, then the payload, and use FileSeek to backfill the length after writing.
For trading systems, this enables fast, reliable logging and replay of variable-length messages, with deterministic offsets and safer recovery during analysis or debugging.
π Read | NeuroBook | @mql5dev
β€14π5π1
Part 8 adds the missing bar-by-bar trend readout on NQ M1: a continuous micro-trend strength score in [-1, +1] that measures how cleanly fast/medium/slow EMAs align and accelerate, instead of relying on lagging, binary crossovers.
GetMicroTrendStrength() combines four EMA-derived components: 5/8/13 EMA ordering, ATR-normalized price position with tanh bounding, 5-bar slope agreement, and a bounded volume multiplier. A contradiction penalty sharply reduces the score when EMA alignment disagrees with price vs the fast EMA, suppressing common false positives during reversals.
The signal plugs into the Part 7 regime layer via confidence-scaled thresholds: high-confidence Trending/Informed sessions loosen cutoffs, low-confidence Stressed/Noisy sessions tighten them. On 514 NY sessions (May 2024βMay 2026), Trending shows the most persistent directional ...
π Read | CodeBase | @mql5dev
GetMicroTrendStrength() combines four EMA-derived components: 5/8/13 EMA ordering, ATR-normalized price position with tanh bounding, 5-bar slope agreement, and a bounded volume multiplier. A contradiction penalty sharply reduces the score when EMA alignment disagrees with price vs the fast EMA, suppressing common false positives during reversals.
The signal plugs into the Part 7 regime layer via confidence-scaled thresholds: high-confidence Trending/Informed sessions loosen cutoffs, low-confidence Stressed/Noisy sessions tighten them. On 514 NY sessions (May 2024βMay 2026), Trending shows the most persistent directional ...
π Read | CodeBase | @mql5dev
β€21π5
Trading systems degrade when regimes shift, and fixed-window indicators react after the distribution has already changed. A sequential CUSUM detector updates bar by bar, accumulates evidence, and flags a breakpoint the moment a threshold is crossed.
The detector runs on standardized log-returns z_t built from a strictly historical rolling window. Two accumulators track upward and downward drift with a slack term k, then reset to zero after a hit. Threshold h sets the false-alarm versus detection-speed trade-off, often expressed via ARL0, with theory only approximate on real returns.
Implementation notes for MetaTrader 5 focus on execution constraints: handling full vs incremental recalculation in OnCalculate(), persisting S+ and Sβ via indicator buffers, and creating chart objects idempotently to avoid duplicates on live ticks.
π Read | AppStore | @mql5dev
The detector runs on standardized log-returns z_t built from a strictly historical rolling window. Two accumulators track upward and downward drift with a slack term k, then reset to zero after a hit. Threshold h sets the false-alarm versus detection-speed trade-off, often expressed via ARL0, with theory only approximate on real returns.
Implementation notes for MetaTrader 5 focus on execution constraints: handling full vs incremental recalculation in OnCalculate(), persisting S+ and Sβ via indicator buffers, and creating chart objects idempotently to avoid duplicates on live ticks.
π Read | AppStore | @mql5dev
β€26π10π1π1
Alpha-Beta Trend Filter is a predictive smoothing indicator based on steady-state estimation. Unlike SMA/EMA-style averaging, it maintains an internal price estimate and a trend velocity term, updating both each bar via a prediction step and a residual-based correction using alpha (price sensitivity) and beta (velocity sensitivity).
This MQL5 build extends the classic single-line output with a multi-symbol, multi-timeframe matrix dashboard. The chart plot uses DRAW_COLOR_LINE to switch state from bullish to bearish based on the velocity sign, while the dashboard renders Bull/Bear/Wait across selectable timeframes for a parsed symbol list.
Implementation details include ArraySetAsSeries() alignment, a helper that computes state from a minimal CopyClose() window without iCustom, and full UI cleanup on deinit. Typical tuning ranges: alpha 0.1β0.9, beta ...
π Read | AlgoBook | @mql5dev
This MQL5 build extends the classic single-line output with a multi-symbol, multi-timeframe matrix dashboard. The chart plot uses DRAW_COLOR_LINE to switch state from bullish to bearish based on the velocity sign, while the dashboard renders Bull/Bear/Wait across selectable timeframes for a parsed symbol list.
Implementation details include ArraySetAsSeries() alignment, a helper that computes state from a minimal CopyClose() window without iCustom, and full UI cleanup on deinit. Typical tuning ranges: alpha 0.1β0.9, beta ...
π Read | AlgoBook | @mql5dev
β€23π6β2π¨βπ»2π1π1
Adaptive trading framework for FX, crypto, and high-digit instruments using a velocity-driven baseline and ER-based bands.
Trend filter uses baseline color: LimeGreen signals positive acceleration, Crimson signals negative acceleration. Volatility state is defined by band width: compressed bands indicate low ER and pending expansion; expanded bands indicate high ER and potential trend efficiency or extension.
Momentum breakout: wait for a squeeze and flat baseline. Go long on a candle close above the upper band with baseline turning LimeGreen. Go short on a close below the lower band with baseline turning Crimson. Stop sits beyond the baseline or opposite band. Hold while baseline color persists; exit on a color flip.
Mean reversion: require a flat baseline with wide bands. Enter only after a probe outside a band fails to flip the baseline, then p...
π Read | VPS | @mql5dev
Trend filter uses baseline color: LimeGreen signals positive acceleration, Crimson signals negative acceleration. Volatility state is defined by band width: compressed bands indicate low ER and pending expansion; expanded bands indicate high ER and potential trend efficiency or extension.
Momentum breakout: wait for a squeeze and flat baseline. Go long on a candle close above the upper band with baseline turning LimeGreen. Go short on a close below the lower band with baseline turning Crimson. Stop sits beyond the baseline or opposite band. Hold while baseline color persists; exit on a color flip.
Mean reversion: require a flat baseline with wide bands. Enter only after a probe outside a band fails to flip the baseline, then p...
π Read | VPS | @mql5dev
β€21π6β‘2π₯1π1
Backtest output is bounded by history quality, yet MT5 data gaps often go unverified. A read-only Python audit can export M5 bars from multiple terminals, cache them as Parquet, and report missing bars per pair and per year instead of a single βHistory Qualityβ number.
The workflow validates terminal identity, avoids concurrent API sessions, and resolves broker-specific symbol suffixes. One broker required paging via copy_rates_from_pos, which exposed synthetic βfillβ bars detectable only by timestamp spacing.
On a shared 2025-02-07 to 2026-06-12 window, the same deterministic breakout strategy drifted by 2,300β4,400 net pips across three feeds. Spread differences dominated, but data/price differences and missing-bar trade mismatches remained material.
π Read | NeuroBook | @mql5dev
The workflow validates terminal identity, avoids concurrent API sessions, and resolves broker-specific symbol suffixes. One broker required paging via copy_rates_from_pos, which exposed synthetic βfillβ bars detectable only by timestamp spacing.
On a shared 2025-02-07 to 2026-06-12 window, the same deterministic breakout strategy drifted by 2,300β4,400 net pips across three feeds. Spread differences dominated, but data/price differences and missing-bar trade mismatches remained material.
π Read | NeuroBook | @mql5dev
β€23π7π1
Market structure analysis in MQL5 often ships as closed indicators that mix computation with rendering, expose limited buffers, and provide no stable query interface. Integration into EAs typically requires copying indicator logic or rebuilding it, increasing coupling, duplication, and maintenance cost.
A prototype modular framework addresses this by separating swing detection, level tracking, break detection, BOS/CHoCH classification, an event bus with deduplication, a market state machine, optional CSV persistence, and a unified public API. It runs as a standard custom indicator but behaves like a reusable service for EAs, dashboards, and research pipelines.
The codebase is split into 10 include modules plus one indicator entry point, supports internal and external timeframes, and avoids full recomputation via incremental bar processing. Trend a...
π Read | Calendar | @mql5dev
A prototype modular framework addresses this by separating swing detection, level tracking, break detection, BOS/CHoCH classification, an event bus with deduplication, a market state machine, optional CSV persistence, and a unified public API. It runs as a standard custom indicator but behaves like a reusable service for EAs, dashboards, and research pipelines.
The codebase is split into 10 include modules plus one indicator entry point, supports internal and external timeframes, and avoids full recomputation via incremental bar processing. Trend a...
π Read | Calendar | @mql5dev
β€32π5π2π1
Backtest headlines can hide fragility: the same net profit and win rate may come from a repeatable edge or from a few oversized trades. This article builds an MT5-native analyzer that shows where profits really come from by measuring profit concentration.
The script reads closed deals from a simple Date/Profit CSV and computes top-N contribution (vs net and gross profit), the Gini coefficient over winning trades, and a stress test that removes the best winners to see if profitability survives.
It also aggregates results by day to flag βone big dayβ risk against prop-firm consistency limits, then combines concentration, consistency, and survival into a weighted A+βF grade with actionable recommendations.
π Read | Calendar | @mql5dev
The script reads closed deals from a simple Date/Profit CSV and computes top-N contribution (vs net and gross profit), the Gini coefficient over winning trades, and a stress test that removes the best winners to see if profitability survives.
It also aggregates results by day to flag βone big dayβ risk against prop-firm consistency limits, then combines concentration, consistency, and survival into a weighted A+βF grade with actionable recommendations.
π Read | Calendar | @mql5dev
β€40π5β2π2
External Range Liquidity (ERL) is a custom MetaTrader 4 indicator aimed at Price Action and Smart Money Concepts workflows. It scans swings to map market structure and flags liquidity sweeps where price pierces a prior swing but closes back inside the range, leaving a wick.
Structure labeling is applied in real time using HH/HL for bullish conditions and LH/LL for bearish conditions. When a sweep condition is detected, the prior swing level is relabeled as βSweepβ, supporting analysis of stop hunts and failed breakouts.
Key options include swing validation (InpSwingCandles, default 5), history scan cap (InpMaxBarsToScan, default 200), projection line length (InpLineLengthBars, default 15), plus colors, line style/width, and text size/offset. Visual output uses projected horizontal levels to keep charts readable with low terminal overhead.
π Read | AlgoBook | @mql5dev
Structure labeling is applied in real time using HH/HL for bullish conditions and LH/LL for bearish conditions. When a sweep condition is detected, the prior swing level is relabeled as βSweepβ, supporting analysis of stop hunts and failed breakouts.
Key options include swing validation (InpSwingCandles, default 5), history scan cap (InpMaxBarsToScan, default 200), projection line length (InpLineLengthBars, default 15), plus colors, line style/width, and text size/offset. Visual output uses projected horizontal levels to keep charts readable with low terminal overhead.
π Read | AlgoBook | @mql5dev
β€33π10β3π2π¨βπ»2
Aegis Quantum Lite is a free educational Expert Advisor for MetaTrader 5, distributed as a single commented MQ5 file. It implements a completed-candle trend entry with a compact on-chart dashboard.
Buy logic requires Fast EMA above Slow EMA, RSI above the configured buy level, spread within the maximum, no existing position on the symbol, and a new completed candle. Sell logic mirrors this with Fast EMA below Slow EMA and RSI below the configured sell level.
Default inputs: FastEMA 9, SlowEMA 21, RSIPeriod 14, BuyRSILevel 48, SellRSILevel 52, FixedLot 0.01, MaximumSpreadPoints 50, StopLossPoints 500, TakeProfitPoints 500, OneEntryPerCandle true. The dashboard shows symbol, timeframe, EMA/RSI values, spread, signal, and trading status.
Execution safeguards include fixed lot only, no grid or martingale, position blocking per symbol, permission and margin che...
π Read | Calendar | @mql5dev
Buy logic requires Fast EMA above Slow EMA, RSI above the configured buy level, spread within the maximum, no existing position on the symbol, and a new completed candle. Sell logic mirrors this with Fast EMA below Slow EMA and RSI below the configured sell level.
Default inputs: FastEMA 9, SlowEMA 21, RSIPeriod 14, BuyRSILevel 48, SellRSILevel 52, FixedLot 0.01, MaximumSpreadPoints 50, StopLossPoints 500, TakeProfitPoints 500, OneEntryPerCandle true. The dashboard shows symbol, timeframe, EMA/RSI values, spread, signal, and trading status.
Execution safeguards include fixed lot only, no grid or martingale, position blocking per symbol, permission and margin che...
π Read | Calendar | @mql5dev
π15β€14π3π¨βπ»2
Markets switch regimes. A fixed 14-period moving average can track momentum in trends, then generate repeated whipsaws during consolidation. An auto-optimizer mitigates this by continuously testing a period range (for example 10β100) and selecting the parameter set that best matches current price behavior.
Direction alone is not an edge. The optimization layer scores candidates by mathematical expectancy, combining win rate and average payoff to avoid high-hit-rate/low-net systems and low-hit-rate/high-variance profiles.
Take-profit placement can be made objective. By measuring maximum favorable excursion and maintaining an average peak distance before reversal, exits can be based on observed distribution rather than arbitrary ratios.
Single-timeframe signals are filtered by higher-timeframe alignment. Multi-timeframe state checks reduce counter-t...
π Read | CodeBase | @mql5dev
Direction alone is not an edge. The optimization layer scores candidates by mathematical expectancy, combining win rate and average payoff to avoid high-hit-rate/low-net systems and low-hit-rate/high-variance profiles.
Take-profit placement can be made objective. By measuring maximum favorable excursion and maintaining an average peak distance before reversal, exits can be based on observed distribution rather than arbitrary ratios.
Single-timeframe signals are filtered by higher-timeframe alignment. Multi-timeframe state checks reduce counter-t...
π Read | CodeBase | @mql5dev
β€22π9π4π€£2
Simple moving averages lag trend changes because they only aggregate past prices. A velocity-adjusted average can reduce that lag by incorporating the average rate of price movement into the calculation.
This indicator offers three measurement modes. Central velocity produces a smoother output. Forward velocity is calculated relative to the current bar, increasing sensitivity to recent moves. Backward velocity is calculated relative to the initial bar, preserving more information about earlier movement within the window.
Any mode aims to reduce lag versus a standard SMA, making the result suitable as an SMA replacement where faster reaction is required.
Parameters: Type selects the velocity mode. iPeriod sets the calculation length.
π Read | Docs | @mql5dev
This indicator offers three measurement modes. Central velocity produces a smoother output. Forward velocity is calculated relative to the current bar, increasing sensitivity to recent moves. Backward velocity is calculated relative to the initial bar, preserving more information about earlier movement within the window.
Any mode aims to reduce lag versus a standard SMA, making the result suitable as an SMA replacement where faster reaction is required.
Parameters: Type selects the velocity mode. iPeriod sets the calculation length.
π Read | Docs | @mql5dev
β€20π7π3
Linear regression is commonly used to estimate market slope, but many MQL5 indicators recompute rolling OLS on every bar. On tick charts, large lookbacks, or multi-symbol scanners, that O(n) per-bar cost becomes a measurable bottleneck.
Recursive Least Squares (RLS) keeps a compact state and updates it with the latest observation using a ShermanβMorrison rank-1 update. The result is O(1) work per bar, independent of history length, with an adjustable forgetting factor (typical Ξ» range: 0.95β0.99).
A complete MQL5 implementation is outlined via a reusable CRLSRegression class plus two indicators: RLSForecast.mq5 plots a 1-bar-ahead forecast on the main chart, and RLSSlope.mq5 plots a signed slope histogram in a subwindow. Both run incrementally, reset cleanly on full recalculation, and gate output until a minimum warm-up observation count is reached.
π Read | Forum | @mql5dev
Recursive Least Squares (RLS) keeps a compact state and updates it with the latest observation using a ShermanβMorrison rank-1 update. The result is O(1) work per bar, independent of history length, with an adjustable forgetting factor (typical Ξ» range: 0.95β0.99).
A complete MQL5 implementation is outlined via a reusable CRLSRegression class plus two indicators: RLSForecast.mq5 plots a 1-bar-ahead forecast on the main chart, and RLSSlope.mq5 plots a signed slope histogram in a subwindow. Both run incrementally, reset cleanly on full recalculation, and gate output until a minimum warm-up observation count is reached.
π Read | Forum | @mql5dev
β€29π6π3
Dingo Optimization Algorithm (DOA) was proposed in 2021 by Peraza-VΓ‘zquez et al. in Mathematical Problems in Engineering (DOI: 10.1155/2021/9107547). It is a population-based metaheuristic with three update modes plus a survival rule.
Core behaviors: group attack (subset averaging, then update relative to the best solution with a signed Ξ²1 term), chase (update biased toward the best solution using a random neighbor distance scaled by exp(Ξ²2)), and scavenging (random neighbor reference with optional sign inversion to increase step variance).
Implementation notes: a C_AO_DOA_dingo class typically exposes popSize, P (hunt vs scavenging), and Q (group attack vs chase). Moving() initializes positions once, updates survival, selects a mode per agent via P/Q, applies bounds/step quantization, then triggers a survival procedure when survival < 0.3.
π Read | Quotes | @mql5dev
Core behaviors: group attack (subset averaging, then update relative to the best solution with a signed Ξ²1 term), chase (update biased toward the best solution using a random neighbor distance scaled by exp(Ξ²2)), and scavenging (random neighbor reference with optional sign inversion to increase step variance).
Implementation notes: a C_AO_DOA_dingo class typically exposes popSize, P (hunt vs scavenging), and Q (group attack vs chase). Moving() initializes positions once, updates survival, selects a mode per agent via P/Q, applies bounds/step quantization, then triggers a survival procedure when survival < 0.3.
π Read | Quotes | @mql5dev
β€20π4π3π2