Prop firms often close accounts immediately when a daily loss cap is hit. A chart indicator can reduce manual tracking by calculating key thresholds directly from account history and current equity.
It displays the dayβs starting balance, the equity level where the daily loss limit is reached, loss used so far in currency and as a percentage of the limit, and remaining room before violation. An optional line can show the maximum loss limit level. Panel colors shift from green to orange to red as risk increases, with one popup warning per day at a configurable level (80% by default).
Inputs include daily and maximum loss limits (percent), challenge starting balance, server-time day start hour, warning level, and panel position. The tool is read-only and does not place or manage orders. Daily definitions vary by firm, so settings should match the firmβ...
π Read | VPS | @mql5dev
It displays the dayβs starting balance, the equity level where the daily loss limit is reached, loss used so far in currency and as a percentage of the limit, and remaining room before violation. An optional line can show the maximum loss limit level. Panel colors shift from green to orange to red as risk increases, with one popup warning per day at a configurable level (80% by default).
Inputs include daily and maximum loss limits (percent), challenge starting balance, server-time day start hour, warning level, and panel position. The tool is read-only and does not place or manage orders. Daily definitions vary by firm, so settings should match the firmβ...
π Read | VPS | @mql5dev
π9β€3π€©3π¨βπ»3π2
This article proposes an MT5 trading architecture where strategy logic evolves in production: 20 Grok-powered LLM agents run with different system prompts, and a genetic algorithm selects winners every 20 trades. The bottom 25% are removed, the top 25% are cloned with controlled prompt mutations, and a chart leaderboard tracks fitness.
Fitness avoids naive PnL ranking by using Sharpe Γ sqrt(trades), with a minimum of 3 personal trades to reduce statistical noise. Agent selection blends exploitation (softmax roulette) with exploration (quota for under-tested mutants).
Implementation focuses on practical MT5 reliability: Grok is called via plain REST + requests (no SDK), JSON output is made unambiguous, EVOLVE is handled synchronously with socket locking to prevent corrupted replies, and MQL5 attributes results using DEAL_POSITION_ID. Backtest on EU...
π Read | Forum | @mql5dev
Fitness avoids naive PnL ranking by using Sharpe Γ sqrt(trades), with a minimum of 3 personal trades to reduce statistical noise. Agent selection blends exploitation (softmax roulette) with exploration (quota for under-tested mutants).
Implementation focuses on practical MT5 reliability: Grok is called via plain REST + requests (no SDK), JSON output is made unambiguous, EVOLVE is handled synchronously with socket locking to prevent corrupted replies, and MQL5 attributes results using DEAL_POSITION_ID. Backtest on EU...
π Read | Forum | @mql5dev
π14β€5π₯5π2π€©2π2
Session filters in EAs are defined in server time, and brokers use different time zones and DST rules. A fixed β10:00β13:00β window only stays aligned with London or New York while the server offset stays stable, which fails during the US/EU DST gap weeks.
A clock-audit tool can infer the server offset from symbol history instead of relying on broker notes. The weekly FX/CME close is 17:00 America/New_York; comparing that instant (converted to UTC with US DST rules) to the last H1 bar before each weekend/holiday gap yields one offset measurement per week. Over ~60 weeks this produces a sequence that detects clock moves, dates the switch between closes, and classifies the regime as fixed, US, EU, mixed, or untested.
Output includes irregular closes (for example early US holiday metals closes), counts of Sunday bars (relevant for D1 candles), and projections ...
π Read | Freelance | @mql5dev
A clock-audit tool can infer the server offset from symbol history instead of relying on broker notes. The weekly FX/CME close is 17:00 America/New_York; comparing that instant (converted to UTC with US DST rules) to the last H1 bar before each weekend/holiday gap yields one offset measurement per week. Over ~60 weeks this produces a sequence that detects clock moves, dates the switch between closes, and classifies the regime as fixed, US, EU, mixed, or untested.
Output includes irregular closes (for example early US holiday metals closes), counts of Sunday bars (relevant for D1 candles), and projections ...
π Read | Freelance | @mql5dev
π9β€7π₯4π€©2π2
Indicator readings like determinism, persistence entropy, or time-reversal asymmetry remain uninterpretable without a null model that preserves the relevant structure. Bar shuffling is typically the wrong null for indicators because it destroys arrival order and autocorrelation.
Surrogate testing keeps amplitude distribution and/or power spectrum while removing higher-order structure. Four nulls are outlined: FT (linear Gaussian), AAFT and IAAFT (static monotone transform of a linear process), and BLOCK (stationary bootstrap with finite dependence length). Each null answers a different βby chanceβ question.
Implementation notes: spectral surrogates require FFT on arbitrary lengths, handled via Bluestein chirp-z to avoid zero padding or truncation. IAAFT stops on rank fixed points to ensure exact amplitude matching, leaving residual spectral error ...
π Read | Quotes | @mql5dev
Surrogate testing keeps amplitude distribution and/or power spectrum while removing higher-order structure. Four nulls are outlined: FT (linear Gaussian), AAFT and IAAFT (static monotone transform of a linear process), and BLOCK (stationary bootstrap with finite dependence length). Each null answers a different βby chanceβ question.
Implementation notes: spectral surrogates require FFT on arbitrary lengths, handled via Bluestein chirp-z to avoid zero padding or truncation. IAAFT stops on rank fixed points to ensure exact amplitude matching, leaving residual spectral error ...
π Read | Quotes | @mql5dev
β€19π9π€©7π₯5π2π1
Many funded challenges fail due to violations of the daily loss rule. DailyLossGuard automates enforcement by tracking daily P/L on every tick against a configured limit, based on a percentage of day-start balance or a fixed amount.
On breach, it can close all open positions immediately, trigger an alert and push notification, and display a persistent BREACHED status panel until the next trading day. A Magic Number filter allows protection for a single EA or the entire account.
A top-center dashboard shows daily P/L, limit, and ARMED/BREACHED state, with automatic recovery on timeframe changes and chart resizes. Intended for prop-firm and funded accounts, multi-EA setups, and manual trading requiring a strict daily stop.
Due to platform API constraints, it cannot prevent other EAs from sending new orders; it reacts by closing positions and notifying instan...
π Read | Quotes | @mql5dev
On breach, it can close all open positions immediately, trigger an alert and push notification, and display a persistent BREACHED status panel until the next trading day. A Magic Number filter allows protection for a single EA or the entire account.
A top-center dashboard shows daily P/L, limit, and ARMED/BREACHED state, with automatic recovery on timeframe changes and chart resizes. Intended for prop-firm and funded accounts, multi-EA setups, and manual trading requiring a strict daily stop.
Due to platform API constraints, it cannot prevent other EAs from sending new orders; it reacts by closing positions and notifying instan...
π Read | Quotes | @mql5dev
π9π€©8β€7π₯5π2
Multi-timeframe dashboards often emit conflicting forecasts for the same price window. Weighted voting forces agreement but provides no error guarantee.
Forecast reconciliation treats coherence as a linear constraint. When targets are linearly related by construction, an orthogonal projection can enforce consistency without increasing total squared error under the chosen metric, given a coherent truth.
An MQL5 implementation builds a summing matrix for two cases: timeframe aggregation on one symbol, and cross-currency identities in log space. Independent models per node are reconciled into a coherent set.
Weighting matters. Options range from identity and structural diagonals to MinT covariance-based schemes with correlation shrinkage. Walk-forward tests measure squared error only; results do not imply a trading edge.
π Read | AppStore | @mql5dev
Forecast reconciliation treats coherence as a linear constraint. When targets are linearly related by construction, an orthogonal projection can enforce consistency without increasing total squared error under the chosen metric, given a coherent truth.
An MQL5 implementation builds a summing matrix for two cases: timeframe aggregation on one symbol, and cross-currency identities in log space. Independent models per node are reconciled into a coherent set.
Weighting matters. Options range from identity and structural diagonals to MinT covariance-based schemes with correlation shrinkage. Walk-forward tests measure squared error only; results do not imply a trading edge.
π Read | AppStore | @mql5dev
π19β€8π₯8π€©7π¨βπ»2π1
A script exports the full trading specification for each symbol into a CSV file.
The output includes digits, point, tick size/value, volume min/max/step, contract size, stops and freeze levels, current spread, spread type (floating or fixed), allowed filling modes, execution mode, trade mode, initial margin, swap long/short, and profit currency.
These parameters commonly change between brokers or instruments and can cause Expert Advisors to fail without clear errors. Volume step, filling mode, and stops level are frequent sources of silent order rejections. A one-time export makes incompatibilities visible before placing the first trade.
Inputs cover Market Watch only or all broker symbols, optional use of the common Files folder, and a configurable file name (empty for automatic naming). Symbols not in Market Watch are added temporarily for reading, t...
π Read | Signals | @mql5dev
The output includes digits, point, tick size/value, volume min/max/step, contract size, stops and freeze levels, current spread, spread type (floating or fixed), allowed filling modes, execution mode, trade mode, initial margin, swap long/short, and profit currency.
These parameters commonly change between brokers or instruments and can cause Expert Advisors to fail without clear errors. Volume step, filling mode, and stops level are frequent sources of silent order rejections. A one-time export makes incompatibilities visible before placing the first trade.
Inputs cover Market Watch only or all broker symbols, optional use of the common Files folder, and a configurable file name (empty for automatic naming). Symbols not in Market Watch are added temporarily for reading, t...
π Read | Signals | @mql5dev
β€13π11π₯8π€©6β‘2π2
Manual Trade Pad for MT5 is a chart-based manual trading panel built as an MQL5 EA for order execution and basic position management directly from the terminal. It runs in two modes: Live Market for manual trading, and Strategy Tester for manual historical testing and workflow practice. No external DLLs, libraries, indicators, or custom GUI frameworks are required.
Core functions include BUY/SELL market orders with automatic Stop Loss and optional Take Profit based on a configurable Risk/Reward ratio. Position sizing supports fixed lot input or risk-percentage sizing, with volume normalized to broker constraints and validated against symbol stop-level rules.
Trade management covers Break-Even with offset, partial close with step/min volume checks, and closing by direction (BUY, SELL, or all managed). Scope is limited to the chart symbol and a configured Magic Nu...
π Read | Docs | @mql5dev
Core functions include BUY/SELL market orders with automatic Stop Loss and optional Take Profit based on a configurable Risk/Reward ratio. Position sizing supports fixed lot input or risk-percentage sizing, with volume normalized to broker constraints and validated against symbol stop-level rules.
Trade management covers Break-Even with offset, partial close with step/min volume checks, and closing by direction (BUY, SELL, or all managed). Scope is limited to the chart symbol and a configured Magic Nu...
π Read | Docs | @mql5dev
β€24π11π€©8π₯4π2π2
AI agents and other automated systems execute trades at machine speed, while platform safety settings can miss operational errors. AgentGuard adds an independent risk layer by polling all open positions every five seconds and enforcing four hard limits.
Controls include maximum total volume, maximum position count, mandatory stop-loss on every position, and a daily-loss circuit breaker that closes all positions and remains locked until the next trading day.
The tool operates alongside any EA, manual trading, or AI agent. It evaluates compliance only, regardless of how a position was opened. A status panel and intervention alerts provide visibility, with a monitor-only mode for calibration. No DLLs. Free. Risk management only; no signal generation.
π Read | VPS | @mql5dev
Controls include maximum total volume, maximum position count, mandatory stop-loss on every position, and a daily-loss circuit breaker that closes all positions and remains locked until the next trading day.
The tool operates alongside any EA, manual trading, or AI agent. It evaluates compliance only, regardless of how a position was opened. A status panel and intervention alerts provide visibility, with a monitor-only mode for calibration. No DLLs. Free. Risk management only; no signal generation.
π Read | VPS | @mql5dev
β€18π₯11π9π€©4π2
Broker Basket Preflight is a standalone MT5 script intended to verify a brokerβs multi-symbol setup before portfolio EA work. It reads the exact symbols currently selected in Market Watch and writes a diagnostic report to the Experts journal. The source includes an MIT license and relies on no external libraries, DLLs, or network calls.
The script is installed by copying BrokerBasketPreflight.mq5 into MQL5/Scripts, compiling, then running it from a separate chart. InpSymbols can be left empty to test the chart symbol, or set to a 1β64 entry comma-separated basket using broker-exact names. Unknown, unselected, empty, and duplicate entries are skipped independently.
Output covers symbol specification and quote integrity: contract size, volume limits/step, point/tick sizes, digits, stops/freeze distances, calc/trade modes, execution and filling policies, p...
π Read | Forum | @mql5dev
The script is installed by copying BrokerBasketPreflight.mq5 into MQL5/Scripts, compiling, then running it from a separate chart. InpSymbols can be left empty to test the chart symbol, or set to a 1β64 entry comma-separated basket using broker-exact names. Unknown, unselected, empty, and duplicate entries are skipped independently.
Output covers symbol specification and quote integrity: contract size, volume limits/step, point/tick sizes, digits, stops/freeze distances, calc/trade modes, execution and filling policies, p...
π Read | Forum | @mql5dev
β€19π13π€©5π₯2
Portfolio Allocation Planner is a free open-source MT5 utility for checking whether target weights are feasible under broker minimum lots. It converts an explicit notional budget and percentage weights into a dashboard showing minimum-lot notional, lots rounded down, resulting allocation, target shortfall, and per-row status. Snapshots can be recalculated on demand, inspected via hover details, paginated for larger baskets, and optionally exported to CSV.
Setup: copy PortfolioAllocationPlanner.mq5 to MQL5/Experts, compile, select exact broker symbols in Market Watch, then attach to a separate chart. Configure InpBudget, InpBudgetCurrency, InpSymbols, and matching InpWeightsPct (not normalized; total > 0 and <= 100). It is an interface EA with no trading; no account data is read and no orders are sent.
Notional is computed as Ask Γ contract size with explici...
π Read | AlgoBook | @mql5dev
Setup: copy PortfolioAllocationPlanner.mq5 to MQL5/Experts, compile, select exact broker symbols in Market Watch, then attach to a separate chart. Configure InpBudget, InpBudgetCurrency, InpSymbols, and matching InpWeightsPct (not normalized; total > 0 and <= 100). It is an interface EA with no trading; no account data is read and no orders are sent.
Notional is computed as Ask Γ contract size with explici...
π Read | AlgoBook | @mql5dev
β€19π11π€©9π₯4
SEW ResNet concepts were implemented for MQL5 time-series work using a spiking ResNeXt baseline with energy-balanced learning. The design targets bursty market streams by using discrete spikes, adaptive thresholds, and gating to reduce sensitivity to noise while staying responsive under volatility.
Core modules include Spike ResNeXt Bottleneck and Spike ResNeXt Residual blocks, assembled via programmatic layer creation with convolution, normalization, spiking activation, and grouped convolutions. A zero-input check skips compute during low-activity intervals.
To capture cross-feature dependencies, a second Bottleneck operates on a transposed tensor per time step, while residual usage is limited to avoid over-amplification. Multi-stream fusion avoids element-wise multiplication due to blocked gradients; normalized summation plus spiking activation ...
π Read | AppStore | @mql5dev
Core modules include Spike ResNeXt Bottleneck and Spike ResNeXt Residual blocks, assembled via programmatic layer creation with convolution, normalization, spiking activation, and grouped convolutions. A zero-input check skips compute during low-activity intervals.
To capture cross-feature dependencies, a second Bottleneck operates on a transposed tensor per time step, while residual usage is limited to avoid over-amplification. Multi-stream fusion avoids element-wise multiplication due to blocked gradients; normalized summation plus spiking activation ...
π Read | AppStore | @mql5dev
π₯10π9β€8π€©2
Part V adds persistence to the Supply/Demand Zone Manager so zone state survives EA or terminal restarts per symbol+timeframe.
A plain-data snapshot (SZonePersist) stores identity, geometry/timing, scores/telemetry, lifecycle flags, interaction history, and user anchors. Runtime behavior stays in CZone; persistence only captures durable state.
Startup flow restores saved properties, rebuilds CZone instances from records, runs existing relevance checks, then reconciles chart rectangles. User zones restore left anchor and price bounds; right edge remains framework-managed and extends at runtime.
Persistence uses Terminal\Common\Files\DynamicSR\V5 with filenames derived from symbol+timeframe. Changes mark a dirty flag; SavePersistState writes snapshots via CZonePersistence.
Scope note: restart-safe only. No atomic writes, checksums, or crash-safe transact...
π Read | NeuroBook | @mql5dev
A plain-data snapshot (SZonePersist) stores identity, geometry/timing, scores/telemetry, lifecycle flags, interaction history, and user anchors. Runtime behavior stays in CZone; persistence only captures durable state.
Startup flow restores saved properties, rebuilds CZone instances from records, runs existing relevance checks, then reconciles chart rectangles. User zones restore left anchor and price bounds; right edge remains framework-managed and extends at runtime.
Persistence uses Terminal\Common\Files\DynamicSR\V5 with filenames derived from symbol+timeframe. Changes mark a dirty flag; SavePersistState writes snapshots via CZonePersistence.
Scope note: restart-safe only. No atomic writes, checksums, or crash-safe transact...
π Read | NeuroBook | @mql5dev
β€16π11π€©7π₯6
Part 86 extends the double-bottom pattern tool with library-wide validation. A new VALIDATE ALL action reuses the existing ValidateDoubleBottom() rule engine to classify every stored sample into INVALID, CANDIDATE, CONFIRMED, or FAILED, while keeping single-sample validation and chart rendering separate for accurate visual review.
The batch run works on stored candle arrays (symbol/timeframe included), supports non-consecutive sample IDs, and produces a consolidated UTF-8 CSV without modifying original SAMPLE_<ID>.csv files. The report embeds totals, validator settings, schema/revision metadata, and one detailed row per sample (indices, prices, score, reason), preserving 17-digit floating-point precision.
Export adds defensive engineering: per-run filenames, temp-file write + byte-for-byte readback verification, explicit status accounting, and error diagnos...
π Read | Quotes | @mql5dev
The batch run works on stored candle arrays (symbol/timeframe included), supports non-consecutive sample IDs, and produces a consolidated UTF-8 CSV without modifying original SAMPLE_<ID>.csv files. The report embeds totals, validator settings, schema/revision metadata, and one detailed row per sample (indices, prices, score, reason), preserving 17-digit floating-point precision.
Export adds defensive engineering: per-run filenames, temp-file write + byte-for-byte readback verification, explicit status accounting, and error diagnos...
π Read | Quotes | @mql5dev
π11β€10π€©4π₯2π1
This article implements Variational Mode Decomposition (VMD) for MetaTrader 5 as a rigorously causal tool, not a hindsight-heavy chart smoother. It contrasts VMD with MAs, FFT, and EMD, then frames VMD as an explicit optimization solved by ADMM: K modes that sum to price, each constrained to be narrowband around an estimated center frequency.
Key engineering details: FFT is done once in/out of the loop; ADMM updates are closed-form Wiener filters in the frequency domain; windows are mirrored to reduce boundary discontinuities; analytic-signal handling is implemented correctly; log-prices and mean removal prevent the DC spike from corrupting modes; rolling buffers keep memory small enough for per-bar execution.
The indicator plots a denoised signal, trend mode, and a βrandom wanderβ band, plus per-mode periods, energy shares, and solve-quality flags. Cruci...
π Read | AlgoBook | @mql5dev
Key engineering details: FFT is done once in/out of the loop; ADMM updates are closed-form Wiener filters in the frequency domain; windows are mirrored to reduce boundary discontinuities; analytic-signal handling is implemented correctly; log-prices and mean removal prevent the DC spike from corrupting modes; rolling buffers keep memory small enough for per-bar execution.
The indicator plots a denoised signal, trend mode, and a βrandom wanderβ band, plus per-mode periods, energy shares, and solve-quality flags. Cruci...
π Read | AlgoBook | @mql5dev
π10β€8π₯6π2π€©2
MITP (Multi-Indicator Trend Painter) is a trend-following indicator that aggregates up to 32 independent signals, including ALMA, AO, MACD (line and histogram), PPO (line and histogram), RSI MA, CCI MA, Fisher, KAMA, True Strength Index, Trend Strength Index, RCI Ribbon, Chop Zone, and others. Each component can be enabled or disabled in inputs.
Each enabled indicator maintains its own trigger. When it turns bullish, the candle high is stored as a buy trigger; when bearish, the candle low becomes a sell trigger. A state flips to BUY or SELL only after a candle closes beyond the stored trigger while the condition remains valid. If the indicator reverses, the pending trigger is dropped and recreated on a subsequent flip. Neutral readings keep the current state.
A general trigger is created only when all enabled indicators align in BUY or SELL on a clos...
π Read | Signals | @mql5dev
Each enabled indicator maintains its own trigger. When it turns bullish, the candle high is stored as a buy trigger; when bearish, the candle low becomes a sell trigger. A state flips to BUY or SELL only after a candle closes beyond the stored trigger while the condition remains valid. If the indicator reverses, the pending trigger is dropped and recreated on a subsequent flip. Neutral readings keep the current state.
A general trigger is created only when all enabled indicators align in BUY or SELL on a clos...
π Read | Signals | @mql5dev
π14π₯7β€6
This article frames price, returns, and equity curves as random processes: functions indexed by time, where a chart is just one sample path. The practical goal is separating structure from noise using definitions that make assumptions explicit and testable.
It introduces cross-sections, trajectories, and finite-dimensional distributions as the core way to reason about increments, autocovariance, and autocorrelation without βinfinite-dimensionalβ machinery. Key diagnostics become time-dependent functions: mean, variance, covariance, and correlation.
The classification focuses on what matters for modeling: discrete vs continuous time, discrete vs continuous state space, stationarity (strict vs wide-sense), stationary/independent/uncorrelated increments, ergodicity as a justification for backtests, and Markov structure as βmemory length,β including the tric...
π Read | AlgoBook | @mql5dev
It introduces cross-sections, trajectories, and finite-dimensional distributions as the core way to reason about increments, autocovariance, and autocorrelation without βinfinite-dimensionalβ machinery. Key diagnostics become time-dependent functions: mean, variance, covariance, and correlation.
The classification focuses on what matters for modeling: discrete vs continuous time, discrete vs continuous state space, stationarity (strict vs wide-sense), stationary/independent/uncorrelated increments, ergodicity as a justification for backtests, and Markov structure as βmemory length,β including the tric...
π Read | AlgoBook | @mql5dev
π19β€9π₯5π€©3
RiskLotCalculator is an MT5 script that calculates position size so a stop loss hit matches a defined account risk percentage. After attaching it to a chart, set risk percent and stop loss distance in points; a chart panel displays the computed lot size along with money at risk and required margin.
The script uses OrderCalcProfit() to estimate the loss for 1.0 lot from entry to stop loss, relying on platform handling of tick value, contract size, and account currency. This keeps the logic consistent across forex, gold, indices, and crypto without per-symbol parameters.
Risk amount is derived from the selected base (equity, balance, or free margin) multiplied by the risk percent. The resulting volume is floored to the symbolβs volume step and constrained to min/max lot to avoid exceeding the requested risk. Warnings are shown if broker minimum volume imp...
π Read | NeuroBook | @mql5dev
The script uses OrderCalcProfit() to estimate the loss for 1.0 lot from entry to stop loss, relying on platform handling of tick value, contract size, and account currency. This keeps the logic consistent across forex, gold, indices, and crypto without per-symbol parameters.
Risk amount is derived from the selected base (equity, balance, or free margin) multiplied by the risk percent. The resulting volume is floored to the symbolβs volume step and constrained to min/max lot to avoid exceeding the requested risk. Warnings are shown if broker minimum volume imp...
π Read | NeuroBook | @mql5dev
β€14π10π₯6π€©4π¨βπ»2β1β‘1
This piece adds a proper feature-screening stage to MT5-style pipelines, focusing on overlapping forward returns where standard permutation tests break. Shuffling the target assumes observations are exchangeable; with 20-bar overlapping labels and persistent features, it produces extreme false positives even on true nulls.
A calibrated null is built with resampling that preserves dependence: circular shifts (optionally constrained to hour-of-day) behave near the nominal error rate, while stationary bootstrap requires explicitly chosen block lengths and can be badly oversized.
The implemented three-gate screen separates concerns: (1) stationarity via paired ADF+KPSS to avoid single-test blind spots, plus rolling stability diagnostics; (2) entropy as a cheap variance filter to save compute; (3) mutual information with WestfallβYoung family-wise correct...
π Read | NeuroBook | @mql5dev
A calibrated null is built with resampling that preserves dependence: circular shifts (optionally constrained to hour-of-day) behave near the nominal error rate, while stationary bootstrap requires explicitly chosen block lengths and can be badly oversized.
The implemented three-gate screen separates concerns: (1) stationarity via paired ADF+KPSS to avoid single-test blind spots, plus rolling stability diagnostics; (2) entropy as a cheap variance filter to save compute; (3) mutual information with WestfallβYoung family-wise correct...
π Read | NeuroBook | @mql5dev
π12β€5π₯4
Option chains contain more information than a single implied volatility: the volatility smile encodes a full risk-neutral terminal distribution, often with far fatter tails than lognormal. The article turns that into actionable percentiles by recovering density from call-price curvature (BreedenβLitzenberger), then publishing the 5β95% band.
Because second derivatives amplify bad quotes, the pipeline focuses on robustness: derive the forward from put-call parity (median near-ATM), convert to a Black-76 forward framework, fit a smooth IV curve in log-moneyness, reprice a dense strike grid, then finite-difference to density. It reports diagnostics instead of hiding flaws: negative probability mass, convexity violations, parity spread, and strike coverage.
Implementation is split cleanly: Python writes a small JSON feed per ETF; MQL5 reads it to draw lev...
π Read | Forum | @mql5dev
Because second derivatives amplify bad quotes, the pipeline focuses on robustness: derive the forward from put-call parity (median near-ATM), convert to a Black-76 forward framework, fit a smooth IV curve in log-moneyness, reprice a dense strike grid, then finite-difference to density. It reports diagnostics instead of hiding flaws: negative probability mass, convexity violations, parity spread, and strike coverage.
Implementation is split cleanly: Python writes a small JSON feed per ETF; MQL5 reads it to draw lev...
π Read | Forum | @mql5dev
β€12π9π₯5π€©2
MetaTrader 5 tick volume is a per-bar quote-change counter. It reflects time-of-day effects, is incomplete mid-bar, and loses intra-bar timing. A more direct activity measure can be built from inter-quote durations.
The approach uses time between consecutive quote changes, removes the diurnal profile in fixed time bins with interpolation, then models remaining clustering via an Engle-Russell ACD recursion. The output is a per-quote activity ratio: 1 equals normal for that hour, 2 implies double the expected quote pace, 0.5 half.
Implementation details include folding same-millisecond bursts into one event and resetting after long gaps (default 5 minutes). Calibration is pure MQL5 and reports out-of-sample likelihood gains versus a rhythm-only baseline across EURUSD, GBPUSD, USDJPY, XAUUSD, US30, SPX500, with modest but statistically significant inc...
π Read | Docs | @mql5dev
The approach uses time between consecutive quote changes, removes the diurnal profile in fixed time bins with interpolation, then models remaining clustering via an Engle-Russell ACD recursion. The output is a per-quote activity ratio: 1 equals normal for that hour, 2 implies double the expected quote pace, 0.5 half.
Implementation details include folding same-millisecond bursts into one event and resetting after long gaps (default 5 minutes). Calibration is pure MQL5 and reports out-of-sample likelihood gains versus a rhythm-only baseline across EURUSD, GBPUSD, USDJPY, XAUUSD, US30, SPX500, with modest but statistically significant inc...
π Read | Docs | @mql5dev
β€14π10π₯3π€©3