GARCH remains a fast, well-understood baseline for volatility forecasting, but its core assumptions break in real markets: return tails are too thin, volatility persistence decays too quickly, and behavior does not transfer cleanly across timeframes.
MMAR reframes the problem as a price process driven by fractional Brownian motion evaluated on βtrading time,β a non-uniform clock that accelerates during high-activity periods and slows in quiet regimes. This single structure generates fat tails, long memory, volatility clustering, and scale consistency without bolting on separate fixes.
The implementation follows Zhang (2017) as a reproducible Python pipeline using the MetaTrader5 API: load 5-minute EURUSD data, then validate multifractal scaling via a partition-function test to confirm the data is fractal before forecasting.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
MMAR reframes the problem as a price process driven by fractional Brownian motion evaluated on βtrading time,β a non-uniform clock that accelerates during high-activity periods and slows in quiet regimes. This single structure generates fat tails, long memory, volatility clustering, and scale consistency without bolting on separate fixes.
The implementation follows Zhang (2017) as a reproducible Python pipeline using the MetaTrader5 API: load 5-minute EURUSD data, then validate multifractal scaling via a partition-function test to confirm the data is fractal before forecasting.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€21π4π1
Part 8 shipped a polished chat UI, but execution remained manual. AI replies were free-form, routing was single-channel, and signals left no chart footprint for audit or backtest.
This update implements an end-to-end MQL5 flow: button click to bar collection, constrained prompts, line-based KEY:VALUE responses, a parser, unified order placement, and labeled drawings anchored to the active timeframe.
Core structure is dispatch-driven. Seven actions are mapped to stable integer IDs, handlers, prompts, parse rules, and chart rendering. Adding an action becomes a table row plus a switch case, without cross-file edits.
Signals become deterministic. Market vs pending orders are selected by action; Key Level uses a fixed support/resistance and bounce/break matrix. Stops and targets use a range-derived buffer to avoid per-symbol tuning.
π Read | AppStore | @mql5dev
#MQL5 #MT5 #AlgoTrading
This update implements an end-to-end MQL5 flow: button click to bar collection, constrained prompts, line-based KEY:VALUE responses, a parser, unified order placement, and labeled drawings anchored to the active timeframe.
Core structure is dispatch-driven. Seven actions are mapped to stable integer IDs, handlers, prompts, parse rules, and chart rendering. Adding an action becomes a table row plus a switch case, without cross-file edits.
Signals become deterministic. Market vs pending orders are selected by action; Key Level uses a fixed support/resistance and bounce/break matrix. Stops and targets use a range-derived buffer to avoid per-symbol tuning.
π Read | AppStore | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€34π3π1
Real-time entry logic can become a measurable latency source in MT5 EAs when every tick triggers 64-bar loops, indicator buffers, and floating-point ML inputs. The approach here restructures the βread + decideβ path by packing a 64-bar bullish/bearish history into a single uint64, keeping market context in one CPU word.
CSignalBitwisePerceptron then applies two gates: an O(1) bit-map lookup (m_map) for near-instant pattern matching, followed by a lightweight perceptron that computes a dot product over active bits. A single threshold parameter (m_threshold) controls the precision vs frequency trade-off.
Forward-walk on EURUSD H4 shows the map-only gate is fast but rigid (11 trades, longs only, higher drawdown). Adding the perceptron slightly reduced profit and trades, introduced a profitable short, and lowered drawdown by filtering weaker contexts.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
CSignalBitwisePerceptron then applies two gates: an O(1) bit-map lookup (m_map) for near-instant pattern matching, followed by a lightweight perceptron that computes a dot product over active bits. A single threshold parameter (m_threshold) controls the precision vs frequency trade-off.
Forward-walk on EURUSD H4 shows the map-only gate is fast but rigid (11 trades, longs only, higher drawdown). Adding the perceptron slightly reduced profit and trades, introduced a profitable short, and lowered drawdown by filtering weaker contexts.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€39π7β‘5π3π2
Part 2 turns βfractal confirmedβ into βfractal quantifiedβ for EURUSD 5βminute data using a repeatable MMAR calibration pipeline.
It extracts the scaling function tau(q) from partition-function slopes and uses its shape to separate monofractal (linear) behavior from true multifractality (concave). A three-part decision test scores concavity, deviation from linear fit, and slope variability, acting as a gate before spending compute on MMAR.
The Hurst exponent is estimated with bias-corrected, outlier-robust R/S analysis (with a tau(q) root-finding fallback), linking market memory to strategy selection and risk scaling.
tau(q) is then mapped to the multifractal spectrum f(alpha) via a Legendre transform, and the empirical spectrum is fit against lognormal, binomial, Poisson, and gamma cascade models to choose the best MMAR generator and parameters.
π Read | AppStore | @mql5dev
#MQL5 #MT5 #AlgoTrading
It extracts the scaling function tau(q) from partition-function slopes and uses its shape to separate monofractal (linear) behavior from true multifractality (concave). A three-part decision test scores concavity, deviation from linear fit, and slope variability, acting as a gate before spending compute on MMAR.
The Hurst exponent is estimated with bias-corrected, outlier-robust R/S analysis (with a tau(q) root-finding fallback), linking market memory to strategy selection and risk scaling.
tau(q) is then mapped to the multifractal spectrum f(alpha) via a Legendre transform, and the empirical spectrum is fit against lognormal, binomial, Poisson, and gamma cascade models to choose the best MMAR generator and parameters.
π Read | AppStore | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€40π8π1
MetaEditor in MetaTrader 5 is closer to a full IDE than a code editor, built around an iterative workflow: debug logic, measure performance, then package and protect the final EX5. The article emphasizes replacing adβhoc Print logging with step-by-step debugging on real or historical ticks and hardware-level profiling to pinpoint bottlenecks.
A practical Bollinger Bands signal indicator is used to demonstrate disciplined rule handling: reversal vs breakout modes, single active trade until TP/SL, reversal on opposite close, and strict session filters (skip early hours, avoid the last hour, forced end-of-day close) with clear on-chart visualization.
Key engineering practices include organizing work as an MQPROJ project with centralized properties, clean compilation with zero warnings, reusable debug.tpl chart templates, and repeatable Debug/Profile ...
π Read | VPS | @mql5dev
#MQL5 #MT5 #AlgoTrading
A practical Bollinger Bands signal indicator is used to demonstrate disciplined rule handling: reversal vs breakout modes, single active trade until TP/SL, reversal on opposite close, and strict session filters (skip early hours, avoid the last hour, forced end-of-day close) with clear on-chart visualization.
Key engineering practices include organizing work as an MQPROJ project with centralized properties, clean compilation with zero warnings, reusable debug.tpl chart templates, and repeatable Debug/Profile ...
π Read | VPS | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€30π4
Eagle Strategy (ES) is a two-phase metaheuristic for optimizing trading EA parameters when classic methods stall in local optima. It alternates wide exploration with targeted refinement to handle rugged fitness landscapes efficiently.
Global search uses LΓ©vy flights: mostly small moves with occasional long jumps, generated via Mantegnaβs method. A fast Gamma implementation (Lanczos approximation) keeps LΓ©vy sampling practical for iterative optimizers.
When a promising region is found, ES switches to local exploitation using a Firefly-style search inside a hypersphere around the current best. Attractiveness depends on solution quality and decays with distance, enabling controlled convergence without losing diversity.
An MQL5 class design ties it together: phase switching, stagnation detection, adaptive step sizing, boundary handling, and parameter knobs ...
π Read | Quotes | @mql5dev
#MQL5 #MT5 #AlgoTrading
Global search uses LΓ©vy flights: mostly small moves with occasional long jumps, generated via Mantegnaβs method. A fast Gamma implementation (Lanczos approximation) keeps LΓ©vy sampling practical for iterative optimizers.
When a promising region is found, ES switches to local exploitation using a Firefly-style search inside a hypersphere around the current best. Attractiveness depends on solution quality and decays with distance, enabling controlled convergence without losing diversity.
An MQL5 class design ties it together: phase switching, stagnation detection, adaptive step sizing, boundary handling, and parameter knobs ...
π Read | Quotes | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€36π2π2π1
MQL5 Wizard workflow extends beyond entry signals; money management often decides whether a strategy survives forward walks. A volume-based sizing model was implemented using a Fenwick Tree (Binary Indexed Tree) to query cumulative OBV structure in O(log n), avoiding long moving-average windows and latency.
Four sizing modes were tested: Linear, Conservative (sqrt damping, 1.25x cap), Aggressive (downscale weak structure, up to 3.0x), and Mean-Reversion (invert ratio, up to 2.0x). Fenwick-only forward walk on EURUSD (H4) produced a net loss (-$773.82) and profit factor 0.39, largely due to reacting to exhaustion spikes.
Adding an on-chart 1D CNN inference gate (conv+ReLU+global average pooling+dense+sigmoid) reduced trade frequency and throttled exposure on chaotic volume shapes. In the same framework, the combined model turned the forward walk sl...
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
Four sizing modes were tested: Linear, Conservative (sqrt damping, 1.25x cap), Aggressive (downscale weak structure, up to 3.0x), and Mean-Reversion (invert ratio, up to 2.0x). Fenwick-only forward walk on EURUSD (H4) produced a net loss (-$773.82) and profit factor 0.39, largely due to reacting to exhaustion spikes.
Adding an on-chart 1D CNN inference gate (conv+ReLU+global average pooling+dense+sigmoid) reduced trade frequency and throttled exposure on chaotic volume shapes. In the same framework, the combined model turned the forward walk sl...
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€19π4π3
Retail momentum tools such as MACD and RSI are constrained by their moving-average design. Any averaging process requires past samples, which introduces persistent phase lag. By the time a reversal signal prints, faster execution systems have often already reduced exposure, leaving late liquidity to absorb the shift.
Some proprietary approaches model price as a kinematic series using discrete derivatives rather than smoothed oscillators. First derivative estimates provide velocity (dP/dt). Second derivative estimates provide acceleration (dV/dt), tracking how quickly velocity is changing.
A common exhaustion condition appears when acceleration turns negative while velocity remains positive. This configuration indicates weakening impulse before price direction changes. In automation, acceleration can be used as a gating filter to block breakout ent...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
Some proprietary approaches model price as a kinematic series using discrete derivatives rather than smoothed oscillators. First derivative estimates provide velocity (dP/dt). Second derivative estimates provide acceleration (dV/dt), tracking how quickly velocity is changing.
A common exhaustion condition appears when acceleration turns negative while velocity remains positive. This configuration indicates weakening impulse before price direction changes. In automation, acceleration can be used as a gating filter to block breakout ent...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€21π4π1π1
MMAR volatility forecasting pipeline applied to EURUSD 5-minute data moves from fitted multifractal parameters into a full compound process X(t)=B_H[theta(t)]. The build combines a multiplicative cascade for multifractal trading time and Davies-Harte FBM for long-memory increments, with interpolation used to evaluate FBM on the deformed time grid.
Forecasting uses 1,000 Monte Carlo runs, regenerating cascade and FBM each time, then aggregating horizon volatility with mean, dispersion, and confidence bounds. Cascade depth is selected as k=ceil(log2(forecast_length+1)) and output is truncated to the required horizon.
A baseline GARCH(1,1) is fit on identical training data via arch with rescale enabled. Multi-step comparison follows simulation-based forecasting (ugarchsim-style) to match MMARβs horizon statistic, then both are evaluated against realized ...
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
Forecasting uses 1,000 Monte Carlo runs, regenerating cascade and FBM each time, then aggregating horizon volatility with mean, dispersion, and confidence bounds. Cascade depth is selected as k=ceil(log2(forecast_length+1)) and output is truncated to the required horizon.
A baseline GARCH(1,1) is fit on identical training data via arch with rescale enabled. Multi-step comparison follows simulation-based forecasting (ugarchsim-style) to match MMARβs horizon statistic, then both are evaluated against realized ...
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€34π1
Tool placement on MetaTrader 5 charts typically ends with limited cursor feedback and no fast inspection path for dense price action. Default crosshair behavior is fixed and lacks magnification and measurement support.
Part 32 adds a crosshair manager for MQL5 sidebars: layered reticle ticks, full-width/height lines, and axis labels that report exact time and price. A circular magnifier renders zoomed candles, wicks, bid/ask lines, and a local price label without changing chart zoom.
Double-click enables measure mode with an anchor, diagonal connector (Bresenham), and live stats for bars, pips, and raw price delta. The system uses eleven new canvases, hides on sidebar hover, and refreshes cleanly on theme and tool changes.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
Part 32 adds a crosshair manager for MQL5 sidebars: layered reticle ticks, full-width/height lines, and axis labels that report exact time and price. A circular magnifier renders zoomed candles, wicks, bid/ask lines, and a local price label without changing chart zoom.
Double-click enables measure mode with an anchor, diagonal connector (Bresenham), and live stats for bars, pips, and raw price delta. The system uses eleven new canvases, hides on sidebar hover, and refreshes cleanly on theme and tool changes.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€24π¨βπ»4β1π1
MetaTrader 5 custom symbols shift charts from broker-defined timeframes and quote feeds to locally managed market data. A custom symbol is a terminal object with its own tick history, contract specification, and Strategy Tester support, stored under the terminalβs Custom base directory and separated in Market Watch.
Core MQL5 APIs cover lifecycle (CustomSymbolCreate/Delete, SymbolSelect), history writes (CustomTicksAdd/Replace, CustomRatesUpdate), and contract properties (CustomSymbolSet*). Limitations include no MQL5 Cloud optimization, dependency on cross rates for margin/profit, and fixed symbol properties during a test run.
Typical uses include time-independent bars (Renko, Range, Equal-Volume) built via tick aggregation and written with CustomRatesUpdate plus tick emulation, and synthetic instruments (spreads, baskets) requiring tick synchroni...
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
Core MQL5 APIs cover lifecycle (CustomSymbolCreate/Delete, SymbolSelect), history writes (CustomTicksAdd/Replace, CustomRatesUpdate), and contract properties (CustomSymbolSet*). Limitations include no MQL5 Cloud optimization, dependency on cross rates for margin/profit, and fixed symbol properties during a test run.
Typical uses include time-independent bars (Renko, Range, Equal-Volume) built via tick aggregation and written with CustomRatesUpdate plus tick emulation, and synthetic instruments (spreads, baskets) requiring tick synchroni...
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€38π4π1
MetaTrader 5 optimizations often mislead by rewarding a single best pass. A sharp peak in Profit Factor or Sharpe can be pure curve-fit; robust systems show a plateau where nearby parameter values stay acceptable. The goal shifts from βbest numberβ to understanding the full optimization surface: sensitivity, degradation rate, and stable zones.
Optimization Frames turn the tester into a telemetry pipeline. Each pass can send custom metrics from OnTester via FrameAdd, then be parsed in OnTesterPass or reliably reprocessed in OnTesterDeinit, even with delayed batches from distributed agents.
A simple, event-driven EA (EMA crossover gated by RSI mode-change events, ATR-based SL/TP) keeps the surface interpretable. Frames log internal quality metrics like trigger-to-trade conversion and profit per signal, then export to CSV for Python analysis (pivot ta...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
Optimization Frames turn the tester into a telemetry pipeline. Each pass can send custom metrics from OnTester via FrameAdd, then be parsed in OnTesterPass or reliably reprocessed in OnTesterDeinit, even with delayed batches from distributed agents.
A simple, event-driven EA (EMA crossover gated by RSI mode-change events, ATR-based SL/TP) keeps the surface interpretable. Frames log internal quality metrics like trigger-to-trade conversion and profit per signal, then export to CSV for Python analysis (pivot ta...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€40π12π€¨4β‘3π3
DoEasy library tick support moved from single tick objects to per-symbol tick series lists, with default retention set to the current day and an option to store multiple days. Lists are intended for faster search, comparison, and repeated access than ad-hoc CopyTicks calls.
Core updates include new library messages, a retention-days constant, and a fix in the timeseries code path to delete bar objects when insertion fails to prevent leaks. Select.mqh gained tick-oriented search/sort helpers and overloads to fetch ticks by index, time, or millisecond timestamp.
A new tick series class builds an array-backed list of tick objects, loads history via CopyTicksRange() from the computed day boundary, and supports queries such as highest Ask and lowest Bid. Next step is a multi-symbol tick collection with real-time list updates.
π Read | Docs | @mql5dev
#MQL5 #MT5 #AlgoTrading
Core updates include new library messages, a retention-days constant, and a fix in the timeseries code path to delete bar objects when insertion fails to prevent leaks. Select.mqh gained tick-oriented search/sort helpers and overloads to fetch ticks by index, time, or millisecond timestamp.
A new tick series class builds an array-backed list of tick objects, loads history via CopyTicksRange() from the computed day boundary, and supports queries such as highest Ask and lowest Bid. Next step is a multi-symbol tick collection with real-time list updates.
π Read | Docs | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€42π5π3π2
Live trading controls often split across symbol filters, session rules, news blackouts, and daily limits. When manual orders and multiple EAs share a terminal, inconsistent enforcement becomes likely.
A unified discipline framework centralizes validation in CDisciplineEngine.mqh. It acts as a single gate for IsTradeAllowed(), synchronizes rule state, and exposes monitoring data shared by both EA and dashboard.
Architecture is layered: external configuration files, the engine, a chart dashboard, and EA integration. The engine checks whitelist, trading hours, news state, and daily trade counts, then records executed trades for accurate limits.
The dashboard visualizes engine state only. The enforcement EA uses timers to keep positions compliant and avoids duplicating rule logic.
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
A unified discipline framework centralizes validation in CDisciplineEngine.mqh. It acts as a single gate for IsTradeAllowed(), synchronizes rule state, and exposes monitoring data shared by both EA and dashboard.
Architecture is layered: external configuration files, the engine, a chart dashboard, and EA integration. The engine checks whitelist, trading hours, news state, and daily trade counts, then records executed trades for accurate limits.
The dashboard visualizes engine state only. The enforcement EA uses timers to keep positions compliant and avoids duplicating rule logic.
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€45π9π3π2π2
A signal-generation library is available for detecting when market price reaches predefined channel boundaries, rather than triggering on subjective βnearbyβ conditions.
The engine tracks two quantified phases: percentage proximity to a channel line, followed by a percentage reversal from the extreme boundary. A state machine enforces these rules consistently to reduce discretionary interpretation.
Signals do not forecast direction. They flag a boundary-touch event that often marks a decision point, where price either respects the level (validating it as support/resistance) or breaks through with momentum.
The approach is channel-agnostic and can be applied to any channel definition. A common implementation uses the Donchian channel.
π Read | VPS | @mql5dev
#MQL5 #MT5 #AlgoTrading
The engine tracks two quantified phases: percentage proximity to a channel line, followed by a percentage reversal from the extreme boundary. A state machine enforces these rules consistently to reduce discretionary interpretation.
Signals do not forecast direction. They flag a boundary-touch event that often marks a decision point, where price either respects the level (validating it as support/resistance) or breaks through with momentum.
The approach is channel-agnostic and can be applied to any channel definition. A common implementation uses the Donchian channel.
π Read | VPS | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€22π₯7π4π3
When strategy optimization exceeds 10+ parameters, tester reports become high-noise datasets. Tables, flat charts, and 2D heatmaps stop scaling, and correlations across period, stop-loss, volatility, and drawdown become hard to validate.
MetaTrader 5 uses DirectX 11 in MQL5 via CDXCanvas and CChartObjectDX. Shaders and textures load from Files\DX\ without external libraries, C++ wrappers, or dependency management. The goal is analytical reduction of cognitive load, not decoration.
3D is justified when a metric depends on two or more continuous variables and geometry matters. Typical cases include optimization landscapes (plateaus vs narrow maxima), regime clustering as a rotatable point cloud, and stress tests mapping parameter vs stress level vs robustness metric.
Core implementation points include canvas initialization, projection setup, vertex...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
MetaTrader 5 uses DirectX 11 in MQL5 via CDXCanvas and CChartObjectDX. Shaders and textures load from Files\DX\ without external libraries, C++ wrappers, or dependency management. The goal is analytical reduction of cognitive load, not decoration.
3D is justified when a metric depends on two or more continuous variables and geometry matters. Typical cases include optimization landscapes (plateaus vs narrow maxima), regime clustering as a rotatable point cloud, and stress tests mapping parameter vs stress level vs robustness metric.
Core implementation points include canvas initialization, projection setup, vertex...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€27π9π3
Part 11 replaces a single-file, chart-object news panel with a canvas-rendered dashboard split into four modules: core data/state, logic (loading/filtering/row planning and trade candidate scans), render (draw-only), and interaction (mouse/scroll/resize). This separation makes new features safer to add and keeps redraws fast: one bitmap pass for the entire UI.
The layout becomes runtime-resizable with bounded width/height, and table columns are recomputed every render, shrinking the Event column only when space is tight. Scrolling switches from row-based to pixel-based, enabling smooth thumb dragging, partial-row movement, and cleaner hit-testing from a single scroll-state struct.
Event display improves with metadata-driven formatting: values show correct units, multipliers (K/M/B/T), and precision, and unpublished fields render as dashes. Remaining-ti...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
The layout becomes runtime-resizable with bounded width/height, and table columns are recomputed every render, shrinking the Event column only when space is tight. Scrolling switches from row-based to pixel-based, enabling smooth thumb dragging, partial-row movement, and cleaner hit-testing from a single scroll-state struct.
Event display improves with metadata-driven formatting: values show correct units, multipliers (K/M/B/T), and precision, and unpublished fields render as dashes. Remaining-ti...
π Read | CodeBase | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€27π7π1
MQL5 trailing stops still default to linear, sequential updates in CExpertTrailing. This design adds O(n) work per update and becomes fragile during non-contiguous quotes, where gaps force execution at the next available price and increase slippage.
A skip list-based trailing model replaces sequential search with probabilistic, layered traversal targeting O(log n). Different modes can range from baseline linear search to fixed-skip, probabilistic promotion via random level selection, and an extreme hybrid that jumps directly to the highest tier for high-volatility regimes.
Noise handling is added with a Hopfield network used as an associative stability filter. Its energy function acts as a veto: when energy indicates instability, trailing updates are paused; when stable, the skip list computes the next stop. Integration is designed to fit the MQL5 ...
π Read | Freelance | @mql5dev
#MQL5 #MT5 #AlgoTrading
A skip list-based trailing model replaces sequential search with probabilistic, layered traversal targeting O(log n). Different modes can range from baseline linear search to fixed-skip, probabilistic promotion via random level selection, and an extreme hybrid that jumps directly to the highest tier for high-volatility regimes.
Noise handling is added with a Hopfield network used as an associative stability filter. Its energy function acts as a veto: when energy indicates instability, trailing updates are paused; when stable, the skip list computes the next stop. Integration is designed to fit the MQL5 ...
π Read | Freelance | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€33π9π2π2
This article upgrades a visual MT5 flag-pattern detector into a reliable signal source for automated trading. Chart objects are kept for human readability, but breakouts are published through indicator buffers so an EA can consume them deterministically via CopyBuffer().
The indicator outputs three buffers: buy, sell, and pole height. Buy/sell stay EMPTY_VALUE until a candle closes beyond the flag boundary; the pole-height buffer records the measured structure size on the same bar for proportional SL/TP sizing. Signals are written only once, using prev_calculated logic to avoid repainting and to keep backtests consistent.
The EA becomes a thin execution layer: load the indicator with iCustom(), read the latest closed bar on new-bar events, apply optional trend/volume filters, and place trades once per confirmed signal. A one-time startup scan capt...
π Read | Quotes | @mql5dev
#MQL5 #MT5 #AlgoTrading
The indicator outputs three buffers: buy, sell, and pole height. Buy/sell stay EMPTY_VALUE until a candle closes beyond the flag boundary; the pole-height buffer records the measured structure size on the same bar for proportional SL/TP sizing. Signals are written only once, using prev_calculated logic to avoid repainting and to keep backtests consistent.
The EA becomes a thin execution layer: load the indicator with iCustom(), read the latest closed bar on new-bar events, apply optional trend/volume filters, and place trades once per confirmed signal. A one-time startup scan capt...
π Read | Quotes | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€34π9β‘2π1
This article replaces a compile-time CSV and in-memory state with a single SQLite database shared by live charts and Strategy Tester agents via the terminal common folder. Live mode upserts calendar events from the MQL5 Calendar API into disk, while the tester loads the same events by time-window queries with no mode-specific code paths.
The schema uses an events table keyed by calendar value_id (so revisions overwrite cleanly) and a triggered table keyed by event_id to persist trade deduplication across restarts. Time-based indexing accelerates window queries; old rows are pruned to keep the store bounded.
Historical ranges can be downloaded on demand without recompiling, with a canvas progress bar showing population status. On startup, the EA restores triggered IDs from the last 24 hours to prevent duplicate orders after terminal reboots.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
The schema uses an events table keyed by calendar value_id (so revisions overwrite cleanly) and a triggered table keyed by event_id to persist trade deduplication across restarts. Time-based indexing accelerates window queries; old rows are pruned to keep the store bounded.
Historical ranges can be downloaded on demand without recompiling, with a canvas progress bar showing population status. On startup, the EA restores triggered IDs from the last 24 hours to prevent duplicate orders after terminal reboots.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #AlgoTrading
β€42π10π―4