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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
- 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagicNumber | 22204004 | Magic Number |
| InpTradeComment | "Psgrowth.com Expert_04004" | Trade Comment |
| InpPeriod | 14 | Smoothed Period |
| InpTrendEMA | 200 | Trend Filter (EMA) |
| InpRiskPercent | 1.0 | Risk Percent per Trade |
| InpFixedLot | 0.01 | Fixed Lot (if Risk=0) |
| InpStopLoss | 400 | Stop Loss (points) |
| InpTakeProfit | 800 | Take Profit (points) |
| InpMaxSpread | 250 | Max Spread (points) |
| InpSlippage | 3 | Slippage |
| InpMaxConsecLosses | 3 | Max consecutive losses before cooldown (0=disabled) |
| InpCooldownMinutes | 30 | Cooldown minutes after consec losses (0=disabled) |
| InpMaxTradesPerDay | 50 | Maximum trades per day |
| InpMinEquityPercent | 95.0 | Stop trading if equity falls below this % of initial balance |
| InpDailyLossLimitPct | 3.0 | Daily loss limit (% of effective capital) |
| InpWeeklyLossLimitPct | 6.0 | Weekly loss limit (% of effective capital) |
| InpCapitalCapAmount | 0.0 | Cap amount ($ real money equity) |
| InpCapitalCapFloor | 50.0 | Floor ($); block entries below this |
| InpServerGMTOffset | 0 | Server GMT offset in hours (0=auto-detect via weekend gap) |
| InpLondonStartHour | 7 | London session start (GMT) |
| InpLondonEndHour | 16 | London session end (GMT) |
| InpNYStartHour | 12 | New York session start (GMT) |
| InpNYEndHour | 21 | New York session end (GMT) |
| InpAvoidAsia | true | Avoid Asian session |
| InpAsiaStartHour | 0 | Asian session start (GMT) |
| InpAsiaEndHour | 7 | Asian session end (GMT) |
| InpNewsFilter | false | Avoid trading near news session opens |
| InpNewsFilterMinutes | 15 | Minutes to avoid around news |
#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
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية أخرى
Pipsgrowth EX01007 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01007 Adaptive — Adaptive signal scorer EA combining EMA crossover, RSI, Heiken Ashi, Bollinger Bands, ATR and volume spike detection int. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX01019 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01019 Adaptive — Self-adaptive market regime EA that auto-detects trending, ranging, volatile, quiet and breakout conditions. Switches be. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX15029 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX15029 SMC-OrderBlock — Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, A. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.