MQL5 Algo Trading
488K subscribers
3.07K photos
3.07K 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 Expert Advisor implements a moving average crossover with close-based confirmation. Long entries trigger when the fast MA crosses above the slow MA and the bar closes above the fast MA. Short entries trigger when the fast MA crosses below the slow MA and the bar closes below the fast MA.

Execution is evaluated on new bars to limit noise-driven churn. An optional multi-timeframe MA filter can be enabled to align entries with a higher-timeframe trend and reduce false positives.

Risk controls include configurable take profit and stop loss (both optional), a maximum lot cap, and an equity threshold gate. Exit logic can optionally close positions when price crosses back over the fast MA for adaptive trade management. Trades are isolated via a MagicNumber.

Backtests referenced EURUSD on D1 with fast/slow periods of 100/200, showing comparatively stable result...

πŸ‘‰ Read | Calendar | @mql5dev

#MQL5 #MT5 #EA
❀38πŸ‘Œ3
ZigZag-based SNR Detection calculates support and resistance from confirmed pivot highs and lows. Levels are derived from ZigZag extremes and plotted as horizontal references to outline recent market structure.

Configuration covers Lookback bars and the core ZigZag settings: Depth, Deviation, and Backstep. Optional rendering includes broken (closed) levels for historical context, open levels extending to the current bar, the ZigZag line, and per-level labels.

Labels mark level type (S/R) and the active chart timeframe. The tool runs across standard symbols and timeframes from intraday through daily, and is intended to highlight pivot clusters where multiple levels align into practical zones for further analysis.

πŸ‘‰ Read | Quotes | @mql5dev

#MQL5 #MT5 #Indicator
❀28πŸ‘Œ6πŸ”₯1
Manual Fibonacci retracements stay discretionary, but their monitoring can be automated without losing context. This EA detects manually drawn OBJ_FIBO objects, extracts each retracement level, converts them into fixed price references, and tracks them independently.

An event-driven workflow avoids noisy auto-detection: the trader draws, then explicitly syncs and converts levels for monitoring. Internally, each level is stored with state so interactions are interpreted over time, not as one-off checks.

On every tick, a state machine classifies approach, touch, breakout, and post-touch reversal using configurable tolerances, instrument-aware pip scaling, and level-mapping options. Alerts and a compact panel provide persistent awareness across charts, while lifecycle handling keeps monitored structures aligned with edits and deletions.

πŸ‘‰ Read | AppStore | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀27πŸ‘Œ4πŸ†3πŸŽ‰1
Liquidity zones and flips can be identified accurately in MQL5, yet many trades fail because risk is applied mechanically instead of modeling how price sweeps liquidity around those levels.

The article proposes an engineered, reproducible risk framework implemented as an MT5 Expert Advisor that manages the full trade lifecycle: pre-trade zone qualification (impulse/base quality, size constraints, higher-timeframe alignment), context-aware stop placement with buffers beyond expected sweep areas, and dynamic position sizing from a fixed account risk percent and actual stop distance.

Key implementation details include a LiquidityZone state model (triggered, flipped, expiry), ATR-based normalization to reject weak zones, pending limits for fresh zones, and confirmation-based market entries for flipped zones with reduced risk. Zones are monitored for expiry, ord...

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #EA
❀22πŸŽ‰10✍2πŸ‘1
MQL5 Algo Trading
This media is not supported in the widget
VIEW IN TELEGRAM
❀90πŸ‘29πŸ‘17πŸ’”17⚑6πŸ€”4πŸ‘Œ3
This part completes the Excel–Python–MetaTrader 5 bridge by moving the MT5 side into MQL5 as a Service, avoiding the β€œscript must stay on a chart” limitation. Running as a service keeps the connector independent of charts while still able to open/close charts and control terminal state.

The system is deliberately split into three cooperating processes: a Python socket server, VBA in Excel, and an MQL5 client. The recommended workflow is incremental testing: validate Python first, then Excel↔server messaging, then attach MT5.

On the MQL5 side, the core is a persistent TCP client loop with explicit socket cleanup on failed connects, configurable host/port parameters, and a defensive receive buffer strategy to prevent losing data when reads arrive in bursts.

