P
PipsGrowth
متابعة الاتجاهمفتوح المصدر - مجاني

Pipsgrowth EX16031 Trend — إكسبرت أدفايزر متابعة اتجاه

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

Pipsgrowth EX16031 Trend — Harami pattern + Stoch confirm, MA trend, time exit 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RI. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يُعدّ EX16031 الطرف الثالث في عائلة الهارامي (الشمعة الداخلية) لمشروع PipsGrowth، وهو يُكمل النشر المتوازي لثلاثة مؤشرات تذبذب. يُقابل EX16029 بين نمط الهارامي ومؤشر MFI(37)، ويُقابل EX16030 بينه وبين مؤشر RSI(37)، أمّا EX16031 فيأتي بأبطأ إعداد: iStochastic(_Symbol, _Period, 47, 9, 13, MODE_SMA, STO_LOWHIGH). يُسمّي رأس الكود المصدري هذا المستكشف بأنه "نمط هارامي + تأكيد ستوكاستيك + متوسط متحرك للاتجاه + خروج زمني" — وهو ملخص مكثّف من أربعة أسطر يلتقط كامل نطاق عمل المستكشف: قراءة نمط شمعة داخلية مكوّن من شمعتين، بوّابة تأكيد من ستوكاستيك بطيء، تحقق من الاتجاه عبر متوسط متحرك بسيط لخمسة فترات، ثم إنهاء عبر توقيت زمني عشر شموع.

النمط نفسه هو هارامي صارم من شمعتين وليس ابتلاعًا. يجب أن يجلس جسم آخر شمعة مكتملة (الشمعة 1) بالكامل داخل جسم الشمعة التي قبلها (الشمعة 2) — وهذه علاقة احتواء هي العكس الهندسي لنمط الابتلاع في EX16024-EX16027، حيث يطمس الجسم الجديد الجسم القديم. لإطلاق إشارة شراء، تفرض الدالة CheckPattern() خمسة شروط في الكود: Close(1) > Open(1) (آخر شمعة صاعدة)، الشمعة السابقة شمعة هابطة طويلة جسمها MathAbs(Open(2) - Close(2)) يتجاوز متوسط الجسم لفترة 12 محسوبًا في AvgBody(1)، الجسم الصاعد محتوٍ داخل الجسم الهابط السابق (Close(1) < Open(2) AND Open(1) > Close(2))، وأن يكون منتصف نطاق الشمعة السابقة MidPoint(2) = (High(2) + Low(2))/2 أدنى من متوسط السعر للإغلاق CloseAvg(2) لمتوسط متحرك بسيط لخمس فترات — مما يؤكّد سياق اتجاه هابط يقلبه الهارامي. الهارامي الهبوطي يعكس كل شرط من هذه الشروط.

مرشّح الاتجاه يستخدم MidPoint(2)، أي منتصف النطاق الكامل للشمعة السابقة بدلًا من منتصف الجسم MidOpenClose(2) = (Open(2) + Close(2))/2 المستخدم في بعض الأشقاء. قد يجذب ظل سفلي طويل في الشمعة السابقة منتصف النطاق إلى ما دون المتوسط المتحرك حتى لو بقي الجسم فوقه بكثير — مما يخفف قراءة الاتجاه الهابط. هذا اختيار تصميمي مقصود: المستكشف يعامل الظلال على أنها جزء من سياق الاتجاه، لا الجسم وحده.

إعداد الستوكاستيك هو الأبطأ في العائلة: K لسبع وأربعين فترة، D لتسع فترات، تباطؤ لثلاث عشرة فترة، تجانس MODE_SMA، وحقل سعر STO_LOWHIGH. ينتج K لسبع وأربعين فترة مع تباطؤ لثلاث عشرة فترة نافذة تجانس تعادل تقريبًا أربع ساعات من شريط M5، فيقرأ المرشّح الزخم عبر شموع كثيرة بدلًا من الشمعة الفورية. وتكون القراءة أبطأ مما يوحي به ذلك: الدالة StochSignal(index) في المصدر تقرأ المخزن SIGNAL_LINE للمؤشر — خط %D المُجانس، لا خط %K الرئيسي. هذا القرار الوحيد يحوّل التأكيد من تقاطع سريع إلى قراءة نطاق بطيئة، ويتناسب مع ميل المستكشف للسياق على حساب دقة التيك.

