MQL5 Algo Trading
508K subscribers
3.36K photos
3 videos
3.36K links
The best publications of the largest community of algotraders.

Subscribe to stay up-to-date with modern technologies and trading programs development.
Download Telegram
Most retail indicators depend on fixed lookback windows. A static period treats every tick equally, so sudden liquidity sweeps and long wicks are absorbed into the calculation. The result is distorted slope, delayed confirmation, and frequent false breakout signals on lower timeframes.

Quantitative desks typically model the broker feed as a noisy measurement rather than ground truth. A Kalman Filter provides recursive state estimation by separating the underlying state (trend) from measurement noise in real time.

Key mechanics include a dynamic Kalman Gain that reduces sensitivity when volatility becomes erratic, limiting the impact of transient spikes. Since the model is predictive and recursive, it does not require an arbitrary period; tuning is handled through process-noise and measurement-noise parameters.

Common deployment targets are M1–M1...

πŸ‘‰ Read | Docs | @mql5dev

#MQL5 #MT5 #Indicator
❀20πŸ‘Œ2
MACD Institutional is a MACD variant that filters price input using high-volume activity before computing its averages. Instead of processing every tick or bar close, it reconstructs an internal price series and updates it only when current volume exceeds a volume moving average.

This approach treats low-volume moves as statistically weak. An analysis buffer (InpBufferSize) is refreshed only on above-average volume; otherwise prior values are retained, preserving state and reducing reactions to thin-liquidity noise.

Core functions include dynamic volume filtering driven by InpMAVolumePeriod, fewer low-activity crossovers, and a custom EMA computed strictly over the filtered window. Parameters cover volume averaging period, buffer size, classic fast/slow EMA periods, and the signal period.

Technical notes: author Fernando Javier De MendonΓ§a, built for Me...

πŸ‘‰ Read | VPS | @mql5dev

#MQL5 #MT5 #Indicator
❀15πŸ‘Œ3✍2πŸ‘2
System summary: MQL5 EA streams a 50-tick bid window plus RSI to a local Flask endpoint. The server computes Shannon entropy and related volatility/trend features, runs a PyTorch classifier, then returns probability, regime, confidence, and risk multipliers.

Entropy drives LOW/NORMAL/HIGH/EXTREME regime detection using rolling thresholds, plus momentum and percentiles. Regime and entropy deltas adjust entry thresholds, stop-loss, take-profit, and position size.

Training uses MT5 historical data, windowed feature extraction, future-move labeling, StandardScaler normalization, and a PyTorch MLP with batch norm and dropout. Dropout remains active for uncertainty estimation via multiple forward passes.

Execution is tick-based with throttling, cooldowns, max-position checks, and optional reversal logic. Orders are placed through CTrade after broker volume and stop-le...

πŸ‘‰ Read | Calendar | @mql5dev

#MQL5 #MT5 #AI
❀27πŸ‘Œ3
CRQA extends RQA from single-series self-similarity to measuring how two time series relate in phase space. Instead of a square symmetric recurrence matrix, it builds a rectangular NΓ—M cross-recurrence matrix comparing each embedded state of X to each embedded state of Y, exposing synchronization and coupling via diagonal/vertical line structures.

The library adds CCRQAMatrix (embed both series, compute pairwise distances, threshold to a binary matrix) and CCRQAMetrics (adapted line-counting for non-square matrices) to produce 10 cross-metrics such as CRR, CDET, CLAM, CENTR, and CDIV. Key interpretation: CRR measures shared state-space overlap, CDET measures aligned evolution sequences, CLAM highlights asymmetric trapping.

Practical MT5 tooling includes a rolling-window CRQA module with OpenCL GPU batching and CPU fallback, plus an indicator that aligns ...

πŸ‘‰ Read | Docs | @mql5dev

#MQL5 #MT5 #CRQA
❀25πŸ‘4πŸŽ‰2πŸ‘Œ2
Running ONNX inference natively in MQL5 is practical, but stability usually breaks on four points: tensor shape mismatch, preprocessing drift between training and live data, ONNX session handle leaks, and CPU overload from per-tick execution.

A production-oriented pattern treats these as requirements. Input and output tensor shapes must be explicitly bound to the compiled graph. Preprocessing must be deterministic in-terminal and match the Python scaler parameters. The ONNX session lifecycle should be encapsulated in a class with strict create/run/release control.

