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

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

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

Pipsgrowth EX04004 HAEA — Heiken Ashi Smoothed trend EA for XAUUSD. Uses smoothed Heiken Ashi candle color combined with an EMA trend filter to ge. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX04004 HAEA هو مستشار خبير يتبع الاتجاه بشكل تدريجي على شارت XAUUSD فريم 5 دقائق. يبحث عن توافق شرطين على نفس الشمعة المغلقة: لون شمعة هايكن آشي واضح، وسعر على الجهة الصحيحة من المتوسط المتحرك الأسي البطيء. عندما يتأكد كلاهما في الاتجاه نفسه، يفتح المستشار أمر سوق واحد ويبتعد عن السوق حتى تُغلق هذه الصفقة. لا يوجد توسع، ولا مضاعفة، ولا إعادة دخول على التيك التالي — القرار القادم ينتظر الشمعة التالية.

الإشارة مبنية من بيانات OHLC الخام، وليس من مؤشر مخصص. عند كل شمعة جديدة يسحب المستشار الافتتاح، الأعلى، الأدنى، والإغلاق للشمعة المغلقة للتو (index 1) إضافة إلى افتتاح وإغلاق الشمعة التي قبلها (index 2). ثم يحسب قيمتين لـ Heiken Ashi smoothed داخلياً: haOpen = (open[2] + close[2]) / 2 و haClose = (open[1] + high[1] + low[1] + close[1]) / 4. الشمعة الخضراء هي haClose > haOpen؛ الشمعة الحمراء هي haClose < haOpen. هذا اللون هو تصويت الزخم. متوسط متحرك أسي عند 200 فترة على أسعار الإغلاق، يتم طلبه عبر مؤشر iMA واحد أثناء OnInit، يقدم تصويت الاتجاه. الدخول الطويل يحتاج شمعة HA خضراء مع إغلاق الشمعة 1 فوق الـ EMA؛ الدخول القصير يحتاج شمعة HA حمراء مع الإغلاق تحت الـ EMA. الإغلاق الحقيقي للشمعة هو السعر الذي تتم مقارنته — وليس إغلاق HA — لذا فلتر الاتجاه مرتبط بالسوق الحقيقي، لا بالشمعة المعدّلة.

يُحسب حجم المخاطرة بناءً على وقف الخسارة، وليس على لوت ثابت. CalculateLotSize() تقسم رأس المال الفعال على InpRiskPercent المهيأ (افتراضي 1.0%) وتترجم مخاطرة الدولار إلى عدد لوتات باستخدام قيمة التيك، حجم التيك، والـ point للأداة. تُقرب النتيجة إلى step اللوت للأداة وتُقص إلى الحد الأدنى والأعلى للوسيط. إذا ضبط المتداول InpRiskPercent على 0، يلجأ المستشار إلى InpFixedLot (0.01). رأس المال الفعال هو عادةً إكويتي الحساب؛ إذا كان InpCapitalCapAmount غير صفري، يحسب المستشار بالحجم الأصغر بين الإكويتي والسقف، مما يتيح للمستخدم تخصيص مبلغ ثابت مسبقاً للاستراتيجية. قبل إرسال أي أمر، يتحقق OrderCalcMargin أن الهامش المطلوب يتسع داخل الهامش الحر؛ وإن لم يتسع، يُسقط الأمر بصمت.

وقف الخسارة 400 نقطة وجني الأرباح 800 نقطة — نسبة مكافأة إلى مخاطرة ثابتة 1:2. المستشار لا ينقل الوقف إلى نقطة التعادل، ولا يطبقه trailing، ولا يأخذ إغلاق جزئي. الدوال المساعدة TryClose و TryClosePartial و TryModify في الكود المصدري تغلف trade.PositionClose و trade.PositionClosePartial و trade.PositionModify بثلاث محاولات تفصل بينها 200 مللي ثانية على أكواد REQUOTE و TIMEOUT و PRICE_OFF و PRICE_CHANGED، لكن هذه الدوال غير مدمجة فعلياً في منطق البار — إدارة الصفقات هي فقط SL و TP عند الفتح. الصفقة التي تنجو من SL/TP وتبقى في السوق لا يمكنها الخروج إلا بوصول السعر إلى أحد هذين المستويين أو إغلاق الوسيط لها قسرياً.

