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

Pipsgrowth EX07014 MA — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX07014 MA — Classic single moving average crossover EA that opens positions when price crosses the MA, with risk-based lot sizing, d. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يأتي Pipsgrowth EX07014 في الطرف الأبسط من عائلة تقاطعات المتوسطات المتحركة. يتكون مؤشره بالكامل من سطر واحد: متوسط متحرك بسيط محسوب من سعر الإغلاق، دورته 12، مزاح بستة شموع إلى الخلف. لا يوجد مؤشر RSI ولا ADX ولا ATR ولا بولنجر ولا انحياز لإطار زمني أعلى ولا شريط متوسطات متعددة. اختار المؤلف الاتجاه المعاكس لـ EX07011 بوحداته الثمانية وـ EX07001 بمصنف أنظمة السوق السباعي — أعطى المتداول تقاطع ارتداد نصفي كلاسيكياً وترك لحركة السعر القيام بالمهمة.

قاعدة الدخول تعيش في CheckForOpen وهي ضيقة عمداً. في كل شمعة جديدة، عند أول تكة فقط (يجب أن يكون rt[1].tick_volume بقيمة 1 أو أصغر — أي قيمة أكبر تعني تكة لاحقة من الشمعة السابقة، وتعود الدالة فوراً)، يسحب الكود قيمة المتوسط المتحرك وينظر إلى علاقة الافتتاح-الإغلاق للشمعة الحالية بهذا الخط. إذا فتحت الشمعة فوق المتوسط وأغلقت تحته، يرسل الكود أمر بيع سوقي. إذا فتحت تحت المتوسط وأغلقت فوقه، يرسل أمر شراء سوقي. لا يوجد نمط شموع ولا تصفية فتائل ولا تأكيد حجم ولا حد أقصى للفارق السعري ولا حد أدنى لحجم الجسم. التقاطع نفسه هو الإشارة.

الإزاحة بستة شموع هي خيار التصميم الذي يمنح النظام طابعه. iMA(_Symbol,_Period,MovingPeriod=12, MovingShift=6, MODE_SMA, PRICE_CLOSE) يعيد قيمة تم حسابها قبل ست شموع، وليس المتوسط المباشر. هذا التأخر المتعمد يعني أن الكود لا يطارد المتوسط — بل يتفاعل مع مرجع قديم. على إطار خمس دقائق يصبح الخط مهدّأً عبر ساعة كاملة من حركة السعر، مما يصفي الكثير من الضوضاء التي كانت ستقلب تقاطعاً أسرع. على H1، ست شموع تساوي ست ساعات؛ يصبح المتوسط مرساةً لنطاق يومي/أسبوعي فعلياً. المتداول الذي يختار M5 يحصل على إيقاع مختلف عن الذي يختار H1، وكلاهما صحيح.

تُستدعى PositionOpen بوقف خسارة وجني أرباح كلاهما 0 — الخادم لا يرى وقفاً صلباً، والكود لا يحدد جني الأرباح أبداً. الخروج الوحيد في CheckForClose: عندما يكون هناك مركز مفتوح وتطبع الشمعة التالية إغلاقاً على الجانب المقابل للمتوسط بالنسبة لافتتاحها (بيع SELL يُفعّل عندما تفتح شمعة مركز الشراء فوق المتوسط وتغلق تحته؛ شراء BUY يُفعّل عندما تفتح شمعة مركز البيع تحت المتوسط وتغلق فوقه)، يطلق TryClose_EX07014 بانحراف مكافئ لثلاث نقاط. التفاف إعادة المحاولة يسير في ثلاث محاولات على فترات 200 مللي ثانية عند أكواد REQUOTE أو TIMEOUT أو PRICE_OFF أو PRICE_CHANGED كما في بقية عائلة EX07xxx. النتيجة الصافية: الكود يحيا ويموت بالتقاطع العكسي. يمكن أن يبقى في صفقة لخمس شموع أو خمسمائة؛ والخروج الوحيد هو التقاطع المعارض التالي.

TradeSizeOptimized هي الدالة الأكثر إثارة للاهتمام في الملف. تبدأ من نفس نمط نسبة المخاطرة من الهامش الحر الذي تستخدمه بقية وحدات EX07، لكن بدلاً من سقف الأسهم تستخدم OrderCalcMargin مقابل لوت 1.0 لاستخراج الهامش لكل وحدة، ثم تضبط اللوت = الهامش_الحر × MaximumRisk / هامش. MaximumRisk الافتراضي 0.02 (2%). بعد ذلك يدخل DecreaseFactor: تمشي الدالة في HistorySelect من آخر صفقة للخلف، تعد الخسائر المتتالية الموسومة بسحر هذا الكود 22207014، وحالما ترى صفقة رابحة (أو تنفد السجلات) تتوقف. إذا كان العد أكبر من 1، يُخفَّض اللوت بمقدار لوت × خسائر / DecreaseFactor، لذا DecreaseFactor=3 وسلسلة من ثلاث خسائر يعطيك تخفيضاً بمقدار لوت × 1.0 — الصفقة التالية عند الحد الأدنى من اللوت. الآلية هي عكس مارتينجال: سلسلة الخسائر تصغّر حجم المركز، ولا تُعاد ضبط السلسلة إلا بصفقة رابحة. يُقرَّر اللوت النهائي بعد ذلك إلى SymbolInfoDouble(SYMBOL_VOLUME_MIN) ويُسقف بـ SYMBOL_VOLUME_MAX، مع مرور التقريب القياسي على stepvol لإبقائه على شبكة الوسيط.