نطاقات التأكيد أضيق من نطاقات الإغلاق، وهذا غير معتاد لمستكشفات تتبع الاتجاه. تتطلب إشارة الشراء StochSignal(1) < 30، وإشارة البيع StochSignal(1) > 70 — عتبات تشبّع بيعي/شرائي قياسية. لكن إشارة الإغلاق تستخدم مستويات 80/20 الأوسع: يُغلق مركز الشراء عند تقاطع هبوطي لمستوى 80 (تلاشي التشبّع الشرائي) أو تقاطع هبوطي لمستوى 20 (استمرار الانهيار التشبّعي)، ويعكس إغلاق البيع ذلك كتقاطعات صاعدة لمستويي 20 و80. هذا التباين المتعمّد — نطاقات دخول ضيقة ونطاقات خروج واسعة — مصمّم لإبقاء الدخول في نطاق الزخم مع السماح للخروج بالتقاط نضوب الزخم أو تصفيته القسرية.

تُسوّي الدالة PositionOpen() كل صفقة بحجم ثابت InpLot = 0.10 وتضع وقف الخسارة وجني الأرباح عند 200/200 نقطة، مانعة نسبة مخاطرة إلى عائد متناظرة 1:1. يتضمّن PositionOpen() تجاوزين دفاعيين: إذا كان السبريد الحالي مساويًا أو أكبر من مسافة وقف الخسارة، ينهار الوقف إلى قيمة السبريد؛ وإذا كان السبريد مساويًا أو أكبر من مسافة جني الأرباح، ينهار الهدف إلى قيمة السبريد. التجاوز يهدف لإبقاء وقف الخسارة خارج السبريد في شارات السبريد الواسع، لكنه يحمل أثرًا جانبيًا يتمثّل في تحويل هندسة 200 نقطة إلى وقف شبه معدوم عند توسّع سبريد XAUUSD — وهي نقطة تستحق الفهم قبل تحديد الحجم. يستخدم المستكشف الرقم السحري 22216031 والتعليق "Psgrowth.com Expert_16031" لإبقاء أوامره منفصلة بصريًا عن الأشقاء في نفس المنصة.

يجري تدفّق OnTick() في أربع مراحل. تكشف المرحلة 1 عن شمعة جديدة (TimeCurrent() >= next_bar_open) وتستدعي CheckState() لضبط متغيرات الحالة العامة: ExtPatternDetected وExtConfirmed وExtSignalOpen وExtSignalClose وExtPatternInfo. تُطلق المرحلة 2 PositionOpen() عند ضبط ExtSignalOpen وعدم وجود مركز في ذلك الاتجاه. تُغلق المرحلة 3 عبر CloseBySignal() عند ضبط ExtSignalClose. تستدعي المرحلة 4 CloseByTime() كلما أبلغت BarsHold() عن بقاء مركز InpDuration = 10 شمعة مكتملة على الإطار الزمني الحالي.

بنية الإغلاق مثيرة للاهتمام بما تحتويه وبما لا تحتويه. تُغلّف TryClose_EX16031 استدعاء PositionClose بثلاث محاولات على رموز REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED مع نوم 200 مللي ثانية بين المحاولات، وهي مُدمجة في CloseBySignal() وCloseByTime(). أما TryClosePartial_EX16031 وTryModify_EX16031 فمعرّفتان بنفس نمط إعادة المحاولة لكن لم تُستدعَيا قط في MainFunction — شفرة ميتة موروثة من قالب العائلة. لا يستطيع المستكشف إذن إغلاق صفقة جزئيًا أو تعديل وقف خسارة/جني أرباح لمركز مفتوح عبر هاتين الدالتين؛ فوقف الخسارة وجني الأرباح يُضبطان عند الدخول فقط.

