P
PipsGrowth
أخرىمفتوح المصدر - مجاني

Pipsgrowth EX04002 HAEA — إكسبرت أدفايزر إكسبرت أدفايزر

إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M15

Pipsgrowth EX04002 HAEA — Gold scalping strategy using Heiken Ashi trend change detection. Trades bullish/bearish trend changes confirmed by conse. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يبني خبير Pipsgrowth EX04002 HAEA قراراته على سلسلة هايكن آشي (Heiken Ashi) يُعيد حسابها بنفسه من بيانات الإطار الزمني M15 الخام، ويتعامل مع كل تغيّر لون وكأنه حدث منفصل لا استمرار لاتجاه. بدلًا من جلب مؤشر هايكن آشي الجاهز من المنصة، تعيد دالة GetHASignal() بناء السلسلة شمعة بشمعة عبر iOpen/iHigh/iLow/iClose. عند كل شمعة M15 جديدة، تمر الدالة على آخر ConfirmBars + 2 شموع، فتحسب haClose = (o+h+l+c)/4 لكل واحدة منها، وتزرع افتتاح أقدم شمعة اصطناعية بمتوسط افتتاح وإغلاق الشمعة الحقيقية الأصلية، ثم تُكمل بقية سلسلة الافتتاح بشكل تكراري. ومن ثمّ فإن لون كل شمعة اصطناعية هو نسخة ملساء من المسار السعري الحقيقي، لا مجرد انعكاس آلي للشموع الخام.

قاعدة القرار الفعلية أعمق بطبقتين. الانعكاس الصعودي يتطلب أن آخر ConfirmBars شمعة (افتراضيا 2) كلها خضراء، أي haClose[i] > haOpen[i] لكل i داخل النافذة، وأن الشمعة التي تسبق هذا النافذة مباشرة عند الفهرس ConfirmBars تكون حمراء haClose[ConfirmBars] <= haOpen[ConfirmBars]. الانعكاس الهبوطي هو النسخة المعكوسة. هذا الشرط المزدوج هو ما يجعل الخبير كاشف تغيّر لا تابع اتجاه؛ فهو لا يطلق الصفقة حين يرى مجموعة خضراء بدأت قبل ثلاث ساعات، بل ينتظر كتلة خضراء حلّت محل كتلة حمراء فورًا. مع ConfirmBars = 2 يحتاج الخبير إلى شمعتين خضراوين متتاليتين فوق شمعة حمراء واحدة ليُفعّل الشراء. رفع القيمة يجعل الخبير أكثر انتقائية ويقلل عدد الصفقات، وخفضها يجعله أكثر اندفاعًا ويقبل انعكاسات أكثر ضوضاء.

عند تاكد الإشارة تستدعي OpenPosition() لقياس الوقف لا من قيمة StopLossPips وحدها بل من أكبر ثلاثة بدائل متنافسة: currentATR * 1.5، وStopLossPips * pipSize (15 نقطة افتراضيا)، و1.5 * minDist حيث minDist هو SYMBOL_TRADE_STOPS_LEVEL * _Point للوسيط مع حد أدنى 10 نقاط. لأن قيمة ATR(14) على M15 للذهب تتراوح عادة بين 150 و400 نقطة، يهيمن ذراع ATR على أرضية الـ15 نقطة، فيستقر الوقف قرب 1.5× ATR، أوسع من الوقف الثابت 15 نقطة في الأسواق الهادئة وأضيق حين يكون الهدوء مفرطًا. يُضبط جني الأرباح على 2 * slDist بنسبة مخاطرة إلى عائد 1:2، مع نفس أرضية 1.5 * minDist كشبكة أمان ضد الوسطاء الذين يرفضون جني أرباح بمسافة بنس. تتحقق دالة SafePositionModify() من أن قيم SL/TP الناتجة تحترم الحد الأدنى للمستوى، وتدفع الخط للخارج بنقطة واحدة عند الحاجة، وترفض التعديل إن استقر الوقف في الجهة الخاطئة من السعر.