Execution policy matters. Inference on every tick degrades live trading and Strategy Tester speed. A common safeguard is running feature extraction and OnnxRun once per new bar, then gating decisions by a probability threshold.

Deliverables typically split into an ONNX session manager include and an ...

πŸ‘‰ Read | Docs | @mql5dev

#MQL5 #MT5 #EA
❀23πŸ‘5⚑3πŸ‘Œ2
Multi-EA MT5 accounts often fail due to unmanaged interaction between strategies, not a single defective EA. Independent sizing can stack correlated exposure, synchronize stop-outs, and bypass any real account-wide daily loss limit.

A proposed architecture shifts EAs to signal-only roles. Each EA sends trade intent (symbol, side, stop, strategy id) to a central MT5 Service, RiskGate, which enforces portfolio rules and returns approved/rejected, lot size, and a reason.

RiskGate runs as a TCP server inside an MQL5 Service. EAs use a client wrapper with JSON messages, timeouts, reconnection, and deterministic fallback (reject or fixed-lot). Risk logic is isolated in a single handler method, enabling consistent limits across all strategies.

πŸ‘‰ Read | VPS | @mql5dev

#MQL5 #MT5 #EA
❀20✍2πŸ‘Œ2⚑1
Forex analysis often overweights indicators and patterns while underusing economic constraints. A practical alternative is estimating fair exchange rates via purchasing power parity and using that as a benchmark against market pricing.

A Python system can implement relative PPP, supplemented by independent methods: international price-level comparisons, GDP-implied rates from IMF and World Bank series, inflation-adjusted baselines, and a standardized-goods proxy. Combining outputs via weighted averaging and dynamic reweighting improves robustness.

Key engineering issues include opaque commercial datasets, stale public releases, IMF SDMX-JSON parsing, country and currency code mapping, request chunking, retries, and fallback datasets to maintain continuity when APIs fail.

πŸ‘‰ Read | CodeBase | @mql5dev

#MQL5 #MT5 #Forex
❀21πŸ‘Œ4
Part 2 turns β€œfractal confirmed” into β€œfractal quantified” for EURUSD 5‑minute data using a repeatable MMAR calibration pipeline.

It extracts the scaling function tau(q) from partition-function slopes and uses its shape to separate monofractal (linear) behavior from true multifractality (concave). A three-part decision test scores concavity, deviation from linear fit, and slope variability, acting as a gate before spending compute on MMAR.

The Hurst exponent is estimated with bias-corrected, outlier-robust R/S analysis (with a tau(q) root-finding fallback), linking market memory to strategy selection and risk scaling.

tau(q) is then mapped to the multifractal spectrum f(alpha) via a Legendre transform, and the empirical spectrum is fit against lognormal, binomial, Poisson, and gamma cascade models to choose the best MMAR generator and parameters.

πŸ‘‰ Read | AppStore | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀33πŸ‘Œ8
Inside Bar detection has been automated for traders who rely on price action breakouts. The indicator scans charts for Inside Bar structures and classifies the result as bullish, bearish, or neutral based on the small candle’s open/close relationship.

Once confirmed, it plots a projection rectangle from the mother candle’s high/low and extends it forward by a configurable number of bars. Optional labels are printed next to each zone, with controls to keep only the last N patterns to reduce chart load.

Alerting supports popup, sound, mobile push, and optional email. Visual settings include automatic direction-based colors or manual overrides, plus optional rectangle fill. Designed to run on any symbol and timeframe, with non-repainting signals fixed after bar close and processing optimized to recent/visible candles.

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #Indicator
❀22πŸ‘4πŸ‘Œ2πŸ”₯1
A momentum-based candle coloring method can improve visibility of market direction and price activity by classifying each bar into four states.

Bullish momentum is shown in green (0.0), bearish momentum in red (1.0), and weak or no momentum in gray (2.0). A separate state flags news impact via candle expansion in silver (3.0), helping isolate unusually large ranges from routine movement.

The default momentum period is 4, tuned to detect sharper momentum shifts with minimal lag. This setup is suitable for quick visual triage before validating signals with volume, volatility, and session context.

πŸ‘‰ Read | CodeBase | @mql5dev

#MQL5 #MT5 #Indicator
❀23⚑5πŸ‘Œ2
MetaEditor in MetaTrader 5 is closer to a full IDE than a code editor, built around an iterative workflow: debug logic, measure performance, then package and protect the final EX5. The article emphasizes replacing ad‑hoc Print logging with step-by-step debugging on real or historical ticks and hardware-level profiling to pinpoint bottlenecks.