تستحق بضعة عيوب في المصدر الإشارة لأنها تظهر في سجلات الاختبار التاريخي. تتحقّق OnInit() في السطر 98 من if(ExtIndicatorHandle == INVALID_HANDLE) بعد إنشاء مقبض iMA — وهي نسخة منسوخة من كتلة التحقق من iStochastic قبلها بسطرين. لا يعمل التحقق من المتوسط المتحرك بشكل صحيح إلا عند فشل مقبض iStochastic أيضًا. تُحرّر OnDeinit() في السطر 113 المقبض ExtIndicatorHandle (iStochastic) لكن لا تستدعي IndicatorRelease على مقبض المتوسط المتحرك، فيتسرب مقبض المتوسط في كل تفريغ للمستكشف. أما عبارتا Print() في السطرين 80-81 فتنطلقان عند كل تهيئة وستملآن تبويب Experts برسائل "InpSL=200" و"InpTP=200". لا يكسر أيٌّ من هذه العيوب التداول الحي، لكنها تُلوّث السجلات، وأحدها (تسرّب OnDeinit) يُراكم ضغط المقابض عند إعادة تحميل المستكشف بشكل متكرر.

للنشر، يُقرن المستكشف بـ XAUUSD على M5 أو H1، وحجم افتراضي 0.10، ووقف خسارة/جني أرباح 200/200، وتوقّف زمني عشر شموع، وستوكاستيك بطيء (47,9,13) يقرأ خط %D. الحد الأدنى الموصى به للرصيد 100 دولار (الحد الأدنى الصارم في المخطط)؛ ويمنح 500 دولار هامشًا لحجم 0.10 ليمتص سلسلة خسائر دون تآكل الحساب. ولأن المستكشف يقرأ خط %D لستوكاستيك بطيء ولا يُطلق إلا حين يكون %D في منطقة متطرفة، فإنه يطبع صفقات أقل من إعداد ستوكاستيك أسرع، وتتجمّع معظم تلك الصفقات حول تحوّلات النظام حين يتقاطع مرشّح الاتجاه وهندسة الهارامي وتطرّف الستوكاستيك داخل الشمعة نفسها. أنظف نشر متوازٍ هو تشغيل EX16029 (MFI) أو EX16030 (RSI) بأرقام سحرية منفصلة — ثلاثة مؤشرات تذبذب بطيئة تؤكّد جوانب مختلفة من نفس هندسة الهارامي.

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

عند كل شمعة جديدة، تُنفّذ OnTick() الدالة CheckState() التي تستدعي CheckPattern() لمسح آخر شمعتين مكتملتين بحثًا عن هندسة الهارامي الصاعدة أو الهابطة المكوّنة من خمسة شروط (احتواء الشمعة الداخلية، جسم الشمعة السابقة الطويل فوق متوسط الجسم لفترة 12، إضافةً إلى شرط مسبق للاتجاه MidPoint مقابل SMA(5))، ثم تستدعي CheckConfirmation() لقراءة خط %D (SIGNAL_LINE) لمؤشر iStochastic(47,9,13,MODE_SMA,STO_LOWHIGH) عند الشمعة 1 لاشتراط تداخل تشبّع بيعي (للشراء) أو تشبّع شرائي (للبيع). تُجدول الإشارات المؤكّدة في ExtSignalOpen للشمعة التالية، حيث تُسوّي PositionOpen() الصفقة عند InpLot = 0.10 وتكتب وقف الخسارة وجني الأرباح في تذكرة الأمر، مع تطبيق حاجز تجاوز السبريد على كلا الساقَين. تُراقَب المراكز المفتوحة عند كل تيك: تُوجّه المرحلة 3 إشارات تقاطع الستوكاستيك (أربع حالات عند 80/20) إلى CloseBySignal()، وتمشي المرحلة 4 على BarsHold() مقارنةً بـ InpDuration = 10 لتطلق CloseByTime() عند انتهاء فترة الاحتفاظ. تُغلّف TryClose_EX16031 الإغلاق بثلاث محاولات على رموز REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED؛ أمّا TryClosePartial_EX16031 وTryModify_EX16031 فتبقيان شفرة ميتة غير مستدعاة في المصدر.

إشارة الدخول