يمر تحديد حجم الصفقة عبر CalculatePositionSize(). مع UseMoneyManagement = true (الافتراضي) تقرأ الدالة رأس المال الفعّال، وهو أصغر قيمة بين Equity الحالي وInpCapitalCapAmount حين يكون الحد غير صفري، وإلا Equity نفسه. تضربه في RiskPercent / 100 (2% افتراضيا) وتقسمه على قيمة النقطة لكل لوت مضروبة في المسافة SL بالنقاط. تُقرّب النتيجة إلى SYMBOL_VOLUME_STEP للرمز، وتُقص بين SYMBOL_VOLUME_MIN وSYMBOL_VOLUME_MAX. عند إيقاف UseMoneyManagement يرجع الخبير إلى FixedLotSize = 0.01 الثابت. فحص OrderCalcMargin المسبق يرفض الصفقة مباشرة لو كان حجم اللوت يستهلك هامشًا حرًا غير كافٍ. يستخدم إرسال الأوامر نمط إعادة المحاولة الثلاثي المعتاد مع 150 مللي ثانية بين المحاولات عند REQUOTE وTIMEOUT وPRICE_OFF، وأي رمز إرجاع آخر يُنهي المحاولة. الانزلاق ثابت 3 نقاط، ووضع التعبئة يُكتشف تلقائيًا من SYMBOL_FILLING_MODE مع تفضيل FOK ثم IOC ثم RETURN.

واجهة إدارة الصفقات مقصودة في بساطتها. يمر OnTick() على IsSafeToTrade()، ثم يحدّث عدادات اليوم، وينتظر شمعة M15 جديدة عبر IsNewBar()، ويُحدّث مقبض ATR عبر RefreshIndicators()، ويُشغّل CheckFilters() التي تحظر الشمعة إن تجاوز السبريد 25 نقطة افتراضيا، ويتحقق أن CountPositions() < 1 أي أن الخبير يحمل صفقة واحدة كحد أقصى على الرمز بهذا السحر. بعد ذلك فقط يسأل GetHASignal(). ما إن تُفتح الصفقة يتركها الخبير وشأنها ليصلها SL/TP. لا يوجد وقف متبقي في OnTick، ولا قفل عند نقطة التعادل، ولا إغلاق جزئي يُستدعى من المسار الحي. دالة TryClosePartial_EX04002() موجودة لكنها لا تُستدعى أبدًا. الإشارة العكسية لا تُغلق الصفقة القائمة بفعالية، بل يفتح الخبير صفقة جديدة في الاتجاه المعاكس بعد أن يُغلَق الأصلية بطبيعتها عبر SL أو TP، ولهذا يضمن سقف الصفقة الواحدة أن الانعكاس يُعالَج بحكم HA للشمعة الجديدة حالما تنتهي الصفقة القديمة.

طبقات إدارة المخاطر متراكمة فوق منطق الصفقة. على جانب رأس المال: InpMinEquityPercent = 95 يوقف الخبير حين يهبط Equity تحت 95% من الرصيد الأولي المُلتقط في OnInit، فيكفي تراجع بنسبة 5% على مستوى الحساب لإيقاف الدخول الجديد. InpCapitalCapAmount = 0 يعطّل حد الدولارات افتراضيا؛ وضبطه بقيمة موجبة يحدّ Equity المستخدم في حساب حجم الصفقة بهذا السقف، وInpCapitalCapFloor = 50 يحظر الدخول تحت عتبة 50 دولارًا. على جانب الربح والخسارة: تُتراكَم الخسائر المحققة في g_realizedToday ويُحظر الدخول حين تصل إلى -3% من رأس المال الفعّال، مع سقف أسبوعي -6% يعكس نفس المنطق. على جانب السلوك: كل صفقة TRADE_TRANSACTION_DEAL_ADD تطابق السحر تزيد g_consecLosses عند الخسارة وتعيدها إلى صفر عند الربح؛ ثلاث خسائر متتالية (InpMaxConsecLosses = 3) تُفعّل g_cooldownUntil بعد 30 دقيقة، وخلالها ترجع IsSafeToTrade() إلى false. حد 50 صفقة يوميًا (InpMaxTradesPerDay) يوقف الخبير نهائيًا بعد ذلك العدد من الصفقات على الرمز.

