Pipsgrowth EX09003 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX09003 MeanReversion — Cycle-swing mean-reversion: CCI ±100 band cross + Stochastic main/signal cross. BUY when CCI crosses back up over -100 A. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX09003 CycleSwing هو مستشار خبير لعكس الدورة على XAUUSD يعمل على فكرة تبادل مؤشرات CCI بعد تأكيد من Stochastic. الفكرة ميكانيكية بحتة: حين يدفع مؤشر CCI إلى ما دون نطاق التشبع البيعي (-100) أو فوق نطاق التشبع الشرائي (+100)، ثم يعبر خط Stochastic الرئيسي خط الإشارة عائداً إلى داخل النطاق الأوسط (أقل من 50 للشراء، أعلى منه للبيع)، يُفترض أن الدورة تتهيّأ للارتداد، فيدخل المستشار في اتجاه هذا الارتداد. بالرقم السحري 22209003 والإصدار 2.00، وXAUUSD على الإطار M5، صُمم هذا EA خصيصاً لنموذج التبادل السريع على الذهب حيث تحدث أكثر حالات الانعكاس ربحية في انفجارات مدتها من ساعة إلى ثلاث ساعات.
طبقة الإشارة هي دالة CycleSwingSignal() التي تقرأ قيمتين مغلقتين من CCI(14) وStochastic(14,3,3) وتتحقق من عبور النطاق مع عبور الخط الرئيسي للإشارة في الاتجاه نفسه. يقيس عمق الخروج السابق قيمة ثقة بين 10 و100 — كلما كان خروج CCI أعمق تحت -100 قبل التقاطع، كانت القراءة أعلى، على أساس أن الدورة الأكثر تمدداً تنتج ارتداداً أقوى. الشراء والبيع مرآة تامة: شراء يتطلب cciPrv < -100 && cciNow > -100 مع stochMain يعبر فوق stochSignal وstochMain < 50؛ والبيع يتطلب عكس ذلك حول +100. لا تُستخدم قراءات الشمعة الحية (الإزاحة 0) — المستشار يعمل فقط على شموع مغلقة، ما يجنّبه أكثر مصادر إعادة الدخول الخاطئة في CCI.
قبل أن تنطلق أي إشارة، يجب أن تجتاز مصنّف نظام السوق المكوّن من سبع حالات. دالة ClassifyRegime() تستخدم ADX(14) وATR(14) وBollinger Bands(20, 2.0) لوصف السوق الحالي كـ StrongTrend أو WeakTrend أو Range أو Breakout أو Compress أو Expand أو Choppy. التصنيف يعتمد على ثلاثة: ADX نسبة إلى 18 (تشويش) و25 (اتجاه)، وpercentile لمؤشر ATR على نافذة 50 شمعة، وعرض بولينجر الحالي مقارنةً بمتوسطه الأخير. لانعكاس المتوسط، يُسمح فقط بـ Range وCompress وWeakTrend. أما StrongTrend وBreakout وExpand وChoppy فتحجب الدخول افتراضياً — والتعليق الصريح في ConfirmEntry() هو "تجنّب محاربة الاتجاه القوي". هذا الفلتر هو أكبر محدد وحيد لمتى يتداول EX09003 أصلاً؛ في أسبوع اتجاهي توقّع إشارات قليلة جداً.
توجد أيضاً طبقة تأكيد على إطار زمني أعلى. يسحب EA متوسطاً أسياً 50-period على H1 ويرفض الدخول إذا كان السعر بعيداً عن ذلك المتوسط بأكثر من 3 × ATR(14). الهدف السماح بعمليات عكس-اتجاه قصيرة على أزواج الانعكاس فقط عندما لا يكون الهيكل الأوسع متجهاً بقوة — السعر ملتصق بمتوسط H1 هو شرط متساهل، بينما سعر أعلى من المتوسط بـ 3 ATR في اتجاه صاعد على H1 هو عدم-تداول. إذا عطّلت فلتر النظام (InpUseRegimeFilter)، يبقى فقط نظام Choppy حاجباً. نافذة الجلسة اختيارية عبر InpUseSessionWindow، وعند تفعيلها تقصر الدخول على ساعات السيرفر 06:00-20:00 التي تغطي تقريباً انتقال آسيا→لندن إلى ما قبل افتتاح نيويورك. وهي معطلة افتراضياً.
تضيف بوابة عدم التداول ست فحوصات ميكانيكية. مفتاح القتل (InpKillSwitch) يوقف الدخول فوراً. يجب أن يكون السبريد تحت 400 نقطة (السقف مضبوط على XAUUSD — عند الذهب العشري الثاني، 400 نقطة تعني 0.40$، فأي سبريد تجزئة واسع سيحجب الدخول). يتحقق فحص الخسارة اليومية المحققة من مجموع DEAL_PROFIT+SWAP+COMMISSION للصفقات المغلقة بهذا الرقم السحري اليوم، ويرفض الدخول بمجرد أن تصل الخسارة المتراكمة إلى 3% من رأس المال الفعّال. بعد إغلاق خاسر، فترة تهدئة 5 شموع (≈25 دقيقة على M5) تحجب إعادة الدخول. عداد رأس المال $50 يوقف المستشار من التداول على حسابات مستنزفة. ساعات نهاية الأسبوع محجوبة. يستخدم فحص الأخبار عالية الأهمية CalendarValueHistory على عملتي الرمز (XAU وUSD)، ويرفض الدخول في نافذة ±30 دقيقة حول الأحداث الحمراء. وأخيراً، فحص SYMBOL_TRADE_MODE_FULL يضمن أن الوسيط لم يعطّل التداول على الرمز.
تحجيم الصفقة قائم على نسبة المخاطرة. مع InpRiskPercent = 0.5 افتراضياً ومسافة الوقف 1.5 × ATR(14)، يحسب EA المخاطرة لكل لوت من tick_value وtick_size، ويقسم 0.5% من رأس المال الفعّال على تلك المخاطرة، ويعود إلى 0.01 لوت إذا أعاد أي طرف صفراً. يُطبّق أرضية 200 نقطة (MIN_SL_POINTS) على مسافة الوقف قبل التحجيم حتى لا ينفجر حجم اللوت في بيئة ATR منخفضة. رأس المال الفعّال نفسه يخضع لسقف اختياري: ضبط InpCapCapAmount > 0 يعني أن EA يتظاهر بأن الحساب لا يحوي سوى هذا المبلغ لأغراض المخاطرة، وهو مفيد للتوسيع المرحلي.
بعد الدخول، تتولى ManageOpenPositions() الإدارة وتشتغل على كل تيكت. تُعالج ستة أحداث متميزة: (أ) وقف-تعادل لمرة واحدة عند +1R، ينقل الوقف إلى open + 1 point بمجرد أن يقطع السعر مضاعف ATR في الاتجاه لصالحنا؛ (ب) إغلاق جزئي لمرة واحدة عند +1R، يحرّر 50% من الصفقة (فقط إذا كان الحجم المتبقي على الأقل يساوي الحد الأدنى للوت لدى الوسيط)؛ (ج) جَرّ ATR عند 2.0 × ATR(14) خلف السعر، يُحكم للأمام فقط؛ (د) خروج بإشارة معاكسة يُغلق الصفقة إذا انطلقت إشارة جديدة في الاتجاه الآخر؛ (هـ) خروج زمني عند MAX_BARS_IN_TRADE = 288 شمعة (24 ساعة على M5)؛ و(و) خروج بسبب نظام Choppy يُغلق الصفقة فوراً إذا انتقل المصنف إلى Choppy. أدوات إعادة المحاولة الثلاث (TryClose_EX09003 وTryClosePartial_EX09003 وTryModify_EX09003) تعيد المحاولة عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED مع نوم 200ms (100ms للتعديل).
الحالة الافتراضية من العلبة هي التشغيل الجاف: InpDryRun = true يعني أن EA يسجل كل إشارة، وكل تصنيف نظام، وكل قرار بوابة، وكل تعبئة محاكاة، لكنه لا يرسل أوامر. سير العمل المقصود: اربط EA على الشارت، راقب السجل المطوّل لأيام عبر جلسات وأنظمة مختلفة، تأكد أن تكرار التداول، وحجب النظام، ومسافات الوقف/الهدف تطابق التوقعات، ثم اقلب InpDryRun إلى false. يحمل EA أيضاً معيار OnTester() مخصص: net * profit_factor / (1 + relative_drawdown)، ما يعني أن Strategy Tester سيرتب مجموعات المعاملات التي تجمع صافي الربح وعامل الربح مع عقوبة السحب، بأرضية 30 صفقة وPF موجب قبل أن تصبح الدرجة غير صفرية.
ما ليس عليه هذا EA: ليس متابعاً للاتجاه، ولا شبكة، ولا مارتينجال، ولا هرمي. MAX_PYRAMID_LEVELS = 1 ولا توجد مضاعفات لوط. إنه عكس دورة مدمج، بصفقة واحدة، مسور بالنظام، مصمم لـ XAUUSD على M5، وحافته تأتي من فلتر النظام وبوابة مسافة EMA على الإطار الأعلى اللتين ترفضان التداول في السياق البنيوي الخاطئ. الحد الأدنى للرصيد $100، مع توقّع أوسع أن أي رصيد تحت $250 سيرى سقف الخسارة اليومية 3% يُضرب في يوم سيئ قبل أن تلعب حافة EA عبر صفقات كثيرة. اقرنه بحساب ECN أو سبريد خام بحيث لا يكون سقف السبريد 400 نقطة هو العامل الحاجب.
تفاصيل الاستراتيجية
على كل تيكت، يصنّف EX09003 النظام باستخدام ADX(14) وATR(14) وBollinger Bands(20, 2.0)، ويرفض التصرف في حالات StrongTrend أو Breakout أو Expand أو Choppy حيث يكون عكس المتوسط غير موثوق. تراقب دالة CycleSwingSignal() بعد ذلك عبور CCI(14) عائداً فوق/تحت نطاقي ±100 بينما يعبر خط Stochastic(14,3,3) الرئيسي خط الإشارة داخل النطاق الأوسط، وتسجّل الثقة بعمق خروج CCI السابق. يعمل المتوسط الأسي 50 على H1 حارساً بنيوياً — تُحجب الدخول إذا كان السعر بعيداً عن ذلك الخط بأكثر من 3×ATR(14)، ما يمنع عمليات عكس-الاتجاه التي تحارب اتجاه إطار أعلى أقوى. تضيف بوابة عدم التداول فوق ذلك طبقات السبريد، والخسارة اليومية المحققة، وتهدئة ما بعد الخسارة، وأرضية رأس المال، والأخبار، وفحوصات نهاية الأسبوع. عندما تُجتاز كل البوابات، يحجم OpenPosition() اللوت إلى 0.5% مخاطرة من رأس المال الفعّال ويرسل أمر سوق بوقف وهدف مستمدّين من ATR، وبعدها تتولى ManageOpenPositions() وقف-التعادل والإغلاق الجزئي وجَرّ ATR والخروج بإشارة معاكسة والخروج الزمني والخروج-بسبب-نظام-Choppy في كل تيكت لاحق.
دخول شراء عند عبور CCI(14) عائداً فوق -100 مع عبور خط Stochastic الرئيسي فوق خط الإشارة وكون الرئيسي دون 50؛ دخول بيع هو المرآة على عبور نطاق التشبع الشرائي +100. يجب أن تجتاز الإشارة فلتر النظام (RANGE أو COMPRESS أو WEAK_TREND فقط)، وبوابة مسافة المتوسط الأسي على الإطار الأعلى (السعر في حدود 3×ATR(14) من متوسط H1 لـ 50 فترة)، والحد الأدنى 1.5 مخاطرة/عائد عند الدخول، وبوابة عدم-تداول لكل شمعة تغطي السبريد والخسارة اليومية المحققة وتهدئة ما بعد الخسارة وأرضية رأس المال والأخبار ونهاية الأسبوع.
تُغلق الصفقات عند إشارة جديدة في الاتجاه المعاكس، أو عند انتقال النظام إلى Choppy، أو عند خروج زمني عند 288 شمعة (24 ساعة على M5). مزلاج وقف-تعادل لمرة واحدة ينقل الوقف إلى سعر الدخول+نقطة عند +1R، وإغلاق جزئي لمرة واحدة يحرر 50% من الصفقة عند +1R (فقط إذا كان المتبقي على الأقل الحد الأدنى للوت لدى الوسيط)، وجَرّ ATR عند 2.0×ATR(14) خلف السعر يُحكم للأمام فقط.
يُوضع وقف الخسارة عند سعر الدخول ± 1.5 × ATR(14)، مع أرضية صلبة 200 نقطة (XAUUSD عشريين) لمنع انفلات حجم اللوت في بيئات التذبذب المنخفض. بمجرد أن يقطع السعر 1R لصالحنا، يرفع مزلاج وقف-التعادل لمرة واحدة الوقف إلى سعر الدخول + 1 نقطة (أو سعر الدخول - 1 نقطة للبيع).
يُوضع جني الأرباح عند سعر الدخول ± 1.5 × ATR(14) — مرجع 1:1 ترفعه طبقة التأكيد إلى 1.5 كحد أدنى باستخدام مسافات TP/SL الفعلية. ينطلق إغلاق جزئي 50% عند +1R لتثبيت ربح خالٍ من الانعكاس، مع إدارة البقية عبر جَرّ ATR، أو الخروج الزمني، أو الخروج بسبب نظام Choppy.
الأفضل نشره على XAUUSD M5 برصيد أدنى موصى به $100 (منطقة الراحة الواقعية $500 وما فوق حتى لا يحدّ سقف الخسارة اليومية 3% من الاستراتيجية في يوم سيئ). شغّله على حساب ECN أو سبريد خام منخفض — سقف السبريد 400 نقطة مضبوط على XAUUSD عشريين ($0.40) وسيسرع بحجب الدخول على وسيط تجزئة بفروقات واسعة. أبقِ فلتر النظام مفعّلاً (الافتراضي) لإبقاء EA خارج أيام الاتجاه والاختراق، واترك نافذة الجلسة معطلة ما لم تكن ساعة سيرفر الوسيط متوافقة مع نافذة النشاط 06:00-20:00 التي تريدها فعلاً. مستوى المخاطرة MEDIUM؛ EA يتوقع أن يخطئ كثيراً لكنه يربح من عكس الدورة في مجموعة ذات معنى من الصفقات.
منطق الاستراتيجية
Pipsgrowth EX09003 MeanReversion — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MeanReversion
الماجيك: 22209003
الإصدار: 2.00
الوصف:
Cycle-swing mean-reversion: CCI ±100 band cross + Stochastic main/signal cross. BUY when CCI crosses back up over -100 AND Stoch main > sig AND Stoch main < 50; SELL mirror over +100. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
NormPrice()NormVol()LogV()StopsLevelPrice()EffectiveCapital()RegimeName()CycleSwingSignal()ConfirmEntry()NoTradeGate()IsNewsBlocking()
// Pipsgrowth EX09003 MeanReversion — Execution Flow (from source analysis)
// Family: MeanReversion
// Cycle-swing mean-reversion: CCI ±100 band cross + Stochastic main/signal cross. BUY when CCI crosses back up over -100 AND Stoch main > sig AND Stoch main < 50; SELL mirror over +100. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
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اسحب الإكسبرت على رسم H1 أو H4
- 7حدد فترة Bollinger Bands والانحراف ومستويات RSI وحجم اللوت
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagic | 22209003 | Magic number (unique per EA) |
| InpTradeComment | "Psgrowth.com Expert_09003" | Trade comment |
| InpDryRun | true | Dry-run (signal+log only, no orders) |
| InpKillSwitch | false | KILL: halt all new entries + exits-only |
| InpVerbose | true | Verbose logging |
| InpRiskPercent | 0.5 | Per-trade risk % of effective capital |
| InpFixedLot | 0.01 | Fallback fixed lot when risk=0 |
| InpDailyLossLimitPC | 3.0 | Daily realized-loss limit % of effective |
| InpMaxConcurrent | 1 | Max concurrent positions (this magic) |
| InpCooldownBars | 5 | Cooldown bars after a losing exit |
| InpMaxSpreadPts | 400 | Max spread in points (XAUUSD-tuned) |
| InpCapCapAmount | 0.0 | Cap on effective capital (USD) |
| InpCapCapFloor | 50.0 | Floor below which entries are blocked |
| InpCCIPeriod | 14 | CCI period (cycle amplitude) |
| InpStochK | 14 | Stochastic %K |
| InpStochD | 3 | Stochastic %D (slowing) |
| InpUseRegimeFilter | true | Block entries outside Range/Compress/WeakTrend |
| InpUseSessionWindow | false | Restrict to SESSION_START..END (broker tz) |
| InpMinRR | 1.5 | Minimum reward:risk at entry |
| InpATRMultSL | 1.5 | SL distance = ATR * mult |
| InpATRMultTP | 1.5 | TP distance = ATR * mult (MR uses tighter TP) |
| InpTrailATRMult | 2.0 | Trail distance = ATR * mult |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX09003 CycleSwing XAUUSD 5M — CCI ±100 + Stochastic cross mean-reversion, 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>
//==================== TUNABLE CONSTANTS (#define) ==================
// --- REGIME ---
#define ADR_REGIME_PERIOD 50 // ATR percentile window for regime
#define ADX_REGIME_PERIOD 14
#define ADX_TREND_THRESHOLD 25.0 // >= => trend regime
#define ADX_CHOP_THRESHOLD 18.0 // < => choppy
#define BB_REGIME_PERIOD 20
#define BB_REGIME_DEV 2.0
#define ATR_PCTILE_COMPRESS 25.0 // < pctl => compress
#define ATR_PCTILE_EXPAND 75.0 // > pctl => expand
// --- SIGNAL (original 1247 cycle swing) ---
#define CCI_APPLIED_PRICE PRICE_TYPICAL
#define STOCH_MA_METHOD MODE_SMA
#define STOCH_PRICE_FIELD STO_LOWHIGH
#define CCI_OS_LEVEL -100.0 // oversold band
#define CCI_OB_LEVEL 100.0 // overbought band
#define STOCH_MID_LEVEL 50.0 // mid threshold (room to revert)
// --- CONFIRM / HTF ---
#define HTF_TIMEFRAME PERIOD_H1
#define HTF_MA_PERIOD 50
// --- SESSION (broker server time) ---
#define SESSION_START_HOUR 6 // Asia->Europe handover (broker tz)
#define SESSION_END_HOUR 20
// --- NEWS (manual fallback if CalendarValueHistory unavailable) ---
#define NEWS_BUFFER_MIN 30
// --- EXIT / MANAGE ---
#define BREAK_EVEN_AT_R 1.0
#define PARTIAL_TP_AT_R 1.0
#define PARTIAL_TP_RATIO 0.5
#define ATR_TRAIL_PERIOD 14
#define MAX_BARS_IN_TRADE 288 // 24h on M5
#define COOLDOWN_AFTER_N_LOSSES 3
// --- ATR / RISK MODEL ---
#define ATR_SLTP_PERIOD 14
#define MIN_SL_POINTS 200 // hard floor for SL distance (XAUUSD-tuned)
// --- SCALING (pyramid OFF by default) ---
#define MAX_PYRAMID_LEVELS 1 // 1 = no pyramid
//===================================================================
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية الارتداد للمتوسط
Pipsgrowth EX09013 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09013 MeanReversion — Bollinger Bands mean-reversion EA with EMA trend filter. BUY when price touches lower band (trend up); SELL when price t. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX09009 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09009 MeanReversion — Hanging Man (bearish) / Hammer (bullish) candlestick on last CLOSED bar + Stochastic confirmation (Stoch<20 Buy / Stoch>. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX09023 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09023 MeanReversion — Bollinger Band mean reversion EA that fades outer band touches with fixed SL/TP and single-position control, using the 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.