Pipsgrowth EX07015 MA — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX07015 MA — Single moving average EA that trades price/MA crossovers within a channel defined by high/low level pips, with SL/TP and. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX07015 هو مستشار خبير (EA) يعتمد على متوسط متحرك واحد مبني حول نمط قناة مُرمّز بقيم ثابتة. في أعلى الملف يستخدم المحرك مؤشراً واحداً فقط — iMA مُهيأ كـ EMA بفترة 44 على سعر الإغلاق للإطار الزمني المختار، مزاحاً للأمام بأربع شموع. يصف الترويسة بنية من 12 طبقة (REGIME، SIGNAL، ENTRY، CONFIRM، NO-TRADE، CAPITAL CAP، RISK، SIZING، MANAGE، EXIT، SCALING، OnTester)، لكن التطبيق في هذا الإصدار يُفعّل فقط الطبقات الثلاث الأولى. كل ما بعد قرار الدخول يُترك لوقف الخسارة وجني الأرباح الثابتين عند الوسيط، ومساعدات إدارة الصفقات TryClose_EX07015 وTryClosePartial_EX07015 وTryModify_EX07015 مُعرّفة في أسفل الملف لكنها لا تُستدعى أبداً من OnTick. هذه الفجوة بين التوثيق والكود هي أول ما ينبغي أن يعرفه القارئ الحذر.
الإشارة نفسها غير اعتيادية. في كل tick، تقرأ دالة GetSignal قيمة المتوسط المتحرك عند الشمعة InpCurrentBarMA (افتراضياً 0 — آخر شمعة مكتملة) وشمعة OHLC واحدة عند InpCurrentBarOHLC (أيضاً افتراضياً 0). ثم تبني قناة سعرية غير متناظرة حول المتوسط المتحرك: شريط علوي عند MA + 14 نقطة وشريط سفلي عند MA - 3 نقاط. عدم التناظر مقصود. لتوليد إشارة شراء، يجب أن يكون low الشمعة أعلى من المتوسط المتحرك تماماً، وأن يكون low أقل من الشريط العلوي تماماً، وأن يكون open أعلى من الشريط العلوي تماماً. بمعنى آخر، يجب أن يتجاوز جسم الشمعة السقف بينما يظل ذيلها في الجانب الطويل من المتوسط. إشارة البيع هي المرآة: يكون high الشمعة أقل من المتوسط، وhigh أعلى من الشريط السفلي، وopen أقل من الشريط السفلي. هذا نمط دقيق، وليس تقاطعاً متساهلاً. الشمعة التي تخترق المتوسط بذيلها فقط — الاختراق الكاذل الكلاسيكي في الكتب — لا تستوفي الشروط، لأن الجسم يجب أن يكون على الجانب البعيد من القناة.
عندما تُرجع GetSignal قيمة غير صفرية، تتحقق OnTick من عدد الصفقات المفتوحة عبر CalculateAllPositions. لا يحتفظ المستشار أبداً بأكثر من صفقة شراء واحدة وصفقة بيع واحدة في نفس الوقت على نفس الرمز والسحر 22207015. إذا لم تكن هناك صفقة شراء مفتوحة والإشارة +1، يستدعي المحرك OpenBuy مع Ask - InpStopLoss وAsk + InpTakeProfit. إذا لم تكن هناك صفقة بيع مفتوحة والإشارة -1، يستدعي OpenSell مع Bid + InpStopLoss وBid - InpTakeProfit. كلا المسارَين يُشغّلان فحص CheckVolume مسبقاً مقابل الحد الأدنى والأقصى وخطوة الوسيط قبل إرسال الأمر عبر CTrade. لا توجد حلقة إعادة محاولة، ولا تجزئة للأوامر، ولا معالجة للتنفيذ الجزئي بخلاف ما توفره CTrade. يفحص فحص ما قبل الفتح في OnTick أيضاً الأمر قبل إرساله — إذا كان وقف الخسارة المحسوب سيقع على الجانب الخاطئ من السعر الحالي، يُتخطى الأمر بدلاً من إرساله بوقف معيب.
إدارة المخاطر ثابتة. InpLots افتراضياً 0.1 ولا يوجد تحجيم حسب نسبة المخاطرة أو رصيد الحساب في أي مكان من الكود. وقف الخسارة الثابت 100 نقطة من الدخول، وجني الأرباح الثابت 50 نقطة. هذه نسبة مخاطرة إلى عائد 2:1 معكوسة — الصفقة تخسر 100 نقطة عند الوقف وتربح 50 فقط عند الهدف. النمط مبني للفوز بمعدل إصابة عالٍ من حركات تمدد الجسم الصغيرة بدلاً من عدد قليل من الأرباح الكبيرة، وجني الأرباح القصير يعكس هذا التوقع. كلا الرقمين قابلان للتكوين من قبل المستخدم، لكن المتداولين الذين يغيرون رقماً واحداً فقط يجب أن يفكروا بعناية: تشديد TP إلى 25 نقطة دون تغيير SL يدفع النظام أكثر إلى "أرباح صغيرة كثيرة، خسائر نادرة كبيرة"، ومعظم الوسطاء سيرفضون وقف 0.1 لوت على مسافة أقل من 5 نقاط على تغذية XAUUSD بثلاثة أرقام.
مدخل الإطار الزمني يستحق الانتباه. InpTimeframe عدد صحيح من 0 إلى 7 يُحوَّل إلى PERIOD_M1..PERIOD_D1 عبر MapTimeframeInt؛ افتراضياً هو 0، الذي ترسله الدالة إلى PERIOD_H1. القيم 1، 2، 3، 4، 5، 6، 7 تُنتج M1، M5، M15، M30، H1، H4، D1 على التوالي. مدخل السعر المطبق هو أيضاً عدد صحيح 1-7 (إغلاق، افتتاح، أعلى، أدنى، متوسط، نموذجي، مرجح) — الإغلاق هو الافتراضي وهو ما صُمم من أجله النمط. InpCurrentBarMA وInpCurrentBarOHLC افتراضياً 0، مما يعني أن المحرك يقرأ آخر شمعة مكتملة؛ رفعهما يُزيح النظر إلى أبعد في التاريخ، وهو مفيد للتأكد من أن تمدد الجسم لم يكن ارتفاعاً ليك واحد. يقبل مدخل طريقة المتوسط المتحرك MODE_SMA وMODE_EMA وMODE_SMMA وMODE_LWMA؛ EMA هو الافتراضي وكان الافتراض الذي بُنيت عليه عروض القناة.
الشكل العملي للنظام ضيق بالتالي. لا يوجد Martingale، ولا شبكة، ولا تدرّج (pyramid)، ولا وقف متحرك، ولا نقطة تعادل، ولا إغلاق جزئي، ولا وقف زمني، ولا مرشح جلسة، ولا مرشح أخبار، ولا سقف خسارة يومي، ولا أرضية حقوق ملكية، ولا روتين تحسين OnTester، ولا لوحة معلومات. اللوت الوحيد 0.1 يُرسل، ويحتفظ الوسيط بـ SL وTP، ولا يتفاعل EA إلا مع إشارة "جسم يتجاوز القناة" جديدة — وعندها قد يقلب الجانب. ولأن كلاً من الشراء والبيع يمكن أن يكونا مفتوحين في وقت واحد، فإذا أُغلقت صفقة شراء بـ SL أو TP ثم صدرت إشارة بيع قبل إغلاق شراء آخر، سيحتفظ EA بكلا الساقين. السحر الافتراضي 22207015 يُبقي هذه التذاكر معزولة عن أي EA آخر مرتبط بنفس الحساب، ويتم استدعاء m_trade.SetExpertMagicNumber عند التهيئة بحيث يُفرض السحر من جهة الخادم وكذلك محلياً.
لتوقعات الاختبار الخلفي، فكّر في EA كمضاد اتجاه سريع بنسبة مخاطرة إلى عائد معكوسة 2:1. على الأدوات ذات الارتداد المستمر للمتوسط وامتدادات الجسم الصغيرة — مثل XAUUSD M5 خلال افتتاح نيويورك، حيث تنسحب التراجعات الصغيرة داخل 50 نقطة بشكل متكرر — يجب أن يدعم معدل الإصابة الربحية إذا كان EMA(44) عريضاً بما يكفي لتصفية الضوضاء الكلية. على الجلسات ذات الاتجاه حيث يصبح تمدد الجسم اختراقاً حقيقياً، سيُفعّل النمط مرة، ويُوقف عند 100 نقطة، ثم على الأرجح ستفشل الشمعة التي أغلقت الوقف في الاختبار التالي لأن افتتاحها على الجانب الخاطئ من القناة. ينبغي على المتداولين الاختبار على بيانات التيك مع تكاليف الانتشار والتبييت الواقعية المُضمنة؛ الانزلاق 10 نقاط (m_slippage=10) هو الحماية الوحيدة ضد إعادة التسعير عند الدخول، وغياب حلقة إعادة المحاولة في إرسال الصفقة يعني أن السوق السريع قد يتسبب في تفويت الدخول. الاستدعاء الافتراضي m_trade.SetTypeFillingBySymbol يطابق سياسة التعبئة المسموح بها لدى الوسيط تلقائياً، لذا يجب أن يعمل EA على حسابات التحوط والمقاصة دون تغييرات يدوية، ويعمل الإزاحة الأمامية 4 شموع في المتوسط المتحرك كتأكيد تأخر مدمج يُصفّي معظم ارتفاعات التيك الواحد من مسار الإشارة.
تفاصيل الاستراتيجية
في كل tick، تستدعي OnTick دالة CalculateAllPositions لحساب عدد أوامر الشراء والبيع المفتوحة تحت السحر 22207015، ثم تستدعي GetSignal التي تقرأ مخزن iMA واحد وشمعة OHLC واحدة من الإطار الزمني المختار. تبني دالة الإشارة سقفاً 14 نقطة وأرضية 3 نقاط حول EMA، ثم تتحقق من جسم وذيل الشمعة مقابل هذه النطاقات — يتطلب الشراء أن يكون low الشمعة أعلى من EMA وopen أعلى من النطاق العلوي، مع بقاء low أقل من ذلك النطاق؛ البيع هو المرآة. إذا كانت الإشارة تطابق جانباً بلا صفقة مفتوحة، تُرسل OnTick الأمر إلى OpenBuy أو OpenSell، وكلتاهما تُشغّلان فحص CheckVolume مسبقاً وترسلان الأمر عبر CTrade مع SL وTP ثابتين. مساعدات إعادة المحاولة TryClose_EX07015 وTryClosePartial_EX07015 وTryModify_EX07015 مُعرّفة في أسفل الملف لكنها غير مدمجة في مسار التيك، لذا إدارة الصفقات بخلاف الوقوف الثابتة للوسيط غائبة عمداً. لا يوجد OnTester، ولا مرشح أخبار، ولا بوابة جلسة، ولا سقف خسارة يومي، ولا لوحة معلومات — EA يُسجّل رموز النتائج عبر PrintResultTrade فقط.
تُفعَّل إشارة الشراء عندما يكون low للشمعة أعلى من EMA بفترة 44، ويكون low للشمعة أقل من سقف MA+14 نقطة، ويكون open أعلى من ذلك السقف — أي أن جسم الشمعة يتجاوز القناة على الجانب الطويل بينما يظل ذيلها في الجانب الصحيح من المتوسط. إشارة البيع هي المرآة الصارمة (high أقل من MA، high أعلى من أرضية MA-3، open أقل من تلك الأرضية). تُولَّد الإشارة عبر GetSignal التي تقرأ EMA من خلال iMAGet وشمعة OHLC واحدة من الإطار الزمني المختار، ثم تُرسَل من OnTick إلى OpenBuy أو OpenSell فقط عندما لا يكون للجانب المطابق أي صفقة مفتوحة.
الخروج مفوَّض بالكامل إلى الوسيط. لا يوجد وقف متحرك، ولا نقطة تعادل، ولا إغلاق جزئي، ولا وقف زمني مُطبَّق في الكود — المساعدتان TryClose_EX07015 وTryClosePartial_EX07015 وTryModify_EX07015 موجودات لكن لا تُستدعَين أبداً. تُغلَق الصفقة عندما يصل السعر إلى وقف الخسارة الثابت عند 100 نقطة أو جني الأرباح الثابت عند 50 نقطة، وبعدها يمكن لإشارة معاكسة الاتجاه إعادة الدخول على الجانب الآخر. ولأن EA يسمح بفتح شراء وبيع في وقت واحد، فإن الانعكاس الاتجاهي ليس بديلاً عن الوقف.
وقف خسارة ثابت عند InpStopLoss (افتراضياً 100 نقطة)، يُحدَّد من جهة الخادم عند الدخول. يفحص فحص ما قبل الفتح في OnTick الأمر قبل إرساله — إذا كان وقف الخسارة المحسوب سيقع على الجانب الخاطئ من السعر الحالي، يُتخطى الأمر بدلاً من إرساله بوقف معيب. لا يوجد بديل مُعدَّل حسب التذبذب أو متحرك.
جني أرباح ثابت عند InpTakeProfit (افتراضياً 50 نقطة)، يُحدَّد من جهة الخادم عند الدخول. نسبة SL:TP 2:1 (100 نقطة مخاطرة مقابل 50 نقطة عائد) تعني أن الاستراتيجية تعتمد على معدل إصابة أعلى من 67% تقريباً على نمط الإشارة لتكون مربحة صافية قبل التكاليف.
النشر الافتراضي هو XAUUSD على الإطار الزمني M5 أو H1 (InpTimeframe=2 لـ M5، 5 لـ H1) مع وسيط ECN بفارق سعر منخفض — نمط "الجسم يتجاوز القناة" يعتمد على قدرة open الشمعة على تجاوز 14 نقطة من المتوسط المتحرك بنظافة، وهو ما ستأكله ضوضاء الانتشار بسرعة. الحد الأدنى للرصيد 100 دولار عند 0.1 لوت (حجم اللوت الوحيد في EA)، مما يعني أن التراجع في حقوق الملكية هو التحكم الرئيسي في المخاطرة؛ المتداولون الذين لديهم حساب 200 دولار أو أكثر يجب أن يُقللوا اللوت أو يختبروا بـ 0.01 مايكرو للحفاظ على مخاطرة معقولة لكل صفقة. أفضل الجلسات هي التي يُنتج فيها XAUUSD تمدادات جسم صغيرة ونظيفة بعيداً عن EMA 44 — عادةً أول ساعتين من نيويورك وتداخل لندن-نيويورك على M5، أو النطاق الآسيوي على H1. نسبة المخاطرة إلى العائد المعكوسة 2:1 تعني أن EA يحتاج إلى معدل إصابة أعلى من الثلثين ليكون مربحاً صافياً، لذا هو الأنسب للمتداولين القادرين على اختبار بيانات التيك بتكاليف الانتشار والتبييت الواقعية، والذين يفهمون أن هذا EA هيكل للدخول فقط، وليس نظام تداول مكتمل.
منطق الاستراتيجية
Pipsgrowth EX07015 MA — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MA
الماجيك: 22207015
الإصدار: 2.00
الوصف:
Single moving average EA that trades price/MA crossovers within a channel defined by high/low level pips, with SL/TP and bar-based signal detection across a 12-layer architecture. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
OnTradeTransaction()RefreshRates()CheckVolumeValue()CalculateAllPositions()GetSignal()iMAGet()OpenBuy()OpenSell()PrintResultTrade()TryClose_EX07015()
// Pipsgrowth EX07015 MA — Execution Flow (from source analysis)
// Family: MA
// Single moving average EA that trades price/MA crossovers within a channel defined by high/low level pips, with SL/TP and bar-based signal detection 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
- 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // MA and OHLC: Timeframe |
| Inp_ma_period | 44 | MA: averaging period |
| Inp_ma_shift | 4 | MA: horizontal shift |
| Inp_ma_method | MODE_EMA | MA: hsmoothing type |
| Inp_applied_price | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // MA: type of price |
| InpCurrentBarMA | 0 | Current Bar (get MA) |
| InpCurrentBarOHLC | 0 | Current Bar (get OHLC) |
| InpLevelHigh | 14 | Сeiling of the channel (in pips) |
| InpLevelLow | 3 | Floor of the channel (in pips) |
| InpLots | 0.1 | Lots |
| InpStopLoss | 100 | Stop Loss (in pips) |
| InpTakeProfit | 50 | Take Profit (in pips) |
| m_magic | 22207015 | magic number |
| InpTradeComment | "Psgrowth.com Expert_07015" | Trade comment |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX07015 One_MA_EA — single MA price crossover with channel levels, full 12-layer stack."
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
CPositionInfo m_position; // trade position object
CTrade m_trade; // trading object
CSymbolInfo m_symbol; // symbol info object
//--- input parameters
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_InpTimeframe = PERIOD_H1;
ENUM_APPLIED_PRICE g_Inp_applied_price = PRICE_CLOSE;
input group "=== Indicator Settings ==="
input int InpTimeframe = 0; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // MA and OHLC: Timeframe
input int Inp_ma_period = 44; // MA: averaging period
input int Inp_ma_shift = 4; // MA: horizontal shift
input ENUM_MA_METHOD Inp_ma_method = MODE_EMA; // MA: hsmoothing type
input int Inp_applied_price = 1; // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // MA: type of price
input int InpCurrentBarMA = 0; // Current Bar (get MA)
input int InpCurrentBarOHLC = 0; // Current Bar (get OHLC)
input ushort InpLevelHigh = 14; // Сeiling of the channel (in pips)
input ushort InpLevelLow = 3; // Floor of the channel (in pips)
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية متابعة الاتجاه
Pipsgrowth EX16080 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16080 Trend — EURUSD triple-EMA trend follower — trades EMA20/50 cross with EMA200 filter on H4, ATR-based SL/TP, risk-percent sizing . إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16081 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16081 Trend — Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fib. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16033 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16033 Trend — Price-action scalping EA using distance-based grid entries with net-take-profit targeting and optional lot multiplier. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.