تُدار بوابة الجلسات والأخبار بتوقيت GMT. إما تحترم DetectGMTOffset() قيمة InpServerGMTOffset أو تبحث في آخر 100 شمعة H1 عن فجوة الجمعة-الاثنين، وتطرح 22 من ساعة الشمعة السابقة، وتقص النتيجة في نطاق [-12، +12]. تُقيّم InActiveSession() دقيقة اليوم الناتجة مقابل نوافذ لندن (7-16) ونيويورك (12-21)؛ يُسمح بالتداول إن وقعت الدقيقة في إحداها، مع قاعدة إضافية أن InpAvoidAsia = true (الافتراضي) ترفض الدخول خلال النافذة الآسيوية (0-7 GMT) حتى لو تداخلت زمنيًا مع لندن. تحظر IsMarketOpen() السبت كاملًا والأحد قبل الساعة 22 GMT. حين يكون InpNewsFilter مُفعّلًا، ترجع IsNewsTime() إلى true خلال ±InpNewsFilterMinutes دقيقة من افتتاح لندن أو نيويورك وتوقف الخبير لتلك النافذة. إيقاع M15 يعني أن الإشارات تتشكّل عند حافة الشمعة فقط، فيمكن للخبير أن يكون حاضرًا في الجلسة لكن خاملًا إن لم يحدث انعكاس HA مؤهل على الشمعة المعنية.

الاستراتيجية: صفقة واحدة، صفقة واحدة لكل شمعة، وقف مرتكز على ATR، نسبة مخاطرة/عائد ثابتة، مع حواجز قوية على الربح والخسارة. اختيار التصميم الذي يميّز EX04002 عن خبير تقاطع متوسطات اعتيادي هو أن الإشارة تُبنى من سلسلة سعرية اصطناعية لا من الخام، فيتلاشى الخبير طبيعيًا عند أول شمعة من أي حركة اندفاعية وينتظر شمعة تأكيد ثانية قبل التزام رأس المال. للتجار الذين يستهدفون الذهب تحديدًا، هذا مقصود: تكرار إشارات أضيق مقابل دخول أنظف. الحد الأدنى للرصيد 100 دولار يعكس حجم اللوت الاحتياطي 0.01، لكن مع 2% مخاطرة افتراضية ووقف يتراوح بين 20 و50 نقطة، تقع المخاطرة بالدولار بين 2 و10 دولارات على رصيد 100 دولار، وهو ما يناسب صفقة مضاربة واحدة.

تفاصيل الاستراتيجية

يُعيد الخبير بناء سلسلة هايكن آشي شمعة بشمعة من بيانات M15 الخام داخل GetHASignal()، ولا يُطلق الإشارة إلا حين تجلس كتلة من ConfirmBars شمعة اصطناعية بلون واحد فوق شمعة واحدة من اللون المعاكس. يُقرأ ATR(14) عند إغلاق M15 عبر مقبض iATR واحد في RefreshIndicators()، وتلك القيمة تضبط وقف الخسارة كـ max(ATR*1.5، 15 نقطة، 1.5*minStopDistance). جني الأرباح ثابت عند 2× SL. يمر تحديد اللوت عبر CalculatePositionSize() التي تستخدم 2% من رأس المال الفعّال (مع InpCapitalCapAmount يحد أساس Equity حين يكون غير صفري) مقسومًا على قيمة النقطة بالدولار لـ SL الناتج. يمر OnTick() بكل إجراء عبر IsSafeToTrade(): أرضية Equity عند 95% من الرصيد الأولي، خسارة يومية 3%، أسبوعية 6%، cooldown 30 دقيقة بعد ثلاث خسائر متتالية، سقف 50 صفقة يوميًا، حظر عطلة نهاية الأسبوع، ونافذة جلستي لندن ونيويورك مع خيار تجنّب آسيا. يجب أن تُفتتح شمعة M15 جديدة قبل إعادة تقييم الإشارات، ويرفض الخبير فتح صفقة ثانية ما دامت صفقة بالسحر 22204002 حيّة.

إشارة الدخول

الدخول للشراء عند انعكاس صعودي في هايكن آشي: تتطلب GetHASignal() أن آخر ConfirmBars شمعة اصطناعية (افتراضيا 2) على M15 كلها خضراء (haClose > haOpen) وأن الشمعة التي تسبق النافذة مباشرة تكون حمراء. النسخة الهبوطية معكوسة. تُقيَّم كل إشارة فقط عند افتتاح شمعة M15، وفقط حين لا توجد صفقة مفتوحة بالسحر 22204002 على XAUUSD.

إشارة الخروج