A simple text protocol is parsed character-by-character to extract a symbol and a command, return...

πŸ‘‰ Read | Quotes | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀32πŸŽ‰6πŸ‘1
Nested structs in MQL5 were extended from a fixed double payload to a more reusable mapping pattern, similar to key-to-value translation used in database indexing.

A practical issue surfaced: compiler warnings that can mask real defects later. The immediate fix is explicit conversion, which keeps builds clean without changing behavior.

The main refactor is separation of concerns. Set/Get were moved out of the payload struct and placed into the registry layer, enabling st_Data to store st_Reg elements without hard coupling.

Because MQL5 cannot return pointers or null, the Set logic reserves a sentinel slot to represent β€œnot found”. st_Data then becomes a template over type T, with a remaining dependency through Get_K, which can later be overloaded for flexible key extraction.

πŸ‘‰ Read | AppStore | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀19πŸ‘Œ1
Trend detection gets a practical upgrade by reworking the Abbe criterion for market data. The core idea is comparing dispersion of prices with dispersion of bar-to-bar changes: trends inflate overall spread while short-step movement stays relatively stable.

To reduce spike sensitivity on short windows, variance is replaced with robust estimates: median, MAD, and absolute differences. Trend β€œstrength” is then ranked using historical distributions (CDF), turning raw deviations into comparable probabilities.

Direction is handled separately with a Kendall-based measure, then combined with the robust Abbe signals for entry/exit rules. Further variants address edge anomalies, add a linearity ratio (net move vs total path), and explore hybrid non-parametric criteria using sorting and SMA-order comparisons to capture both direction and magnitude.

πŸ‘‰ Read | Calendar | @mql5dev

#MQL5 #MT5 #Strategy
❀34πŸ†5πŸ‘Œ4⚑3πŸ‘€3
TradeCloserLib is an MQL5 library aimed at automated trading systems that need consistent position shutdown logic. It provides routines to close open positions by symbol, across all symbols, or filtered by magic number.

ClosePositions(symbol) closes all open positions for a given symbol, defaulting to the current chart symbol when no parameter is supplied.

CloseAllPositions() closes positions across every symbol with open trades. It first builds a unique symbol list to prevent duplicate processing during iteration.

CloseByMagic(magic) closes positions matching a specified magic number, supporting segregated operation in multi-EA deployments.

πŸ‘‰ Read | Calendar | @mql5dev

#MQL5 #MT5 #EA
❀24
Quantitative FX portfolios often fail on systemic correlation rather than individual trade logic. Trading multiple USD-cross pairs can concentrate risk on USD even when each setup appears independent. A single USD event can trigger clustered stop-outs across the book.

The Institutional Currency Exposure Monitor is an on-chart dashboard that aggregates every open position, decomposes each pair into base and quote legs, and computes true net exposure per currency in lots. Example: Long 1.0 EURUSD and Short 0.5 USDJPY yields separate net direction for EUR, USD, and JPY.

The display flags concentration risk by showing net long as positive and net short as negative. A configurable warning state highlights currencies exceeding a lot-based threshold.

Compatible with manual and automated positions, and supports both netting and hedging account modes. Dashbo...

πŸ‘‰ Read | Quotes | @mql5dev

#MQL5 #MT5 #Strategy
❀28πŸ‘Œ4🀯2πŸŽ‰1
Jardine’s Gate adds a six-stage validation pipeline between LSTM predictions and execution in a multi-account MT5 crypto CFD engine. Instead of trading 43,200 minute-by-minute signals, it answers the harder question: whether conditions justify trading at all.

Signals are filtered across independent dimensions: price-action structure via zlib compression (entropy), consensus across 50 LSTM β€œexperts” (interference), softmax conviction (confidence), regime-adjusted edge with calibrated multipliers (probability), EMA(200) trend alignment with a high-confidence reversal override, and a loss-streak kill switch with cooldown.

Implemented as a persistent MQL5 class (QuantumEdgeFilter) with sequential, cost-aware ordering and per-gate statistics, it reduced a month to 127 trades (0.29%) with minimal drawdown in testingβ€”useful for prop constraints where sel...

