fa
Feedback
MQL5 Algo Trading

MQL5 Algo Trading

رفتن به کانال در Telegram

The best publications of the largest community of algotraders. Subscribe to stay up-to-date with modern technologies and trading programs development.

نمایش بیشتر

📈 تحلیل کانال تلگرام MQL5 Algo Trading

کانال MQL5 Algo Trading (@mql5dev) در بخش زبانی انگلیسی بازیگری فعال است. در حال حاضر جامعه شامل 509 309 مشترک است و جایگاه 155 را در دسته فناوری و برنامه‌ها و رتبه 5 را در منطقه المملكة المتحدة دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 509 309 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 09 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 9 648 و در ۲۴ ساعت گذشته برابر 265 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 3.52% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 2.05% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 17 916 بازدید دریافت می‌کند. در اولین روز معمولاً 10 418 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 34 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند indicator, chart, mql5, candle, range تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
The best publications of the largest community of algotraders. Subscribe to stay up-to-date with modern technologies and trading programs development.

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 10 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

509 309
مشترکین
+26524 ساعت
+2 3497 روز
+9 64830 روز
آرشیو پست ها
Inside Bar pattern detection has been automated into a chart indicator focused on breakout setups and fixed signals after can
Inside Bar pattern detection has been automated into a chart indicator focused on breakout setups and fixed signals after candle close. The tool flags each Inside Bar, applies a directional bias from the small candle’s open/close (bullish, bearish, or neutral), and draws a projection rectangle based on the mother candle’s high/low with configurable forward extension. Optional chart labels are placed next to each zone. Alerting is supported across common channels (popup and sound) with options to limit noise, including label-only-on-new-bar and filters that hide neutral signals. Chart clutter controls include keeping only the last N rectangles. Configuration covers colors (auto by direction or manual), rectangle fill, forward bars, bars-to-keep, labels, alerts, and direction filtering. Works across symbols and timeframes, with an optimized loop targe... 👉 Read | Quotes | @mql5dev

Dynamic Fair Value Gap (FVG) indicator for MetaTrader 4 focuses on identifying unmitigated price imbalances using a 3-candle
Dynamic Fair Value Gap (FVG) indicator for MetaTrader 4 focuses on identifying unmitigated price imbalances using a 3-candle pattern. Bullish gaps are calculated between Candle 1 high and Candle 3 low, while bearish gaps use Candle 1 low and Candle 3 high. Zones are plotted as rectangles with labels for quick validation. Mitigated zones are removed automatically once price revisits the area, keeping charts limited to active FVG levels. Untouched zones extend forward by a configurable number of bars (default 18) to maintain visibility during live movement. Additional context levels include previous daily high/low lines, refreshed at each day change. Alerting is supported via platform notifications when a new FVG forms. Key inputs include BarsToKeep (history scan), ForwardBars (projection length), and RectangleFill (filled vs outline). 👉 Read | NeuroBook | @mql5dev

MetaTrader 5 OBJ_RECTANGLE is a static chart primitive. It provides no state, no breakout confirmation, no aging, and no dist
MetaTrader 5 OBJ_RECTANGLE is a static chart primitive. It provides no state, no breakout confirmation, no aging, and no distinction between manual edits and automated updates. This pushes ongoing chart maintenance into OnTick workflows. A managed zone model wraps each rectangle in a CZone class stored in CArrayObj. The object holds cached coordinates, ATR-scaled sizing, breakout counters, source flags, and a structural state machine (VIRGIN, BROKEN, INACTIVE). A blacklist prevents deleted auto-zones from being recreated. Synchronization can poll rectangles each tick (SyncHybridObjects) to adopt user objects, capture drags, and remove missing items. Production designs typically move this to OnChartEvent for create/drag/delete events to reduce GUI API overhead. 👉 Read | Signals | @mql5dev

This article moves from “placing objects” to actually controlling MQL5 chart objects through events, highlighting a common mi
This article moves from “placing objects” to actually controlling MQL5 chart objects through events, highlighting a common misconception: OnCalculate can fire even when price hasn’t changed. A simple indicator that draws the previous quote shows why relying on every recalculation as a price update leads to wasted work and performance loss. It then drills into keyboard handling via OnChartEvent, demonstrating how to capture key codes and use them to drive object movement. A modified example uses arrow keys to shift a marker across bars, updates on-chart status text, and cleans up objects on removal to avoid chart clutter. Finally, it addresses a frequent pitfall: object names must be unique. Reusing a name can silently prevent creation and cause confusing edits to the wrong object. A practical fix is generating unique names using ObjectsTotal and storing ... 👉 Read | Calendar | @mql5dev