عمليات الخروج سلبية: تُغلق الصفقات فقط حين يصل السعر إلى SL أو TP المُرفقَين عند الدخول. لا يوجد وقف متبقي حيّ، ولا قفل عند نقطة التعادل، ولا منطق إغلاق عند إشارة عكسية في OnTick(). الانعكاس في اتجاه هايكن آشي يفتح صفقة جديدة بعد إغلاق القائمة بطبيعتها عبر SL أو TP، لأن الخبير يفرض سقفًا صارمًا بصفقة واحدة مفتوحة على الرمز.

وقف الخسارة

يُحسب وقف الخسارة كـ max(ATR(14,M15) * 1.5، 15 نقطة، 1.5 * minStopDistance)، فمسافة الحماية مرتبطة بمتوسط التذبذب وتبلغ عادة 1.5× قيمة ATR على M15. تتحقق SafePositionModify() من قيمة SL النهائية مقابل SYMBOL_TRADE_STOPS_LEVEL للوسيط وترفضها إن استقرت في الجهة الخاطئة من السعر.

جني الأرباح

يُضبط جني الأرباح على 2× مسافة الوقف (tpDist = 2 * slDist)، بنسبة عائد إلى مخاطرة ثابتة 1:2، مع أرضية 1.5 * minDist لتلبية الوسطاء الذين يرفضون جني الأرباح بمسافة بنس. لا يُستدعى إغلاق جزئي من المسار الحي.

الأنسب لـ

موصى به للتجار الذين يبحثون عن خبير مضاربة على الذهب بصفقة واحدة وتردد منخفض، بحد أدنى 100 دولار وتحمل متوسط للمخاطرة. الأنسب على وسيط XAUUSD بسبريد ضيق ووضع تعبئة FOK أو IOC، لأن MaxSpreadPips = 25 يخفف الإشارات حين يتسع السبريد، ويعتمد الخبير على وقفات بمسافة 1.5× ATR داخل الحد الأدنى لمسافة الوقف لدى الوسيط. شغّله على M15، واسمح له بالعمل خلال جلستي لندن (7-16 GMT) ونيويورك (12-21 GMT)، وأبقِ InpAvoidAsia = true ما لم ترد اختبار انعكاسات الاتجاه في الجلسة الآسيوية تحديدًا. رأس المال الحي الموصى به يتراوح بين 2-5× قيمة InpCapitalCapAmount إن ضبطتها، لأن الخبير يرفض فتح صفقة جديدة حالما يصل Equity إلى السقف.

منطق الاستراتيجية

Pipsgrowth EX04002 HAEA — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: HAEA الماجيك: 22204002 الإصدار: 2.00

الوصف: Gold scalping strategy using Heiken Ashi trend change detection. Trades bullish/bearish trend changes confirmed by consecutive same-color HA candles, with ATR-based stops and spread filtering

المؤشرات:

  • مؤشرات قياسية

الدوال الرئيسية:

  • SafePositionModify()
  • RefreshIndicators()
  • GetHASignal()
  • OpenPosition()
  • CalculatePositionSize()
  • GetEffectiveCapital()
  • IsNewBar()
  • GetPipSize()
  • CheckFilters()
  • CountPositions()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX04002 HAEA — Execution Flow (from source analysis)
// Family: HAEA
// Gold scalping strategy using Heiken Ashi trend change detection. Trades bullish/bearish trend changes confirmed by consecutive same-color HA candles, with ATR-based stops and spread filtering

ON_INIT:
    Create indicator handles: standard set
    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)

ملف التحسين

الوسطاء المُحسّنون:
ExnessIC Markets
الرموز المُحسّنة:
XAUUSD
الأطر الزمنية المُحسّنة:
M15

كيفية تثبيت الإكسبرت على MT5

  1. 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
  2. 2افتح برنامج MetaTrader 5 على حاسوبك
  3. 3من القائمة العلوية اختر File → Open Data Folder
  4. 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
  5. 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
  6. 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
  7. 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
  8. 8فعّل Allow Algo Trading واضغط OK

معاملات الإكسبرت