يُطلق الدخول الطويل عندما تكتشف CheckPattern() هندسة هارامي صاعدة: الشمعة الأخيرة صاعدة (Close(1) > Open(1))، والشمعة السابقة شمعة هابطة طويلة يتجاوز جسمها متوسط الجسم لفترة 12 (AvgBody(1))، والجسم الصاعد محتوٍ داخل الجسم الهابط السابق (Close(1) < Open(2) AND Open(1) > Close(2))، ومنتصف نطاق الشمعة السابقة MidPoint(2) أدنى من متوسط السعر للإغلاق للمتوسط المتحرك البسيط لخمس فترات (CloseAvg(2)). ثم تشترط الإشارة أن تقرأ CheckConfirmation() خط %D (SIGNAL_LINE) لمؤشر iStochastic(47,9,13,MODE_SMA,STO_LOWHIGH) أدنى من 30 عند الشمعة 1. ويطلق إعداد الهارامي الهبوطي المعكوس صفقات بيع عندما يقرأ خط %D ذاته أعلى من 70.

إشارة الخروج

الخروج بالإشارة عندما ترصد CheckCloseSignal() تقاطعًا من أربع حالات على مخزن %D (SIGNAL_LINE) للستوكاستيك: يُغلق مركز الشراء عند تقاطع هبوطي لمستوى 80 (تلاشي التشبّع الشرائي) أو تقاطع هبوطي لمستوى 20 (استمرار الانهيار التشبّعي)، مع عكس إغلاق البيع لهذه التحركات كتقاطعات صاعدة عند مستويي 20 و80. والخروج بالزمن عندما تُبلّغ BarsHold() أن الصفقة المفتوحة صمدت InpDuration = 10 شمعة مكتملة على الإطار الزمني الحالي. كما يفرض كلٌّ من وقف الخسارة الثابت 200 نقطة وجني الأرباح الثابت 200 نقطة خروجًا بنسبة مخاطرة إلى عائد 1:1 عندما لا يُطلَق أيٌّ من الزنادَين السابقين أولاً.

وقف الخسارة

يحمل كل مركز وقف خسارة بمقدار 200 نقطة من سعر الدخول، يُضبط في PositionOpen() عبر InpSL مع تفعيل تجاوز السبريد: إذا كان السبريد الفعلي مساويًا أو أكبر من مسافة 200 نقطة، ينهار الوقف إلى قيمة السبريد كحاجز دفاعي ضد وضع الوقف داخل السبريد. لا يُحرّك المستكشف وقف الخسارة لاحقًا إلى نقطة التعادل أو يطبّق أي تتبع — فوقف الخسارة يُكتب مرّة واحدة عند إرسال الأمر.

جني الأرباح

يحمل كل مركز جني أرباح بمقدار 200 نقطة من سعر الدخول، يُضبط في PositionOpen() عبر InpTP ويعكس وقف الخسارة تمامًا بنسبة مخاطرة إلى عائد 1:1. وينطبق نفس تجاوز السبريد: إذا كان السبريد الفعلي مساويًا أو أكبر من مسافة 200 نقطة لجني الأرباح، ينهار الهدف إلى قيمة السبريد بدلًا من الإزاحة المطلوبة. يُطلَق جني الأرباح في تذكرة أمر منفصلة؛ ولا يوجد تنفيذ جزئي أو جني أرباح متدرّج.

الأنسب لـ

الحد الأدنى الموصى به للرصيد 100 دولار (الحد الأدنى الصارم في المخطط)؛ ويمنح 500 دولار هامشًا لحجم 0.10 ليمتص سلسلة خسائر دون تآكل الحساب عند كل 200 نقطة من وقف الخسارة. يُشغَّل على XAUUSD M5 كما صُمّم، أو H1 لتتابعات هارامي أبطأ — فبطء الستوكاستيك (47,9,13) مع تجانس 13 فترة يهدف عمدًا إلى نافذة تعادل نحو أربع ساعات من شريط M5، فيتصرف M5 وH1 بشكل متّسق. يكون المستكشف أكثر أمانةً على حسابات ECN/RAW منخفضة السبريد حيث يبقى السبريد الفعلي أدنى بكثير من 200 نقطة لوقف الخسارة/جني الأرباح؛ وإلا قد ينطلق انهيار تجاوز السبريد داخل PositionOpen() ويُقلّص هندسة الصفقة. ملف المخاطر: متوسط. والأنشر الأمثل هو تشغيله كساق متوازية إلى جانب EX16029 (هارامي + MFI) أو EX16030 (هارامي + RSI) بأرقام سحرية منفصلة لتأكيد هندسة الشمعة الداخلية نفسها من ثلاث زوايا لمؤشرات تذبذب مختلفة.

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

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