The article shows why “having an id column that looks like a foreign key” does not make a database relational. Without an act
The article shows why “having an id column that looks like a foreign key” does not make a database relational. Without an actual foreign key constraint, deleting a symbol can leave orphaned quote rows, and later reusing the freed id can silently attach old quotes to a different symbol. It then rebuilds the schema with a real primary key/foreign key relationship, which blocks unsafe deletes and forces correct deletion order (remove dependent quotes first, then the symbol) to preserve consistency. Finally, it introduces SQLite triggers to automate multi-step maintenance: a delete trigger can cascade cleanup from one command, and an insert trigger can enforce normalization (e.g., auto-uppercasing symbols). The key takeaway for trading data pipelines is to prefer constraints and carefully designed triggers over manual assumptions. 👉 Read | Forum | @mql5dev

This article builds a MetaTrader 5 heat map indicator that measures “time-at-price” to rank support/resistance by where the m
This article builds a MetaTrader 5 heat map indicator that measures “time-at-price” to rank support/resistance by where the market actually lingers, complementing earlier time-gap detection. Price is split into micro-zones, time spent in each zone is accumulated, then normalized to a 1–100% presence scale and mapped to a smooth red-to-blue gradient. The implementation emphasizes reliability and speed: a modular PriceLevel structure, a sliding window over recent history, an adaptive grid (50–1000 levels, tick-size aware), and an overlap test that avoids O(n²) scans. Updates run only on new bars, arrays are reused, and rectangles are efficiently managed on-chart. For traders, blue zones act as “magnets” for mean reversion and range boundaries; red zones flag fast-through areas prone to whipsaws. Developers get a framework that integrates well with volu... 👉 Read | Signals | @mql5dev

MetaTrader 5 scripts cannot register OnChartEvent, so direct keyboard event handling is not available. A workable substitute
MetaTrader 5 scripts cannot register OnChartEvent, so direct keyboard event handling is not available. A workable substitute is polling: filter key state inside a controlled loop and update chart objects between iterations. A common pitfall is execution speed. A script can create, position, and delete objects before any interaction is visible. Keeping the script alive requires a loop with throttling to limit CPU use, plus explicit cleanup so objects do not persist after chart rebuilds (period change forces script removal). The same pattern can be extended with function pointers in MQL5. Functions share a signature, a pointer type is declared, and an array of pointers enables selecting behavior without hardcoding function names. 👉 Read | Docs | @mql5dev

SQL foreign keys often look “wrong” until the result set logic is made explicit. A naive SELECT across tb_Quotes and tb_Symbo
SQL foreign keys often look “wrong” until the result set logic is made explicit. A naive SELECT across tb_Quotes and tb_Symbols can produce a Cartesian product, multiplying rows (6 quotes x 4 symbols = 24), which is expected behavior. A table diagram in tools like DBeaver helps confirm cardinality. The circle marker typically indicates one-to-many: tb_Symbols.id is referenced by tb_Quotes.fk_id, so one symbol can map to multiple quote rows. Correct results require an explicit join condition. Using table aliases and a WHERE clause (or JOIN ... ON) constrains rows to fk_id = id, returning only matched quotes. Output can be tightened by selecting required columns, applying column aliases, and sorting with ORDER BY. Updates become risky when fk_id is manually typed. A safer pattern is UPDATE with a subquery that resolves fk_id from symbol and date, avoiding har... 👉 Read | Signals | @mql5dev

An optimized ZigZag implementation is available as a drop-in replacement for the legacy Zigzag.mq4 used since MT3-era MQL2. T
An optimized ZigZag implementation is available as a drop-in replacement for the legacy Zigzag.mq4 used since MT3-era MQL2. The goal is to reduce overhead when EAs rely on ZigZag values during strategy testing and live tick processing. On the first run, the indicator computes the full visible history. On subsequent updates, it avoids full recalculation by locating the third extremum from the current bar and restarting from that point. Recalculation depth can be adjusted via the level parameter; setting it to 2 forces a restart from the second extremum. External input names are preserved for compatibility. Minute-timeframe “floating” extremums have also been removed to stabilize plotted turning points. 👉 Read | Forum | @mql5dev

