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

Pipsgrowth EX16065 Trend — إكسبرت أدفايزر متابعة اتجاه

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

Pipsgrowth EX16065 Trend — Professional risk manager EA with EMA crossover, RSI and MACD confirmation filtered by ATR volatility. Enforces daily pr. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يوصف Pipsgrowth EX16065 بأنه خبير "إدارة مخاطر احترافي"، وهذا الوصف صادق: هذا التفاف لمتابع اتجاه (Trend Following) محور تصميمه الأساسي بوابة الربح/الخسارة اليومية، وليس إشارة الدخول نفسها. إشارة الدخول هي إعداد اتجاه تقليدي بتأكيدات ثلاثية — متوسط متحرك سريع يتقاطع مع بطيء، مع مؤشر RSI بين مستويات التشبع الشرائي والبيعي، ومؤشر MACD يؤكد على الجانب الصحيح من خط الصفر — لكن الخبير لا يُطلق أي إشارة ما دام ميزانية الربح أو الخسارة اليومية لا تزال تملك هامشاً.

تُدار المحاسبة اليومية الكاملة للربح/الخسارة في الدالتين UpdateDailyPnL() و CheckDailyLimits(). عند بداية كل يوم على الخادم، يُعاد ضبط startOfDayBalance إلى AccountInfoDouble(ACCOUNT_BALANCE) الحالي، ويُصفَّر currentDayPnL. في كل tick، يعيد الخبير حساب currentDayPnL = currentBalance - startOfDayBalance، ويعبّر عنه كنسبة مئوية من الرصيد الافتتاحي، ويقارنه بحدّين: DailyProfitTarget = 3.0% (افتراضي) و MaxDailyLoss = -5.0% (افتراضي). إذا تحقق أي منهما، تستدعي CheckDailyLimits() الدالة CloseAllPositions() — التي تمر على كامل قائمة PositionsTotal() بالعكس وتُرسل صفقة عكسية لكل مركز مفتوح بتعليق "Daily limit reached" — ثم تُرجع false، وهو ما تحوِّله OnTick() إلى dailyTradingAllowed = false يتبعه return مبكر. من تلك اللحظة، لن تُفتح أي دخولات جديدة حتى بداية اليوم التالي على الخادم.

تعمل إدارة المخاطرة لكل صفقة بالتوازي. تُعرِّف مجموعة "=== Risk Management ===" أربعة مدخلات: RiskPercent = 2.0 (مخاطرة لكل صفقة)، و MaxDailyRisk = 6.0 (سقف الخسارة اليومي — قيمة أكبر منفصلة تعمل كقاطع للسؤال "هل كان ينبغي أن أفتح هذه الصفقة أصلاً")، و DailyProfitTarget = 3.0، و MaxDailyLoss = -5.0. تقرأ دالة CalculateLotSize() رصيد الحساب المباشر، وتحسب riskAmount = balance * RiskPercent/100، وتستخرج حجم التيك وقيمته والـ point للرمز، وتُشتق قيمة النقطة، ثم تقسم مبلغ المخاطرة على StopLossPips * pipValue للحصول على حجم اللوت. تُقصَّر النتيجة بعد ذلك بين SYMBOL_VOLUME_MIN و SYMBOL_VOLUME_MAX للرمز، وتُكمَّم إلى أقرب SYMBOL_VOLUME_STEP — وهي routine قياسية لحساب الحجم بالنسبة المئوية في MT5 ينبغي أن تنتج أحجام لوت متطابقة بين الاختبار الخلفي والحقيقي إذا كانت بيانات التيك لدى الوسيط صحيحة.

تُبنى الإشارة نفسها في CheckForTradingOpportunity()، التي تُستدعى فقط على شمعة جديدة (حراسة static datetime lastBarTime داخل OnTick() تضمن تشغيل CheckForTradingOpportunity() مرة واحدة لكل شمعة، وليس لكل tick). تقرأ الدالة خمسة مخازن مؤشرات عبر GetIndicatorValues(): iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_CLOSE) للمتوسط السريع، و iMA(... 50 ...) للمتوسط البطيء، و iRSI(... 14, PRICE_CLOSE)، و iMACD(12, 26, 9)، و iATR(... 14). تعمل بوابة تذبذب أولاً: إذا كانت آخر قيمة ATR(14) أدنى من MinATR = 0.0010، تعود الدالة دون النظر إلى الإشارة — وهذا مرشح للسوق الميت، مفيد لالتقاط جلسة آسيا منخفضة التذبذب على الذهب. إذا اجتاز ATR، يفحص المسار الصاعد emaFast[1] <= emaSlow[1] && emaFast[0] > emaSlow[0] (تقاطع صاعد جديد بين السريع والبطيء)، و RSI بين 30 و70 (الافتراضي RSI_Oversold = 30.0 و RSI_Overbought = 70.0)، و macdMain[0] > 0. أما المسار الهابط فهو المرآة: تقاطع هابط جديد، و RSI بين 30 و70، و MACD تحت الصفر.

