MQL5 Algo Trading
508K subscribers
3.36K photos
3 videos
3.37K 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
An interactive MT4 script consolidates per-symbol trading parameters into a single view, combining MarketInfo and validated SymbolInfo data. It targets operational fields such as margin requirements, contract size, currency conversion rates, and leverage, reducing reliance on broker documentation for day-to-day checks.

Symbol selection is driven by the Market Watch list with support for β€œSelect”, which is relevant on servers carrying large symbol catalogs. Output is organized with MarketInfo values in the left column, and SymbolInfoInteger/String/Double values in the center and right columns.

A MODE_LEVERAGE line is included, derived per symbol as:
Leverage = Bid * ContractSize * Rate(profit currency to account currency) / MarginRequired.

πŸ‘‰ Read | Forum | @mql5dev

#MQL4 #MT4 #script
❀30πŸ‘5😁2πŸ‘Œ2
An MT5 Tools Palette can render cleanly and still be non-functional without an interaction layer. Production behavior requires bitmap-label hit-testing, a single OnChartEvent handler for CHARTEVENT_* inputs, and a deterministic state machine that maps input to tool selection, panel manipulation, and object placement.

The implementation targets flyout tool menus with scrolling, drag-and-snap panel positioning, bottom-edge resize, and live theme switching. Tool placement is defined by an interaction contract: activeTool, required click count, and a fixed placement sequence supporting 1/2/3-click objects.

Architecture is expanded into cooperating classes: tool registry, multi-layer canvases including HR flyout surfaces, layout + hit-tests, flyout manager, renderer, event router, and a drawing engine. Data structures add a 35-item TOOL_TYPE enum, per-...

πŸ‘‰ Read | CodeBase | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀57πŸ‘7πŸ‘Œ7
Aura Heiken Ashi is a trend-following indicator built to reduce noise and focus on higher-probability entries. It extends classic Heiken Ashi with multiple confirmation layers intended to keep signals aligned with the prevailing market direction.

Core logic combines dual smoothing (SMMA plus EMA), dynamic supply and demand lines from recent imbalances, and a 200 EMA trend gate that permits bullish signals only above the line and bearish signals only below it. Momentum checks are validated with CCI and MACD, while ADX suppresses low-quality periods by switching candles to gray in low-volatility ranges. Tick volume is compared to local averages to confirm participation.

Operational rules: green candles favor longs above the 200 EMA, ideally near demand. Red candles favor shorts below the 200 EMA, ideally near supply. Gray candles indicate no trade. Con...

πŸ‘‰ Read | Freelance | @mql5dev

#MQL4 #MT4 #Indicator
❀33πŸ”₯4πŸ‘Œ4😱2πŸ†2πŸŽ‰1πŸ‘€1
Tick series are consolidated into a single collection to support multi-symbol workflows in MQL5. The implementation is based on a sorted CListObj storing pointers to CTickSeries instances, one per symbol, aligned with existing DoEasy collection patterns.

Core methods cover lookup by symbol, accessors for ticks by list index or timestamp (including millisecond resolution), and batch operations: setting β€œused” flags, configuring history day depth, creating series, and producing short/full journal dumps. New-tick and refresh hooks are present but marked for later completion in CTickSeries.

Engine.mqh is extended to build the tick series collection alongside the existing timeseries collection via SetUsedSymbols(days). A test EA removes direct tick-series ownership and queries the library collection to find per-symbol max Ask and min Bid ticks; sample initializa...

πŸ‘‰ Read | AppStore | @mql5dev

#MQL5 #MT5 #EA
❀65πŸ‘Œ8πŸ‘6✍3
RSI histogram bars based on two periods can be implemented by calculating separate RSI values, applying smoothing to each series, then plotting the resulting delta or combined signal as a histogram. The approach typically uses a fast RSI for responsiveness and a slower RSI to reduce noise, with smoothing applied via SMA, EMA, or Wilder-style averaging.

Visualization is handled by converting the final series into positive and negative bars, allowing trend shifts and momentum changes to appear without relying on line crossings. Common additions include zero-line filtering, configurable smoothing length, and optional color changes by slope to avoid false flips during consolidation.

πŸ‘‰ Read | Docs | @mql5dev

