Pipsgrowth EX15019 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M1
Pipsgrowth EX15019 SMC-OrderBlock — M1 liquidity-trap scalper for XAUUSD — detects sweep & re-entry at recent range highs/lows with robust K-of-N confirmati. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX15019 يعمل على الشارت اللحظي (M1) لزوج XAUUSD وينتظر حدثاً هيكلياً محدداً يسميه الكود المصدري فخ السيولة (liquidity trap): شموع ظلّ تخترق أحد طرفي النطاق السعري الأخير ثم تغلق داخله مرة أخرى. التوقيع مبني على أبسط وحدة بنيوية في السوق — أعلى و أدنى النطاق لآخر N شمعة — ويسأل الإكسبرت نفس السؤال الذي يسأله متداول SMC يدوي: هل تم اختراق هذا القاع أو القمة، وهل عاد السعر إلى الداخل، وهل شكل الشمعة رفض حقيقي أم استمرار؟ بمجرد اكتشاف شمعة الفخ، لا يطلق الإكسبرت صفقة إلا إذا وافقت K من N من عوامل التأكيد المستقلة القابلة للتكوين، وهو ما يميز هذا الإكسبرت عن سكربت اختراق-والذهاب من سطر واحد.
النطاق الذي يحدد الفخ
نافذة الفخ هي آخر InpRangeLookbackBars شمعة (افتراضي 30) على PERIOD_CURRENT. تستدعي DetectLiquidityTrapLong دالة iLowest(MODE_LOW, look, shift+1) لإيجاد أدنى قاع في تلك النافذة وتعالجه كـ rangeLow. يتحدد فخ الشراء بثلاثة شروط على الشمعة المرشحة: يجب أن يصل قاع الشمعة إلى InpSweepBufferPoints نقطة على الأقل (افتراضي 20) تحت rangeLow، ويجب أن تتعافى إغلاقتها إلى InpReentryBufferPoints نقطة على الأقل (افتراضي 10) فوق rangeLow، ويجب أن يكون الظل السفلي على الأقل InpMinLowerWickRatio (افتراضي 0.35) من المدى الكامل للشمعة. تعكس DetectLiquidityTrapShort المنطق على iHighest(MODE_HIGH, look, shift+1) بنسبة ظل علوي 0.35. يستدعي كلا الكاشفين بعد ذلك BarQualityOK(shift) لرفض الشموع التي يقل جسمها عن InpMinBodyToRange (افتراضي 0.20) من مداها، مما يصفّي الدوجي الذي يزيّف الاختراق. عند إطلاق الفخ، يخزن الإكسبرت أقصى نقطة في النطاق وأدنى/أعلى نقطة في الاختراق في g_lastTrapRangeLow/High و g_lastTrapSweepLow/High حتى يمكن تثبيت وقف الخسارة على النقطة الهيكلية لاحقاً.
كومة تأكيدات K من N
كشف الفخ وحده رخيص وضوضائي، لذلك يضيف الإكسبرت خمس عوامل تأكييد مستقلة فوقه ولا يفتح صفقة إلا إذا وافق InpNeedConfirmationsK (افتراضي 2) منها كحد أدنى. كل عامل قابل للتبديل بشكل مستقل، ويعيد الإكسبرت حساب ActiveConfirmationSlots() عند كل دخول لحساب المقام. العوامل الخمسة هي:
VolSpikeOK— يجب أن يكون حجم الشمعة الحالية على الأقلInpVolSpikeMult(افتراضي1.30) من المتوسط البسيط على مدىInpVolSMAPeriodشمعة (افتراضي 20).RSIRecaptureOK— للشراء، يجب أن يعبرRSI(14) فوقInpRSIRecapLevel(افتراضي 50) من الشمعة السابقة إلى الحالية؛ للبيع، العكس. يستخدم مؤشرiRSI(_Symbol, PERIOD_M1, 14, PRICE_CLOSE)الذي يُنشأ عند أول استدعاء.BOS_OK— كسر الهيكل: للشراء، يجب أن تتجاوز إغلاق الشمعة الحالية أعلى قمة لآخرInpBOSLookbackBarsشمعة (افتراضي 5) باستثناء الشمعة الحالية؛ للبيع، العكس على أدنى قاع. مبني مباشرة علىiHighest/iLowestبدون مؤشر.MTF_EMA_OK— مقارنة السعر معEMA(InpMTF_EMAPeriod، افتراضي 200) على الإطار الزمني الأعلى المحدد بـInpMTF_TF(افتراضي 4، أيM30عبر دالةMapTimeframeIntالمحلية)، مع فحص ميل اختياريInpRequireEMASlopeOK(افتراضيtrue) يتطلب أن تكون قيمةEMAفي الشمعة 0 على الجانب الصحيح من قيمتها في الشمعة 1.BBReentryOK— إعادة دخول بولنجر: يجب أن يخترق قاع الشمعة المرشحة النطاق السفلي وأن تنتهي الإغلاق داخل النطاق (للشراء) أو العكس على النطاق العلوي (للبيع). المقبض هوiBands(_Symbol, PERIOD_M1, 20, 2, 0, PRICE_CLOSE).
لا تحسب CountConfirmations إلا الفتحات التي علم التفعيل فيها true — التأكيد المعطّل ليس مروراً تلقائياً. عندما يطلق فخ شراء وفخ بيع على نفس الشمعة (نادر لكن ممكن في اختراق حاد من جانبين)، يختار الإكسبرت الجانب ذو عدد K الأعلى، وتُرفض التعادلات كغموض (doBuy=doSell=false).
بوابة عدم التداول
حتى فخ عالي الثقة يُرفض إذا كانت بيئة التداول خاطئة. تعمل CanPlaceNew قبل أي دخول وتحجب لستة شروط مستقلة: الإكسبرت داخل نافذة توقف نشطة محددة من OnTradeTransaction (g_tradePauseUntil في المستقبل)، InpOneEntryPerBar صحيح وقد تم تداول الشمعة الحالية (g_lastBarTraded == iTime(_Symbol, PERIOD_CURRENT, 0))، IsWithinSessions تقول إن ساعة الوسيط خارج كلتا نافذتي الجلسة، CheckSpreadOK تضع علامة على السبريد الحالي على أنه عريض جداً، وصل عدد المراكز إلى MaxOpenTrades (افتراضي 5)، أو نشاط التيك في آخر 60 ثانية أقل من InpMinTicksPerMin (افتراضي 20). تقبل IsWithinSessions نافذة التفاف عبر (start <= end) ? inside : (h >= start || h < end)، لذلك فإن زوج النوافذ 7-17 و 13-22 يغطي تداخل لندن/نيويورك على الوسطاء الذين تعمل ساعاتهم بتوقيت GMT+2 أو GMT+3.
حد السبريد الديناميكي
CheckSpreadOK هو المكان الوحيد الذي يستشير حد السبريد، والحد نفسه تكيفي. عندما يكون InpUseDynamicSpreadCap صحيحاً ويحتوي المخزن الحلقي 1024-مدخل g_spreadBuf على 10 عينات على الأقل، يحسب الإكسبرت MedianOf(g_spreadBuf, count) و MADOf(g_spreadBuf, count) — كلاهما يستخدم فرز إدراج في المكان — ويضع الحد عند median + InpSpreadMADMult * MAD، الافتراضي 3.0. الحد المطلق InpSpreadCapAbsPoints (افتراضي 0، معطّل) يُؤخذ مع الحد الديناميكي عبر MathMin، ليعمل كسقف صلب. يُغذّى المخزن من SpreadPush(CurrentSpreadPts()) عند كل تيك من OnTick. الحد الثابت مقبول أيضاً عند إيقاف الديناميكي؛ مع إيقاف كليهما، يكون cap بقيمة DBL_MAX والفحص لا يفعل شيئاً.
وقف الخسارة وجني الأرباح والوقف المثبّت على الفخ
وقف الخسارة وجني الأرباح الافتراضي للإكسبرت هو 300/600 نقطة على المسار الثابت، بنسبة مخاطرة إلى عائد 1:2؛ InpUseATRforSLTP=false هو الافتراضي. اقلب هذا المفتاح و GetATRPoints تسحب قيمة iATR(_Symbol, PERIOD_M1, 14) بشكل كسول عند أول استخدام، ثم تحسب CalcSLTP وقف الخسارة بمضاعف InpATR_SL_Mult (افتراضي 3.0) وجني الأرباح بمضاعف InpATR_TP_Mult (افتراضي 6.0)، مع الحفاظ على نسبة 1:2 عن قصد. المسار الأكثر إثارة للاهتمام هو InpUseTrapAnchoredSL=true (الافتراضي): للشراء، يُضبط وقف الخسارة على نقطة الاختراق g_lastTrapSweepLow ناقص InpTrapSLExtraBuffer نقطة (افتراضي 10)، ليجلس الوقف خارج الشمعة التي تسببت في الفخ بقليل. ثم يكون جني الأرباح هو سعر العرض بالإضافة إلى مسافة جني الأرباح المضروبة — بنية هجينة من وقف مثبّت-على-الفخ وجني أرباح بالمسافة. كلا الطرفين يُطبّع على حجم التيك للرمز عبر NormalizePriceToTick حتى لا يرفضهما الوسيط على stopsLevel.
تنفيذ الأوامر والانزلاق التكيفي
SendOrderAdaptive هو المسار الوحيد لإرسال الأوامر. يبني MqlTradeRequest مع type_filling=GetBestFillingMode(_Symbol)، الذي يستكشف SYMBOL_FILLING_MODE ويُرجع ORDER_FILLING_IOC إذا كان مدعوماً، وإلا ORDER_FILLING_RETURN، وإلا ORDER_FILLING_FOK. الانزلاق الابتدائي req.deviation هو InpSlippagePoints (افتراضي 5) ويزداد بمقدار 3 نقاط لكل إعادة محاولة حتى InpMaxAdaptiveDeviation (افتراضي 20)، مع تراجع خطي Sleep(80 * (k+1)). تتم حتى 4 محاولات؛ عند أول نجاح تُرجع الدالة فوراً. توجد ثلاث مساعدات إعادة المحاولة TryClose_EX15019 و TryClosePartial_EX15019 و TryModify_EX15019 في أسفل الملف وتستهدف g_trade_wrappers_EX15019 (كائن CTrade عالمي)، لكن مسارات الإغلاق والتعديل الحية في ModifyPositionSLTP/ClosePositionByTicket تستخدم OrderSend مباشرة وتتجاهل المساعدات — الغلاف كود ميت في مسار التشغيل.
إدارة المراكز وقفل الربح الديناميكي
عند كل تيك، تمشي MaintainPositions على كل مركز يملكه الإكسبرت وتستدعي ApplyDynamicLockProfitToPosition. تأخذ هذه الدالة الحركة غير المحققة الحالية، تقسمها على InpLockProfitEveryXPoints (افتراضي 150)، وتقصّ لحساب عدد خطوات القفل. مسافة القفل المرغوبة هي steps * 150 - InpLockMinusYPointsBuffer (افتراضي 20). للشراء، يصبح وقف الخسارة الجديد entry + targetPts * _Point؛ للبيع، entry - targetPts * _Point. ترفض الدالة تخفيف وقف خسارة موجود (if (curSL > 0 && newSL <= curSL) return;) وترفض الدفع ضمن SYMBOL_TRADE_FREEZE_LEVEL من السعر الحالي. يجب أن يتحرك المركز 150 نقطة ربح قبل أن يشارك القفل الأول، وكل خطوة 150 نقطة لاحقة تشدّ بمقدار 130 نقطة صافية بعد المخزن. لا يوجد وقف خسارة متحرك تقليدي — القفل الديناميكي هو المدير الحي الوحيد ويشدد فقط. الدالة هي الدفاع الأساسي للإكسبرت ضد إعادة تأكيد الفخ قبل إطلاق جني الأرباح.
الإضافات وبوابة الاتجاه المربح
أول صفقة في اتجاه تأخذ لاحقة التعليق Initial BUY أو Initial SELL؛ كل صفقة لاحقة في نفس الاتجاه تزيد g_addCountBuy أو g_addCountSell وتأخذ Add#N BUY/SELL. السقف الصلب هو MaxOpenTrades (افتراضي 5). الفلتر المثير للاهتمام هو AllowOnlyProfitableAdditions=true (مفعّل افتراضياً): عندما يكون هناك مركز مفتوح في نفس الاتجاه ويطلق فخ جديد في نفس الاتجاه، تمشي IsAllSameDirProfitableAtLeast(dir, MinProfitPerTradeToAdd) على المراكز المفتوحة في نفس الاتجاه وتتحقق أن كل واحد تحرك على الأقل MinProfitPerTradeToAdd (افتراضي 5.0) نقطة ربح غير محقق لصالح الإكسبرت بسعر العرض/الطلب الحالي. إذا كان حتى مركز واحد تحت الماء، تُرفض الإضافة. التأثير أن الإكسبرت يضيف فقط إلى اتجاه رابح — لن يكدّس بعد خسارة، حتى لو وافق إشارة فخ جديدة.
محرك التوقف
تعمل OnTradeTransaction عند كل حدث صفقة، تصفي إلى صفقات TRADE_TRANSACTION_DEAL_ADD التي يملكها هذا الإكسبرت، وتتصرف فقط على DEAL_ENTRY_OUT (صفقات إغلاق المراكز). عندما يكون مجموع ربح + مقايضة + عمولة الصفقة المغلقة سالباً، يزداد g_lossStreakCount و g_lossStreakAmt. إذا كان PauseOnConsecutiveLosses=true ووصل العداد إلى PauseConsecutiveLossesCount (افتراضي 3)، أو كان PauseOnLossAmount=true ووصلت الخسارة المتراكمة إلى PauseLossAmount (افتراضي 100.0 بعملة الحساب)، يُدفع g_tradePauseUntil إلى الأمام بمقدار PauseConsecutiveLossesMinutes / PauseLossAmountMinutes (كلاهما افتراضي 60). كلا العلمين false افتراضياً، لذا فإن محرك التوقف خامد من العلبة. أي صفقة غير سالبة تعيد العدادين إلى الصفر.
فلتر نشاط التيك والبنية الدقيقة
تكتب TickActivityPush(TimeCurrent()) وقت السيرفر الحالي في مخزن حلقي بسعة 256 عند كل تيك، وتحسب CountTicksLastNSeconds(60) عدد المدخلات في الدقيقة الأخيرة. إذا كان العدد أقل من InpMinTicksPerMin (افتراضي 20)، يُحجب الدخول. الفلتر بوابة هادئة ضد الانعكاسات الكاذبة: على M1، XAUUSD تحت 20 تيك/دقيقة يعني سيولة ضعيفة، والشموع ضعيفة السيولة على M1 تنتج اختراقات كاذبة وتأكيدات ضوضائية. المخزن نفسه مشترك عبر عمر الإكسبرت — لا توجد إعادة تعيين دائرية، فقط استبدال دوار.
ما تحصل عليه وما لا تحصل عليه
يحتوي ملف .mq5 على 60 مدخل عبر 9 مجموعات و 41 دالة، بالإضافة إلى ثلاثية غلاف CTrade الميتة في الأسفل. لا توجد تبعيات .ex5 مترجمة، لا DLL، لا استدعاءات بعيدة. مؤشرات hATR و hBB و hRSI و hMTF_EMA تُنشأ بشكل كسول عند أول استخدام و OnDeinit لا تفعل شيئاً — المؤشرات تُحرر من قبل المنصة عند تفريغ الإكسبرت. مساعدات MapTimeframeInt و MapAppliedPriceInt للمجموعات الأربع معرّفة مرة لكل مجموعة إدخال (أثر نسخ-لصق في تخطيط المصدر) وتنتج نفس منطق التبديل عبر جميع الحالات الثماني، حيث 1→M1، 2→M5، 3→M15، 4→M30، 5→H1، 6→H4، 7→D1. إذا كنت تنوي التحسين، عالج InpNeedConfirmationsK مع عوامل التفعيل الخمسة للتأكيد ومدخلات نمط الفخ الأربعة كسطح البحث الأساسي؛ كل شيء آخر هو مكدس الأمان الذي يجب أن يبقى مثبتاً.
تفاصيل الاستراتيجية
يعمل الإكسبرت بالكامل من حالته الخاصة عند كل تيك M1. في OnTick أولاً تُغذّى SpreadPush و TickActivityPush (ليبقى المخزن الحلقي للسبريد وعداد التيك محدّثين)، ثم تستدعي MaintainPositions لتطبيق القفل الديناميكي للربح على كل مركز مفتوح، ثم تستدعي TryEntries. تتوقف TryEntries مبكراً عبر CanPlaceNew (التي تتحقق من التوقف، ودخول-واحد-لكل-شمعة، والجلسة، وحد السبريد الديناميكي، وعدد المراكز، ونشاط التيك)، ثم على آخر شمعة مغلقة shift=1 تستدعي DetectLiquidityTrapLong و DetectLiquidityTrapShort بالتوازي. يشغّل كل كاشف iLowest/iHighest على مدى InpRangeLookbackBars (افتراضي 30)، يطبق هندسة InpSweepBufferPoints (20) و InpReentryBufferPoints (10)، يتحقق من نسبة الظل 0.35 عبر CandleWickCheck، ويشغّل BarQualityOK لرفض الدوجي. إذا أُطلق فخ، يستدعي الإكسبرت CountConfirmations على الفتحات الخمس القابلة للتبديل (VolSpike/RSI/BOS/MTF-EMA/BB) ويتطلب InpNeedConfirmationsK (افتراضي 2) نشطة. تُتخطى الفخاخ المتعادلة بين شراء وبيع. تصفية إضافية بفترة التهدئة الاتجاهية (20 ثانية) وبوابة AllowOnlyProfitableAdditions لنفس الاتجاه قبل أن تبني SendOrderAdaptive الأمر بانزلاق تكيفي من 5 إلى 20 نقطة عبر ما يصل إلى 4 محاولات.
على شمعة M1 مغلقة (shift=1)، يبحث الإكسبرت في آخر InpRangeLookbackBars (افتراضي 30) لإيجاد قمة وقاع النطاق، ثم يتحقق ما إذا كان ظل الشمعة المرشحة قد اخترق InpSweepBufferPoints (افتراضي 20) نقطة على الأقل بعد الطرف وأن الإغلاق تعافى InpReentryBufferPoints (افتراضي 10) نقطة على الأقل إلى الداخل، مع نسبة ظل أدنى 0.35. فقط إذا تم اكتشاف فخ، يحسب الإكسبرت تأكيدات K من N (ارتفاع حجم 1.3 ضعف متوسط 20، استعادة RSI(14) لمستوى 50، كسر هيكل 5 شموع، توافق MTF EMA(200) مع الميل، إعادة دخول BB(20,2.0)) ويتطلب InpNeedConfirmationsK (افتراضي 2) على الأقل نشطة ومتوافقة. تُتخطى التعادلات بين شراء وبيع على نفس الشمعة كغموض.
تُحفظ المراكز حتى ينطلق جني الأرباح الثابت عند 600 نقطة أو يقفل القفل الديناميكي للربح ما يكفي من الربح لإغلاقها عبر وقف الخسارة لدى الوسيط. القفل الديناميكي يشدد فقط — بمجرد أن يتحرك المركز 150 نقطة، يُشدّ وقف الخسارة إلى نقطة الدخول +130 نقطة؛ كل خطوة 150 نقطة إضافية تضيف 130 نقطة أخرى من المسافة المقفلة، مع مخزن 20 نقطة. لا يوجد خروج منفصل مبني على الزمن ولا مهلة قصوى للاحتفاظ؛ الإدارة الوحيدة هي القفل الديناميكي والتوقف الذي يقوده OnTradeTransaction والذي يوقف الإدخالات الجديدة بعد عتبات الخسارة المُهيأة.
وقف الخسارة الافتراضي هو 300 نقطة (نسبة مخاطرة إلى عائد 1:2 مقابل جني أرباح 600 نقطة). مع InpUseTrapAnchoredSL=true (الافتراضي)، يُثبّت وقف الخسارة على نقطة الاختراق الفعلية المخزنة في g_lastTrapSweepLow/High بالإضافة إلى InpTrapSLExtraBuffer (افتراضي 10) نقاط مسافة إضافية، ليجلس الوقف خلف الشمعة التي تسببت في الفخ بقليل. تبديل InpUseATRforSLTP=true يستبدل الـ 300 الثابتة بقيمة 3x ATR(14)، تُحسب بشكل كسول عند أول استخدام. يشدد القفل الديناميكي وقف الخسارة تدريجياً — القفل الأول يشارك بعد 150 نقطة ربح، ثم كل 150 نقطة إضافية.
جني الأرباح الافتراضي هو 600 نقطة من نقطة الدخول، مما يعطي نسبة مخاطرة إلى عائد 1:2 نظيفة مقابل وقف الخسارة الثابت 300 نقطة. عندما يكون InpUseATRforSLTP=true، يصبح جني الأرباح 6x قيمة ATR(14) بالنقاط (أيضاً 1:2 مقابل وقف 3x ATR). عندما يكون وقف الخسارة المثبت على الفخ نشطاً، يبقى جني الأرباح مسافة ثابتة من نقطة الدخول (سعر العرض + جني الأرباح المضروب للشراء، سعر الطلب - جني الأرباح المضروب للبيع) بدلاً من التثبيت على هدف هيكلي — بنية هجينة. لا يُعاد تثبيت جني الأرباح أبداً على وقف الخسارة المقفل.
XAUUSD على M1 مع حد أدنى للإيداع 100 دولار، باستخدام حجم لوت ثابت 0.10 دولار. تستهدف نافذتا الجلسة (7-17 و 13-22 بتوقيت الوسيط) تداخل لندن/نيويورك، لذا فإن وسطاء ECN أو السبريد المنخفض على خوادم GMT+2 أو GMT+3 (Exness، IC Markets، Pepperstone) هم الخيار الطبيعي. يجعل حد السبريد الديناميكي median+MAD وأرضية نشاط 20 تيك/دقيقة الإكسبرت متطلباً فيما يخص جودة الوسيط — السبريدات الأوسع أو السيولة الضعيفة ستحجب الإدخالات ببساطة بدلاً من إطلاق الخسائر. مستوى المخاطرة MEDIUM يفترض أن يبقى المستخدم على MaxOpenTrades=5 و AllowOnlyProfitableAdditions مفعّلاً، مما يحدّ من التعرض الاسمي المتزامن بدون رياضيات نسبة مخاطرة لكل صفقة. موصى به للمتداولين الذين يفهمون بالفعل هيكل SMC للاختراق والاسترداد ويرغبون في نسخة كمية ومفلترة بـ K من N من تلك الصفقة.
منطق الاستراتيجية
Pipsgrowth EX15019 SMC-OrderBlock — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: SMC-OrderBlock
الماجيك: 22215019
الإصدار: 2.00
الوصف:
M1 liquidity-trap scalper for XAUUSD — detects sweep & re-entry at recent range highs/lows with robust K-of-N confirmations (volume, RSI, BOS, HTF-EMA, BB), dynamic lock profit, anti-whipsaw session/spread/tick filters. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
TickSize()NormalizePriceToTick()Ask()Bid()NormalizeVol()IsWithinSessions()CurrentSpreadPts()SpreadPush()MedianOf()MADOf()
// Pipsgrowth EX15019 SMC-OrderBlock — Execution Flow (from source analysis)
// Family: SMC-OrderBlock
// M1 liquidity-trap scalper for XAUUSD — detects sweep & re-entry at recent range highs/lows with robust K-of-N confirmations (volume, RSI, BOS, HTF-EMA, BB), dynamic lock profit, anti-whipsaw session/spread/tick filters. 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اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
- 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| MagicNumber | 22215019 | 2220 + Expert ID |
| InpTradeComment | "Psgrowth.com Expert_15019" | Trade Comment |
| InpEnableDynamicLockProfit | true | Enable dynamic lock profit trail |
| InpLockProfitEveryXPoints | 150 | Lock step size (points) |
| InpLockMinusYPointsBuffer | 20 | Lock buffer subtract (points) |
| MaxOpenTrades | 5 | Maximum concurrent positions |
| AllowOnlyProfitableAdditions | true | Only add if existing direction net profitable |
| MinProfitPerTradeToAdd | 5.0 | Min unrealized pts per position to allow add |
| PauseOnConsecutiveLosses | false | Enable pause after X losses |
| PauseConsecutiveLossesCount | 3 | Loss streak threshold |
| PauseConsecutiveLossesMinutes | 60 | Pause duration after loss streak (minutes) |
| PauseOnLossAmount | false | Enable pause after loss amount |
| PauseLossAmount | 100.0 | Loss amount threshold (account currency) |
| PauseLossAmountMinutes | 60 | Pause duration after loss amount (minutes) |
| InpFixedLot | 0.10 | Fixed lot size |
| InpUseATRforSLTP | false | Use ATR-based SL/TP instead of static |
| InpATRPeriod | 14 | ATR period |
| InpATR_SL_Mult | 3.0 | ATR SL multiplier |
| InpATR_TP_Mult | 6.0 | ATR TP multiplier |
| InpSL_Points | 300 | Static SL (points) if ATR disabled |
| InpTP_Points | 600 | Static TP (points) if ATR disabled |
| InpSlippagePoints | 5 | Initial allowed slippage (points) |
| InpMaxAdaptiveDeviation | 20 | Max adaptive deviation (points) |
| InpOneEntryPerBar | true | Restrict to one entry per bar |
| InpCooldownSecondsDir | 20 | Directional cooldown (seconds) |
| InpUseTrapAnchoredSL | true | Use sweep extreme anchored SL |
| InpTrapSLExtraBuffer | 10 | Extra buffer beyond sweep extreme (points) |
| InpUseDynamicSpreadCap | true | Enable dynamic spread cap (Median+MAD) |
| InpSpreadLookbackTicks | 200 | Spread sampling window (ticks) |
| InpSpreadMADMult | 3.0 | Spread cap multiplier (median + k*MAD) |
| InpSpreadCapAbsPoints | 0 | Absolute spread cap (0=disabled) |
| InpUseSessions | true | Enable session time filter |
| InpSession1StartHH | 7 | Session 1 start hour (broker time) |
| InpSession1EndHH | 17 | Session 1 end hour (exclusive) |
| InpSession2StartHH | 13 | Session 2 start hour |
| InpSession2EndHH | 22 | Session 2 end hour (exclusive) |
| InpMinTicksPerMin | 20 | Minimum tick activity per minute (0=off) |
| InpRangeLookbackBars | 30 | Range lookback (bars) for trap window |
| InpSweepBufferPoints | 20 | Sweep buffer beyond range (points) |
| InpReentryBufferPoints | 10 | Re-entry buffer back inside range (points) |
| InpMinLowerWickRatio | 0.35 | Min lower wick ratio (long trap) |
| InpMinUpperWickRatio | 0.35 | Min upper wick ratio (short trap) |
| InpUseBBReentry | true | Require Bollinger Band re-entry |
| InpBBPeriod | 20 | Bollinger period |
| InpBBDeviations | 2.0 | Bollinger deviations |
| InpNeedConfirmationsK | 2 | Required confirmations K |
| InpUseVolSpike | true | Use volume spike confirmation |
| InpVolSMAPeriod | 20 | Volume SMA period |
| InpVolSpikeMult | 1.30 | Volume spike multiplier |
| InpUseRSIRecapture | true | Use RSI recapture confirmation |
| InpRSIPeriod | 14 | RSI period |
| InpRSIRecapLevel | 50.0 | RSI recapture level |
| InpUseBOS | true | Use Break of Structure confirmation |
| InpBOSLookbackBars | 5 | BOS lookback bars |
| InpUseMTFEMA | true | Use higher timeframe EMA alignment |
| InpMTF_TF | 4 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for EMA |
| InpMTF_EMAPeriod | 200 | Higher timeframe EMA period |
| InpRequireEMASlopeOK | true | Require EMA slope confirmation |
| InpUseBarQualityFilter | true | Use bar quality (body/range) filter |
| InpMinBodyToRange | 0.20 | Minimum body-to-range ratio |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX15019 XAUUSD Liquidity Trap M1 — sweep/re-entry scalper with K-of-N confirms and DLP, full 12-layer stack."
#include <Trade\Trade.mqh>
//===================================================================
// INPUTS
//===================================================================
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;
case 2: return PERIOD_M5;
case 3: return PERIOD_M15;
case 4: return PERIOD_M30;
case 5: return PERIOD_H1;
case 6: return PERIOD_H4;
case 7: return PERIOD_D1;
default: return PERIOD_H1;
}
}
ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
switch(ap)
{
case 1: return PRICE_CLOSE;
case 2: return PRICE_OPEN;
case 3: return PRICE_HIGH;
case 4: return PRICE_LOW;
case 5: return PRICE_MEDIAN;
case 6: return PRICE_TYPICAL;
case 7: return PRICE_WEIGHTED;
default: return PRICE_CLOSE;
}
}
ENUM_TIMEFRAMES g_InpMTF_TF = PERIOD_H1;
input group "=== CORE / IDENTIFICATION ==="
input long MagicNumber = 22215019; // 2220 + Expert ID
input string InpTradeComment = "Psgrowth.com Expert_15019"; // Trade Comment
//------------------ DYNAMIC LOCK PROFIT (Ratchet) -------------------
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;
case 2: return PERIOD_M5;
case 3: return PERIOD_M15;
case 4: return PERIOD_M30;
case 5: return PERIOD_H1;
case 6: return PERIOD_H4;
case 7: return PERIOD_D1;
default: return PERIOD_H1;
}
}الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.