Pipsgrowth EX13007 RSI_MA — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX13007 RSI_MA — RSI alert EA that sends buy signals when RSI drops to the lower level and sell signals when RSI reaches the upper level.. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكس 13007 من بيبس جروث هو روبوت متوسط-انعكاسي أحادي المذبذب يطلق إشارة شراء كلما انخفض مؤشر RSI لمدة 30 فترة على الإغلاق المرجح إلى 20 أو أقل، ويطلق إشارة بيع كلما وصل نفس المؤشر إلى 80 أو أعلى. مسار الإشارة هو الأنحف في عائلة إكس 13 — لا يوجد مرشح اتجاه، ولا تأكيد شموع، ولا مصنف نظام سوق، ولا مؤشر ثانٍ. تستدعي دالة RSI_Alert() ثلاث قيم من مقبض iRSI عبر iGetArray() وتتحقق من آخر قيمة مقابل عتبتين. نطاق 20/80 أوسع من النطاق التقليدي 30/70 تحديداً لأن تجانس الـ 30 فترة على الإغلاق المرجح يهدّئ المذبذب؛ فمؤشر RSI لمدة 14 فترة عند 30/70 كان سيطلق إشارات أكثر بكثير، واختيار 20/80 مقايضة مقصودة للوتيرة بالصرامة الانتقائية.
عند لمس العتبة، يستدعي الروبوت SendNotification() بالوسوم القابلة للتكوين من المستخدم ("Signal Buy" أو "Signal Sell" افتراضياً) ثم يمرر الصفقة عبر OpenPosition() إلى OpenBuy() أو OpenSell(). تبني هذه المُنشئات وقف الخسارة وجني الأرباح كإزاحات نقاط خام: الشراء يُفتح عند سعر الطلب مع جني أرباح = طلب + InpTakeProfit * SYMBOL_POINT ووقف خسارة = عرض - InpStopLoss * SYMBOL_POINT؛ البيع معكوس. كل من InpStopLoss وInpTakeProfit افتراضياً 200 نقطة، وهو ما يساوي تقريباً 2.00 دولار فوق وتحت الدخول على سعر XAUUSD العشري الثنائي. النسبة هي 1:1 بالضبط، ولا يُعدَّل وقف الخسارة وجني الأرباح لاحقاً — يبقون على خادم الوسيط طوال عمر الصفقة. حجم اللوت هو InpVolumeLotOrRisk (افتراضي 0.01)، الذي رغم تعليق الإدخال يُمرَّر مباشرة عبر NormalizeDouble(..., 2) ثم عبر CheckVolumeValue() التي لا تفرض سوى حدود SYMBOL_VOLUME_MIN/MAX/STEP لدى الوسيط. لا توجد صيغة مخاطر بنسبة من الرصيد، ولا تحجيم صفقة بناءً على المخاطرة — اللوت هو ما يكتبه المستخدم. تتولى TryOrderSend_EX13007() أمر الإرسال الفعلي: ثلاث محاولات، مع Sleep لمدة 200 مللي ثانية عند REQUOTE أو TIMEOUT أو PRICE_OFF أو PRICE_CHANGED، وكسر فوري عند أي رمز إرجاع آخر. نوع التعبئة FOK إذا سمح الوسيط، وإلا IOC.
لا توجد خطوة تعادل، ولا وقف متحرك، ولا إغلاق جزئي، ولا متوسطات، ولا مارتينجال، ولا شبكة، ولا طبقة تعافٍ. مدخل InpMaxPositions مضبوط على 10 مع تعليق '0 = OFF'، لكن السقف معلومة فقط — دالة CalculateAllPositions() معرَّفة في المصدر لكنها لا تُستدعى فعلياً داخل تدفق الفتح، لذلك في يوم اتجاه قوي يمكن للروبوت أن يطلق صفقة بعد صفقة في نفس الاتجاه حتى تتدخل بوابات الأمان. تحدث التخارجات فقط عند وقف الخسارة أو جني الأرباح على جانب الوسيط. تعليق إدخال الاستراتيجية يقول 'سقف أقصى الصفقات' لكن الكود أصدق: كل لمسة عتبة RSI تُنتج صفقة إضافية، فقط.
طبقة الأمان هي حيث يملك الملف عمقاً فعلياً. في كل تيك، تستدعي OnTick() أولاً UpdateDailyCounters_EX13007() لتصفير عدادات اليوم عند انتقال التاريخ، ثم IsSafeToTrade_EX13007() لتشغيل مكدس الأذونات الكامل ذو العشر بوابات. البوابات بالترتيب: إيقاف سقف رأس المال (إذا كان InpCapAmount غير صفري وكان الرصيد عند السقف أو أعلى، توقف)، إيقاف حد الرصيد الأدنى (رصيد أقل من InpCapFloor = 50، توقف)، قاتل الرصيد الأولي 95٪ (رصيد أقل من 95٪ من الرصيد الملتقط في OnInit، توقف)، حد خسارة يومي (الربح المتحقق على السحر ≤ -3٪ من رأس المال الفعال، توقف)، حد خسارة أسبوعي (الربح المتحقق ≤ -6٪ من رأس المال الفعال — ضعف عتبة اليوم بالضبط)، تهدئة ثلاث ضربات (بعد InpMaxConsecLosses=3 خسائر متتالية، يتوقف الروبوت لمدة InpCooldownMinutes=30 دقيقة)، سقف 50 صفقة يومية، فحص ساعات السوق (مغلق السبت، الأحد قبل 22:00 بتوقيت GMT، الجمعة من 21:00 بتوقيت GMT)، مرشح الجلسة (لندن 7-16 بتوقيت GMT أو نيويورك 12-21 بتوقيت GMT، مع تجنب آسيا 0-7 بتوقيت GMT صراحةً عند تشغيل InpAvoidAsia)، ومرشح أخبار اختياري (نافذة 15 دقيقة حول افتتاح لندن أو نيويورك عند تفعيل InpNewsFilter). تُصفّي OnTradeTransaction() صفقات DEAL_ENTRY_OUT حسب السحر، وتُراكم الربح+المبادلة+العمولة في g_realizedToday وg_realizedWeek، وتزيد g_tradesToday، وتزيد عداد الخسائر المتتالية في كل صفقة ربحها سالب (الذي يضبط g_cooldownUntil إلى الآن + 30*60 ثانية عند تفعيل التهدئة).
أوقات الجلسات مرتبطة بـ GMT، وليس وقت الخادم. تقرأ DetectGMTOffset_EX13007() قيمة InpServerGMTOffset إذا كانت غير صفرية؛ وإلا فتمشي خلال آخر 100 شمعة H1 بحثاً عن فجوة أكبر من ساعتين (بصمة انتقال التوقيت الصيفي) وتحسب الإزاحة عكسياً من حقل الساعة للشمعة الفاصلة. تُخزَّن تلك الإزاحة في g_gmtOffset وتُطرح داخل ServerToGMT_EX13007() قبل أي فحص جلسة أو أخبار. OnTester() هي دالة لياقة مخصصة: (net * pf) / (1 + dd)، ترجع 0 ما لم تكن هناك 30 صفقة على الأقل، ومعامل ربح موجب، وسحب موجب لمعاقبته. سيتسلق المحسّن في MT5 ضد تلك الدرجة.
يحتوي الملف المصدر على كمية كبيرة من الكود الميت. تُنشئ OnInit() مقبضين — handle_iRSI وhandle_MACD = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_SMA, PRICE_CLOSE) — لكن handle_MACD لا يُقرأ بعد إنشائه. بالمثل، المتغيرات m_trade_BuyLimit وm_trade_BuyStopLimit وtrade (CTrade ثانٍ) وm_money (CMoneyFixedMargin) وm_deal (CDealInfo)، والدوال المساعدة get_Stochastic وIsPositionExists وLotCheck ودالة MapAppliedPriceInt (المُعلنة ست مرات) كلها معرَّفة لكن لا تُستخدم في التدفق الحي. مدخل InpShift مُتحقَّق منه >= 1 عند البدء لكن RSI_Alert() تقرأ دائماً عند start_pos=0، لذا فإن الإزاحة لا تُزيح قراءة RSI فعلياً. لا يؤثر أي من هذا على السلوك الحي، لكنه يوضح لماذا يبلغ عدد الدوال 21 وهو أكبر بكثير من الاستراتيجية نفسها.
عملياً، الروبوت هو أداة انعكاس عكس-اتجاه كتابية على RSI مرجح لـ 30 فترة. سيؤدي أداءً جيداً في سوق متذبذب حيث يلامس المذبذب 20 و80 بانتظام وينعكس السعر إلى المتوسط؛ وسيُقطَّع في يوم اتجاهي، بافتتاح صفقة بعد أخرى ضد الاتجاه حتى يوقفه قاتل 95٪ أو حد الخسارة اليومي 3٪. لتكوين قابل للاستخدام: أبقِ الوسيط على سعر XAUUSD خماسي الأرقام مع سبريد أقل من 30 نقطة، واترك InpAvoidAsia مُفعّلاً (جودة إشارة الروبوت على XAUUSD سيئة في آسيا)، وفكر في التدخل اليدوي عندما يبقى مؤشر RSI لـ 30 فترة مثبتاً عند 20 لعشر شموع أو أكثر — هذا هو النظام الذي ينفد فيه هذا التصميم من المسار.
تفاصيل الاستراتيجية
تبدأ OnTick() بتشغيل UpdateDailyCounters_EX13007() لتصفير عدادات اليوم عند انتقال التاريخ، ثم IsSafeToTrade_EX13007() لتقييم مكدس الأذونات الكامل ذو العشر بوابات (إيقاف السقف، حد الرصيد الأدنى، قاتل الرصيد الأولي 95٪، خسارة يومية 3٪، خسارة أسبوعية 6٪، تهدئة 30 دقيقة بعد 3 خسائر متتالية، سقف 50 صفقة يومية، ساعات السوق، جلسة GMT، مرشح أخبار اختياري). فقط عند أول تيك لشمعة جديدة تستدعي RSI_Alert()، التي تسحب ثلاث قيم من مقبض iRSI(30) عبر iGetArray()، وتقارن آخر قيمة بـ Inp_RSI_LevelDOWN وInp_RSI_LevelUP، وتطلق SendNotification() بالوسم المُكوَّن، وتمرر إلى OpenPosition(). تبني OpenBuy() وOpenSell() طلب MqlTradeRequest بجني أرباح ووقف خسارة كإزاحات نقاط خامة، وتختار نوع التعبئة المسموح للوسيط (FOK مفضل، IOC بديل)، وتمرر عبر TryOrderSend_EX13007() — ثلاث محاولات مع Sleep لمدة 200 مللي ثانية عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED وكسر فوري عند أي رمز إرجاع آخر. تُصفّي OnTradeTransaction() صفقات DEAL_ENTRY_OUT حسب السحر، وتُراكم الربح+المبادلة+العمولة في عدادات اليوم/الأسبوع التي تقرأها البوابات في التيك التالي، وتزيد g_consecLosses في كل صفقة ربحها سالب. ترجع OnTester() القيمة (net * pf) / (1 + dd) عندما تكون الصفقات >= 30 وكان pf وdd موجبين، وإلا 0.
عند أول تيك لشمعة جديدة، تقرأ RSI_Alert() آخر قيمة لمؤشر RSI لمدة 30 فترة على الإغلاق المرجح وتقارنها بالعتبتين المُكوَّنتين: شراء عندما ينخفض RSI(0) إلى Inp_RSI_LevelDOWN (افتراضي 20) أو أقل، بيع عندما يصل RSI(0) إلى Inp_RSI_LevelUP (افتراضي 80) أو أعلى. كل إشارة مُطلقة تدفع تنبيهاً عبر SendNotification() بالوسم القابل للتكوين ("Signal Buy" / "Signal Sell") وتمرر مباشرة إلى OpenPosition().
تُغلق الصفقات حصرياً عند وقف الخسارة أو جني الأرباح على جانب الوسيط، وكلاهما مضبوط افتراضياً على 200 نقطة من نقطة الدخول. لا توجد خطوة تعادل، ولا منطق وقف متحرك، ولا إغلاق جزئي، ولا يعدّل الروبوت الأوامر المفتوحة — بمجرد الإرسال، يبقى وقف الخسارة وجني الأرباح لدى الوسيط طوال عمر الصفقة.
وقف الخسارة هو 200 نقطة ثابتة مضبوطة على خادم الوسيط عند الدخول، قابل للتكوين عبر InpStopLoss — على سعر XAUUSD العشري الثنائي يساوي تقريباً 2.00 دولار تحت الدخول للشراء وفوقه للبيع. لا يوجد تحجيم قائم على ATR، ولا تعديل تذبذب، ولا حساب نسبة مخاطرة لكل صفقة؛ وقف الخسارة ثابت لا يُعدَّل بعد إرسال الأمر.
جني الأرباح هو 200 نقطة ثابتة، مضبوط على خادم الوسيط وقابل للتكوين عبر InpTakeProfit، يعكس وقف الخسارة بنسبة 1:1 بالضبط. لا يوجد تحجيم، ولا إغلاق جزئي، ولا جني أرباح متحرك يُطبَّق — جني الأرباح ثابت يحتفظ به الوسيط على جانبه طوال عمر الصفقة.
الرصيد الموصى به: 100 دولار حد أدنى، 1,000-5,000 دولار عملياً. شغّل على XAUUSD M5 أو H1 عند وسيط خماسي الأرقام بسبريد أقل من 30 نقطة ودعم تعبئة FOK أو IOC، ويفضل ECN/RAW. أبقِ مرشح جلسة لندن 7-16 بتوقيت GMT ونيويورك 12-21 بتوقيت GMT مُفعّلاً، واترك InpAvoidAsia مُفعّلاً (إشارات RSI على XAUUSD صاخبة في آسيا)، ولا تتجاوز أبداً قاتل حد الرصيد 95٪ أو سُقُف الخسارة اليومية 3٪ والأسبوعية 6٪. هذه أداة انعكاس عكس-اتجاه — اقرنها بسياق اتجاه يدوي على H1 واقبل أنه في يوم اتجاه قوي سيواصل الروبوت الإطلاق في الحركة حتى توقفه بوابات الأمان.
منطق الاستراتيجية
Pipsgrowth EX13007 RSI_MA — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: RSI_MA
الماجيك: 22213007
الإصدار: 2.00
الوصف:
RSI alert EA that sends buy signals when RSI drops to the lower level and sell signals when RSI reaches the upper level. Trades with fixed SL/TP, lot/risk money management and max-positions cap. Full 12-layer stack: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
OnTradeTransaction()DigitsLots()CheckVolumeValue()CheckMoneyForTrade()OpenPosition()iGetArray()RefreshRates()IsFillingTypeAllowed()get_Stochastic()IsPositionExists()
// Pipsgrowth EX13007 RSI_MA — Execution Flow (from source analysis)
// Family: RSI_MA
// RSI alert EA that sends buy signals when RSI drops to the lower level and sell signals when RSI reaches the upper level. Trades with fixed SL/TP, lot/risk money management and max-positions cap. Full 12-layer stack: 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اسحب الإكسبرت على رسم H1 أو H4
- 7حدد فترة Bollinger Bands والانحراف ومستويات RSI وحجم اللوت
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpVolumeLotOrRisk | 0.01 | The value for "Money management" |
| InpStopLoss | 200 | Stop Loss (SL) |
| InpTakeProfit | 200 | Take Profit (TP) |
| InpMaxPositions | 10 | Maximum number of positions ('0' -> OFF) |
| InpShift | 2 | Shift in bars (from 1 to 255) |
| InpMagic | 22213007 | Magic Number |
| InpDailyLossLimitPct | 3.0 | Daily loss limit (% of effective capital) |
| InpMaxLot | 5.0 | Hard lot cap per trade |
| InpServerGMTOffset | 0 | Server GMT offset hours (0=auto-detect) |
| InpLondonStartHour | 7 | London session start (GMT) |
| InpLondonEndHour | 16 | London session end (GMT) |
| InpNYStartHour | 12 | New York session start (GMT) |
| InpNYEndHour | 21 | New York session end (GMT) |
| InpAvoidAsia | true | Avoid Asian session |
| InpAsiaStartHour | 0 | Asian session start (GMT) |
| InpAsiaEndHour | 7 | Asian session end (GMT) |
| InpNewsFilter | false | Avoid trading near news session opens |
| InpNewsFilterMinutes | 15 | Minutes to avoid around news |
| InpMaxTradesPerDay | 50 | Maximum trades per day |
| InpMinEquityPercent | 95.0 | Stop trading if equity < this % of initial balance |
| InpCooldownMinutes | 30 | Cooldown minutes after consec losses |
| InpMaxConsecLosses | 3 | Max consecutive losses before cooldown |
| Inp_RSI_ma_period | 30 | RSI: averaging period |
| Inp_RSI_applied_price | 7 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI: type of price |
| Inp_RSI_LevelUP | 80 | RSI Fast and Slow: Level UP |
| Inp_RSI_LevelDOWN | 20 | RSI Fast and Slow: Level DOWN |
| Inp_RSI_stringUP | "Signal Sell" | RSI Fast and Slow: Level UP label |
| Inp_RSI_stringDOWN | "Signal Buy" | RSI Fast and Slow: Level DOWN label |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX13007 RSI_Alert — RSI overbought/oversold alert bot, full 12-layer stack."
#include <Trade\Trade.mqh>
//---
#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Expert/Money/MoneyFixedMargin.mqh>
CPositionInfo m_position; // trade position object
CTrade m_trade; // trading object
CTrade m_trade_BuyLimit ; // trade buy limit
CTrade m_trade_BuyStopLimit ;
CTrade trade; // trade buy stop limit
CSymbolInfo m_symbol; // symbol info object
//CAccountInfo m_account; // account info wrapper
CMoneyFixedMargin m_money;
CDealInfo m_deal;
//--- input parameters
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_APPLIED_PRICE g_Inp_RSI_applied_price = PRICE_CLOSE;
input group "=== General Setting ==="
input double InpVolumeLotOrRisk = 0.01; // The value for "Money management"
input uint InpStopLoss = 200; // Stop Loss (SL)
input uint InpTakeProfit = 200; // Take Profit (TP)
input uchar InpMaxPositions = 10; // Maximum number of positions ('0' -> OFF)
input uchar InpShift = 2; // Shift in bars (from 1 to 255)
input ulong InpMagic = 22213007; // Magic Number
input string InpTradeComment = "Psgrowth.com Expert_13007";
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_APPLIED_PRICE g_Inp_RSI_applied_price = PRICE_CLOSE;
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية الارتداد للمتوسط
Pipsgrowth EX09013 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09013 MeanReversion — Bollinger Bands mean-reversion EA with EMA trend filter. BUY when price touches lower band (trend up); SELL when price t. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX09009 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09009 MeanReversion — Hanging Man (bearish) / Hammer (bullish) candlestick on last CLOSED bar + Stochastic confirmation (Stoch<20 Buy / Stoch>. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX09023 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09023 MeanReversion — Bollinger Band mean reversion EA that fades outer band touches with fixed SL/TP and single-position control, using the 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.