Pipsgrowth EX18046 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX18046 TrendFollow — HeikinAshi color-change (red->green / green->red) on last CLOSED bar is the core signal. Entries gated by ADX+ATR-pct+ B. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX18046 هو خبير آلي (EA) لاتباع الاتجاه مبني على تغيّر لون شموع هيكن آشي، يتداول حصرياً على XAUUSD على إطار خمس دقائق. لا يقرأ مؤشر زخم أو نطاق تقلب ليختار الاتجاه — بل يراقب حدثاً واحداً محدداً جداً: تغيّر لون شمعة هيكن آشي على آخر شمعة مغلقة. التحوّل من الأحمر إلى الأخضر يقلب الميل إلى شراء، والأخضر إلى الأحمر يقلبه إلى بيع، وما بينهما صمت. هذا الحدث اللحظي هو ما يفلتره بقية النظام ثم يديره وينفذه في النهاية.
الإشارة تُحسب داخلياً في GetHeikinAshiSignal(). يجلب الخبير InpHALookback (افتراضياً 100) شمعة من الافتتاح والارتفاع والانخفاض والإغلاق، ثم يمشي للأمام محسوباً هاكن آشي وفق الصيغة المعيارية haC = (O+H+L+C)/4 وhaO = (prevO + prevC)/2. تُقارن آخر شمعتين مغلقتين (haOpen[1] وhaClose[1] مقابل haOpen[2] وhaClose[2]): ظهور شمعة خضراء بعد حمراء يُرجع +1، وظهور حمراء بعد خضراء يُرجع -1، وإلا يُرجع 0 وتنتهي الدالة فوراً. تُضاف نسبة قوة الجسم (|haC - haO| / range) إلى ثقة أساسية قدرها 55 حتى سقف 100، لكن الثقة في هذا الإصدار معلوماتية فقط — يُفتح التداول ما دامت الإشارة غير صفرية.
قبل التفكير في أي أمر، يُشغّل الخبير مصنّف DetectRegime() على شموع M5. يستخدم المصنّف iADX(14) وiATR(14) (مع نسبة مئوية على 50 شمعة) وiBands(20, 2.0). النتيجة واحدة من خمس سلاسل: StrongTrend (ADX ≥ 25، معرَّف كثابت ADX_STRONG_TREND في الكود، ونسبة ATR المئوية فوق 0.7)، WeakTrend (ADX ≥ 25 لكن ATR بارد)، Compress (نسبة ATR تحت 0.25)، Expand (نسبة ATR فوق 0.75 مع عرض بولنجر غير صفري)، Breakout (نسبة ATR فوق 0.6 مع ADX فوق 18)، Choppy (ADX تحت 15)، أو Range. الأهم أن OnTick() لا يسمح بالدخول إلا عندما regime == "StrongTrend" أو regime == "Breakout". أي شيء آخر — بما في ذلك WeakTrend وCompress — يخرج دون إطلاق. ثم يُستدعى نفس المصنّف داخل ManageOpenPositions() في كل تيك، وإذا تحوّل النظام إلى Choppy أو Range تُغلق الصفقة قسرياً بوسم REGIME-CHANGE.
البوابة التالية هي ConfirmSignal(). تتحقق من شيئين: (1) المتوسط المتحرك الأسي 50 على H1 يتفق مع الإشارة — سعر العرض فوق المتوسط للشراء، تحته للبيع — و(2) شمعة M5 التي ولّدت الإشارة أغلقت في نفس اتجاه الصفقة (إغلاق > افتتاح للشراء، إغلاق < افتتاح للبيع). إذا فشل أي منهما، تسجّل الدالة السبب وتتجاوز. يُنشأ المؤشر على g_htf = PERIOD_H1 في OnInit() ويُحفظ منفصلاً في g_hMAHTF. بعد التأكيد، يفرض الخبير حارس دخول مكرر مرتبط بوقت الشمعة المغلقة حتى لا يطلق مرتين على نفس الشمعة.
تحسب ComputeLevels() حجم وقف الخسارة وهدف الربح من iATR(14). مسافة الوقف 1.5 × ATR، ومسافة الهدف 3.0 × ATR، أي نسبة مخاطرة إلى عائد 1:2 مبرمجة. يرفض الخبير الدخول إذا كان SYMBOL_TRADE_STOPS_LEVEL الخاص بالرمز يفرض مسافة أصغر، ويعيد التحقق من أن tpDist >= slDist × InpRRMin (افتراضياً 1.5 — هذا المدخل الاحتياطي في حال غيّر المستخدم مضاعفات ATR). تُوضع الأوامر على سعر الطلب للشراء وسعر العرض للبيع، وتُقرّب إلى _Digits.
تحسب ComputeLotSize() حجم الصفقة. تأخذ رأس المال الفعال من EffectiveCapital() (وهو أصغر قيمة بين InpCapitalCapAmount ورصيد الحساب، أو الرصيد الخام إذا كان المدخل صفراً)، تضربه في InpRiskPercent (0.5 % افتراضياً)، وتقسمه على خسارة اللوت عند مسافة الوقف المحسوبة من ATR، حيث تستخدم خسارة اللوت tickVal / tickSz × slDist. يُقرّب الناتج إلى درجة حجم الوسيط، ويُقصّ عند الحد الأدنى والأقصى للحجم، وأخيراً يُقَصّ عند InpMaxLotSize (10 لوت).
إدارة الأوامر قائمة على الأحداث. تتحقق OpenTrade() أولاً عبر OrderCalcMargin، ثم ترسل عبر غلاف CTrade، مع إعادة محاولة واحدة عند TRADE_RETCODE_REQUOTE أو TRADE_RETCODE_TIMEOUT أو TRADE_RETCODE_PRICE_OFF. ثلاث دوال مساعدة في أسفل الملف — TryClose_EX18046 وTryClosePartial_EX18046 وTryModify_EX18046 — كل منها تكرّر ثلاث مرات مع Sleep قدره 200 مللي ثانية (100 مللي ثانية لتعديلات الوقف) على الأكواد العابرة. تُكتشف سياسة التعبئة تلقائياً لكل رمز عبر SetTypeFillingBySymbol في OnInit().
دورة حياة الصفقة لها أربع آليات متداخلة. (1) خروج زمني: InpMaxBarsInTrade = 60 يُفرض عبر Bars() - iBarShift()، وأي صفقة عمرها 60 شمعة تُغلق بوسم MAX-BARS. (2) نقطة التعادل: عند InpBreakevenAtR = 1.0 (أي بعد R واحد)، يُنقل الوقف إلى سعر الدخول — لكن فقط إذا كان الوقف الحالي أبعد من سعر الدخول. (3) جني جزئي: عندما يصل السعر إلى منتصف المسافة بين الدخول وهدف ATR، يُغلق InpPartialTPPct = 50 % من الصفقة عبر TryClosePartial_EX18046، مع بوابة الحد الأدنى من درجة الحجم. (4) تتبع ATR: في كل تيك، يكون التتبع خلف سعر العرض/الطلب بمقدار 2.5 × ATR(14)، لكنه أمامي فقط — لا يتحرك للخلف، وللشراء لا يتجاوز فوق الوقف الحالي وفوق سعر الدخول. إغلاق الإشارة العكسية يغلق الصفقة عندما ينقلب مصنّف HA أثناء وجود صفقة مفتوحة.
بوابة منع التداول (CanTrade()) كثيفة. تحظر عند تفعيل InpKillSwitch، أو عندما يكون رأس المال الفعال تحت InpCapitalCapFloor = 50$، أو عندما تتجاوز الخسارة المحققة لليوم InpDailyLossLimitPercent = 3 % من رأس المال الفعال (مسح يومي لتاريخ الصفقات مفلتر بالرقم السحري والرمز)، أو خلال نافذة التهدئة، أو عندما يتجاوز الفارق InpMaxSpreadPoints = 50، أو عندما CountOurPositions() >= InpMaxConcurrentTrades = 5، أو في عطلات نهاية الأسبوع، أو بعد الساعة 22:00 من يوم الجمعة بتوقيت السيرفر، أو خلال نوافذ الأخبار اليدوية 12:25-12:35 و13:55-14:05 بتوقيت السيرفر. تُفعَّل التهدئة داخل OnTradeTransaction بعد ثلاث صفقات خاسرة متتالية من نوع DEAL_ENTRY_OUT وتستمر 30 دقيقة.
معيار OnTester() المخصص هو (netProfit × profitFactor) / (1 + balanceDrawdown)، مع حد أدنى 30 صفقة تُحتسب دونه القيمة صفراً. الافتراضي InpDryRun = true يعني أن الخبير يطبع سطور DRYRUN بدل إرسال أوامر حقيقية — اعكسه إلى false للتشغيل الفعلي. الحد الأدنى للرصيد الموصى به 100$، وهو المستوى الذي وُازن الخبير له، رغم أن مدخل السقف يتيح للمتداولين تشغيل نموذج رصيد ثابت على حساب أكبر دون تضخيم المخاطرة.
تفاصيل الاستراتيجية
في كل تيك، تُعيد UpdateDayBookkeeping() بناء الأرباح المحققة لليوم عبر مسح تاريخ الصفقات المفلتر بالرقم السحري 22218046 والرمز، وتُشغّل ManageOpenPositions() على مجمّع الصفقات المفتوحة — معالجة الخروج الزمني وخروج تغيّر النظام وخروج الإشارة العكسية وقفل نقطة التعادل عند 1.0R والإغلاق الجزئي 50% عند منتصف الهدف ووقف التتبع الأمامي فقط 2.5×ATR(14). تستخدم الأوامر بوابة شمعة جديدة مرتبطة بـ iTime shift 0، فلا تعمل منطق الإشارة إلا مرة لكل شمعة. تبني GetHeikinAshiSignal() مصفوفات HA من InpHALookback شمعة M5 وتبحث عن انعكاس لون في آخر شمعة مغلقة؛ النتيجة +1 أو -1 أو 0. ثم يصنّف DetectRegime() قيم ADX(14) ونسبة ATR(14) المئوية وعرض بولنجر إلى واحد من خمسة أنظمة، ولا يتقدم بلوك OnTick إلا عندما يكون النظام StrongTrend أو Breakout. تتحقق ConfirmSignal() من اتفاق المتوسط الأسي 50 على H1 وأن إغلاق M5 للشمعة المحفّزة في اتجاه الصفقة. تحسب ComputeLotSize() حجم الصفقة لتخاطر InpRiskPercent (0.5%) من رأس المال الفعال، مع سقف InpMaxLotSize. تُجري OpenTrade() فحصاً مسبقاً عبر OrderCalcMargin وترسل عبر CTrade مع إعادة محاولة واحدة على requote أو timeout أو price-off. تفلتر بوابة CanTrade() حسب الفارق وحد الخسارة اليومية والتهدئة والحد الأقصى للصفقات المتزامنة وعطلة نهاية الأسبوع والجمعة 22:00 ونوافذ الأخبار 12:30 و14:00.
تُطلق الأوامر بناءً على حدث واحد: انعكاس لون شمعة هيكن آشي على آخر شمعة M5 مغلقة. الانعكاس من أحمر إلى أخضر على الشمعة [1] (بعد شمعة خضراء عند [2]) يعطي إشارة شراء +1؛ والأخضر إلى أحمر يعطي بيع -1. بعد ذلك يجب أن تجتاز الإشارة تأكيدين: اتفاق اتجاه المتوسط الأسي 50 على H1 (سعر العرض فوقه للشراء، تحته للبيع) وأن يكون إغلاق شمعة M5 المحفّزة في اتجاه الصفقة. مصنّف DetectRegime() لا يسمح بالدخول إلا عندما يكون النظام StrongTrend (ADX ≥ 25 مع نسبة ATR المئوية فوق 0.7) أو Breakout (نسبة ATR فوق 0.6 مع ADX فوق 18).
تعمل الخروجات بأربع آليات متداخلة: وقف زمني 60 شمعة يغلق الصفقة بوسم MAX-BARS؛ خروج عند تغيّر النظام عندما يتحول DetectRegime() إلى Choppy أو Range؛ خروج عند الإشارة العكسية عندما ينقلب مصنّف HA أثناء وجود صفقة مفتوحة؛ وهدف جني ربح صلب قائم على ATR عند 3.0×ATR(14). وقف التتبع أمامي فقط بمقدار 2.5×ATR(14)، وقفل نقطة التعادل عند 1.0R، وإغلاق جزئي 50% عند منتصف المسافة بين الدخول وهدف ATR.
وقف الخسارة = 1.5 × ATR(14) من سعر الدخول، محسوب من سعر الطلب للشراء ومن سعر العرض للبيع. تُقَلّم المسافة عند الحد الأدنى لمستوقفات الوسيط (SYMBOL_TRADE_STOPS_LEVEL) مضافاً إليه نقطة واحدة. ترفض ComputeLevels() الدخول أيضاً إذا كانت نسبة المخاطرة إلى العائد الناتجة ستنخفض عن 1:1.5.
جني الأرباح = 3.0 × ATR(14) من سعر الدخول، من سعر الطلب للشراء ومن سعر العرض للبيع. ينتج عن ذلك نسبة عائد إلى مخاطرة 1:2 ثابتة مقابل وقف 1.5×ATR. يُنفَّذ إغلاق جزئي 50% عند منتصف المسافة بين الدخول وهدف ATR عبر TryClosePartial_EX18046.
يُشغَّل بشكل أفضل على XAUUSD M5 مع وسيط ECN بفارق منخفض (فلتر الفارق 50 نقطة هو القيد الحاسم على التغذية البطيئة)، بحد أدنى للرصيد 100$ ليتناسب مع المخاطرة 0.5% لكل صفقة وأرضية سقف رأس المال 50$. نسبة المخاطرة إلى العائد الثابتة 1:2 مع الإدخال المسموح به فقط في StrongTrend/Breakout تجعله مناسباً للجلسات النشطة عندما يتمدد ATR — أساساً تداخل لندن مع أوائل نيويورك على الذهب، مع قطع صارم عند 22:00 بتوقيت السيرفر يوم الجمعة. InpDryRun افتراضياً true، فاعكسه قبل النشر على حساب حقيقي.
منطق الاستراتيجية
Pipsgrowth EX18046 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218046
الإصدار: 2.00
الوصف:
HeikinAshi color-change (red->green / green->red) on last CLOSED bar is the core signal. Entries gated by ADX+ATR-pct+ Bollinger-width regime filter (only StrongTrend/Breakout permitted), 2-confirm requirement (HTF trend + candle close direction), full no-trade gate, ATR-based hard SL/TP, break- even, 50% partial TP, ATR trailing, max-bars exit, regime- change exit, opposite-signal exit. Capital Allocation Cap drives all risk math. Default DRY-RUN; pyramid/scaling OFF. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
ADXATRBB- MA
MAHTF
الدوال الرئيسية:
EffectiveCapital()UpdateDayBookkeeping()DailyLossDollars()AboveDailyLossLimit()CanTrade()DetectRegime()GetHeikinAshiSignal()ConfirmSignal()ComputeLevels()ComputeLotSize()
// Pipsgrowth EX18046 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// HeikinAshi color-change (red->green / green->red) on last CLOSED bar is the core signal. Entries gated by ADX+ATR-pct+ Bollinger-width regime filter (only StrongTrend/Breakout permitted), 2-confirm requirement (HTF trend + candle close direction), full no-trade gate, ATR-based hard SL/TP, break- even, 50% partial TP, ATR trailing, max-bars exit, regime- change exit, opposite-signal exit. Capital Allocation Cap drives all risk math. Default DRY-RUN; pyramid/scaling OFF. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
ON_INIT:
Create indicator handles: ADX, ATR, BB, MA, MAHTF
Initialize state variables
Detect broker GMT offset
ON_TICK:
1. Refresh indicator buffers (closed-bar shift=1)
2. Manage existing positions:
- Break-even check
- ATR trailing stop
- Profit lock ratchet
- Time-based exit
- Opposite-signal exit
3. If new bar:
a. ClassifyRegime() — ADX/ATR/BB regime detection
b. NoTradeGate() checks:
- Market open + session filter
- Spread limit
- Cooldown after loss
- Consecutive loss limit
- Kill switch
- Max drawdown
- Max concurrent positions
- Daily/weekly loss limits
c. GenerateSignal() — strategy-specific entry logic
d. CheckConfirm() — HTF alignment + R:R + ADX minimum
e. Calculate position size from risk %
f. Execute with retry logic
g. Mark bar to prevent duplicates
ON_TESTER:
Custom fitness = weighted(RecoveryFactor, ROI, ProfitFactor, TradeCount, Sharpe, Drawdown)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
- 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_18046" | Trade comment |
| InpDryRun | true | Dry-run mode (no real sends) |
| InpKillSwitch | false | Global kill switch |
| InpCapitalCapAmount | 0.0 | Cap amount ($, real money equity) |
| InpCapitalCapFloor | 50.0 | Floor below which no new entries ($) |
| InpRiskPercent | 0.5 | Risk per trade (% of effective capital) |
| InpDailyLossLimitPercent | 3.0 | Daily loss limit (% of effective capital) |
| InpMaxLotSize | 10.0 | Max lot size (lots) |
| InpMaxConcurrentTrades | 5 | Max concurrent trades (count) |
| InpMaxSpreadPoints | 50 | Max allowed spread (points) |
| InpCooldownLosses | 3 | Cooldown after N consecutive losses |
| InpHALookback | 100 | HeikinAshi calc lookback (bars) |
| InpSLATRMult | 1.5 | SL distance (x ATR) |
| InpTPATRMult | 3.0 | TP distance (x ATR) |
| InpRRMin | 1.5 | Min reward:risk to enter |
| InpBreakevenAtR | 1.0 | Move to break-even at R multiple |
| InpPartialTPPct | 50 | Partial TP percent (%) |
| InpTrailATRMult | 2.5 | ATR trailing multiplier (x ATR) |
| InpMaxBarsInTrade | 60 | Max bars in trade (bars) |
| InpADXPeriod | 14 | ADX period (bars) |
| InpATRPeriod | 14 | ATR period (bars) |
| InpBBPeriod | 20 | Bollinger Bands period (bars) |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18046 HA2 XAUUSD M5 -- HeikinAshi color-change trend EA, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\DealInfo.mqh>
#define EA_MAGIC 22218046
#define EA_VERSION "2.00"
#define EA_FAMILY "TrendFollow"
#define ADX_STRONG_TREND 25.0
//============================== INPUTS ==============================
input group "=== Identity ==="
input string InpTradeComment = "Psgrowth.com Expert_18046"; // Trade comment
input group "=== System ==="
input bool InpDryRun = true; // Dry-run mode (no real sends)
input bool InpKillSwitch = false; // Global kill switch
input group "=== Capital Allocation Cap (§4.6) ==="
// InpCapitalCapEnabled removed — use InpCapitalCapAmount=0 to disable // Enable capital cap
input double InpCapitalCapAmount = 0.0; // Cap amount ($, real money equity)
input double InpCapitalCapFloor = 50.0; // Floor below which no new entries ($)
input group "=== Risk & Sizing ==="
input double InpRiskPercent = 0.5; // Risk per trade (% of effective capital)
input double InpDailyLossLimitPercent = 3.0; // Daily loss limit (% of effective capital)
input double InpMaxLotSize = 10.0; // Max lot size (lots)
input int InpMaxConcurrentTrades = 5; // Max concurrent trades (count)
input int InpMaxSpreadPoints = 50; // Max allowed spread (points)
input int InpCooldownLosses = 3; // Cooldown after N consecutive losses
input group "=== Signal & Entry ==="
input int InpHALookback = 100; // HeikinAshi calc lookback (bars)
input group "=== SL / TP / Manage ==="
input double InpSLATRMult = 1.5; // SL distance (x ATR)
input double InpTPATRMult = 3.0; // TP distance (x ATR)
input double InpRRMin = 1.5; // Min reward:risk to enter
input double InpBreakevenAtR = 1.0; // Move to break-even at R multiple
input int InpPartialTPPct = 50; // Partial TP percent (%)
input double InpTrailATRMult = 2.5; // ATR trailing multiplier (x ATR)
input int InpMaxBarsInTrade = 60; // Max bars in trade (bars)
input group "=== Regime ==="
input int InpADXPeriod = 14; // ADX period (bars)
input int InpATRPeriod = 14; // ATR period (bars)
input int InpBBPeriod = 20; // Bollinger Bands period (bars)
//============================== GLOBALS =============================
CTrade m_trade;
CPositionInfo m_position;
CSymbolInfo m_symbol;
CAccountInfo m_account;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية متابعة الاتجاه
Pipsgrowth EX16080 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16080 Trend — EURUSD triple-EMA trend follower — trades EMA20/50 cross with EMA200 filter on H4, ATR-based SL/TP, risk-percent sizing . إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16081 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16081 Trend — Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fib. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16033 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16033 Trend — Price-action scalping EA using distance-based grid entries with net-take-profit targeting and optional lot multiplier. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.