A practical Bollinger Bands signal indicator is used to demonstrate disciplined rule handling: reversal vs breakout modes, single active trade until TP/SL, reversal on opposite close, and strict session filters (skip early hours, avoid the last hour, forced end-of-day close) with clear on-chart visualization.

Key engineering practices include organizing work as an MQPROJ project with centralized properties, clean compilation with zero warnings, reusable debug.tpl chart templates, and repeatable Debug/Profile ...

πŸ‘‰ Read | VPS | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀21πŸ‘Œ4
Eagle Strategy (ES) is a two-phase metaheuristic for optimizing trading EA parameters when classic methods stall in local optima. It alternates wide exploration with targeted refinement to handle rugged fitness landscapes efficiently.

Global search uses LΓ©vy flights: mostly small moves with occasional long jumps, generated via Mantegna’s method. A fast Gamma implementation (Lanczos approximation) keeps LΓ©vy sampling practical for iterative optimizers.

When a promising region is found, ES switches to local exploitation using a Firefly-style search inside a hypersphere around the current best. Attractiveness depends on solution quality and decays with distance, enabling controlled convergence without losing diversity.

An MQL5 class design ties it together: phase switching, stagnation detection, adaptive step sizing, boundary handling, and parameter knobs ...

πŸ‘‰ Read | Quotes | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀32πŸ‘Œ2πŸ†2
MQL5 Wizard workflow extends beyond entry signals; money management often decides whether a strategy survives forward walks. A volume-based sizing model was implemented using a Fenwick Tree (Binary Indexed Tree) to query cumulative OBV structure in O(log n), avoiding long moving-average windows and latency.

Four sizing modes were tested: Linear, Conservative (sqrt damping, 1.25x cap), Aggressive (downscale weak structure, up to 3.0x), and Mean-Reversion (invert ratio, up to 2.0x). Fenwick-only forward walk on EURUSD (H4) produced a net loss (-$773.82) and profit factor 0.39, largely due to reacting to exhaustion spikes.

Adding an on-chart 1D CNN inference gate (conv+ReLU+global average pooling+dense+sigmoid) reduced trade frequency and throttled exposure on chaotic volume shapes. In the same framework, the combined model turned the forward walk sl...

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀13πŸ‘3πŸ‘Œ3
Financial ML pipelines leak information because labels overlap in time and regimes change, so classic train/validate/test splits overstate performance. This design blocks leakage with a strict 60/20/20 temporal partition: an outer-training zone for all iteration, an inner-validation checkpoint for accept/reject, and a final test opened exactly once via a programmatic gate.

Hyperparameters are chosen inside nested CV using PurgedWalkForwardCV (purging + embargo) and Masters’ 1-SE rule, selecting the simplest configuration statistically tied with the best. The outer loop then estimates performance on folds the search never sees, supporting both walk-forward and CPCV, with careful index handling.

Probability calibration is done correctly using out-of-fold predictions generated after selection, fitting isotonic calibration only on predictions from models that never t...

πŸ‘‰ Read | AlgoBook | @mql5dev

#MQL5 #MT5 #AI
❀35πŸ‘9πŸ‘Œ1πŸ‘€1
A utility script can be used to display full trading account information in one place, including balances, equity, margin figures, account currency, leverage, and server identifiers. This helps reduce manual checks and supports faster validation during setup and support cases.

Operational guidance is required before deployment. If account information is restricted or unavailable for a client, the script may fail or return partial fields depending on permissions and broker settings.

Email handling should be defined explicitly. Decide whether the email is added as an input parameter, read from platform settings, or stored in an external config, and ensure no sensitive account data is sent without consent and audit logging.

πŸ‘‰ Read | Forum | @mql5dev

#MQL4 #MT4 #script
❀17πŸ‘2πŸ‘Œ1
Retail momentum tools such as MACD and RSI are constrained by their moving-average design. Any averaging process requires past samples, which introduces persistent phase lag. By the time a reversal signal prints, faster execution systems have often already reduced exposure, leaving late liquidity to absorb the shift.

Some proprietary approaches model price as a kinematic series using discrete derivatives rather than smoothed oscillators. First derivative estimates provide velocity (dP/dt). Second derivative estimates provide acceleration (dV/dt), tracking how quickly velocity is changing.