πŸ‘‰ Read | Docs | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀26
A frequency analysis add-on for MQL5 is being built to operate on live close data instead of synthetic samples. It bins closes into a histogram, then computes Shannon entropy and a chi-square goodness-of-fit statistic to quantify clustering versus uniformity.

The implementation defines enums for log types and compute modes (per-bar, per-tick), plus inputs for bin count, lookback window, and feature toggles. Data structures store per-bin ranges/counts/frequencies and timestamped log entries, backed by a capped FIFO queue with optional auto-scroll.

Core routines load closes, compute min/max, assign bins, calculate relative frequencies and the mode. Additional functions calculate mean, standard deviation, skewness, entropy, chi-square, and lag-1 autocorrelation, then render a histogram and a supersampled scrollable log panel with color-coded entries.

πŸ‘‰ Read | Quotes | @mql5dev

#MQL5 #MT5 #EA
❀18✍1
This article fixes a critical edge case in MT5 news filters: SL/TP suspension state stored only in memory is lost after a restart or recompile, leaving positions without protection and no reliable way to know what must be restored.

The solution adds a persistent state layer using terminal Global Variables. It stores a suspension flag, a count of affected positions, and per-position snapshots (ticket, original SL, original TP) using a predictable naming scheme. Tickets are safely stored as doubles.

Three functions define the recovery contract: save immediately after removing stops, load during OnInit to rebuild internal arrays without restoring prematurely, and clear after restoration to prevent stale recovery. This keeps behavior deterministic across restarts and supports multi-instance setups via unique prefixes or magic numbers.

πŸ‘‰ Read | NeuroBook | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀27πŸ‘Œ2πŸ†2πŸŽ‰1
Pair trading remains a practical market-neutral technique when implemented with basic statistics and strict controls. The core requirement is a stationary spread or ratio between correlated instruments, with signals derived from Z-score deviations from the mean.

An EA-style architecture typically includes data normalization, ratio/Z-score and rolling correlation, entry/exit logic, and risk controls. Parameter drift is handled via periodic re-optimization of the Z-score window and thresholds, with out-of-sample checks and coarse step sizes to reduce overfitting.

Risk handling extends beyond lot sizing. Correlation-aware position adjustments, protective stops/targets, and consecutive-loss limits help address regime shifts where correlation breaks.

Backtests cited for correlated FX pairs report mid-teens returns with sub-0.5% drawdowns and multi-hour...

πŸ‘‰ Read | Forum | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀36πŸ‘Œ12πŸ†2🀑1
Market microstructure continues to show liquidity as a key driver of short-term price behavior. Obvious swing highs and lows often accumulate clustered stop orders, creating liquidity pools that get cleared before directional continuation.

SMC Liquidity Sweep Detector is built to flag these events in real time by focusing on rejection, not simple level breaks. A sweep is signaled when price breaches a prior structural high or low but fails to hold, then closes back inside the range, indicating a fakeout rather than acceptance.

Core logic includes precision labeling of raids above Swing Highs and below Swing Lows, a wick-based rejection filter to reduce noise, and non-repainting signals based on closed candles for consistent review. Alert routing is modular, providing terminal notifications when a sweep is confirmed.

Key inputs cover SwingLookback, M...

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #Indicator
❀31πŸ‘6πŸ‘Œ2πŸŽ‰1
Batch Normalization is added to an MT5 OpenCL neural-network library to reduce internal covariate shift, stabilizing layer-to-layer data distributions and enabling higher learning rates without slowing training.

The article implements a CNeuronBatchNormOCL layer that keeps per-neuron statistics plus trainable scale/shift (gamma, beta). To cut memory and compute overhead, moving mean/variance are approximated with exponential averages, avoiding full-batch storage.

Feed-forward runs an OpenCL kernel per neuron: compute EMA mean/variance, normalize, apply gamma/beta, then optionally apply activation (with guidance on placing normalization before or after activations). Backprop updates gamma/beta and propagates gradients through normalization and activation, with special handling to bypass work when batch size is 1.

πŸ‘‰ Read | Docs | @mql5dev