المعاملالافتراضيالوصف
ConfirmBars2Consecutive same-color bars to confirm
InpMaxConsecLosses3Max consecutive losses before cooldown (0=disabled)
InpCooldownMinutes30Cooldown minutes after consec losses (0=disabled)
InpMaxTradesPerDay50Maximum trades per day
InpMinEquityPercent95.0Stop trading if equity falls below this % of initial balance
InpDailyLossLimitPct3.0Daily loss limit (% of effective capital)
InpWeeklyLossLimitPct6.0Weekly loss limit (% of effective capital)
InpCapitalCapAmount0.0Cap amount ($ real money equity)
InpCapitalCapFloor50.0Floor ($); block entries below this
InpServerGMTOffset0Server GMT offset in hours (0=auto-detect via weekend gap)
InpLondonStartHour7London session start (GMT)
InpLondonEndHour16London session end (GMT)
InpNYStartHour12New York session start (GMT)
InpNYEndHour21New York session end (GMT)
InpAvoidAsiatrueAvoid Asian session
InpAsiaStartHour0Asian session start (GMT)
InpAsiaEndHour7Asian session end (GMT)
InpNewsFilterfalseAvoid trading near news session opens
InpNewsFilterMinutes15Minutes to avoid around news
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX04002.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX04002 HA_XAUUSD_5M — Heiken Ashi trend change scalping, full 12-layer stack."
#include <Trade\Trade.mqh>

input group "=== Identity ==="
input int    MagicNumber        = 22204002;
input string InpTradeComment    = "Psgrowth.com Expert_04002";

input group "=== Risk Management ==="
input bool   UseMoneyManagement = true;
input double RiskPercent        = 2.0;
input double FixedLotSize       = 0.01;

input group "=== Trade Settings ==="
input int    StopLossPips       = 15;
input int    Slippage           = 3;
input int    ConfirmBars        = 2;          // Consecutive same-color bars to confirm

input group "=== Filters ==="
input bool   UseSpreadFilter    = true;
input double MaxSpreadPips      = 25.0;

input group "=== Hardening: Risk Management ==="
input int    InpMaxConsecLosses  = 3;     // Max consecutive losses before cooldown (0=disabled)
input int    InpCooldownMinutes  = 30;    // Cooldown minutes after consec losses (0=disabled)
input int    InpMaxTradesPerDay  = 50;    // Maximum trades per day
input double InpMinEquityPercent = 95.0;  // Stop trading if equity falls below this % of initial balance
input double InpDailyLossLimitPct= 3.0;   // Daily loss limit (% of effective capital)
input double InpWeeklyLossLimitPct= 6.0;  // Weekly loss limit (% of effective capital)

input group "=== Hardening: Capital Allocation Cap ==="
// InpCapitalCapEnabled removed — use InpCapitalCapAmount=0 to disable  // Enable capital allocation cap
input double InpCapitalCapAmount = 0.0; // Cap amount ($ real money equity)
input double InpCapitalCapFloor  = 50.0;  // Floor ($); block entries below this

input group "=== Hardening: GMT Sessions ==="
input int    InpServerGMTOffset  = 0;     // Server GMT offset in hours (0=auto-detect via weekend gap)
input int    InpLondonStartHour  = 7;     // London session start (GMT)
input int    InpLondonEndHour    = 16;    // London session end (GMT)
input int    InpNYStartHour      = 12;    // New York session start (GMT)
input int    InpNYEndHour        = 21;    // New York session end (GMT)
input bool   InpAvoidAsia        = true;  // Avoid Asian session
input int    InpAsiaStartHour    = 0;     // Asian session start (GMT)
input int    InpAsiaEndHour      = 7;     // Asian session end (GMT)
input bool   InpNewsFilter       = false; // Avoid trading near news session opens
input int    InpNewsFilterMinutes= 15;    // Minutes to avoid around news

CTrade trade;
int handleATR;
datetime lastBarTime = 0;
double currentATR;

//--- Hardening globals
double   initialBalance = 0.0;
int      g_gmtOffset = 0;
int      g_consecLosses = 0;
datetime g_cooldownUntil = 0;

الكود المصدري الكامل متاح عند التحميل

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

الوسوم:ex04002haeapipsgrowthfreemt5xauusd

تحذير صريح: لأغراض تعليمية فقط

تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.

وسطاء موصى بهم لهذا الإكسبرت

هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض

مجتمع المستخدمين

سجّل دخولك للمشاركةتسجيل الدخول

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

اسم الملفPipsgrowth_com_EX04002.mq5
حجم الملف20.0 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةأخرى
المخاطرةمخاطرة متوسطة
الأطر الزمنية
M15
أزواج العملات
XAUUSD
الحد الأدنى للإيداع$100