OnInit هي القطعة الثالثة الجديرة بالملاحظة. تكتشف وضع هامش الحساب — ExtHedging = (ACCOUNT_MARGIN_MODE == ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) — وSelectPosition() تتفرع على ذلك. حسابات التحوط تمر في PositionsTotal() وتطابق حسب الرمز والسحر، لذا يمكن لمراكز متعددة في الاتجاه نفسه أن تتراكم إذا سمح الوسيط. حسابات التقاص تستخدم PositionSelect على الرمز مباشرة، ويجب أن يطابق السحر. ExtTrade.SetExpertMagicNumber(MA_MAGIC) وSetTypeFillingBySymbol() هما اللفّافتان القياسيتان؛ إذا فشل إنشاء iMA، ترجع OnInit بـ INIT_FAILED ولن يبدأ الكود. لا يوجد OnTradeTransaction عام ولا تعتيم إخباري ولا نافذة جلسة ولا أرضية أسهم ولا سقف خسارة يومي ولا توقف زمني ولا نقطة تعادل ولا إغلاق جزئي ولا رatchet تتبع ولا تدرّج. فحص Bars > 100 هو شبكة الأمان الوحيدة في مسار الدخول.

ما يحصل عليه المتداول هو منصة اختبار نظيفة لمتوسط متحرك واحد. ضعه على XAUUSD M5، اترك الافتراضيات، وسيطلق الكود عندما يعبر الذهب المتوسط البسيط المزاح بست ساعات. اضبط MovingPeriod إلى 6 لتحصل على تقاطع أسرع وأعنف يتداول أكثر. ادفع MovingShift إلى 0 ليصبح المتوسط آنياً — الإدخالات تضيق، والانعكاسات الكاذبة تتضاعف. ارفع DecreaseFactor إلى 6 لإبطاء تقلص ما بعد الخسارة، اخفضه إلى 2 لضغط المنحنى. لا توجد دالة محسّن في المصدر (لا OnTester)، لذا اختبر المعاملات يدوياً عبر أنظمة تقلب مختلفة، واقبل أن الكود في سوق متذبذب سيدفع ثمن كل تقاطع بخسارة.

لتوقع الاختبار العكسي: منحنى الأسهم على XAUUSD M5 في اتجاه صاعد سيكون متكتلاً لكن صاعداً بشكل عام — تشغيلات طويلة من أرباح صغيرة يفصلها بين الحين والآخر ارتدادات أكبر حيث يتأخر المتوسط المزاح عن انعكاس سريع. معامل التخفيض يعني أن الانخفاضات تنمو في الطول، وليس في حجم اللوت، وهو وضع الفشل الألطف. على EURUSD H1 نفس الكود هو طاحونة بطيئة؛ على M1 ستبدو الإزاحة=6 هراءً. عامل EX07014 كخط أساس لحركة السعر — إنه النقطة المرجعية المجردة التي تُقاس بها بقية وحدات EX07.

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

في كل تكة من OnTick تسأل SelectPosition هل المركز الموسوم بالسحر مفتوحاً. إن نعم تُشغَّل CheckForClose؛ وإن لا تُشغَّل CheckForOpen. تحرس كلتا الدالتين نفسيهما عند أول تكة لشمعة جديدة بقراءة rt[1].tick_volume والعودة مبكراً إذا تجاوز 1، مما يبقي كل قرار على حد شمعة واحدة. يُنشأ iMA(_Symbol,_Period,12,6,MODE_SMA,PRICE_CLOSE) مرة واحدة في OnInit ويُعاد استخدامه؛ الإزاحة=6 تعني أن مخزن المتوسط عند الإزاحة 0 يحمل القيمة التي كانت صالحة قبل ست شموع. تحسب TradeSizeOptimized اللوت = الهامش_الحر × 0.02 / هامش_لكل_لوت، ثم تمشي في سجل الصفقات للخلف تعد الخسائر المتتالية، وإذا تجاوزت السلسلة 1 تطرح لوت × خسائر / DecreaseFactor (افتراضي 3). تُقرَّب النتيجة إلى خطوة حجم الرمز، وتُقرَّر إلى SYMBOL_VOLUME_MIN، وتُسقف بـ SYMBOL_VOLUME_MAX. لا يوجد OnTester ولا مرشح إخباري ولا نافذة جلسة ولا تدرّج ولا نقطة تعادل ولا وقف تتبع ولا إغلاق جزئي ولا توقف زمني — التقاطع العكسي هو الآلية الوحيدة التي تنهي الصفقة.

إشارة الدخول