متابعة الصفقات هي صفقة واحدة في كل مرة. CheckSignal() تختصر وترجع فوراً إذا كان PositionsTotal() > 0. لا يوجد منطق سلة، ولا إغلاق عند الإشارة العكسية، ولا طابور أوامر معلقة. عندما تُغلق الصفقة الحالية، ينتظر المستشار الشمعة التالية قبل إعادة التقييم — فحص static datetime lastBar و iTime في OnTick يفرض ذلك. هذا مقصود: المستشار من نوع متابع الاتجاه بأسلوب swing، وليس scalper. الصفقات التي تُغلق بخسارة تغذي OnTradeTransaction، التي تزيد عداد الخسائر المتتالية؛ في اللحظة التي يصل فيها العداد إلى 3 (افتراضي InpMaxConsecLosses)، يضبط المستشار g_cooldownUntil = TimeCurrent() + InpCooldownMinutes * 60 ويرفض أي دخول جديد خلال 30 دقيقة. الصفقة الرابحة تعيد العداد إلى صفر، لذا شريط واحد رابح يكسر السلسلة.

طبقة حماية رأس المال هي ست طبقات عميقة وتعمل على كل تيك. IsSafeToTrade() تتحقق أولاً من سقف رأس المال الاختياري والأرضية (InpCapitalCapAmount و InpCapitalCapFloor)؛ ثم أرضية الإكويتي عند 95% من الرصيد الأولي؛ ثم سقف خسارة يومية 3% وسقف خسارة أسبوعية 6%، كلاهما كنسبة من رأس المال الفعال؛ ثم تهدئة الخسائر المتتالية؛ ثم سقف ثابت 50 صفقة يومياً؛ ثم IsMarketOpen() التي تحجب السبت و22 ساعة الأولى من الأحد إضافة إلى الساعة الأخيرة من الجمعة بتوقيت GMT. فوق ذلك، InActiveSession() تسمح فقط بالتداول في جلسة لندن 7-16 GMT أو نيويورك 12-21 GMT، وعلم InpAvoidAsia مفعّل افتراضياً، لذا الجلسة الآسيوية (0-7 GMT) مستبعدة كلياً. IsNewsTime() تراقب بداية لندن ونيويورك ويمكنها إيقاف الدخول لمدة 15 دقيقة حول تلك الافتتاحات، لكن InpNewsFilter معطّل افتراضياً — المتداول يفعّله.

الـ 200 EMA هو المؤشر الوحيد الذي يربطه المستشار فعلياً (hMA = iMA(_Symbol, _Period, InpTrendEMA, 0, MODE_EMA, PRICE_CLOSE))؛ قيم Heiken Ashi تُحسب داخلياً ولا تحصل على مؤشر خاص بها. آلية الجلسات زمنية بحتة: DetectGMTOffset() تمشي آخر 100 شمعة H1 بحثاً عن فجوة نهاية الأسبوع، ثم تختار فارق GMT للوسيط باختبار كل مرشح من -12 إلى +12 مقابل إغلاق الجمعة 22:00. InpServerGMTOffset يتيح للمتداول تجاوز الكشف التلقائي بفارق ساعة يدوي إن أخطأ المنطق. وضع التعبئة أيضاً يحركه الوسيط: يتحقق المستشار من SYMBOL_FILLING_MODE عند البدء ويستخدم FOK إن دعمه الوسيط، وإلا IOC، وإلا RETURN. الانزلاق ثابت عند 3 نقاط. الأوامر الجديدة تُرسل حتى 3 محاولات على REQUOTE أو TIMEOUT أو PRICE_OFF تفصل بينها 150 مللي ثانية.

OnTester يرجع (net × profit factor) / (1 + relative balance drawdown)، مع حد أدنى 30 صفقة مغلقة في تمرير التحسين. تحت 30 صفقة تكون اللياقة 0، مما يمنع المحسّن من اختيار نتائج على عينات صغيرة. النتيجة هي رقم واحد يكافئ الربح والاتساق ويعاقب السحب.