تُثبِّت مجموعة "=== Trade Settings ===" هندسة وقف الخسارة وجني الأرباح: StopLossPips = 20 و RiskRewardRatio = 2.0، لذا يُفتَح كل صفقة بوقف 20 نقطة وهدف 40 نقطة — نسبة مخاطرة إلى عائد 1:2 مُدمجة في كل من OpenBuyPosition() و OpenSellPosition(). قاعدة المركز الواحد هي القاعدة: PositionsTotal() > 0 || totalTradesOnBar >= 1 يوقف CheckForTradingOpportunity() في الأعلى، ما يعني أن الخبير لا يُكوِّم، ولا يُعدِّل المتوسط، ولا يُحوط ضد نفسه. مسار "الإدارة" الوحيد بعد الدخول هو إغلاق الحد اليومي — لا يوجد معالج OnTradeTransaction، ولا routine Trailing Stop، ولا رatchet Break-even، ولا إغلاق جزئي. الدوال المساعدة الثلاث للمحاولة TryClose_EX16065 و TryClosePartial_EX16065 و TryModify_EX16065 مُعرَّفة في الملف (كل منها تلف حتى ثلاث مرات مع Sleep(200) عند requote/timeout)، لكن OnTick() و CloseAllPositions() لا تستدعيها — توصيلات الكود الميت توحي بأن القالب الأصلي صُمم لمدير مركز أكثر تعقيداً لم يصل أبداً إلى هذا البناء.

تُعرِّف مجموعة "=== Identity ===" الرقم السحري 22216065 وتعليق الصفقة "Psgrowth.com Expert_16065"، وكلاهما يظهر على كل طلب OrderSend. التعليق هو ما يظهر في سجل الصفقات، لذا يعمل كعلامة مميزة لكشف الحساب.

عدة تحذيرات تستحق الإشارة. يصف رأس الكتلة "12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester" — لكن في الكود الفعلي، الطبقات الموجودة هي: SIGNAL (EMA/RSI/MACD)، و NO-TRADE (MinATR والحدود اليومية)، و RISK (المدخلات الأربعة بالنسبة المئوية)، و SIZING (CalculateLotSize)، و EXIT (CloseAllPositions). لا يوجد مصنف Regime، ولا مرشح جلسة، ولا مرشح أخبار، ولا طبقة Scaling، ولا صيغة OnTester. الوصف في الرأس هو الطموح؛ أما البناء فهو الأساس. على أي شخص يشغّل هذا في Strategy Tester ألا يتوقع سلوكاً واعياً بالجلسة أو الأخبار.

في اختبار خلفي على XAUUSD M5 على سنة من بيانات tick، ستعمل بوابة الربح/الخسارة اليومية على الأرجح على تقييد منحنى الأسهم بنحو 3% صعوداً أو 5% هبوطاً لكل يوم خادم. في الأيام الهادئة، قد لا يأخذ الخبير أي صفقة؛ وفي أيام الاتجاه المتقلب، يمكن أن يأخذ صفقة واحدة — ثم يجلس مكتوف الأيدي لبقية الجلسة. هذا السلوك مقصود.

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

في كل tick، تحسب OnTick() الربح/الخسارة التراكمي لليوم مقابل الرصيد المسجل عند منتصف الليل، ثم تسأل CheckDailyLimits() ما إذا كان قد تم بلوغ 3% ربح أو 5% خسارة. إذا فُتحت شمعة جديدة منذ آخر فحص، تُشغَّل CheckForTradingOpportunity() مرة واحدة: تقرأ مخازن المؤشرات الخمسة (EMA20 و EMA50 و RSI14 و MACD 12/26/9 و ATR14)، وترفض الشمعة إذا كان ATR(14) أدنى من 0.0010، وعندها فقط تقارن التقاطع الأخير بالنمط الصاعد أو الهابط. عند تطابق النمط، يُحسب حجم اللوت عبر CalculateLotSize() من بيانات التيك للرمز وميزانية مخاطرة 2% من الحساب، ويُفتَح الصفقة بوقف 20 نقطة وهدف 40 نقطة، ويُزاد totalTradesOnBar لمنع إعادة الدخول على نفس الشمعة. يعمل مولّد الإشارة وبوابة الربح/الخسارة اليومية بشكل مستقل — يمكن للبوابة إيقاف الخبير في منتصف اليوم حتى مع وجود مركز مفتوح؛ ولا يمكن لمولّد الإشارة إعادة فتح أي شيء حتى تُعاد تهيئة البوابة عند منتصف الليل التالي على الخادم.