العائلة: Trend الماجيك: 22216031 الإصدار: 2.00

الوصف: Harami pattern + Stoch confirm, MA trend, time exit 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CheckState()
  • PositionOpen()
  • CloseBySignal()
  • CloseByTime()
  • PositionExist()
  • PositionExpiredByTimeExist()
  • BarsHold()
  • Open()
  • Close()
  • Low()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16031 Trend — Execution Flow (from source analysis)
// Family: Trend
// Harami pattern + Stoch confirm, MA trend, time exit 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)

ملف التحسين

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

كيفية تثبيت الإكسبرت على 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اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
  7. 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
InpAverBodyPeriod12period for calculating average candlestick size
InpMAPeriod5Trend MA period
InpStochK47period %K
InpStochD9period %D
InpStochSlow13smoothing period %K
InpStochAppliedSTO_LOWHIGHcalculation type
InpStochMAMODE_SMAsmoothing type
InpDuration10position holding time in bars
InpSL200Stop Loss in points
InpTP200Take Profit in points
InpSlippage10slippage in points
InpLot0.1lot
InpMagicNumber22216031Magic Number
InpTradeComment"Psgrowth.com Expert_16031"Trade comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16031.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16031 BullishBearish_Harami_Stoch - Harami pattern + Stochastic confirm + MA trend filter, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>

#define SIGNAL_BUY    1             // Buy signal
#define SIGNAL_NOT    0             // no trading signal
#define SIGNAL_SELL  -1             // Sell signal

#define CLOSE_LONG    2             // signal to close Long
#define CLOSE_SHORT  -2             // signal to close Short

input group "=== Pattern Parameters ==="
input int  InpAverBodyPeriod=12;    // period for calculating average candlestick size
input int  InpMAPeriod      =5;     // Trend MA period
input int  InpStochK        =47;    // period %K
input int  InpStochD        =9;     // period %D
input int  InpStochSlow     =13;    // smoothing period %K
input ENUM_STO_PRICE InpStochApplied=STO_LOWHIGH; // calculation type
input ENUM_MA_METHOD InpStochMA     =MODE_SMA;    // smoothing type

input group "=== Trade Parameters ==="
input uint InpDuration=10;          // position holding time in bars
input uint InpSL      =200;         // Stop Loss in points
input uint InpTP      =200;         // Take Profit in points
input uint InpSlippage=10;          // slippage in points
input group "=== Money Management ==="
input double InpLot   =0.1;         // lot
input group "=== Identity ==="
input long InpMagicNumber=22216031;   // Magic Number
input string   InpTradeComment       = "Psgrowth.com Expert_16031"; // Trade comment

//--- global variables
int    ExtAvgBodyPeriod;            // average candlestick calculation period
int    ExtSignalOpen     =0;        // Buy/Sell signal
int    ExtSignalClose    =0;        // signal to close a position
string ExtPatternInfo    ="";       // current pattern information
string ExtDirection      ="";       // position opening direction
bool   ExtPatternDetected=false;    // pattern detected
bool   ExtConfirmed      =false;    // pattern confirmed
bool   ExtCloseByTime    =true;     // requires closing by time 
bool   ExtCheckPassed    =true;     // status checking error

//---  indicator handles
int    ExtIndicatorHandle=INVALID_HANDLE;
int    ExtTrendMAHandle  =INVALID_HANDLE;

//--- service objects
CTrade      ExtTrade;
CSymbolInfo ExtSymbolInfo;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print("InpSL=", InpSL);
   Print("InpTP=", InpTP);

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

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

الوسوم:ex16031trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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