Correlation across symbols can hide real risk: multiple positions may behave like one trade if their returns move together. A rolling Pearson correlation matrix helps spot these clusters, but it remains a diagnostic tool, not a full portfolio risk model (it ignores size and direction).
The article builds an MT5 Expert Advisor that tracks symbols from open positions, computes bar-to-bar percentage returns from closed candles, and refreshes the pairwise correlation matrix on each new bar or when the position symbol set changes. Results are rendered as a heatmap with a configurable warning border for strong positive or negative relationships.
Implementation details focus on robust MQL5 design: return series and the matrix are stored in compact structures, the matrix uses a flat array with defined/undefined flags, correlations handle zero-variance series as u...
π Read | AppStore | @mql5dev
The article builds an MT5 Expert Advisor that tracks symbols from open positions, computes bar-to-bar percentage returns from closed candles, and refreshes the pairwise correlation matrix on each new bar or when the position symbol set changes. Results are rendered as a heatmap with a configurable warning border for strong positive or negative relationships.
Implementation details focus on robust MQL5 design: return series and the matrix are stored in compact structures, the matrix uses a flat array with defined/undefined flags, correlations handle zero-variance series as u...
π Read | AppStore | @mql5dev
β€8π₯4β2π€©2π2
Correlation-based screening misses deterministic non-linear inputs. MIC (Reshef et al., 2011) targets strength over shape, but it is a maximum over many grids and does not read zero on independence; at 200 points, unrelated columns can score near 0.22.
MINE approximates the grid search by freezing one axis via equipartition (tie-aware), reducing candidate cuts to clump boundaries, and solving the remaining partition exactly with a dynamic program. Runtime is dominated by repeated entropy terms, so integer xlogx lookup tables matter.
MIC comes with MAS, MEV, and MCN to describe dependence form and complexity. Evidence requires a permutation null; for time series, iid shuffles are invalid, so block permutations are used. Multi-feature scans must build the null of the maximum, not per-feature p-values.
π Read | Quotes | @mql5dev
MINE approximates the grid search by freezing one axis via equipartition (tie-aware), reducing candidate cuts to clump boundaries, and solving the remaining partition exactly with a dynamic program. Runtime is dominated by repeated entropy terms, so integer xlogx lookup tables matter.
MIC comes with MAS, MEV, and MCN to describe dependence form and complexity. Evidence requires a permutation null; for time series, iid shuffles are invalid, so block permutations are used. Multi-feature scans must build the null of the maximum, not per-feature p-values.
π Read | Quotes | @mql5dev
β€18π11π€©2π2π¨βπ»2π₯1
Session Sweep Boxes plots Asian, London, and New York sessions as range boxes and flags liquidity sweeps of completed session highs/lows. A sweep is defined as price trading beyond a session extreme and then closing back inside it. Red arrows mark high sweeps (bearish), blue arrows mark low sweeps (bullish). Signals trigger only on closed candles, so outputs do not repaint.
Session times are configured in GMT for broker-independent behavior. Server GMT offset can be auto-detected or set manually; Strategy Tester requires the manual value. If sessions shift after DST changes, manual offset should be used.
After a session ends, its high/low can be extended as dotted lines until swept, invalidated by a close beyond the level, or reset by the next dayβs same session. Options include filled boxes, labels, history depth, ATR-based arrow spacing, first-swee...
π Read | AppStore | @mql5dev
Session times are configured in GMT for broker-independent behavior. Server GMT offset can be auto-detected or set manually; Strategy Tester requires the manual value. If sessions shift after DST changes, manual offset should be used.
After a session ends, its high/low can be extended as dotted lines until swept, invalidated by a close beyond the level, or reset by the next dayβs same session. Options include filled boxes, labels, history depth, ATR-based arrow spacing, first-swee...
π Read | AppStore | @mql5dev
β€8π€©5π4π₯2π2
MiniRocket is ported to native MQL5 as a fast, deterministic time-series feature transform: 84 fixed length-9 convolution kernels (weights -1/2) expanded across dilations produce ~10k bounded PPV features per price window, then a linear classifier handles prediction. No gradient descent, ONNX, or Python runtime, with ~2 ms per 128-bar transform.
The implementation focuses on correctness and speed: shared convolution terms reduce each kernel to a few additions, while Configure/Fit/Transform separation prevents leakage. Port accuracy is validated bit-for-bit against independent references, including sktime (accounting for float32 output).
The article also tackles the βno edge vs broken pipelineβ problem by adding explicit controls to the audit harness, plus analysis of what zero-sum kernels can and cannot detect, enabling reproducible evaluation of multiple t...
π Read | Docs | @mql5dev
The implementation focuses on correctness and speed: shared convolution terms reduce each kernel to a few additions, while Configure/Fit/Transform separation prevents leakage. Port accuracy is validated bit-for-bit against independent references, including sktime (accounting for float32 output).
The article also tackles the βno edge vs broken pipelineβ problem by adding explicit controls to the audit harness, plus analysis of what zero-sum kernels can and cannot detect, enabling reproducible evaluation of multiple t...
π Read | Docs | @mql5dev
π₯15π13π€©7β€5π3π1
Volatility Regime Shader assigns volatility to three regimes using ATR percentile ranking over a configurable lookback window, avoiding fixed ATR thresholds. The same percentile logic adapts across symbols and timeframes, where a 90th percentile reading means current ATR exceeds 90% of prior values in the window.
Compression is flagged at or below a chosen percentile and shaded light blue. Expansion is flagged at or above a chosen percentile and shaded light red. Normal conditions remain unshaded by default, with an optional Normal shade setting. An upper-right label can display the active regime and current ATR percentile.
Typical uses include regime filtering for automated or discretionary systems. Compression can gate breakout activation, while Expansion supports continuation logic and wider stop placement. Mean-reversion setups generally fit bett...
π Read | Freelance | @mql5dev
Compression is flagged at or below a chosen percentile and shaded light blue. Expansion is flagged at or above a chosen percentile and shaded light red. Normal conditions remain unshaded by default, with an optional Normal shade setting. An upper-right label can display the active regime and current ATR percentile.
Typical uses include regime filtering for automated or discretionary systems. Compression can gate breakout activation, while Expansion supports continuation logic and wider stop placement. Mean-reversion setups generally fit bett...
π Read | Freelance | @mql5dev
π€©14β€10π₯6π5π3
SpikingBrain reframes market modeling as event-driven computation: price/volume streams are converted into discrete spikes that fire only on meaningful deviations. This reduces noise sensitivity, cuts compute for high-frequency data, and improves adaptation to regime shifts.
Core building blocks include spiking neurons with adaptive thresholds, efficient long-context attention using linear/sliding-window or hybrid strategies, and a Mixture of Experts where only relevant experts activate during strong moves.
The implementation focus is practical for MT5/MQL5: sparse spike activity preserves latency and memory, while spike-aware sparse attention uses dynamic graph-based neighborhoods and SparseMatMul to weight V efficiently, then re-encodes outputs back into spike space. The MoE is optimized by collapsing shared inputs into a single projection using summed expert ...
π Read | Signals | @mql5dev
Core building blocks include spiking neurons with adaptive thresholds, efficient long-context attention using linear/sliding-window or hybrid strategies, and a Mixture of Experts where only relevant experts activate during strong moves.
The implementation focus is practical for MT5/MQL5: sparse spike activity preserves latency and memory, while spike-aware sparse attention uses dynamic graph-based neighborhoods and SparseMatMul to weight V efficiently, then re-encodes outputs back into spike space. The MoE is optimized by collapsing shared inputs into a single projection using summed expert ...
π Read | Signals | @mql5dev
π₯20π12β€11π€©7π3
Watchlist Chart Opener automates batch chart creation in the trading terminal. A single run can open charts for every symbol in Market Watch or for a user-defined comma-separated list, using a selected timeframe or the current chart timeframe.
A template name can be provided to apply a saved .tpl file to each newly opened chart, ensuring consistent indicators and visual settings. Custom-list symbols can be added to Market Watch automatically. Nonexistent symbols on the broker server are skipped and written to the Experts log.
Filtering supports opening only symbols whose names contain specific text, including broker suffixes. Duplicate control can skip symbols that already have an open chart on the same timeframe. A maximum chart limit reduces the risk of opening an excessive number of windows, and an end-of-run summary reports opened, skipped, and fai...
π Read | Docs | @mql5dev
A template name can be provided to apply a saved .tpl file to each newly opened chart, ensuring consistent indicators and visual settings. Custom-list symbols can be added to Market Watch automatically. Nonexistent symbols on the broker server are skipped and written to the Experts log.
Filtering supports opening only symbols whose names contain specific text, including broker suffixes. Duplicate control can skip symbols that already have an open chart on the same timeframe. A maximum chart limit reduces the risk of opening an excessive number of windows, and an end-of-run summary reports opened, skipped, and fai...
π Read | Docs | @mql5dev
π12β€9π€©6π₯4π3
Closed Trades Exporter outputs closed positions to a CSV compatible with Excel, Google Sheets, and other spreadsheet tools. Alongside standard history fields, it computes Maximum Adverse Excursion (MAE) and Maximum Favorable Excursion (MFE) from M1 price data covering each tradeβs lifetime.
MAE reflects the worst move against the position before close, while MFE is the best move in favor. Aggregating these values helps validate stop-loss and take-profit placement. CapturedPct reports how much of each tradeβs MFE was actually realized.
Each row represents one closed position (partial closes are separate rows) and includes ticket, symbol, side, volume, open/close times and prices, duration, profit/commission/swap/net, points result, MAE/MFE in points and account currency, captured percentage, magic number, and comment.
Export can be filtered by days, sym...
π Read | AppStore | @mql5dev
MAE reflects the worst move against the position before close, while MFE is the best move in favor. Aggregating these values helps validate stop-loss and take-profit placement. CapturedPct reports how much of each tradeβs MFE was actually realized.
Each row represents one closed position (partial closes are separate rows) and includes ticket, symbol, side, volume, open/close times and prices, duration, profit/commission/swap/net, points result, MAE/MFE in points and account currency, captured percentage, magic number, and comment.
Export can be filtered by days, sym...
π Read | AppStore | @mql5dev
π15β€12π€©6π3π₯2
AN Guard Lite provides passive trade logging for Expert Advisors and manual trading. It monitors activity but never opens, modifies, or closes positions.
Output includes a CSV journal with one line per event: position open, position close, closure reason (SL, TP, broker, program, manual), and net result including swap, commission, and fees. A text report is generated when removed from the chart with net profit, win rate, profit factor, average win/loss, expectancy, drawdown, monthly breakdown, and maximum favorable excursion per trade.
Trades are classified by the best gain reached in R, based on the first stop loss detected. Missing stop loss conditions are flagged, and best gain is marked unavailable.
Config supports symbol-only or account-wide scope, magic number filtering, file base names, CSV toggle, and no-SL alerts. Files are written under the termin...
π Read | NeuroBook | @mql5dev
Output includes a CSV journal with one line per event: position open, position close, closure reason (SL, TP, broker, program, manual), and net result including swap, commission, and fees. A text report is generated when removed from the chart with net profit, win rate, profit factor, average win/loss, expectancy, drawdown, monthly breakdown, and maximum favorable excursion per trade.
Trades are classified by the best gain reached in R, based on the first stop loss detected. Missing stop loss conditions are flagged, and best gain is marked unavailable.
Config supports symbol-only or account-wide scope, magic number filtering, file base names, CSV toggle, and no-SL alerts. Files are written under the termin...
π Read | NeuroBook | @mql5dev
β€18π7π€©6
Session Sweep Boxes plots Asian, London, and New York sessions as chart range boxes, then flags liquidity sweeps of completed session highs or lows. A sweep is defined as a move beyond the session extreme followed by a close back inside. High sweeps are marked with a red arrow above the bar (bearish), low sweeps with a blue arrow below the bar (bullish). Signals are confirmed only on closed bars and do not repaint.
After a session completes, its high/low can be extended as dotted lines until swept, invalidated by a close beyond the level, or reset when the same session starts on the next day. Session times are configured in GMT for broker-independent behavior. Server GMT offset can be auto-detected or set manually; manual mode is required in Strategy Tester and useful after DST shifts.
Key options include history depth, per-session enable/start/end/c...
π Read | Forum | @mql5dev
After a session completes, its high/low can be extended as dotted lines until swept, invalidated by a close beyond the level, or reset when the same session starts on the next day. Session times are configured in GMT for broker-independent behavior. Server GMT offset can be auto-detected or set manually; manual mode is required in Strategy Tester and useful after DST shifts.
Key options include history depth, per-session enable/start/end/c...
π Read | Forum | @mql5dev
β€14π₯9π3π2β‘1π€©1
Volatility Regime Shader classifies volatility into three regimes using the percentile rank of ATR over a rolling lookback, not a fixed threshold. An ATR percentile of 90 indicates current ATR exceeds 90% of values in the window, allowing the same logic to scale across symbols and timeframes.
Compression bars at or below the configured percentile are shaded light blue, Expansion bars at or above the threshold are shaded light red, and Normal bars remain unshaded unless enabled. A top-right label reports the active regime and current ATR percentile.
Key inputs include ATR period (default 14), percentile lookback (100), Compression (<=20), Expansion (>=80), and bars to calculate (3000), plus optional alerts on regime changes using closed bars.
For automation, two iCustom buffers are exposed: buffer 0 = ATR percentile (0β100), buffer 1 = regime code (0...
π Read | Freelance | @mql5dev
Compression bars at or below the configured percentile are shaded light blue, Expansion bars at or above the threshold are shaded light red, and Normal bars remain unshaded unless enabled. A top-right label reports the active regime and current ATR percentile.
Key inputs include ATR period (default 14), percentile lookback (100), Compression (<=20), Expansion (>=80), and bars to calculate (3000), plus optional alerts on regime changes using closed bars.
For automation, two iCustom buffers are exposed: buffer 0 = ATR percentile (0β100), buffer 1 = regime code (0...
π Read | Freelance | @mql5dev
β€16π6π€©4π₯3
Volatility Regime Shader segments volatility into Compression, Normal, and Expansion using an ATR percentile rank rather than a fixed ATR threshold. The current ATR is ranked against a configurable lookback window, allowing the same settings to adapt across symbols and timeframes.
Compression is identified at or below a user-defined percentile and shaded light blue. Expansion is identified at or above a percentile and shaded light red. Normal is unshaded by default, with an option to shade it as well. An upper-right label can display the active regime and current ATR percentile.
The regime output can be used as a strategy filter. Compression conditions are commonly used to gate breakout activation, while Expansion supports trend continuation logic and wider stop placement. Mean-reversion setups typically prefer Compression or Normal conditions.
For ...
π Read | VPS | @mql5dev
Compression is identified at or below a user-defined percentile and shaded light blue. Expansion is identified at or above a percentile and shaded light red. Normal is unshaded by default, with an option to shade it as well. An upper-right label can display the active regime and current ATR percentile.
The regime output can be used as a strategy filter. Compression conditions are commonly used to gate breakout activation, while Expansion supports trend continuation logic and wider stop placement. Mean-reversion setups typically prefer Compression or Normal conditions.
For ...
π Read | VPS | @mql5dev
β€13π8π₯3π€©3π3
Watchlist Chart Opener automates bulk chart creation in the terminal. A single run can open charts for every symbol in Market Watch or for a comma-separated custom list, using a selected timeframe or the current chart timeframe.
A named chart template can be applied to each new chart so indicators, colors, and layout remain consistent. Custom-list symbols can be added to Market Watch automatically, while unavailable symbols on the broker server are skipped and reported in the Experts log.
Symbol selection supports a text filter for matching names, including common suffix conventions. Duplicate control can prevent opening charts that already exist for the same symbol and timeframe. A maximum chart limit reduces the risk of opening excessive charts, and a final summary reports opened, skipped, and failed results.
π Read | Freelance | @mql5dev
A named chart template can be applied to each new chart so indicators, colors, and layout remain consistent. Custom-list symbols can be added to Market Watch automatically, while unavailable symbols on the broker server are skipped and reported in the Experts log.
Symbol selection supports a text filter for matching names, including common suffix conventions. Duplicate control can prevent opening charts that already exist for the same symbol and timeframe. A maximum chart limit reduces the risk of opening excessive charts, and a final summary reports opened, skipped, and failed results.
π Read | Freelance | @mql5dev
β€11π₯8π5π€©4π1
Closed Trades Exporter writes closed positions to a CSV compatible with Excel, Google Sheets, and other spreadsheet tools.
Alongside standard history fields, it computes Maximum Adverse Excursion (MAE) and Maximum Favorable Excursion (MFE) from M1 bars over each tradeβs lifetime. MAE records the largest move against the position before close, while MFE records the largest move in favor. CapturedPct reports the share of MFE retained at exit, supporting analysis of stop-loss and take-profit placement across larger samples.
Each row represents one closed position: position ID, symbol, side, volume, open/close time and price, duration, profit, commission, swap, net profit, points result, MAE/MFE in points and currency, CapturedPct, magic number, and comment.
Filters include days, symbol, and magic number, plus optional MAE/MFE calculation. Output naming, sepa...
π Read | Forum | @mql5dev
Alongside standard history fields, it computes Maximum Adverse Excursion (MAE) and Maximum Favorable Excursion (MFE) from M1 bars over each tradeβs lifetime. MAE records the largest move against the position before close, while MFE records the largest move in favor. CapturedPct reports the share of MFE retained at exit, supporting analysis of stop-loss and take-profit placement across larger samples.
Each row represents one closed position: position ID, symbol, side, volume, open/close time and price, duration, profit, commission, swap, net profit, points result, MAE/MFE in points and currency, CapturedPct, magic number, and comment.
Filters include days, symbol, and magic number, plus optional MAE/MFE calculation. Output naming, sepa...
π Read | Forum | @mql5dev
β€16π₯10π€©8π7π1π€1
EAs that behave consistently on one broker can produce different results on another due to more than just spread. Trading hours, overnight sessions, and contract specifications can change how daily bars are built and how risk is priced for the same symbol.
This utility prints broker-specific parameters to the journal for side-by-side comparison. It reports server trading hours per weekday, including earliest open and latest close, highlighting differences that alter daily bar ranges.
It also outputs contract size, tick size, tick value, and the cash value of one price point, since equity-based position sizing depends on monetary point value rather than lot count.
Additional data includes long/short swap rates as nightly percent of price and annualised, M1 session coverage over the last N days to detect quote gaps, plus optional spread sampling with min/avg...
π Read | NeuroBook | @mql5dev
This utility prints broker-specific parameters to the journal for side-by-side comparison. It reports server trading hours per weekday, including earliest open and latest close, highlighting differences that alter daily bar ranges.
It also outputs contract size, tick size, tick value, and the cash value of one price point, since equity-based position sizing depends on monetary point value rather than lot count.
Additional data includes long/short swap rates as nightly percent of price and annualised, M1 session coverage over the last N days to detect quote gaps, plus optional spread sampling with min/avg...
π Read | NeuroBook | @mql5dev
β€16π₯10π5π€©5π€2β‘1
An EA template implements an opening range breakout for US100/Nasdaq 100 CFD, with range levels calculated from M1 data regardless of chart timeframe. It records the high/low during the first minutes after the session open, then places a Buy Stop above and a Sell Stop below. Once one side fills, the opposite pending order is removed using OCO logic. Only one trade is allowed per day, and all positions are closed before the session end.
Key parameters include range start and length, last entry time, and close-all time in server time. Default values assume a GMT+3 server with a 16:30 US session open, requiring adjustment per broker. Controls cover trade direction, risk per trade, take profit as an R multiple, stop distance as a fraction of the range, and an ATR-based filter to skip abnormal days.
Account protection includes daily loss and maximum drawdown lim...
π Read | Freelance | @mql5dev
Key parameters include range start and length, last entry time, and close-all time in server time. Default values assume a GMT+3 server with a 16:30 US session open, requiring adjustment per broker. Controls cover trade direction, risk per trade, take profit as an R multiple, stop distance as a fraction of the range, and an ATR-based filter to skip abnormal days.
Account protection includes daily loss and maximum drawdown lim...
π Read | Freelance | @mql5dev
β€10π8π₯8π€©2π€2
JPN225 Quiet Drift is a free, fully open Nikkei 225 EA designed for M15. It is long-only, allows one position at a time, requires all signals on the last closed bar, and forces a flat book by 17:00 server time. Entry is the next bar open with a 4 ATR stop and 3.5 ATR target.
The setup uses three filters: close > 0.5 standard deviations above the 34-bar mean, MACD histogram (in ATR units) < 0.2 to avoid stretched momentum, and tick volume < 60% of the normal level for that time of day (20-day baseline). Signals are evaluated 11:00β14:59 server time, targeting the post-cash-session window.
Backtest summary (10k, 15 lots): net +87.8%, ~18.5%/yr simple, max drawdown 8.5%, profit factor 1.68, win rate 61.8% over 309 trades (~65/yr). All years tested were positive (2022β2026 YTD). Stress checks included doubled fees, added slippage, and one-bar-late entries, with p...
π Read | Quotes | @mql5dev
The setup uses three filters: close > 0.5 standard deviations above the 34-bar mean, MACD histogram (in ATR units) < 0.2 to avoid stretched momentum, and tick volume < 60% of the normal level for that time of day (20-day baseline). Signals are evaluated 11:00β14:59 server time, targeting the post-cash-session window.
Backtest summary (10k, 15 lots): net +87.8%, ~18.5%/yr simple, max drawdown 8.5%, profit factor 1.68, win rate 61.8% over 309 trades (~65/yr). All years tested were positive (2022β2026 YTD). Stress checks included doubled fees, added slippage, and one-bar-late entries, with p...
π Read | Quotes | @mql5dev
β€18π4π₯3π€©3π€2π1
Memory Sequence is a same-symbol, multi-chart time-window sync indicator for MT4/MT5. One chart acts as the host, all other charts of the same symbol act as slaves. The host publishes a single candleβs open-to-close window, and slaves render that window and scroll it into view. The indicator uses chart objects and navigation only (indicator_plots = 0), with terminal global variables plus EventChartCustom (id 222). No DLL is required.
Typical workflow is one structural timeframe as host (often H1) with multiple slave timeframes (M1 through D1). A host click broadcasts the selected candle. Slaves draw an open-time vertical line, close-time vertical line, optional close-price line, and an optional filled rectangle covering the time span with high/low computed from local bars.
Host behavior includes a snapped crosshair and hover box on mouse move, and op...
π Read | Calendar | @mql5dev
Typical workflow is one structural timeframe as host (often H1) with multiple slave timeframes (M1 through D1). A host click broadcasts the selected candle. Slaves draw an open-time vertical line, close-time vertical line, optional close-price line, and an optional filled rectangle covering the time span with high/low computed from local bars.
Host behavior includes a snapped crosshair and hover box on mouse move, and op...
π Read | Calendar | @mql5dev
β€11π7π€©3π₯2π€2
Extrapolator is an MQL5 indicator that fits a truncated Fourier model to recent price history, then projects the fitted curve into future bars. The forecast is recalculated on each new model bar and the segment at the right edge is redrawn while the current bar is forming, so the line is inherently non-stationary.
Key controls include Npast/Nfut/Nharm to balance stability versus overfit, optional log-price fitting for proportional symmetry, and TrendDamp to reduce the carried-forward slope. Harmonic selection filters out periods below MinPeriod and above MaxPeriodFrac of the window, then stops when incremental variance reduction drops under MinHarmGain.
Visualization adds sigma-based channel bands (+/-1, +/-2) with optional filled zones. Internally, Quinn-Fernandes is used for frequency estimation, results are cached per model timeframe, and then mapped onto char...
π Read | Forum | @mql5dev
Key controls include Npast/Nfut/Nharm to balance stability versus overfit, optional log-price fitting for proportional symmetry, and TrendDamp to reduce the carried-forward slope. Harmonic selection filters out periods below MinPeriod and above MaxPeriodFrac of the window, then stops when incremental variance reduction drops under MinHarmGain.
Visualization adds sigma-based channel bands (+/-1, +/-2) with optional filled zones. Internally, Quinn-Fernandes is used for frequency estimation, results are cached per model timeframe, and then mapped onto char...
π Read | Forum | @mql5dev
β€11π5π₯2π€©2π2
This article replaces βtrust the ONNX classβ with a robustness check: how much feature-space noise the input can tolerate before the prediction flips. Using randomized smoothing, the EA runs N Gaussian-perturbed inferences per bar, votes the winning class, and computes a certified radius via a ClopperβPearson lower bound and the inverse normal CDF using only MQL5βs standard math functions.
The architecture is cleanly split: a feature engine builds a fixed 10-value normalized vector, a certifier owns the ONNX session and certification math, and the EA gates trades on the last closed bar. Shape mismatches are caught early, float32 tensors are handled correctly, and abstains occur when statistical support is weak.
Practically, the radius becomes a trading input: skip or downsize fragile signals, allocate size across symbols by robustness, and log radius history fo...
π Read | AppStore | @mql5dev
The architecture is cleanly split: a feature engine builds a fixed 10-value normalized vector, a certifier owns the ONNX session and certification math, and the EA gates trades on the last closed bar. Shape mismatches are caught early, float32 tensors are handled correctly, and abstains occur when statistical support is weak.
Practically, the radius becomes a trading input: skip or downsize fragile signals, allocate size across symbols by robustness, and log radius history fo...
π Read | AppStore | @mql5dev
β€17π5π₯5π€©3π€2
Tick volume on retail FX charts is mostly a proxy for time of day, and it is only complete at bar close. It also loses resolution when bursts and evenly spaced updates produce the same count. A quote-interval activity gauge addresses this by working on durations between quote changes and normalising out the intraday rhythm.
Quotes are converted into events by folding same-millisecond updates and resetting after long gaps (default 5 minutes) to avoid training on market closures. A 30-minute-bin diurnal profile is fitted and interpolated, then scaled to unit mean so 1.0 represents normal activity for that hour.
Residual clustering is modelled with an Engle-Russell ACD recursion, producing a per-quote activity ratio (mean/psi). Values near 2.0 indicate quotes arriving roughly twice as fast as usual; 0.5 indicates half speed. Additional outputs includ...
π Read | VPS | @mql5dev
Quotes are converted into events by folding same-millisecond updates and resetting after long gaps (default 5 minutes) to avoid training on market closures. A 30-minute-bin diurnal profile is fitted and interpolated, then scaled to unit mean so 1.0 represents normal activity for that hour.
Residual clustering is modelled with an Engle-Russell ACD recursion, producing a per-quote activity ratio (mean/psi). Values near 2.0 indicate quotes arriving roughly twice as fast as usual; 0.5 indicates half speed. Additional outputs includ...
π Read | VPS | @mql5dev
β€24π₯7π5π¨βπ»4π3π2π€©1