إشارة الدخول

يبدأ مسار الدخول عند تقاطع صاعد جديد بين المتوسط السريع (20) والمتوسط البطيء (50) على افتتاح شمعة جديدة، بشرط أن يكون ATR(14) أعلى من عتبة التذبذب الدنيا MinATR = 0.0010 وأن يتراوح مؤشر RSI(14) بين 30 و70. تأتي التأكيدات الثلاثة من MACD(12,26,9) — يجب أن يكون خطه الرئيسي فوق الصفر للشراء وتحت الصفر للبيع. يسمح الخبير بمركز واحد فقط في كل وقت و entry واحدة كحد أقصى لكل شمعة.

إشارة الخروج

لا يحتوي الخبير على منطق خروج لكل صفقة — لا Trailing Stop، ولا Break-even، ولا إغلاق جزئي، ولا خروج زمني، ولا خروج عند إشارة عكسية. المسار الوحيد للخروج هو بوابة الربح/الخسارة اليومية: عندما تصل currentDayPnL/startOfDayBalance إلى +3% (الهدف الافتراضي) أو -5% (الحد الأقصى للخسارة اليومي)، تستدعي CloseAllPositions() صفقة عكسية لكل مركز مفتوح بتعليق "Daily limit reached" ويتوقف الخبير عن فتح صفقات جديدة حتى بداية اليوم التالي على الخادم. يظل وقف الخسارة وجني الأرباح مرفقين عند الدخول، لذا يمكن لصفقة واحدة أيضاً أن تُغلق عند 20 نقطة ضد المركز أو 40 نقطة لصالحه (نسبة المخاطرة للعائد 1:2).

وقف الخسارة

وقف خسارة ثابت عند 20 نقطة (StopLossPips = 20) مُدمج في كل من OpenBuyPosition() و OpenSellPosition() ويُرفق عند كل دخول. يعمل MaxDailyLoss = -5.0 كوقف إضافي على مستوى الحساب: عندما يصل الربح/الخسارة المحقق خلال اليوم إلى -5% من رصيد بداية اليوم، تجبر CloseAllPositions() على إغلاق كل المراكز المفتوحة. يعملان معاً — يمكن لصفقة واحدة أن تُوقف عند 20 نقطة، أو يمكن للخسارة المجمعة خلال اليوم أن تُفعّل سقف 5%.

جني الأرباح

جني أرباح ثابت عند 40 نقطة (StopLossPips * RiskRewardRatio = 20 * 2.0 = 40) يُعيَّن عند كل دخول بنسبة مخاطرة إلى عائد 1:2. لا يوجد جني أرباح ديناميكي، ولا إغلاق متدرج، ولا إغلاق جزئي — جني الأرباح المرفق عند الفتح هو الهدف الوحيد لكل صفقة. يضيف DailyProfitTarget = 3.0 هدفاً على مستوى الجلسة: عندما يصل صافي الربح/الخسارة اليومي إلى +3% من رصيد بداية اليوم، تُغلق جميع المراكز المفتوحة رابحة قبل أن تصل إلى أهدافها الفردية.

الأنسب لـ

يعمل الخبير بشكل أفضل على XAUUSD عند الإطار M5 أو H1 مع حد أدنى للإيداع 100 دولار وملف مخاطرة متوسط. تصميم نسبة المخاطرة للعائد 1:2 ومركز واحد لكل شمعة وعتبة ATR يعني أن الخبير يعمل أفضل في الأسواق ذات المدى اليومي الكافي لدفع 40 نقطة (نحو 4–5 دولارات على الذهب) — وهو الأنسب على XAUUSD خلال افتتاح لندن وحتى إغلاق نيويورك عندما يميل التذبذب إلى تجاوز عتبة MinATR بوضوح. يجعل سقف الخسارة اليومية 5% وسقف الربح اليومي 3% هذا الخبير مناسباً لتقييمات شركات Prop Firm أو للمتداولين الذين يريدون أن يتبع ربح/خسارة حسابهم غلافاً يومياً صارماً بدلاً من نتيجة مركز واحد مفتوح. استخدمه مع وسيط بسبريد ضيق وعمولات منخفضة وبيانات tick موثوقة، لأن بوابة MinATR حساسة لمكون السبريد في قراءة ATR(14) على الأزواج ذات النطاق الضيق.

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

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

العائلة: Trend الماجيك: 22216065 الإصدار: 2.00