#MQL4 #MT4 Please paste the post text (or upload an image/screenshot of it), and I’ll generate 2 compliant hashtags.
❀32πŸ‘Œ1
IMF SDMX-JSON releases provide standardized macro datasets across ~190 countries, suitable for cross-country comparison beyond local statistical quirks. Practical value starts after building a pipeline for multi-level JSON parsing, frequency alignment, revision handling, and data-quality flags.

Key signals often come from external balances and fiscal stress. Current account deficit thresholds (for example, below -5% of GDP) have preceded sharp FX repricing in past episodes. Composite scores can be built from GDP, CPI, unemployment, trade flows, debt, and budget balance, with non-linear interactions and rolling correlations.

Operational requirements include caching to respect API limits, robust missing-data treatment, and an integration layer from Python analytics to MT5/MQL5 for signal delivery and backtests.

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀24πŸ‘2😁1πŸ‘Œ1
CPyramidEngine is a plug-in MQL5 class that adds disciplined pyramiding to any EA with minimal integration. The EA keeps ownership of entry signals; the engine manages add-on triggers, decreasing lot sizing, a single unified stop across all layers, broker-level stop validation, restart recovery, and detection of manual/external closes.

The core design targets two common failure modes: equal-sized add-ons that multiply exposure, and independent stop losses that make worst-case risk unknowable and fragile when modifications fail. By enforcing strictly smaller add-ons and advancing one shared stop after each addition, total worst-case account risk can mathematically shrink as the pyramid grows.

Risk is computed in account currency using tick value/tick size, avoiding pip-based errors across gold, indices, crypto, and non-USD accounts. The engine requires he...

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀31πŸ‘Œ4πŸ‘2
GARCH remains a fast, well-understood baseline for volatility forecasting, but its core assumptions break in real markets: return tails are too thin, volatility persistence decays too quickly, and behavior does not transfer cleanly across timeframes.

MMAR reframes the problem as a price process driven by fractional Brownian motion evaluated on β€œtrading time,” a non-uniform clock that accelerates during high-activity periods and slows in quiet regimes. This single structure generates fat tails, long memory, volatility clustering, and scale consistency without bolting on separate fixes.

The implementation follows Zhang (2017) as a reproducible Python pipeline using the MetaTrader5 API: load 5-minute EURUSD data, then validate multifractal scaling via a partition-function test to confirm the data is fractal before forecasting.

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀20πŸ‘3πŸ‘Œ1
Part 8 shipped a polished chat UI, but execution remained manual. AI replies were free-form, routing was single-channel, and signals left no chart footprint for audit or backtest.

This update implements an end-to-end MQL5 flow: button click to bar collection, constrained prompts, line-based KEY:VALUE responses, a parser, unified order placement, and labeled drawings anchored to the active timeframe.

Core structure is dispatch-driven. Seven actions are mapped to stable integer IDs, handlers, prompts, parse rules, and chart rendering. Adding an action becomes a table row plus a switch case, without cross-file edits.

Signals become deterministic. Market vs pending orders are selected by action; Key Level uses a fixed support/resistance and bounce/break matrix. Stops and targets use a range-derived buffer to avoid per-symbol tuning.

πŸ‘‰ Read | AppStore | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀29πŸ‘2πŸ‘Œ1
Real-time entry logic can become a measurable latency source in MT5 EAs when every tick triggers 64-bar loops, indicator buffers, and floating-point ML inputs. The approach here restructures the β€œread + decide” path by packing a 64-bar bullish/bearish history into a single uint64, keeping market context in one CPU word.

CSignalBitwisePerceptron then applies two gates: an O(1) bit-map lookup (m_map) for near-instant pattern matching, followed by a lightweight perceptron that computes a dot product over active bits. A single threshold parameter (m_threshold) controls the precision vs frequency trade-off.

Forward-walk on EURUSD H4 shows the map-only gate is fast but rigid (11 trades, longs only, higher drawdown). Adding the perceptron slightly reduced profit and trades, introduced a profitable short, and lowered drawdown by filtering weaker contexts.

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀39πŸ‘6⚑5πŸ‘€3πŸ‘Œ2
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
❀16πŸ‘Œ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