Pipsgrowth EX18110 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · EURUSD · M5، H1
Pipsgrowth EX18110 TrendFollow — Classic Donchian Channel (Turtle Trading) breakout EA. LONG when price breaks above N-period highest high, SHORT when pr. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX18110 هو مستشار خبير يعتمد على اختراق قناة دونشيان — ما يُعرف بنمط تداول السلحفاة، مختزلًا في خطين أفقيين وقاعدة بسيطة: شراء عندما يتجاوز ارتفاع شمعة أعلى قمة لآخر 20 شمعة، وبيع عندما ينخفض الانخفاض عن أدنى قاع. تُعاد القناة حسابها في كل تكّة عبر الدالة CalculateDonchianChannel() التي تستعرض آخر عدد من الشموع يحدده DonchianPeriod (افتراضيًا 20) وتخزن النتيجة في g_upperChannel وg_lowerChannel. يستخدم المقارن الفعلي للاختراق داخل CheckForSignals() الشمعة 1 (الشمعة المنتهية لتوها)، ما يمنع إعادة الرسم ويجعل القرار متوافقًا مع الإغلاق وليس مع التكّة الجارية.
الفترة الافتراضية 20 هي نظام Turtle S1 الأصلي. مع شموع M5، يمتد ذلك على 100 دقيقة من نطاق الارتفاع/الانخفاض — نافذة ضيقة بما يكفي لأن تلتقط اختراقات جلسة لندن الصباحية (07:00–09:00 بتوقيت GMT) بشكل موثوق، لكنها واسعة بما يكفي لأن نادرًا ما يولّد الضجيج داخل اليوم اختراقًا كاذبًا. الفترة قابلة للضبط بالكامل: أنزلها إلى 10 لقناة أسرع وأكثر تفاعلًا، أو ارفعها إلى 55 لنظام Turtle S2 الأبطأ الذي يلتقط موجات تمتد عدة أيام. يرفض فحص الحدود داخل OnInit() أي قيمة أقل من 5 أو أعلى من 200.
المخاطرة ثابتة عند 1% من الرصيد لكل صفقة افتراضيًا. تحسب CalculateLotSize() حجم اللوت المناسب من مسافة وقف الخسارة: riskAmount = الرصيد * RiskPercent / 100، ثم lotSize = riskAmount / (slDistance / tickSize * tickValue). تقوم NormalizeLot() بتقريب النتيجة إلى مضاعف حجم الصفقة لدى الوسيط وتقييدها ضمن SYMBOL_VOLUME_MIN وSYMBOL_VOLUME_MAX. اضبط RiskPercent = 0 فيعود المستشار إلى FixedLotSize = 0.01 للاختبار بالميكرو-لوت. يعني MaxPositions = 1 أن المستشار يحتفظ بصفقة واحدة في كل مرة؛ أي اختراق في الاتجاه المعاكس يغلق الصفقة القائمة أولًا عبر CloseAllPositions() ثم يفتح الجديدة.
وقف الخسارة الوقائي والهدف يعتمدان على ATR افتراضيًا. يُنشأ المقبض g_atrHandle داخل OnInit() ضد ATRPeriod = 14، ويُحدَّث g_atrValue في كل تكّة. يقف وقف الخسارة عند ATR * ATRMultiplierSL = ATR * 2.0 ويقف جني الأرباح عند ATR * ATRMultiplierTP = ATR * 3.0 — نسبة مخاطرة إلى عائد 1.5 تفترض أن موجة الاتجاه ستتفوق على الوقف. لمن يفضل نقاط الوقف الثابتة، يفعّل UseATRStops = false قيمتي FixedStopLossPips = 50 وFixedTakeProfitPips = 100. يُرسل الوقف والهدف من جانب الخادم عند الدخول، فينفذهما الوسيط حتى لو انقطع المستشار.
بمجرد الدخول في الصفقة، يتدخل طبقتا حماية. تعمل ApplyBreakeven() عند كل شمعة جديدة؛ وحالما يتحرك السعر 20 نقطة في الربح (BreakevenTriggerPips)، يُرفع وقف الخسارة إلى الدخول + 2 نقطة (BreakevenOffsetPips)، مع مصفوفة لكل تذكرة (g_breakevenTickets[]) تتعقب الصفقات التي نُقل وقفها لمنع المستشار من تعديل نفس الأمر مرارًا. ثم تتولى ApplyTrailingStop() المتابعة: بعد 30 نقطة ربح (TrailingStartPips)، يتبع وقف الخسارة السعر بفارق 15 نقطة (TrailingStepPips)، ويتحرك خطوة واحدة فقط عندما يتجاوز السعر نقطة واحدة فوق الوقف السابق. الأثر المشترك هو صفقة بلا مخاطرة بعد 20 نقطة، ثم تُقفل تدريجيًا مع امتدادها.
فلتر الجلسة وعطلة نهاية الأسبوع هما الطبقة الدفاعية. تستخدم IsInSession() دالة TimeGMT() للمقارنة مع SessionStartHour = 7 وSessionEndHour = 16 — نافذة لندن فقط في الإعداد الافتراضي. مع UseSessionFilter = false يتداول المستشار على مدار الساعة. ترجع IsWeekendApproaching() صحيحًا يوم الجمعة بعد الساعة 20:00 بتوقيت GMT، وحينها تستدعي OnTick() الدالة CloseAllPositions(0) وتنهي عمل الشمعة — لا تُحمل أي صفقات إلى فجوة نهاية الأسبوع. تراقب IsMaxDailyLossReached() المتغير g_dailyProfit مقابل 5% من الرصيد (MaxDailyLossPct)؛ وعند بلوغها يتوقف المستشار عن فتح صفقات جديدة حتى تعيد CheckDayChange() تصفير العداد عند منتصف الليل بتوقيت GMT. يُفلتر السبريد أيضًا: تحظر IsSpreadOK() الدخول حين يتجاوز السبريد المباشر MaxSpreadPips = 3.
العناصر البصرية ثرية بشكل غير معتاد لمستشار في هذه الفئة. ترسم DrawInitialChannel() ثلاثة خطوط أفقية (علوي، أوسط، سفلي) عند الشمعة الحالية؛ ثم تمشي DrawChannelHistory() إلى الوراء بمقدار ChannelBarsToShow = 50 شمعة وترسم كل مقطع من القناة كخط OBJ_TREND مخفي، مع إعادة استخدام الكائنات لتبقى العملية سريعة بعد تحديث الشارت. تبني CreateDashboard() لوحة داكنة بأبعاد 280×220 في الزاوية العلوية اليسرى تعرض قيم القناة العلوية والسفلية وقيمة ATR الحالية والسبريد (بالأحمر حين يتجاوز الحد) وحالة الجلسة ومنطقة الإشارة (BUY ZONE / SELL ZONE / NEUTRAL) والصفقة الحالية ونسبة الربح الإجمالية مدى الحياة. تُخنق UpdateDashboard() بحيث لا تتجاوز مرة كل ثانيتين حتى لا تبطئ مسار التكّة.
تُحفظ الإحصائيات الدائمة في ملف ثنائي داخل مجلد MQL5/Files عبر SaveStatistics() وتُستعاد بواسطة LoadStatistics() في OnInit() التالية. يحوي الملف إجمالي الصفقات وعدد الرابح منها وإجمالي الربح — ما يكفي لاستئناف عرض نسبة الربح دون الحاجة لاستيراد دفتر يوميات.
يزعم ترويسة الملف بنية من 12 طبقة تشمل كشف النظام والتوسع وتحسين لياقة OnTester. عمليًا يغطي التنفيذ نحو سبع طبقات فقط: الإشارة (اختراق دونشيان)، الدخول (إرسال الشراء/البيع مع إغلاق الاتجاه المعاكس)، التأكيد (كسر القناة)، عدم التداول (جلسة/سبريد/خسارة يومية/نهاية الأسبوع)، رأس المال (صفقة واحدة بحد أقصى، مخاطرة 1%)، المخاطرة (وقف قائم على ATR، نقطة التعادل، trailing)، والإدارة (وقف/هدف من جانب الخادم إلى جانب نقل نقطة التعادل والـtrailing شمعة بشمعة). الطبقات المتبقية (النظام، التوسع، OnTester، فلتر الأخبار، تقييم لوحة المعلومات، الرموز المتعددة) غير موجودة في الكود — لوحة المعلومات موجودة لكنها غير مربوطة بطبقة استراتيجية. اعتبر ادعاء الـ12 طبقة خارطة طريق، لا إنجازًا.
في الاختبار التاريخي، توقّع أن يطلق المستشار من 1 إلى 3 اختراقات لكل جلسة على EURUSD عند M5، بنسبة فوز تقديرية بين 35% و45% عند الإعداد الافتراضي 1.5R — النمط النموذجي لتداول السلحفاة. أغلب الخروج سيكون عبر الوقف المتحرك لا عبر جني الأرباح. الصفقة التي تغطي شهرًا كاملًا عادة ما تكون اختراقًا لجلسة لندن يمتد 4 إلى 6 ساعات ويجري 80 نقطة أو أكثر قبل أن ينعكس؛ أما 5 إلى 10 صفقات صغيرة تُوقف بالخسارة فهي تكلفة البقاء في اللعبة.
تفاصيل الاستراتيجية
في كل تكّة، تُعيد CheckDayChange() تصفير g_dailyProfit عند انتصاف الليل بتوقيت GMT. ثم تجبر IsWeekendApproaching() إغلاق كل الصفقات يوم الجمعة بعد الساعة 20:00 بتوقيت GMT. توقف IsMaxDailyLossReached() المستشار حين يهبط الربح المتحقق في الجلسة دون -5% من الرصيد. تُحدّث CalculateDonchianChannel() وCalculateATR() الحدود العلوية والسفلية ومؤشر ATR لفترة 14 باستخدام مقابض المؤشرات المخزّنة. عند شمعة جديدة، تمسح ApplyBreakeven() وApplyTrailingStop() الصفقات المفتوحة، ثم تقارن CheckForSignals() الشمعة المنتهية للتو بقناة آخر 20 شمعة وتستدعي OpenPosition() عند الاختراق. تستخرج CalculateLotSize() حجم اللوت من RiskPercent = 1% ومسافة وقف الخسارة، مع تقريب النتيجة إلى مضاعف حجم الصفقة لدى الوسيط.
شراء عندما يتجاوز ارتفاع الشمعة السابقة الحد العلوي لقناة دونشيان (أعلى قمة لآخر عدد من الشموع يحدده DonchianPeriod، افتراضيًا 20). بيع عندما ينخفض الانخفاض عن الحد السفلي. تعمل CheckForSignals() عند كل شمعة جديدة ولا تطلق إشارة إلا حين يكون المستشار محايدًا أو يحمل الاتجاه المعاكس. يخضع الدخول لفلتر الجلسة (GMT 7–16 افتراضيًا) والسبريد (≤3 نقاط) وحد الخسارة اليومية (5% من الرصيد).
يخرج من الصفقة بثلاث طرق: كسر القناة في الاتجاه المعاكس يستدعي CloseAllPositions() ثم يفتح صفقة جديدة في الاتجاه الآخر؛ وسلم نقطة التعادل ثم التريلينج يرفع وقف الخسارة تدريجيًا (تفعيل نقطة التعادل عند 20 نقطة، بدء التريلينج عند 30 نقطة، خطوة 15 نقطة)؛ أو يُغلق الوسيط الصفقة عند جني الأرباح من جانب الخادم عند 3.0× ATR (افتراضيًا 100 نقطة). الجمعة بعد الساعة 20:00 بتوقيت GMT وعند بلوغ 5% سحب يومي يُغلق المستشار كل الصفقات أيضًا.
وقف الخسارة الافتراضي هو ATR(14) * 2.0 يُرسل من جانب الخادم عند الدخول، ويُعدّل إلى الحد الأدنى لمسافة الوقف لدى الوسيط. مع UseATRStops = false يعود إلى 50 نقطة ثابتة. بعد 20 نقطة ربح، تنقل ApplyBreakeven() وقف الخسارة إلى الدخول + 2 نقطة (بتتبع لكل تذكرة لتجنب التعديل المتكرر). بعد 30 نقطة، تبدأ ApplyTrailingStop() برفع الوقف 15 نقطة خلف السعر.
جني الأرباح الافتراضي هو ATR(14) * 3.0، بنسبة مخاطرة إلى عائد 1.5 مقابل الوقف عند 2.0× ATR، يُرسل من جانب الخادم عند الدخول. مع UseATRStops = false يعود إلى 100 نقطة ثابتة. تُغلق أغلب الصفقات الرابحة على سلم التريلينج (بعد نقطة التعادل عند 20 نقطة، ثم التريلينج عند 30/15 نقطة) لا على جني الأرباح نفسه، وهذا ما يمنح النظام قدرته على التقاط اتجاهات على طريقة Turtle.
EURUSD على M5 أو H1، مع قناة دونشيان الافتراضية 20 شمعة ومضبوطة على جلسة لندن (GMT 07:00–16:00). الحد الأدنى للرصيد: 100 دولار مع العودة إلى حجم 0.01 لوت، ويُفضّل 500 دولار أو أكثر عند العمل بمخاطرة 1%. يعمل أفضل على حسابات ECN أو RAW منخفضة السبريد — إذ يفترض فلتر السبريد عند 3 نقاط أن تكون تكاليف التنفيذ دون النقطة. إغلاق الجمعة المسائية وقفاز الخسارة اليومية عند 5% يجعلانه مناسبًا للمتداولين الذين لا يستطيعون مراقبة الشارت؛ ولا يُناسب اختراقات الأخبار (لا يوجد فلتر أحداث) ولا المستخدمين الذين يحتاجون تعدد الرموز أو تعدد الصفقات.
منطق الاستراتيجية
Pipsgrowth EX18110 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218110
الإصدار: 2.00
الوصف:
Classic Donchian Channel (Turtle Trading) breakout EA. LONG when price breaks above N-period highest high, SHORT when price breaks below N-period lowest low. Includes ATR-based SL/TP, trailing stop, breakeven, GMT session filter, weekend close protection, and max daily loss kill switch. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
CalculateDonchianChannel()CalculateATR()PipsToPrice()GetSpreadPips()IsSpreadOK()IsInSession()IsWeekendApproaching()CheckDayChange()IsMaxDailyLossReached()DrawInitialChannel()
// Pipsgrowth EX18110 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Classic Donchian Channel (Turtle Trading) breakout EA. LONG when price breaks above N-period highest high, SHORT when price breaks below N-period lowest low. Includes ATR-based SL/TP, trailing stop, breakeven, GMT session filter, weekend close protection, and max daily loss kill switch. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| DonchianPeriod | 20 | Donchian Channel Period |
| UseSessionFilter | true | Use Session Filter |
| SessionStartHour | 7 | Session Start Hour (GMT/UTC) |
| SessionEndHour | 16 | Session End Hour (GMT/UTC) |
| AvoidWeekends | true | Close before weekend |
| RiskPercent | 1.0 | Risk Per Trade (%) |
| FixedLotSize | 0.01 | Fixed Lot Size (if Risk=0) |
| MaxPositions | 1 | Max Open Positions |
| MaxDailyLossPct | 5.0 | Max Daily Loss % (0=off) |
| MaxSpreadPips | 3 | Max Spread (pips, 0=off) |
| UseATRStops | true | Use ATR-based SL/TP |
| ATRPeriod | 14 | ATR Period |
| ATRMultiplierSL | 2.0 | ATR Multiplier for SL |
| ATRMultiplierTP | 3.0 | ATR Multiplier for TP |
| FixedStopLossPips | 50 | Fixed SL (pips) if ATR off |
| FixedTakeProfitPips | 100 | Fixed TP (pips) if ATR off |
| UseTrailingStop | true | Enable Trailing Stop |
| TrailingStartPips | 30 | Trailing Start (pips) |
| TrailingStepPips | 15 | Trailing Step (pips) |
| UseBreakeven | true | Enable Breakeven |
| BreakevenTriggerPips | 20 | BE Trigger (pips in profit) |
| BreakevenOffsetPips | 2 | BE Offset (pips above entry) |
| ShowDashboard | true | Show Dashboard |
| ShowChannel | true | Show Donchian Channel |
| UpperChannelColor | clrLime | Upper Channel Color |
| LowerChannelColor | clrRed | Lower Channel Color |
| ChannelWidth | 2 | Channel Line Width |
| ChannelBarsToShow | 50 | Bars to Show (less = faster) |
| MagicNumber | 22218110 | Magic number |
| Slippage | 10 | Max Slippage (points) |
| InpTradeComment | "Psgrowth.com Expert_18110" | +------------------------------------------------------------------+ |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18110 Donchian_Channel — Classic Turtle breakout, full 12-layer stack."
#include <Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| INPUT PARAMETERS |
//+------------------------------------------------------------------+
input group "=== Donchian Channel Settings ==="
input int DonchianPeriod = 20; // Donchian Channel Period
input bool UseSessionFilter = true; // Use Session Filter
input int SessionStartHour = 7; // Session Start Hour (GMT/UTC)
input int SessionEndHour = 16; // Session End Hour (GMT/UTC)
input bool AvoidWeekends = true; // Close before weekend
input group "=== Risk Management ==="
input double RiskPercent = 1.0; // Risk Per Trade (%)
input double FixedLotSize = 0.01; // Fixed Lot Size (if Risk=0)
input int MaxPositions = 1; // Max Open Positions
input double MaxDailyLossPct = 5.0; // Max Daily Loss % (0=off)
input int MaxSpreadPips = 3; // Max Spread (pips, 0=off)
input group "=== Stop Loss / Take Profit ==="
input bool UseATRStops = true; // Use ATR-based SL/TP
input int ATRPeriod = 14; // ATR Period
input double ATRMultiplierSL = 2.0; // ATR Multiplier for SL
input double ATRMultiplierTP = 3.0; // ATR Multiplier for TP
input int FixedStopLossPips = 50; // Fixed SL (pips) if ATR off
input int FixedTakeProfitPips= 100; // Fixed TP (pips) if ATR off
input group "=== Trailing & Breakeven ==="
input bool UseTrailingStop = true; // Enable Trailing Stop
input int TrailingStartPips = 30; // Trailing Start (pips)
input int TrailingStepPips = 15; // Trailing Step (pips)
input bool UseBreakeven = true; // Enable Breakeven
input int BreakevenTriggerPips = 20; // BE Trigger (pips in profit)
input int BreakevenOffsetPips = 2; // BE Offset (pips above entry)
input group "=== Visual Settings ==="
input bool ShowDashboard = true; // Show Dashboard
input bool ShowChannel = true; // Show Donchian Channel
input color UpperChannelColor = clrLime; // Upper Channel Color
input color LowerChannelColor = clrRed; // Lower Channel Color
input int ChannelWidth = 2; // Channel Line Width
input int ChannelBarsToShow = 50; // Bars to Show (less = faster)
input group "=== EA Settings ==="
input int MagicNumber = 22218110; // Magic number
input int Slippage = 10; // Max Slippage (points)
input string InpTradeComment = "Psgrowth.com Expert_18110";
//+------------------------------------------------------------------+
//| GLOBAL VARIABLES |
//+------------------------------------------------------------------+
double g_upperChannel = 0;
double g_lowerChannel = 0;
double g_middleChannel = 0;
double g_atrValue = 0;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.