الوصف: Professional risk manager EA with EMA crossover, RSI and MACD confirmation filtered by ATR volatility. Enforces daily profit targets, max daily loss, and risk-per-trade sizing. Closes all positions when daily limits are hit. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CheckDailyLimits()
  • UpdateDailyPnL()
  • CheckForTradingOpportunity()
  • GetIndicatorValues()
  • CheckBullishSignal()
  • CheckBearishSignal()
  • CalculateLotSize()
  • OpenBuyPosition()
  • OpenSellPosition()
  • CloseAllPositions()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16065 Trend — Execution Flow (from source analysis)
// Family: Trend
// Professional risk manager EA with EMA crossover, RSI and MACD confirmation filtered by ATR volatility. Enforces daily profit targets, max daily loss, and risk-per-trade sizing. Closes all positions when daily limits are hit. 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

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

المعاملالافتراضيالوصف
MagicNumber22216065Magic number
InpTradeComment"Psgrowth.com Expert_16065"Trade comment
RiskPercent2.0Risk per trade (% of account)
MaxDailyRisk6.0Maximum daily risk (%)
DailyProfitTarget3.0Daily profit target (%)
MaxDailyLoss-5.0Maximum daily loss (%)
StopLossPips20Fixed stop loss in pips
RiskRewardRatio2.0Risk:Reward ratio
EMA_Fast20Fast EMA period
EMA_Slow50Slow EMA period
RSI_Period14RSI period
RSI_Oversold30.0RSI oversold level
RSI_Overbought70.0RSI overbought level
MACD_Fast12MACD fast EMA
MACD_Slow26MACD slow EMA
MACD_Signal9MACD signal line
MinATR0.0010Minimum ATR for trading
ATR_Period14ATR period
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16065.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16065 Professional_Risk_Manager_EA — EMA/RSI/MACD risk-managed trend EA, full 12-layer stack."
#include <Trade\Trade.mqh>

//--- Input parameters
input group "=== Identity ==="
input int      MagicNumber = 22216065;              // Magic number
input string   InpTradeComment = "Psgrowth.com Expert_16065"; // Trade comment

input group "=== Risk Management ==="
input double   RiskPercent = 2.0;           // Risk per trade (% of account)
input double   MaxDailyRisk = 6.0;          // Maximum daily risk (%)
input double   DailyProfitTarget = 3.0;     // Daily profit target (%)
input double   MaxDailyLoss = -5.0;         // Maximum daily loss (%)

input group "=== Trade Settings ==="
input int      StopLossPips = 20;           // Fixed stop loss in pips
input double   RiskRewardRatio = 2.0;       // Risk:Reward ratio

input group "=== Indicators ==="
input int      EMA_Fast = 20;               // Fast EMA period
input int      EMA_Slow = 50;               // Slow EMA period
input int      RSI_Period = 14;             // RSI period
input double   RSI_Oversold = 30.0;         // RSI oversold level
input double   RSI_Overbought = 70.0;       // RSI overbought level
input int      MACD_Fast = 12;              // MACD fast EMA
input int      MACD_Slow = 26;              // MACD slow EMA
input int      MACD_Signal = 9;             // MACD signal line
input double   MinATR = 0.0010;             // Minimum ATR for trading
input int      ATR_Period = 14;             // ATR period

//--- Global variables
double startOfDayBalance;
double currentDayPnL;
bool dailyTradingAllowed;
int totalTradesOnBar;

//--- Handles for indicators
int handleEMA_Fast, handleEMA_Slow, handleRSI, handleMACD, handleATR;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
    // Initialize indicators
    handleEMA_Fast = iMA(_Symbol, PERIOD_CURRENT, EMA_Fast, 0, MODE_EMA, PRICE_CLOSE);
    handleEMA_Slow = iMA(_Symbol, PERIOD_CURRENT, EMA_Slow, 0, MODE_EMA, PRICE_CLOSE);
    handleRSI = iRSI(_Symbol, PERIOD_CURRENT, RSI_Period, PRICE_CLOSE);
    handleMACD = iMACD(_Symbol, PERIOD_CURRENT, MACD_Fast, MACD_Slow, MACD_Signal, PRICE_CLOSE);
    handleATR = iATR(_Symbol, PERIOD_CURRENT, ATR_Period);

    // Check if indicators are created successfully
    if(handleEMA_Fast == INVALID_HANDLE || handleEMA_Slow == INVALID_HANDLE ||
       handleRSI == INVALID_HANDLE || handleMACD == INVALID_HANDLE ||
       handleATR == INVALID_HANDLE)
    {

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

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

الوسوم:ex16065trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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