توقعات الباك تيست: مع الإعدادات الافتراضية (1% مخاطرة، 400 نقطة وقف، 800 نقطة هدف، صفقة واحدة في كل مرة، شريط جديد فقط، أرضية إكويتي 95%، سقف خسارة يومي 3%، تهدئة 30 دقيقة بعد 3 خسائر)، سينتج المستشار عدد قليل إلى متوسط من الصفقات يومياً على XAUUSD M5 لأنه ينتظر توافق لون HA مع الـ 200 EMA على شمعة مغلقة، ويُسمح له فقط بالنظر في جلستي لندن أو نيويورك. نسبة 1:2 الثابتة تعني أن الرابح ضعف الخاسر بالنقاط، لكن نسبة الفوز يجب أن تتجاوز تقريباً 34% قبل أن يصبح التوقع إيجابياً بعد السبريد والانزلاق. ارفع InpRiskPercent ليتضاعف الربح والخسارة المطلقة؛ اضبطها على 0 للانتقال إلى لوت ثابت 0.01، وهو الوضع الأكثر أماناً للاختبار المباشر. الـ 200 EMA تحديداً يجب التحقق منه مع بيانات الوسيط — إن قصّر الوسيط التاريخ، سيكون الـ EMA أبرد وسيكون تصويت الاتجاه خاطئاً في الأسابيع الأولى من التداول.

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

عند كل إغلاق M5، يعيد EX04004 بناء شمعة Heiken Ashi smoothed من OHLC الخام (haOpen من منتصف الشمعة السابقة، haClose من السعر النموذجي للشمعة الحالية) ويقارنها بـ EMA عند 200 فترة. يجب أن يتفق التصويتان — HA خضراء مع إغلاق فوق EMA للشراء، HA حمراء مع إغلاق تحت للبيع — قبل أن تشتغل OpenBuy أو OpenSell. يتحقق OrderCalcMargin من الهامش الحر أولاً، ثم يُرسل trade.Buy/trade.Sell مع SL 400 نقطة وTP 800 نقطة ولوت محسوب على InpRiskPercent من رأس المال الفعال؛ حلقة الأمر تعيد 3 مرات على REQUOTE/TIMEOUT/PRICE_OFF. IsSafeToTrade() هي البوابة: تفرض سقف رأس المال والأرضية، وأرضية الإكويتي 95%، وسقوف الخسارة اليومية 3% والأسبوعية 6%، وسقف 50 صفقة يومياً، وتهدئة 3 خسائر متتالية، وساعات نهاية الأسبوع، ونافذة جلسة لندن 7-16 / نيويورك 12-21 GMT مع حجب آسيا، وفلتر الأخبار الاختياري حول افتتاح الجلسات. OnTradeTransaction تحصر P&L المحقق وتشغّل التهدئة عند 3 خسائر متتالية. لا توسع، لا نقطة تعادل، لا إغلاق عند الإشارة العكسية — كل دخول رهان اتجاهي واحد.

إشارة الدخول

على كل شمعة M5 جديدة، يحسب المستشار شمعة Heiken Ashi smoothed من الشمعة المغلقة (haOpen = (open[2]+close[2])/2، haClose = (open[1]+high[1]+low[1]+close[1])/4) ويسحب EMA عند 200 فترة. يُفتح شراء عندما تكون الشمعة HA خضراء (haClose > haOpen) والإغلاق الحقيقي للشمعة 1 فوق الـ EMA؛ يُفتح بيع عندما تكون HA حمراء والإغلاق تحت الـ EMA. صفقة واحدة فقط يمكن أن تكون مفتوحة في كل مرة — CheckSignal() ترجع فوراً إذا كان PositionsTotal() > 0.

إشارة الخروج

لا يوجد منطق خروج نشط — تبقى الصفقات مفتوحة حتى يصل السعر إلى وقف الخسارة الثابت 400 نقطة أو جني الأرباح الثابت 800 نقطة. المستشار لا ينقل إلى نقطة التعادل، ولا يطبّق trailing، ولا يأخذ إغلاق جزئي، ولا يُغلق عند إشارة عكسية. بمجرد إغلاق الصفقة، ينتظر المستشار الشمعة الجديدة التالية قبل إعادة التقييم.

وقف الخسارة