Value Charts and Price Action Profile, published in 2002 by Helweg and Stendhal, added volatility-adaptive context to traditi
Value Charts and Price Action Profile, published in 2002 by Helweg and Stendhal, added volatility-adaptive context to traditional charts. In 2010, Abrams and Walker applied both to MR Swing, a mean-reversion swing system that reported strong equity results and portfolio-level drawdown reduction. MR Swing is notable for asymmetric bull/bear logic and volatility-normalized signals. A 200-day SMA-based Hysteresis Channel classifies regime using a high/low buffer and increment-only updates to reduce whipsaws. Bull entries use Value Charts on lows with a 5-bar floating axis and alpha 0.16, triggering at -7.5. Bear signals use DVO with Percent-Rank over 252 days as a Price Action Profile equivalent. Bull exits use SVAPO exhaustion with dynamic bands and limit orders. 👉 Read | Freelance | @mql5dev

MQL5 chart tools hit a ceiling when they rely on native objects. Placement is simple, but post-placement interaction is const
MQL5 chart tools hit a ceiling when they rely on native objects. Placement is simple, but post-placement interaction is constrained: limited hit-testing, no custom handle drag, no rubber-band preview, and no precise deletion. A canvas-based architecture replaces terminal-managed objects with a bitmap layer and an internal array of drawing structs. Redraw iterates the array and renders pixel-level primitives, enabling selection states, hover feedback, dragging, handle suppression during edits, and consistent styling. Core components include ARGB opacity helpers, Porter-Duff pixel blending, anti-aliased thick lines with subpixel coverage, and scalable dash patterns. New circle primitives support filled handles and borders. Line tools render strokes first, then conditional handles with hover halos, while hit-testing covers segments and info panels. 👉 Read | Forum | @mql5dev

This piece connects Python-side model validation to tick-accurate execution testing in MetaTrader 5, so edge is judged after
This piece connects Python-side model validation to tick-accurate execution testing in MetaTrader 5, so edge is judged after spread, slippage, commission, and swap. The workflow exports a trained ONNX pipeline, probability calibrator parameters, feature ordering, and CPCV metadata, then runs each combinatorial path as a separate Strategy Tester agent to produce real-fill equity curves. Key engineering constraints are made explicit: the StandardScaler is embedded in the ONNX graph, so MQL5 must feed raw features only; feature order must exactly match the recorded input tensor layout; and features must be computed on the last closed bar to avoid look-ahead. CPCV logic stays in Python: it precomputes one timestamp mask per path, while the EA does fast membership checks, runs OnnxRun with correct (1, n_features) shape, applies isotonic or Platt calibration... 👉 Read | Forum | @mql5dev

Wyckoff remains one of the clearer cause-and-effect models for institutional supply and demand, but automation usually fails
Wyckoff remains one of the clearer cause-and-effect models for institutional supply and demand, but automation usually fails on context. Single events are easy to detect; the difficulty is validating the sequence that gives those events meaning. An MQL5 EA can enforce that sequence with a finite state machine on H4: range after a prior trend, then spring or upthrust on low relative tick volume, then SOS or SOW on high relative volume, then LPS or LPSY pullback entries with ATR-based stops. Tick volume is usable as a proxy because the logic relies on ratios versus a rolling baseline computed from the detected range, not absolute volume. 👉 Read | Docs | @mql5dev

Seasonality can be quantified in MT5 by aggregating average returns across recurring time buckets: day-of-month (1–31), day-o
Seasonality can be quantified in MT5 by aggregating average returns across recurring time buckets: day-of-month (1–31), day-of-week (Mon–Sun), or hour-of-day (0–23). The output fits well in a separate indicator window to keep the main chart clean. Implementation in MQL5 typically uses three buffers: a histogram for average returns per bucket, a line for the current/next periods, and arrow points for the next two expected values. Inputs control bucket type, lookback bars, percent vs points, positive-only filtering, and optional forecast rendering. Core logic sits in OnCalculate: compute per-bar returns, map each bar time to a bucket via GetPeriodIndex, maintain sums and counts, then normalize to averages. Forecasting cycles buckets with modular arithmetic, and on-chart text can report lookback size, next periods, and best/worst buckets. 👉 Read | CodeBase | @mql5dev

Backtracking Search Algorithm (BSA) is an evolutionary optimizer for real-valued problems that adds a simple but effective id
Backtracking Search Algorithm (BSA) is an evolutionary optimizer for real-valued problems that adds a simple but effective idea: keep a historical population (oldP) alongside the current population (P), and use that “memory” to guide exploration. Each iteration optionally refreshes oldP from P with 50% probability, then shuffles it (Fisher–Yates) to avoid fixed pairings. Mutation generates one directional candidate per individual using M = P + F*(oldP - P), where F controls step amplitude. Crossover is driven by a binary mask: either mixed coordinates via mixrate or a minimal-change mode that alters only one coordinate. A greedy second selection stage rolls back any trial that worsens fitness, making the method stable for tuning trading parameters. The MT5-style class design separates Init, Moving, and Revision, with explicit arrays for oldP/M/T, fitness snapsho... 👉 Read | VPS | @mql5dev