#MQL5 #MT5 #AI
❀56πŸ‘10πŸ†4πŸ‘Œ3
MetaTrader 4 remains a stable execution terminal, but built-in risk controls are limited. For funded account workflows, manual lot sizing and daily drawdown tracking can introduce avoidable execution mistakes and compliance violations.

Prop Firm Risk Monitor is a lightweight MQL4 chart-based dashboard focused on two areas: daily loss control and position sizing. It reads open positions plus today’s closed trades, including commissions and swaps, to compute precise Daily PnL and align it with common daily loss rules such as 5%.

The utility also calculates lot size from a configured risk percentage and stop-loss distance in pips, using the symbol tick value and handling 4-digit and 5-digit pricing. It is indicator-only, does not place orders, and relies on native terminal logic.

Key inputs: InpRiskPercent, InpStopLossPips, InpMaxDailyDD with an on-chart war...

πŸ‘‰ Read | VPS | @mql5dev

#MQL4 #MT4 #EA
❀32πŸ‘2πŸ‘€2⚑1
Institutional trading workflows often treat the True Daily, Weekly, and Monthly Open as primary reference levels. These opens are commonly used to frame the PO3 cycle: accumulation near the open, a liquidity run above or below the open, then directional expansion away from it.

The ICT True Open & PO3 Lines indicator calculates and plots the current period opens without lag, keeping execution charts aligned on M1, M5, and M15.

Key behavior includes clear separation of premium (above open) and discount (below open) zones, plus simultaneous Daily (midnight), Weekly, and Monthly anchors on lower timeframes. The implementation focuses on static horizontal levels for the active period, avoiding heavy historical loops and keeping platform overhead minimal.

Configuration offers independent toggles for each open level, along with customizable colors and line...

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #Indicator
❀35πŸ‘Œ1
This article shifts from socket-based MT5/Excel exchange to building the SQL foundation needed for reliable data workflows in algorithmic trading.

It compares practical ways to run SQL: command line, MySQL Workbench, MetaEditor, embedded MQL5, or sending SQL via sockets to a server. The key constraint is portability: stick to standard SQL to avoid vendor-specific features that break across engines.

Core setup focuses on CREATE DATABASE and USE, plus Workbench execution mechanics (run selection vs current statement). For repeatable scripts, it recommends conditional creation (IF/EXISTS patterns) instead of failing on reruns.

Table design is treated as the real challenge: data types and schema planning matter more than column order. A quotes example shows why a β€œprice-only” table cannot store history, then uses ALTER TABLE to add a date field, emphasizing c...

πŸ‘‰ Read | Docs | @mql5dev

#MQL5 #MT5 #SQL
❀22πŸ‘3πŸ‘Œ1
Inheritance in MQL5 is not limited to classes. Structs can share a base struct to remove duplicated fields and functions, such as a common k_value and Get_K logic across st_Reg and st_Bio.

Refactoring to a st_Base struct and inheriting publicly centralizes behavior. Updates to shared members then propagate to all derived structs, reducing maintenance risk and inconsistent behavior.

The next step combines structs, templates, and inheritance. A templated base forces derived structs to also become templates, enabling type-specific instantiations generated by the compiler and allowing a reusable list-like container with overloads.

πŸ‘‰ Read | Forum | @mql5dev

#MQL5 #MT5 #AlgoTrading
❀42πŸ‘Œ6🀯3⚑2
ICT-style time segmentation keeps algorithmic price delivery tied to specific operating windows. Liquidity often accumulates during Asia, gets engineered around the London open, and sees distribution during the New York kill window. Time alignment is treated as a primary variable alongside price.

MT4 provides limited native support for consistent session visualization, so ranges and windows are often marked manually, with additional effort spent converting broker server time to market time.

An ICT Killzones indicator automates the session map. It draws the Asian range from the session high/low to frame liquidity pools, shades the London and New York high-volatility windows, and includes a broker GMT shift input so windows line up with institutional timing across GMT+2, GMT+3, EST, and other feeds.

Execution is kept lightweight by limiting calculations to...

πŸ‘‰ Read | Forum | @mql5dev

#MQL4 #MT4 #Indicator
❀20πŸ‘3πŸ‘Œ1