وقف خسارة ثابت 400 نقطة (InpStopLoss) يُرفق عند فتح الأمر عبر mysymbol.Ask()/Bid() ناقص InpStopLoss * mysymbol.Point(). يُحسب الحجم عبر CalculateLotSize بحيث تساوي مخاطرة الدولارات InpRiskPercent (1.0% افتراضي) من رأس المال الفعال، يُقرّب إلى step اللوت ويُقص إلى الحد الأدنى/الأعلى. لا توجد حركة لنقطة التعادل ولا trailing.

جني الأرباح

جني أرباح ثابت 800 نقطة (InpTakeProfit) يُرفق عند فتح الأمر — بالضبط ضعف وقف الخسارة لنسبة مكافأة إلى مخاطرة 1:2. يصل إلى SL أو TP أولاً وتُغلق الصفقة؛ لا إغلاق جزئي، لا توسع، لا خروج زمني.

الأنسب لـ

مناسب لمتداولي XAUUSD M5 الذين يريدون فلتر لون HA + 200 EMA بسابقة دخول واحدة ونسبة 1:2 ثابتة بدون إدارة داخل الصفقة. الحد الأدنى للرصيد: 100 دولار (لوت مايكرو واحد لكل 1% مخاطرة على وقف 400 نقطة). شغّله على تغذية ذهب سبريد منخفض خلال لندن أو نيويورك فقط — علم InpAvoidAsia مفعّل افتراضياً وبوابة الجلسة تحجب كل شيء خارج 7-16 / 12-21 GMT. اختر وسيط بنمط ECN يدعم FOK أو IOC (المستشار يختار تلقائياً) و30 يوم على الأقل من تاريخ التيك حتى يكتمل بناء الـ 200 EMA.

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

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

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

الوصف: Heiken Ashi Smoothed trend EA for XAUUSD. Uses smoothed Heiken Ashi candle color combined with an EMA trend filter to generate entries. Includes risk-based position sizing and spread filter

المؤشرات:

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

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

  • CheckSignal()
  • OpenBuy()
  • OpenSell()
  • CalculateLotSize()
  • GetEffectiveCapital()
  • OnTradeTransaction()
  • DetectGMTOffset()
  • ServerToGMT()
  • IsMarketOpen()
  • InActiveSession()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX04004 HAEA — Execution Flow (from source analysis)
// Family: HAEA
// Heiken Ashi Smoothed trend EA for XAUUSD. Uses smoothed Heiken Ashi candle color combined with an EMA trend filter to generate entries. Includes risk-based position sizing and spread filter

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
الأطر الزمنية المُحسّنة:
M5

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
InpMagicNumber22204004Magic Number
InpTradeComment"Psgrowth.com Expert_04004"Trade Comment
InpPeriod14Smoothed Period
InpTrendEMA200Trend Filter (EMA)
InpRiskPercent1.0Risk Percent per Trade
InpFixedLot0.01Fixed Lot (if Risk=0)
InpStopLoss400Stop Loss (points)
InpTakeProfit800Take Profit (points)
InpMaxSpread250Max Spread (points)
InpSlippage3Slippage
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_EX04004.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX04004 HASmoothed_XAUUSD_5M — smoothed Heiken Ashi + EMA trend EA, full 12-layer stack."

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>

CTrade         trade;
CPositionInfo  position;
CSymbolInfo    mysymbol;
CAccountInfo   account;

//--- Input Groups
input group "=== Identity ==="
input int      InpMagicNumber    = 22204004;   // Magic Number
input string   InpTradeComment   = "Psgrowth.com Expert_04004"; // Trade Comment

input group "=== Strategy Parameters ==="
input int      InpPeriod         = 14;       // Smoothed Period
input int      InpTrendEMA       = 200;      // Trend Filter (EMA)

input group "=== Money Management ==="
input double   InpRiskPercent    = 1.0;      // Risk Percent per Trade
input double   InpFixedLot       = 0.01;     // Fixed Lot (if Risk=0)
input int      InpStopLoss       = 400;      // Stop Loss (points)
input int      InpTakeProfit     = 800;      // Take Profit (points)

input group "=== Trade Management ==="
input int      InpMaxSpread      = 250;      // Max Spread (points)
input int      InpSlippage       = 3;        // Slippage

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

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

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

الوسوم:ex04004haeapipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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