Many indicator specs claim βnon-repaintingβ without a measurable definition. A testable invariant is stricter: once a bar is closed and processed, any drawn object on that bar must never change, move, recolor, change text, or vanish.
A script operationalizes this by recording every object after an initial pass, then appending more bars and forcing a full recalculation so the indicator rebuilds from a longer history. Objects on already-closed bars are matched and compared field by field (anchor times/prices, color, text). This targets failures caused by object names tied to bar index rather than bar time.
Changes and disappearances are tracked separately; only changes falsify the claim. Empty comparisons are reported as inconclusive. Results are written to CSV (one row per symbol/timeframe/step) including compared/changed/vanished counts and the first o...
π Read | VPS | @mql5dev
A script operationalizes this by recording every object after an initial pass, then appending more bars and forcing a full recalculation so the indicator rebuilds from a longer history. Objects on already-closed bars are matched and compared field by field (anchor times/prices, color, text). This targets failures caused by object names tied to bar index rather than bar time.
Changes and disappearances are tracked separately; only changes falsify the claim. Empty comparisons are reported as inconclusive. Results are written to CSV (one row per symbol/timeframe/step) including compared/changed/vanished counts and the first o...
π Read | VPS | @mql5dev
β€28π12π₯4π2π2
This article builds a practical case for a Cairo-style 2D renderer in pure MQL5 to draw modern UI elements (rounded rectangles, rings, gradients, translucent layers, arbitrary polygons) as a single OBJ_BITMAP_LABEL, avoiding the performance and feature limits of native chart objects and CCanvas.
The core model separates geometry (paths) from paint (sources), then converts paths into a per-pixel coverage mask for true anti-aliasing. Rendering becomes compositing: source through mask onto destination, so new paints (solid, gradients, images) automatically work with all shapes.
Part 1 focuses on the foundation: a strict ARGB uint color pipeline compatible with ResourceCreate, and a reusable pixel surface bound to one bitmap objectβkeeping later improvements isolated to masking and painting logic.
π Read | Calendar | @mql5dev
The core model separates geometry (paths) from paint (sources), then converts paths into a per-pixel coverage mask for true anti-aliasing. Rendering becomes compositing: source through mask onto destination, so new paints (solid, gradients, images) automatically work with all shapes.
Part 1 focuses on the foundation: a strict ARGB uint color pipeline compatible with ResourceCreate, and a reusable pixel surface bound to one bitmap objectβkeeping later improvements isolated to masking and painting logic.
π Read | Calendar | @mql5dev
β€27π8π3π€©2
Manually scrolling to a specific candle in MT5 becomes impractical on lower timeframes and deep history. This History Navigator EA solves it with a small dialog where day/month/year/hour/minute are entered, then the chart jumps to the correct historical area and can return to the live market view in one click.
The design separates concerns: lifecycle code in HistoryNavigator.mq5, and UI + logic in a CNavigatorDialog class built on the Standard Library (CAppDialog, event map, controls). Inputs are validated in two stages: range checks plus real calendar validation with leap-year handling, then converted via MqlDateTime + StructToTime().
Bar location uses CopyTime() and a binary search over available history, selecting the latest bar open not exceeding the requested timestamp. Chart positioning disables auto-scroll/shift, centers the target using CHART_VISIBLE_...
π Read | Forum | @mql5dev
The design separates concerns: lifecycle code in HistoryNavigator.mq5, and UI + logic in a CNavigatorDialog class built on the Standard Library (CAppDialog, event map, controls). Inputs are validated in two stages: range checks plus real calendar validation with leap-year handling, then converted via MqlDateTime + StructToTime().
Bar location uses CopyTime() and a binary search over available history, selecting the latest bar open not exceeding the requested timestamp. Chart positioning disables auto-scroll/shift, centers the target using CHART_VISIBLE_...
π Read | Forum | @mql5dev
β€15π5π₯4π2
Momentum oscillators often become noisy when raw price differences are used directly. A Hull Moving Average layer can smooth the series while staying responsive to direction changes.
An MQL5 implementation combines classic momentum (Close[i] minus Close[i+Length]) with HMA built from multiple WMAs: a fast WMA on half period, a slow WMA on full period, then a final WMA on the rounded square-root period.
The design relies on separate buffers for raw momentum, intermediate HMA values, final output, color indices, a zero reference, and a fixed gray fill between the line and zero.
Interpretation is based on position versus the zero line; crossings indicate state change but degrade in flat regimes due to frequent flips and reduced signal quality.
π Read | Forum | @mql5dev
An MQL5 implementation combines classic momentum (Close[i] minus Close[i+Length]) with HMA built from multiple WMAs: a fast WMA on half period, a slow WMA on full period, then a final WMA on the rounded square-root period.
The design relies on separate buffers for raw momentum, intermediate HMA values, final output, color indices, a zero reference, and a fixed gray fill between the line and zero.
Interpretation is based on position versus the zero line; crossings indicate state change but degrade in flat regimes due to frequent flips and reduced signal quality.
π Read | Forum | @mql5dev
β€16π8π₯2π€©1π1
Clustered feature importance depends on a correlation matrix that is both denoised and detoned. Estimation noise inflates spurious correlations, and a dominant first eigenvector from shared regime exposure makes unrelated feature families look similar. Both effects break clustering and bias MDI/MDA via substitution.
Noise is bounded using a MarcenkoβPastur fit, with q = T/N and sigma^2 fit to the empirical eigenvalue density. Two common silent failures are inverting q and using an incompatible KDE bandwidth definition, both yielding plausible but incorrect ceilings.
For serially correlated bars, raw T overstates information. An AR(1)-style effective sample size can shift lambda_max enough to change factor retention near the margin. After denoising (constant residual eigenvalues) and detoning (remove top eigenvector), ONC/K-means clustering recovers...
π Read | AlgoBook | @mql5dev
Noise is bounded using a MarcenkoβPastur fit, with q = T/N and sigma^2 fit to the empirical eigenvalue density. Two common silent failures are inverting q and using an incompatible KDE bandwidth definition, both yielding plausible but incorrect ceilings.
For serially correlated bars, raw T overstates information. An AR(1)-style effective sample size can shift lambda_max enough to change factor retention near the margin. After denoising (constant residual eigenvalues) and detoning (remove top eigenvector), ONC/K-means clustering recovers...
π Read | AlgoBook | @mql5dev
π16β€15π€©2π€1π1
MetaTrader 5 file access stays inside the terminal sandbox, so identical file APIs can yield different internal layouts while producing the same terminal output.
Directory traversal in MQL5 splits into two paths. Interactive selection uses FileSelectDialog with a fixed root, constrained filters, and flags; results come back via a dynamic string array and are typically passed into FileOpen.
Non-interactive enumeration relies on FileFindFirst/FileFindNext. An empty sandbox returns an invalid handle and is not a code error. Basic enumeration lists only the current directory; recursive traversal requires passing subdirectory paths. A trailing slash in returned names can be used to detect directories without FileIsExist, but output may lose full path context unless it is assembled explicitly.
π Read | AlgoBook | @mql5dev
Directory traversal in MQL5 splits into two paths. Interactive selection uses FileSelectDialog with a fixed root, constrained filters, and flags; results come back via a dynamic string array and are typically passed into FileOpen.
Non-interactive enumeration relies on FileFindFirst/FileFindNext. An empty sandbox returns an invalid handle and is not a code error. Basic enumeration lists only the current directory; recursive traversal requires passing subdirectory paths. A trailing slash in returned names can be used to detect directories without FileIsExist, but output may lose full path context unless it is assembled explicitly.
π Read | AlgoBook | @mql5dev
β€9π6π€©5π₯2π2
A losing EURUSD short exposed a deeper issue: stacking RSI/MACD/Stochastic (and even a neural net trained on them) still reduces a nonlinear, chaotic market into mostly linear price transforms, so the model misses context.
LLMs can discuss that context, but they are nondeterministic: small prompt or temperature changes flip conclusions, which makes probability outputs unusable for trading decisions.
A more reliable path combined CatBoost with quantum feature extraction. Plain indicator features stalled near 59% accuracy; the breakthrough was quantum encoding with 8 qubits plus CZ entanglement, producing a non-uniform state histogram that captured higher-order relationships across indicators.
Four derived quantum statistics (entropy, dominant-state strength, state-count complexity, distribution variance) became numeric features. Adding them to 33 tec...
π Read | Calendar | @mql5dev
LLMs can discuss that context, but they are nondeterministic: small prompt or temperature changes flip conclusions, which makes probability outputs unusable for trading decisions.
A more reliable path combined CatBoost with quantum feature extraction. Plain indicator features stalled near 59% accuracy; the breakthrough was quantum encoding with 8 qubits plus CZ entanglement, producing a non-uniform state histogram that captured higher-order relationships across indicators.
Four derived quantum statistics (entropy, dominant-state strength, state-count complexity, distribution variance) became numeric features. Adding them to 33 tec...
π Read | Calendar | @mql5dev
β€16π7π₯3π3
Backtests often look clean because the tester uses a βcurrentβ spread, while the terminal stores a spread value per M1 bar that rarely gets reviewed.
SpreadAudit reads M1 history for a configurable lookback and computes median, p90, and p99 spreads in price units and pips. The same percentiles are also normalized by ATR(H1) to make cost comparisons consistent across instruments. It also aggregates average and maximum spread by hour and can export the hourly table to CSV in MQL5\Files.
This matters when edge is small. A setup averaging 0.28 price units per trade fails if the median spread is 0.37, even if the backtest equity curve looks stable without realistic costs. Hourly stats typically show widening at rollover and near session opens, where a spread filter expressed as a fraction of ATR remains valid as volatility shifts.
Caveat: the recorded fi...
π Read | AppStore | @mql5dev
SpreadAudit reads M1 history for a configurable lookback and computes median, p90, and p99 spreads in price units and pips. The same percentiles are also normalized by ATR(H1) to make cost comparisons consistent across instruments. It also aggregates average and maximum spread by hour and can export the hourly table to CSV in MQL5\Files.
This matters when edge is small. A setup averaging 0.28 price units per trade fails if the median spread is 0.37, even if the backtest equity curve looks stable without realistic costs. Hourly stats typically show widening at rollover and near session opens, where a spread filter expressed as a fraction of ATR remains valid as volatility shifts.
Caveat: the recorded fi...
π Read | AppStore | @mql5dev
β€9π9π₯4π2β1
EA initialization requires attaching it to a standard symbol chart (for example, BTCUSD). A custom replay symbol is created automatically and should be opened as a separate chart.
Replay start is controlled from the panel in the top-left. Use SELECT to place a yellow vertical marker, move it to the target start date, then run LOAD DATA and press PLAY.
Playback speed can be adjusted from 0.5x to 20x. Controls include pause and step/skip actions (+10, -10, <<, >>) for fast repositioning.
Trade setups are created from the bottom-right drawing toolbar. Choose LONG or SHORT, click to set entry, move the cursor to define stop distance, then click again to lock; take profit is calculated automatically. Entry, stop, and take-profit lines remain draggable for later adjustments.
For reliable deep history loading, set Tools > Options > Charts and increase Max bars i...
π Read | Quotes | @mql5dev
Replay start is controlled from the panel in the top-left. Use SELECT to place a yellow vertical marker, move it to the target start date, then run LOAD DATA and press PLAY.
Playback speed can be adjusted from 0.5x to 20x. Controls include pause and step/skip actions (+10, -10, <<, >>) for fast repositioning.
Trade setups are created from the bottom-right drawing toolbar. Choose LONG or SHORT, click to set entry, move the cursor to define stop distance, then click again to lock; take profit is calculated automatically. Entry, stop, and take-profit lines remain draggable for later adjustments.
For reliable deep history loading, set Tools > Options > Charts and increase Max bars i...
π Read | Quotes | @mql5dev
β€17π5π₯3π2π€©1
MetaTrader 5 indicators cannot change orders or positions on the trading server. Only Expert Advisors can send trade requests, so UI actions in an indicator must be forwarded to an EA via custom chart events.
A position indicator was extended with a clickable OBJ_BITMAP_LABEL (16x16 resource). On click, it emits a dedicated close-position event with the position ticket in sparam. The EA intercepts it and closes only the targeted position, avoiding NETTING vs HEDGING edge cases tied to βclose allβ semantics.
The indicator also tracks chart scale changes to recompute bitmap coordinates using price-to-screen conversion, keeping the control aligned with price lines. Next steps generalize the same event pattern for Stop Loss and Take Profit line actions without code duplication.
π Read | Calendar | @mql5dev
A position indicator was extended with a clickable OBJ_BITMAP_LABEL (16x16 resource). On click, it emits a dedicated close-position event with the position ticket in sparam. The EA intercepts it and closes only the targeted position, avoiding NETTING vs HEDGING edge cases tied to βclose allβ semantics.
The indicator also tracks chart scale changes to recompute bitmap coordinates using price-to-screen conversion, keeping the control aligned with price lines. Next steps generalize the same event pattern for Stop Loss and Take Profit line actions without code duplication.
π Read | Calendar | @mql5dev
β€14π7π¨βπ»3π2π€©1
Dandelion Optimizer (DO) is a 2022 metaheuristic that models how dandelion seeds explore wide areas, then converge where conditions look best. Each seed represents a candidate parameter set; βsoil qualityβ is the objective value.
DO updates a population in three phases: Rising for broad exploration (mostly spiral/vortex moves, sometimes linear drift toward the search-space center), Decline for coordination via the population mean, and Landing for exploitation around the current elite using LΓ©vy-flight steps to keep occasional long jumps.
The MT5-style implementation wraps this into a C_AO_DO class with Init/Moving/Revision, explicit boundary reflection, and adaptive control: step intensity decays over epochs while an attraction ratio increases, shifting from global search to fine-tuning. This fits strategy optimization where stable convergence and ...
π Read | VPS | @mql5dev
DO updates a population in three phases: Rising for broad exploration (mostly spiral/vortex moves, sometimes linear drift toward the search-space center), Decline for coordination via the population mean, and Landing for exploitation around the current elite using LΓ©vy-flight steps to keep occasional long jumps.
The MT5-style implementation wraps this into a C_AO_DO class with Init/Moving/Revision, explicit boundary reflection, and adaptive control: step intensity decays over epochs while an attraction ratio increases, shifting from global search to fine-tuning. This fits strategy optimization where stable convergence and ...
π Read | VPS | @mql5dev
β€14π7π€©2π2π¨βπ»2
RL trading often fails for non-algorithmic reasons: weak input signal, leakage, unstable validation, or execution mismatch. A fast supervised baseline should be the first gate: if features cannot rank direction above chance, more complex RL adds cost without information.
A LightGBM check with triple-barrier labels and purged walk-forward CV is a practical filter. On ~144k M15 XAUUSD bars, AUC stayed near 0.50 across horizons and added cross-asset features, aligning with low explained variance and weak live stats.
Engineering controls that reduce train-to-live failure include embargoed walk-forward splits, multi-seed promotion gates, evaluating realized equity/trades (not shaped rewards), and deployment contracts: saved normalization, pinned versions, dataset snapshots, warm-up rules, and broker reconciliation.
π Read | Calendar | @mql5dev
A LightGBM check with triple-barrier labels and purged walk-forward CV is a practical filter. On ~144k M15 XAUUSD bars, AUC stayed near 0.50 across horizons and added cross-asset features, aligning with low explained variance and weak live stats.
Engineering controls that reduce train-to-live failure include embargoed walk-forward splits, multi-seed promotion gates, evaluating realized equity/trades (not shaped rewards), and deployment contracts: saved normalization, pinned versions, dataset snapshots, warm-up rules, and broker reconciliation.
π Read | Calendar | @mql5dev
β€13π5π3π3π€©2
Exit logic can be treated as a survival problem, not a fixed rule. Once a position is open, state changes each bar, so the probability of TP before SL should be conditional on survival and updated with time-varying covariates.
A discrete-time competing-risks model fits this: TP and SL are mutually exclusive events, while time-stop creates censoring. A person-period table (one row per trade per bar) supports proper estimation; open-at-time-stop rows are not βlossesβ.
A native MQL5 implementation is described: no DLLs, no ONNX, no ALGLIB. Two cause-specific hazards are fit via penalised maximum likelihood, converted to cumulative incidence, then to a bar-by-bar hold/close decision while keeping hard TP/SL orders.
Results: out-of-sample log-loss improves 20β22% vs time-only baseline across EURUSD, GBPUSD, USDJPY, XAUUSD, but fixed decision thresholds...
π Read | VPS | @mql5dev
A discrete-time competing-risks model fits this: TP and SL are mutually exclusive events, while time-stop creates censoring. A person-period table (one row per trade per bar) supports proper estimation; open-at-time-stop rows are not βlossesβ.
A native MQL5 implementation is described: no DLLs, no ONNX, no ALGLIB. Two cause-specific hazards are fit via penalised maximum likelihood, converted to cumulative incidence, then to a bar-by-bar hold/close decision while keeping hard TP/SL orders.
Results: out-of-sample log-loss improves 20β22% vs time-only baseline across EURUSD, GBPUSD, USDJPY, XAUUSD, but fixed decision thresholds...
π Read | VPS | @mql5dev
β€18π7πΎ4π3
MetaTrader 5 sandbox navigation can be implemented via OS dialogs for convenience or via code to enumerate files and directories. The code-driven path becomes necessary when output must be filtered and ordered by attributes such as creation or modification time.
MQL5 provides ArraySort for numeric arrays, but it does not handle strings. A custom bubble-sort style routine can generalize sorting, yet string ordering requires explicit comparison rules.
Using StringCompare alone produces lexicographic ordering, which misplaces numeric strings. Adding length checks fixes numeric strings but can break dictionary word ordering. A revised comparator that switches strategy restores expected results for both cases.
Bubble sort remains O(nΒ²) and is suitable mainly for small datasets or demonstration, not large directory listings.
π Read | Freelance | @mql5dev
MQL5 provides ArraySort for numeric arrays, but it does not handle strings. A custom bubble-sort style routine can generalize sorting, yet string ordering requires explicit comparison rules.
Using StringCompare alone produces lexicographic ordering, which misplaces numeric strings. Adding length checks fixes numeric strings but can break dictionary word ordering. A revised comparator that switches strategy restores expected results for both cases.
Bubble sort remains O(nΒ²) and is suitable mainly for small datasets or demonstration, not large directory listings.
π Read | Freelance | @mql5dev
β€15π8π1
SCNN reframes multivariate forecasting as an explicit decomposition problem, addressing non-stationarity and regime shifts that make generic neural models brittle and hard to interpret.
The architecture splits each series into long-term, seasonal, short-term, and cross-series co-evolving components, plus a residual. Each component is normalized with additive and multiplicative terms, then handled by a specialized subnetwork matched to its dynamics.
Decomposition and reconstruction are embedded inside the network, enabling information flow between components. A two-branch module adapts parameters online to changing autocorrelation, while structural regularization discourages noise-driven features.
For trading systems, this yields more stable forecasts during distribution shifts and anomalies, with practical computational cost and clearer diagnos...
π Read | CodeBase | @mql5dev
The architecture splits each series into long-term, seasonal, short-term, and cross-series co-evolving components, plus a residual. Each component is normalized with additive and multiplicative terms, then handled by a specialized subnetwork matched to its dynamics.
Decomposition and reconstruction are embedded inside the network, enabling information flow between components. A two-branch module adapts parameters online to changing autocorrelation, while structural regularization discourages noise-driven features.
For trading systems, this yields more stable forecasts during distribution shifts and anomalies, with practical computational cost and clearer diagnos...
π Read | CodeBase | @mql5dev
β€15π7π€©4π1
This update refactors the MT5 position indicator to support removing stop-loss and take-profit directly from the chart, alongside the existing βclose positionβ interaction.
Core changes focus on decoupling UI elements into a reusable C_ElementsTrade class. C_IndicatorPosition now holds three pointers (open, SL, TP), initializes them to NULL, allocates with new only when needed, and reliably frees memory with delete while resetting pointers to avoid invalid dereferences.
Event handling is hardened: DispatchMessage first validates pointers, then verifies ticket ownership and server-side position existence. Protective levels are created, updated, or destroyed based on whether the server reports a nonzero SL/TP, keeping the chart synchronized with real trade state.
C_ElementsTrade centralizes creation of the price line and an action button, relying on M...
π Read | NeuroBook | @mql5dev
Core changes focus on decoupling UI elements into a reusable C_ElementsTrade class. C_IndicatorPosition now holds three pointers (open, SL, TP), initializes them to NULL, allocates with new only when needed, and reliably frees memory with delete while resetting pointers to avoid invalid dereferences.
Event handling is hardened: DispatchMessage first validates pointers, then verifies ticket ownership and server-side position existence. Protective levels are created, updated, or destroyed based on whether the server reports a nonzero SL/TP, keeping the chart synchronized with real trade state.
C_ElementsTrade centralizes creation of the price line and an action button, relying on M...
π Read | NeuroBook | @mql5dev
π15β€12π€©2π2π1
Random-walk MCMC methods degrade in high-dimensional models due to small effective step sizes, high autocorrelation, and low throughput. Hamiltonian Monte Carlo addresses this by using gradients of the log target density to generate long, directed trajectories.
HMC augments parameters z with momentum r and defines a Hamiltonian H(z,r)=E(z)+K(r), with E(z)=-log p(z). Leapfrog integration provides reversible, volume-preserving proposals, with Metropolis correction based on energy error.
A 100D correlated normal test case is used, including adaptive tuning of step size epsilon and a diagonal mass matrix. Warm-up is accelerated via MAP initialization using L-BFGS.
Sampling quality is tracked using Rhat, ESS, MCSE, summary stats, and runtime monitoring of log density stability, acceptance ratio, step size, and divergences.
π Read | Quotes | @mql5dev
HMC augments parameters z with momentum r and defines a Hamiltonian H(z,r)=E(z)+K(r), with E(z)=-log p(z). Leapfrog integration provides reversible, volume-preserving proposals, with Metropolis correction based on energy error.
A 100D correlated normal test case is used, including adaptive tuning of step size epsilon and a diagonal mass matrix. Warm-up is accelerated via MAP initialization using L-BFGS.
Sampling quality is tracked using Rhat, ESS, MCSE, summary stats, and runtime monitoring of log density stability, acceptance ratio, step size, and divergences.
π Read | Quotes | @mql5dev
π16β€10π€©5π3π₯2
Adaptive MACD for MetaTrader 5 extends the classic MACD by switching from fixed smoothing to a market-dependent blend. It computes a Pearson correlation between close price and bar index over a configurable window, converts it to RΒ², then uses that value to weight two MACD coefficient sets. Higher trend strength increases responsiveness; lower trend strength increases smoothing.
Output is shown in a separate window with a MACD line, a signal EMA, and a color-coded histogram for MACD minus signal. Histogram states cover strong/weak bullish and bearish momentum, based on sign and whether bars are rising or falling. The MACD line color can auto-adjust for light/dark chart themes or be set manually.
Core inputs include RΒ² length (default 20), fast/slow lengths (10/20), signal length (9), and bull/bear colors plus MACD/signal styling. Usable across instrument...
π Read | Quotes | @mql5dev
Output is shown in a separate window with a MACD line, a signal EMA, and a color-coded histogram for MACD minus signal. Histogram states cover strong/weak bullish and bearish momentum, based on sign and whether bars are rising or falling. The MACD line color can auto-adjust for light/dark chart themes or be set manually.
Core inputs include RΒ² length (default 20), fast/slow lengths (10/20), signal length (9), and bull/bear colors plus MACD/signal styling. Usable across instrument...
π Read | Quotes | @mql5dev
β€14π6π₯3π2π1
Left-side multi-timeframe and trade setup panel updated for faster at-a-glance monitoring.
Header now shows Live status, Symbol, and the current Bid price on a single top row with real-time updates.
Multi-timeframe structure block covers M1, M5, M15, M30, and H1. Each timeframe reports the current state (BOS, CHoCH, or Swing Formed) and prints the exact breakout price for validation.
Setup details are presented vertically, one field per line to reduce clutter: status (Active/Completed), direction (BUY/SELL), entry, stop loss with pip risk, TP1 (1:1), TP2 (1:2), TP3 (1:3), and net pips captured.
π Read | VPS | @mql5dev
Header now shows Live status, Symbol, and the current Bid price on a single top row with real-time updates.
Multi-timeframe structure block covers M1, M5, M15, M30, and H1. Each timeframe reports the current state (BOS, CHoCH, or Swing Formed) and prints the exact breakout price for validation.
Setup details are presented vertically, one field per line to reduce clutter: status (Active/Completed), direction (BUY/SELL), entry, stop loss with pip risk, TP1 (1:1), TP2 (1:2), TP3 (1:3), and net pips captured.
π Read | VPS | @mql5dev
β€14π8π₯4π¨βπ»4π2
Broker Execution Diagnostics is a read-only script for broker specification analysis and execution troubleshooting prior to Expert Advisor configuration or rejected order review. No trades are opened, modified, or closed. The utility reads the active symbol parameters and prints a structured report on the chart and in the Experts log.
Report fields include bid/ask/spread (points), digits and point size, tick size and tick values, contract size and account currencies, volume limits (min/max/step and directional caps), stop and freeze levels, trade and execution modes, supported filling modes and order features, plus terminal/account/EA trading permissions.
Margin and profit estimates are calculated for configurable test volume and price movement using OrderCalcMargin and OrderCalcProfit. Test volume is normalized to the brokerβs min/max/step constraints. Us...
π Read | Calendar | @mql5dev
Report fields include bid/ask/spread (points), digits and point size, tick size and tick values, contract size and account currencies, volume limits (min/max/step and directional caps), stop and freeze levels, trade and execution modes, supported filling modes and order features, plus terminal/account/EA trading permissions.
Margin and profit estimates are calculated for configurable test volume and price movement using OrderCalcMargin and OrderCalcProfit. Test volume is normalized to the brokerβs min/max/step constraints. Us...
π Read | Calendar | @mql5dev
β€13π5π€©4π3π₯2
Risk Based Position Size Calculator is a chart indicator used to plan trade volume before execution. It adds draggable Entry and Stop lines, measures the distance, and outputs a broker-normalized position size for a selected risk level. It does not place orders or manage open positions.
Risk can be set as a percentage of balance, percentage of equity, or a fixed amount in account currency. The calculation uses tick size and tick value, with an optional round-turn commission per lot. Volume is rounded down to the brokerβs volume step to avoid exceeding the configured risk.
The panel shows direction, entry/stop/target, stop distance, risk amount, risk per lot, raw vs normalized volume, reward-to-risk ratio, and validation status. Position sizing remains an estimate due to slippage, gaps, swaps, and execution differences.
π Read | NeuroBook | @mql5dev
Risk can be set as a percentage of balance, percentage of equity, or a fixed amount in account currency. The calculation uses tick size and tick value, with an optional round-turn commission per lot. Volume is rounded down to the brokerβs volume step to avoid exceeding the configured risk.
The panel shows direction, entry/stop/target, stop distance, risk amount, risk per lot, raw vs normalized volume, reward-to-risk ratio, and validation status. Position sizing remains an estimate due to slippage, gaps, swaps, and execution differences.
π Read | NeuroBook | @mql5dev
β€17π€©4π3π¨βπ»2π1