فتح بيع SELL عند أول تكة لشمعة جديدة عندما تفتح الشمعة فوق SMA(12, shift=6, close) وتغلق تحته؛ فتح شراء BUY على الشرط المعاكس (فتح تحت، إغلاق فوق). مؤشر iMA الواحد هو الإشارة بالكامل — لا مؤشرات إضافية، لا تصفية حجم أو فتائل، لا حد أقصى للفارق السعري. لا يُحرَّس الدخول إلا بـ Bars > 100 (إحماء) وعلامة التداول الطرفية.

إشارة الخروج

المركز بلا وقف خسارة صلب أو جني أرباح. الخروج هو تقاطع عكسي: بيع SELL يفعّل إغلاق شراء BUY مفتوح عندما تفتح تلك الشمعة فوق المتوسط وتغلق تحته، والعكس بالعكس. يعيد TryClose_EX07014 المحاولة ثلاث مرات بفاصل 200 مللي ثانية عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED قبل الاستسلام.

وقف الخسارة

لا يُرسل وقف خسارة لكل صفقة إلى الخادم — SL=0 في PositionOpen. التقاطع العكسي في CheckForClose هو الوقف الوحيد الذي يفرضه الكود، لذا أسوأ خسارة محتملة تتحدد بمدى ابتعاد السعر بين تقاطعين متعارضين.

جني الأرباح

لا يُحدد جني أرباح على المراكز المفتوحة — TP=0 في PositionOpen. تتراكم الأرباح حتى التقاطع العكسي التالي الذي يغلق المركز، مما يجعل وقت الاحتفاظ متغيراً من بضع شموع إلى مئات كثيرة.

الأنسب لـ

مناسب لرصيد أدنى 100 دولار على XAUUSD M5 أو H1، على وسيط بفارق سعري منخفض (التقاطع يطلق عند تكة واحدة دون حد للفارق، لذا فارق 30 نقطة على الذهب سيلتهم الحركة). يعكس تصنيف المخاطرة MEDIUM إعداد MaximumRisk الافتراضي 2%؛ اقرنه بجني أرباح يدوي 1:2 أو أعرض إذا كنت تحتاج هدفاً صلباً، لأن الكود لن يحدد واحداً. الأنسب للمتداولين الذين يريدون تقاطع متوسط متحرك نظيف وشفاف دون تدرّج أو أوامر تتبع أو مرشحات جلسة، ومرتاحين لمسار أسهم منحنى متوسط متحرك واحد.

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

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

العائلة: MA الماجيك: 22207014 الإصدار: 2.00

الوصف: Classic single moving average crossover EA that opens positions when price crosses the MA, with risk-based lot sizing, decrease factor for loss recovery, and position management across a 12-layer architecture. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • TradeSizeOptimized()
  • CheckForOpen()
  • CheckForClose()
  • SelectPosition()
  • TryClose_EX07014()
  • TryClosePartial_EX07014()
  • TryModify_EX07014()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX07014 MA — Execution Flow (from source analysis)
// Family: MA
// Classic single moving average crossover EA that opens positions when price crosses the MA, with risk-based lot sizing, decrease factor for loss recovery, and position management across a 12-layer architecture. 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

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

المعاملالافتراضيالوصف
MA_MAGIC22207014Magic number
InpTradeComment"Psgrowth.com Expert_07014"Trade comment
MaximumRisk0.02Maximum Risk in percentage
DecreaseFactor3Descrease factor
MovingPeriod12Moving Average period
MovingShift6Moving Average shift
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX07014.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX07014 Moving_Average — classic MA crossover with risk-based lot sizing, full 12-layer stack."

#include <Trade\Trade.mqh>

input group "=== Identity ==="
input int    MA_MAGIC           = 22207014; // Magic number
input string InpTradeComment    = "Psgrowth.com Expert_07014"; // Trade comment

input group "=== Risk Management ==="
input double MaximumRisk        = 0.02;    // Maximum Risk in percentage
input double DecreaseFactor     = 3;       // Descrease factor

input group "=== Moving Average Settings ==="
input int    MovingPeriod       = 12;      // Moving Average period
input int    MovingShift        = 6;       // Moving Average shift
//---
int    ExtHandle=0;
bool   ExtHedging=false;
CTrade ExtTrade;
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double TradeSizeOptimized(void)
  {
   double price=0.0;
   double margin=0.0;
//--- select lot size
   if(!SymbolInfoDouble(_Symbol,SYMBOL_ASK,price))
      return(0.0);
   if(!OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1.0,price,margin))
      return(0.0);
   if(margin<=0.0)
      return(0.0);

   double lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
//--- calculate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      //--- select history for access
      HistorySelect(0,TimeCurrent());
      //---
      int    orders=HistoryDealsTotal();  // total history deals
      int    losses=0;                    // number of losses orders without a break

      for(int i=orders-1;i>=0;i--)
        {
         ulong ticket=HistoryDealGetTicket(i);
         if(ticket==0)
           {
            Print("HistoryDealGetTicket failed, no trade history");
            break;
           }
         //--- check symbol
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
            continue;
         //--- check Expert Magic number

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

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

الوسوم:ex07014mapipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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