Pipsgrowth EX18100 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX18100 TrendFollow — RSI scalping EA that buys when RSI crosses up from oversold and sells when RSI crosses down from overbought. Exits when . إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX18100 هو روبوت تداول (EA) يعمل على مبدأ العودة إلى المتوسط باستخدام مؤشر واحد فقط — مؤشر القوة النسبية RSI بفترة 14 — وبنية عتبات غير متماثلة عن قصد. لا يوجد نظام تأكيد متعدد المؤشرات، ولا مصنف نظام سوق (regime)، ولا مرشح تذبذب ATR، ولا طبقة ترند إضافية: يقرأ المؤشر على شمعة مغلقة، ويقارنه بمناطق تشبع بيعي وشرائي قصوى، ثم يفتح مركزاً أو ينسحب حتى الشمعة التالية. اسم الـslug يقول TrendFollow ورأس الكود يتحدث عن بنية من 12 طبقة، لكن الكود الفعلي داخل OnInit و OnTick و UpdateRSI و CheckEntrySignals و CheckExistingPosition عبارة عن خط أنابيب نظيف من أربع خطوات: قراءة المؤشر، اتخاذ القرار، التنفيذ، الإدارة. كل ما عداه في رأس الكود هو طموح تسويقي، وليس تطبيقاً فعلياً.
المقبض الوحيد للمؤشر الذي يُنشأ في OnInit هو rsi_handle = iRSI(_Symbol, g_TimeFrame, RSI_Period, g_RSI_Applied_Price) بقيمة RSI_Period=14 و RSI_Applied_Price=1 المقابلة لـ PRICE_CLOSE، بينما g_TimeFrame تُشتق من المدخل الرقمي TimeFrame عبر دالة MapTimeframeInt (1=M1، 2=M5، 3=M15، 4=M30، 5=H1، 6=H4، 7=D1، والافتراضي 7 ينتج D1). تستدعي UpdateRSI بعد ذلك ثلاث قيم في مصفوفة rsi_buffer بعد ضبط ArraySetAsSeries على true، لتملأ rsi_two_bars_ago (الفهرس 2)، و rsi_prev (الفهرس 1)، و rsi_current (الفهرس 0). يستخدم اختبار التقاطع في CheckEntrySignals الشمعتين 2 و 1، وليس 1 و 0 — وهذا اختيار مقصود يعني أن قرار الدخول يتحدد بمجرد إغلاق الشمعة 1، وأن الشمعة الحالية التي لا تزال تتشكل لا يمكنها قلب الإشارة. هذا هو الحاجز الوحيد ضد الإعادة المتأخرة للتلوين (anti-repaint).
عتبات الدخول مدفوعة إلى أقصاها: RSI_Oversold=10 و RSI_Overbought=77. يُطلق الشراء عندما rsi_two_bars_ago ≤ 10 و rsi_prev > 10، أي أن RSI كان في تشبع بيعي عميق قبل شمعتين ثم ارتفع فوق 10 مع إغلاق الشمعة السابقة. يُطلق البيع عند الشرط المعاكس: rsi_two_bars_ago ≥ 77 و rsi_prev < 77. هذه ليست إشارات عودة إلى خط المنتصف — بل إشارات إنهاك عند الأطراف. مع ضبط RSI_Overbought على 77 بدلاً من 70 التقليدي، يفلتر الـ EA قمم الاندفاع الحادة التي ارتبطت تاريخياً بقمم محلية في ترند الذهب، بينما RSI_Oversold=10 يلتقط فقط قيعاد capitulation العميقة. تردد التداول بالإعدادات الافتراضية منخفض — ربما بضع إشارات في الأسبوع على XAUUSD M15، وأقل من ذلك على D1.
منطق الخروج في CheckExistingPosition له مساران. المسار الأول هو بلوغ الهدف. للإاكز الطويل (long)، يُغلق المركز عندما rsi_current ≥ RSI_Target_Buy=27؛ وللإاكز القصير (short)، عندما rsi_current ≤ RSI_Target_Sell=43. لاحظ اللاتماثل: هدف الشراء يقع على بعد 17 نقطة RSI فوق محفز الدخول (10→27)، بينما هدف البيع يقع على بعد 34 نقطة تحت المحفز (77→43). عملياً، هذا يعني أن إاكز البيع تغلق على بعد ضعف إاكز الشراء من منظور RSI، لكن RSI محدود النطاق، فالشراء كثيراً ما يُغلق قبل أن يرتد السعر إلى شمعة الدخول. المسار الثاني هو مؤقت القضبان المعاكسة. أثناء وجود إاكز شراء مفتوح، إذا rsi_current < RSI_Oversold (10)، يبدأ الـ EA عداداً صحيحاً عند 1، ويزيده بمقدار 1 في كل شمعة يبقى فيها الشرط محققاً، ويُغلق المركز عندما bars_against_count ≥ BarsToWait=14. في اللحظة التي يعود فيها RSI فوق 10، يعود العداد إلى صفر — الـ EA لا يعاقب الانخفاضات المؤقتة، بل المستمرة فقط. مسار البيع يعكس ذلك حول RSI_Overbought (77). قيمة BarsToWait=14 هي نافذة طويلة، تمنح الصفقة مساحة لتجاوز هزة استمرت 14 شمعة قبل أن يعترف الـ EA بأن الفرضية كانت خاطئة.
إدارة المركز متعمَّد الحد الأدنى. لا يضع الـ EA وقف خسارة أو جني أرباح عند الفتح — كلا استدعائي trade.Buy و trade.Sell يمرران 0,0 كقيمة SL و TP. لا يوجد وقف متحرك، ولا دالة تعادل، ولا إغلاق جزئي، ولا تكرار صفقات (pyramiding)، ولا تحوط. علامة المركز الواحد (position_open bool) هي البوابة الوحيدة لحجم الصفقة. LotSize=0.1 مُثبَّت كمدخل حجم ثابت دون أي حساب نسبة مخاطرة، ولا تحقق من الهامش يتجاوز ما يقوم به CTrade داخلياً، ولا توسيع عبر الرموز. يُكوَّن كائن CTrade بـ SetExpertMagicNumber(22218100)، و SetDeviationInPoints(Slippage=3)، و SetTypeFilling(ORDER_FILLING_FOK) — وملء FOK غير معتاد؛ معظم الـ EAs الحديثة تستخدم سياسة الملء التلقائي أو IOC. FOK يعني أن الوسيط يجب أن ينفذ الأمر بالكامل فوراً أو يرفضه؛ بالنسبة للذهب والعملات الرئيسية على ECN سريع هذا مقبول، لكن على وسيط تنفيذ سوقي يعيد التسعير، سيفشل كل دخول تماماً. توجد ثلاث دالات إعادة محاولة — TryClose_EX18100 و TryClosePartial_EX18100 و TryModify_EX18100 — لكن TryClose_EX18100 فقط هي المربوطة فعلياً بمسار الكود الحي؛ الاثنتان الأخريان كود ميت لا تستدعيهما أي دالة.
حلقة OnTick تعمل بإيقاع الشموع، وليس بإيقاع التيكات. تتحقق أولاً أن Bars(_Symbol, g_TimeFrame) ≥ RSI_Period + 2 (حاجز سلامة لضمان توفر بيانات كافية لمخزن iRSI)، ثم تقرأ وقت الشمعة الحالية وتنسحب إذا طابق last_bar_time. فقط عند شمعة جديدة تستدعي UpdateRSI و CheckExistingPosition، ثم — إن لم يكن هناك مركز مفتوح — CheckEntrySignals. عبارات TRACE في الكود بقايا تصحيح ولا تؤثر على التنفيذ. يحتوي المصدر أيضاً على أربع نسخ مكررة من MapTimeframeInt وأربع نسخ من MapAppliedPriceInt — أثر قالب تلقائي من مولِّد الـ EA، غير ضار لأن مترجم MQL5 يمتص المكررات وسلوك التشغيل مطابق لوجود نسخة واحدة فقط. النسخة الأولى تفوز في التهيئة؛ النسخ اللاحقة خاملة.
ما لا يفعله الـ EA يستحق الذكر بوضوح. لا يوجد قاتل سحب InpMaxDDPct، ولا أرضية حقوق MinEquityPercent، ولا تهدئة MaxConsecLosses، ولا MaxDailyLossPercent، ولا مرشح أخبار، ولا مرشح جلسة (يتداول متى كان السوق مفتوحاً، بما في ذلك ليل آسيا حيث تضعف سيولة الذهب)، ولا سقف سبريد (لذا يمكن لسبريد ذهب 50 نقطة أثناء تغيير الجلسة أن يُطلق دخولاً)، ولا انحياز إطار زمني أعلى، ولا توسيع، ولا تعادل، ولا إغلاق جزئي، ولا دالة لياقة OnTester، ولا لوحة رسم بياني. كل مفهوم دفاعي ترثه العائلة الأم قد أُزيل، تاركاً نظام ارتداد بالمؤشر الواحد عاري الهيكل.
في الاختبار الخلفي، الملف المتوقع هو منحنى حقوق صفقات منخفض العدد بمعدل فوز متواضع، مع انتصارات أكبر متفرقة عندما يرتد تشبع بيعي/شرائي عميق بوضوح نحو الهدف، وذيل طويل من حالات انتهاء المهلة الزمنية على صفقات لم تصل أبداً. المناطق المستهدفة غير المتماثلة تعني أن الـ EA، حين يصطاد ارتداداً فعلياً، يميل جانب البيع إلى إعطاء عائد أفضل بالنسبة للمخاطرة بمصطلحات RSI، لكن بمصطلحات سعرية يعتمد ذلك كلياً على نطاق تحرك الذهب. منطق التقاطع شمعتين مقابل شمعة واحدة يعني أن المتداول الذي يراقب الشارت لحظياً يمكنه رؤية الإشارة شمعة قبل أن يتحرك الـ EA، وهو أمر مفيد للتدخل اليدوي لكنه يعني أيضاً أن الارتفاعات الحادة المدفوعة بالأخبار التي لا تشكل شمعة مغلقة فوق العتبة لا تُطلق دخولاً. ضبط RSI_Overbought على قيمة أدنى (مثلاً 70) و RSI_Oversold على قيمة أعلى (مثلاً 30) يجعل الـ EA أكثر نشاطاً على حساب إشارات أكثر ضوضاء؛ أما شد RSI_Target_Buy إلى 20 فيقفل انتصارات أصغر وأكثر تكراراً. الإعدادات الافتراضية الحالية مضبوطة لمشغِّل صبور يريد بضع صفقات ارتداد عالية الاقتناع في الأسبوع، وليس لمضارب عالي التردد.
تفاصيل الاستراتيجية
يسحب مؤشر iRSI(14) واحداً إلى مخزن من ثلاث فتحات عند كل شمعة جديدة ولا يعمل إلا على قيم الشموع المغلقة، ثم يُشغِّل طبقة الإشارة في CheckEntrySignals: شراء إذا كان RSI للشمعة 2 عند أو تحت RSI_Oversold=10 وعبر RSI للشمعة 1 فوقه، بيع إذا كان RSI للشمعة 2 عند أو فوق RSI_Overbought=77 وانخفض RSI للشمعة 1 تحته. أثناء وجود مركز مفتوح، تقرأ CheckExistingPosition قيمة RSI للشمعة الحالية عند كل شمعة جديدة وتقارنها بـ RSI_Target_Buy=27 (خروج شراء) أو RSI_Target_Sell=43 (خروج بيع)، وتستخدم عداد قضبان معاكسة بمدى 14 شمعة — يُعاد تصفيره فور عودة RSI إلى المنطقة المرغوبة — للانسحاب إذا بقي RSI على الجانب الخاطئ من العتبة. التنفيذ يتم بحجم ثابت LotSize=0.1 عبر CTrade مضبوط على ملء FOK مع انزلاق 3 نقاط، وتخرج الأوامر دائماً عبر TryClose_EX18100، وهي دالة إعادة محاولة بـ 3 محاولات تتعامل مع إعادة التسعير والمهل وتغيرات السعر. لا يحمل الـ EA مصنف نظام سوق، ولا مرشح أخبار، ولا مرشح جلسة، ولا سقف سبريد، ولا حارس حقوق، ولا وقف متحرك، ولا إغلاق جزئي، ولا دالة لياقة OnTester — قصة المخاطرة بأكملها هي بنية العتبات غير المتماثلة ومؤقت القضبان المعاكسة.
يُطلق الدخول الطويل عندما يُظهر مؤشر RSI بفترة 14 على الإغلاق أن rsi_two_bars_ago ≤ 10 (تشبع بيعي عميق) و rsi_prev > 10 (عاد للارتفاع فوقه). يُطلق الدخول القصير عند الشرط المعاكس: rsi_two_bars_ago ≥ 77 و rsi_prev < 77. ولأن الاختبار يستخدم الشمعة 2 مقابل الشمعة 1، لا يمكن للإشارة أن تتغير لاحقاً (repaint) على الشمعة الحالية التي لا تزال تتشكل.
بالنسبة لمركز الشراء، يخرج الـ EA عندما يصل مؤشر RSI للشمعة الحالية إلى RSI_Target_Buy=27 (منطقة هدف بطول 17 نقطة من محفز 10)، أو يُفعِّل عداد 14 شمعة معاكسة يُغلق الصفقة إذا بقي RSI تحت مستوى التشبع البيعي (10) لمدة 14 شمعة مغلقة متتالية. مسار البيع يعكس ذلك مقابل overbought=77 بهدف=43 ونفس مهلة 14 شمعة. يعود عداد القضبان المعاكسة إلى صفر في اللحظة التي يعود فيها RSI إلى المنطقة المرغوبة.
لا يُوضع وقف خسارة أولي عند فتح الأمر — كلا استدعائي trade.Buy و trade.Sell يمرران 0,0 كقيمة وقف الخسارة وجني الأرباح. آلية الحماية الوحيدة هي عداد القضبان المعاكسة بمدى 14 شمعة؛ أما المراكز التي تفشل في التعافي ضمن تلك النافذة فتُغلق قسرياً عند الشمعة المؤهلة التالية. لا يوجد وقف متحرك، ولا نقطة تعادل، ولا قاتل حد أدنى للحقوق.
لا توجد مسافة جني أرباح ثابتة — تحدث حالات الخروج عند مستويات هدف RSI لا عند مستويات سعرية: يُغلق الشراء عند RSI_Target_Buy=27، والبيع عند RSI_Target_Sell=43. المناطق غير المتماثلة تمنح البيع نافذة هدف بطول 34 نقطة RSI مقابل 17 نقطة للشراء، لذا يميل جانب الشراء إلى الإغلاق أبكر بعد محفز الدخول بمصطلحات المتذبذب.
الحد الأدنى للرصيد الموصى به: 100 دولار بحجم الصفقة الافتراضي 0.1 لوت. مدخل TimeFrame الافتراضي هو 7 (D1)، لكن الحلقة المعتمدة على الشموع تعمل بسلاسة من M5 إلى H1؛ وعادة ما تُستخدم M15 و M30 لتقلبات واضحة. يُفضَّل إقرانه بتغذية سبريد منخفض لزوج XAUUSD أو العملات الرئيسية على حساب ECN/RAW — ملء FOK يتطلب من الوسيط تنفيذ الأوامر فوراً أو رفضها بوضوح، لذا فإن وسطاء التنفيذ السوقي الذين يعيدون التسعير بكثرة يُضعفون جودة الإشارة. مناسب للمتداولين الذين يقبلون فلسفة الارتداد: معظم الصفقات تنتهي كمهلات زمنية صغيرة، مع أقلية تلتقط ارتداداً كاملاً نحو خط المنتصف.
منطق الاستراتيجية
Pipsgrowth EX18100 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218100
الإصدار: 2.00
الوصف:
RSI scalping EA that buys when RSI crosses up from oversold and sells when RSI crosses down from overbought. Exits when RSI reaches target levels or has been against the position for N bars. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
UpdateRSI()CheckExistingPosition()CheckEntrySignals()OpenBuyPosition()OpenSellPosition()ClosePosition()TryClose_EX18100()TryClosePartial_EX18100()TryModify_EX18100()
// Pipsgrowth EX18100 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// RSI scalping EA that buys when RSI crosses up from oversold and sells when RSI crosses down from overbought. Exits when RSI reaches target levels or has been against the position for N bars. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| TimeFrame | 7 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for Analysis |
| RSI_Period | 14 | RSI Period |
| RSI_Applied_Price | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI Applied Price |
| RSI_Overbought | 77 | RSI Overbought Level |
| RSI_Oversold | 10 | RSI Oversold Level |
| RSI_Target_Buy | 27 | RSI Target for Buy Exit |
| RSI_Target_Sell | 43 | RSI Target for Sell Exit |
| BarsToWait | 14 | Bars to wait when RSI goes against position |
| LotSize | 0.1 | Lot Size |
| MagicNumber | 22218100 | Magic Number |
| InpTradeComment | "Psgrowth.com Expert_18100" | Trade Comment |
| Slippage | 3 | Slippage in points |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18100 RSIScalping — RSI overbought/oversold scalping with target exits, full 12-layer stack."
#include <Trade\Trade.mqh>
//--- 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_TimeFrame = PERIOD_H1;
ENUM_APPLIED_PRICE g_RSI_Applied_Price = PRICE_CLOSE;
input group "=== Strategy ==="
input int TimeFrame = 7; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for Analysis
input int RSI_Period = 14; // RSI Period
input int RSI_Applied_Price = 1; // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI Applied Price
input double RSI_Overbought = 77; // RSI Overbought Level
input double RSI_Oversold = 10; // RSI Oversold Level
input double RSI_Target_Buy = 27; // RSI Target for Buy Exit
input double RSI_Target_Sell = 43; // RSI Target for Sell Exit
input int BarsToWait = 14; // Bars to wait when RSI goes against position
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 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.