A common exhaustion condition appears when acceleration turns negative while velocity remains positive. This configuration indicates weakening impulse before price direction changes. In automation, acceleration can be used as a gating filter to block breakout ent...

πŸ‘‰ Read | CodeBase | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀15πŸ‘3πŸ‘Œ1πŸ‘€1
This article builds a real-time flag pattern detector for MetaTrader 5 that replaces visual guesswork with repeatable rules. It validates continuation flags using ATR-normalized pole strength, capped retracement, bounded consolidation length, and breakout confirmation, while rejecting weak or overlapping setups.

The MQL5 design is fully graphical: no indicator buffers, only chart objects. Once confirmed, it draws the pole, an adaptive slanted channel from internal highs/lows, a shaded consolidation box, breakout arrow, and labels, with optional alerts.

Efficiency comes from a two-phase OnCalculate flow: one-time historical scan, then incremental updates using prev_calculated, tracking forming patterns separately from already-drawn ones to keep charts clean and processing fast on lower timeframes.

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #Indicator
❀20🀩2✍1πŸŽ‰1πŸ‘Œ1
MMAR volatility forecasting pipeline applied to EURUSD 5-minute data moves from fitted multifractal parameters into a full compound process X(t)=B_H[theta(t)]. The build combines a multiplicative cascade for multifractal trading time and Davies-Harte FBM for long-memory increments, with interpolation used to evaluate FBM on the deformed time grid.

Forecasting uses 1,000 Monte Carlo runs, regenerating cascade and FBM each time, then aggregating horizon volatility with mean, dispersion, and confidence bounds. Cascade depth is selected as k=ceil(log2(forecast_length+1)) and output is truncated to the required horizon.

A baseline GARCH(1,1) is fit on identical training data via arch with rescale enabled. Multi-step comparison follows simulation-based forecasting (ugarchsim-style) to match MMAR’s horizon statistic, then both are evaluated against realized ...

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀32πŸ‘Œ1
Manual multi-timeframe checks in Market Watch require repeated chart switching and subjective scoring. At scale, the workflow becomes slow and inconsistent, with missed alignment signals across symbols and timeframes.

CMultiTimeframeMatrix provides a deployable dashboard for MT5: a symbols x timeframes matrix with per-cell composite scoring (trend slope + momentum – volatility) scaled near [-100, +100]. Blue/red intensity reflects bullish/bearish bias, while the numeric score remains visible.

Delivered as a reusable .mqh module plus a thin host EA. Updates run on a timer with differential refresh, re-entrancy protection, performance warnings, and an β€˜M’ hotkey to toggle visibility.

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #EA
❀29πŸ‘10πŸ‘Œ1
Tool placement on MetaTrader 5 charts typically ends with limited cursor feedback and no fast inspection path for dense price action. Default crosshair behavior is fixed and lacks magnification and measurement support.

Part 32 adds a crosshair manager for MQL5 sidebars: layered reticle ticks, full-width/height lines, and axis labels that report exact time and price. A circular magnifier renders zoomed candles, wicks, bid/ask lines, and a local price label without changing chart zoom.

Double-click enables measure mode with an anchor, diagonal connector (Bresenham), and live stats for bars, pips, and raw price delta. The system uses eleven new canvases, hides on sidebar hover, and refreshes cleanly on theme and tool changes.

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀21πŸ‘¨β€πŸ’»4✍1πŸ‘Œ1
MetaTrader 5 custom symbols shift charts from broker-defined timeframes and quote feeds to locally managed market data. A custom symbol is a terminal object with its own tick history, contract specification, and Strategy Tester support, stored under the terminal’s Custom base directory and separated in Market Watch.

Core MQL5 APIs cover lifecycle (CustomSymbolCreate/Delete, SymbolSelect), history writes (CustomTicksAdd/Replace, CustomRatesUpdate), and contract properties (CustomSymbolSet*). Limitations include no MQL5 Cloud optimization, dependency on cross rates for margin/profit, and fixed symbol properties during a test run.

Typical uses include time-independent bars (Renko, Range, Equal-Volume) built via tick aggregation and written with CustomRatesUpdate plus tick emulation, and synthetic instruments (spreads, baskets) requiring tick synchroni...

πŸ‘‰ Read | AlgoBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀35πŸ‘3πŸ‘Œ1