Dynamic Fair Value Gap (FVG) is a custom MQL5 indicator built to detect unmitigated price imbalances based on a 3-candle patt
Dynamic Fair Value Gap (FVG) is a custom MQL5 indicator built to detect unmitigated price imbalances based on a 3-candle pattern. It flags bullish gaps between Candle 1 High and Candle 3 Low, and bearish gaps between Candle 1 Low and Candle 3 High. Mitigated zones are removed automatically once touched by later price action, keeping only active FVG areas on the chart. While untouched, each zone extends forward by a configurable number of bars (default 18) and remains labeled for monitoring. The tool also plots previous daily high and low as horizontal liquidity references, refreshed at each new trading day. Alerting supports terminal pop-ups, sounds, and push notifications on new FVG formation, with scan depth controlled via BarsToKeep (default 300). 👉 Read | AlgoBook | @mql5dev

IMR combines Hurst Exponent, ADX, and linear regression (slope + R²) to help classify market phase and reduce timing errors i
IMR combines Hurst Exponent, ADX, and linear regression (slope + R²) to help classify market phase and reduce timing errors in SMC/ICT execution. Many failures come from applying valid setups in the wrong regime: accumulation, distribution, or continuation. RegScore expresses regression confidence: +100 or –100 implies a clean, disciplined move with R² ≥ 0.60. Treat extremes as context, not entries. With Hurst < 0.45 (mean reversion), +100 flags upside overextension and a higher probability of retracement; –100 does the same for downside, favoring reversal frameworks such as ChoCh plus order blocks/breakers. With Hurst > 0.55 (trend persistence), +100 supports continuation bias; avoid fading and wait for pullbacks into aligned order blocks. ADX adds trend strength: <25 weak conditions, 25–50 workable expansion, >50 often climactic pressure where reve... 👉 Read | Signals | @mql5dev

A new trading automation script supports creating multiple pending orders in a single run, focused on Buy Stop and Sell Stop
A new trading automation script supports creating multiple pending orders in a single run, focused on Buy Stop and Sell Stop entries. The order count is configurable, allowing batches such as 10 or 20 positions to be placed quickly and consistently. Each pending order can be assigned risk controls and exit parameters at placement time, including Stop Loss and Take Profit levels. This reduces manual repetition, helps standardize execution rules, and limits configuration drift when placing multiple orders under the same setup. Suitable for workflows that require scaling into breakouts with predefined targets and protective stops while maintaining consistent order parameters across a series. 👉 Read | CodeBase | @mql5dev

This article connects MT5 replication/simulation work to practical SQL use via SQLite, arguing that database features often r
This article connects MT5 replication/simulation work to practical SQL use via SQLite, arguing that database features often replace large amounts of custom MQL5 state-handling code for orders and positions. It contrasts SQLite’s small set of storage classes with MySQL/PostgreSQL’s extensive type systems. The key takeaway is SQLite’s flexible typing: columns don’t need rigid sizes, reducing schema maintenance while staying compatible with standard SQL patterns. The example shifts from storing raw symbol strings in every quote record to a relational design using primary/foreign keys, so historical data remains stable even when tickers change. This lays groundwork for a command and order log suitable for strategy research and automation. 👉 Read | NeuroBook | @mql5dev

This article shows how to build a candle/bar counter in MT5 without harming terminal performance. The key is treating OnCalcu
This article shows how to build a candle/bar counter in MT5 without harming terminal performance. The key is treating OnCalculate as a high-frequency event: it can fire on every tick, so detection of new bars must be constant-time and avoid unnecessary data access. Instead of comparing datetime values from the Time[] series, the article favors using rates_total and prev_calculated to detect when a new bar appears. This integer-based check is simpler and faster, and it keeps indicators responsive even on volatile symbols. It then shifts to chart objects: everything drawn is an object, either chart-coordinate or screen-coordinate based. A practical example uses an indicator to create and update a Linear Regression Channel by setting anchor points, and removes it on deinit. Updating the object on each recalculation produces a highly reactive, self-adjus... 👉 Read | Freelance | @mql5dev