Pipsgrowth EX16014 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX16014 Trend — Price Above/Below MA EA for XAUUSD on M5 timeframe. Uses MA direction with RSI filter for entry signals. BUY when price . إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
الإشارة بالكامل هي مقارنة واحدة لإغلاق الشمعة الأولى مع المتوسط المتحرك الأسي لمدة 50 فترة، يتم تنشيطها بواسطة قراءة مؤشر RSI لمدة 14 فترة أعلى من 50 (أو أقل من 50 للبيع). يحدد المتوسط المتحرك اتجاه النظام، ويؤكد مؤشر RSI الزخم، ولا تنطلق الصفقة إلا عند تحقق الشرطين معاً. تعمل دالة CheckSignal() مرة واحدة لكل شمعة M5 جديدة — حيث تسحب إغلاق الشمعة 1 مع قيم الشمعة 1 من iMA(_Symbol, _Period, InpMAPeriod=50, 0, InpMAMethod=MODE_EMA, PRICE_CLOSE) و iRSI(_Symbol, _Period, InpRSIPeriod=14, PRICE_CLOSE) عبر CopyBuffer، ثم تحسب إشارة شراء عندما close1 > ma AND rsi > 50، وإشارة بيع معكوسة عندما close1 < ma AND rsi < 50. تتوقف دالة OnTick عن العمل في كل tick يكون فيه الطابع الزمني للشمعة مساوياً للقيمة المخزنة lastBar، لذلك لا يمكن تقييم الدخول في منتصف الشمعة. الفلتر الوحيد الذي يعمل في كل tick هو بوابة السبريد: تعود OnTick فوراً إذا كان mysymbol.Spread() > InpMaxSpread=250 نقطة (25 نقطة على تسعير XAUUSD بخمس خانات).
يتم فتح أول صفقة في الاتجاه دون قيد عندما تنطلق الإشارة. أما الصفقات اللاحقة في نفس الاتجاه فتمر عبر طبقة البيراميد، وهي أكثر قواعد إدارة المخاطر تميزاً في هذا الـ EA: InpEnablePyramid=true افتراضياً + InpMaxPositions=3 كحد أقصى لكل اتجاه، مع IsGridSafe() التي تمشي عبر كل صفقة موجودة على الرمز بسحر 22216014 من النوع المطلوب وتعيد false إذا كانت أي واحدة منها تحت InpMinProfitPoints=250 نقطة (25 نقطة) من الربح غير المحقق. لذلك فإن إضافة البيراميد لا تتراكم أبداً على صفقة خاسرة — بل تضاف فقط عندما تكون الطبقة الحالية قد حققت بالفعل 25 نقطة في المنطقة الإيجابية. نفس منطق البوابة موجود للبيع عبر معامل نوع الصفقة الذي يُمرر إلى IsGridSafe.
وقف الخسارة وهدف الربح في كل تذكرة — سواء الصفقة الأولى أو كل إضافة بيراميد — ثابتان عند InpStopLoss=300 نقطة (30 نقطة على XAUUSD) و InpTakeProfit=800 نقطة (80 نقطة)، يتم تحديدهما عند الفتح باستخدام Ask للشراء و Bid للبيع، مما يعطي نسبة مخاطرة إلى عائد 2.67:1. تحديد حجم اللوت موجود في دالة CalculateLotSize(): مع InpRiskPercent=1.0% افتراضياً، يتم تحديد حجم كل أمر جديد بحيث يؤدي وقف الخسارة إلى خسارة 1% بالضبط من رصيد الحساب، محسوباً كـ riskMoney = account.Balance() * 0.01 / (stopLossPoints * (tickValue / (tickSize / pointValue)))، مقرباً إلى الأدنى عند خطوة اللوت للرمز، ثم محدوداً بين LotsMin و LotsMax. ضبط InpRiskPercent=0 يعود إلى InpFixedLot=0.01 الثابت. لا يوجد حد رأسمالي لكل صفقة، ولا دائرة خسارة يومية، ولا وقف بنسبة الرصيد — سطح الأمان العالمي هو فقط فلتر السبريد.
إدارة ما بعد الدخول هي حصرياً قفل الجر trailing stop في ManageProfitLock()، التي تعمل في كل tick قبل بوابة الشمعة الجديدة. للشراء، بمجرد أن يتحرك Bid بمقدار InpTrailStart=300 نقطة (30 نقطة) على الأقل بعد سعر فتح الصفقة، يصبح وقف الخسارة الجديد المقترح هو Bid ناقص InpTrailDistance=150 نقطة (15 نقطة خلف السعر)، ولا ينطلق القفل إلا عندما يكون وقف الخسارة الجديد هذا أعلى من وقف الخسارة الحالي — لا يتحرك للخلف أبداً. صفقات البيع تنعكس مع Ask زائد 150 نقطة كوقف خسارة جديد مقترح، يقفل فقط نحو الأسفل، وينطلق القفل أيضاً على صفقة لا يزال وقف خسارتها 0 (دون مساس)، لذا فإن أول 30 نقطة ربح تؤدي إلى وقف من لا شيء. قفل الـ trailing لا يغير جانب جني الأرباح أبداً. InpTrailStep=100 معرّف كمدخل ولكن لا يُقرأ في مسار كود الـ trailing — القفل يتطلب فقط newSL > currentSL للشراء أو newSL < currentSL للبيع، لذا فإن تغيير InpTrailStep ليس له أي تأثير على السلوك الفعلي. لا توجد خطوة تعادل، ولا إغلاق جزئي، ولا خروج قائم على الوقت، ولا خروج قائم على الإشارة المعاكسة؛ الطرق الوحيدة لإغلاق الصفقة هي تفعيل وقف الخسارة، أو تفعيل جني الأرباح، أو لحاق القفل trailing stop بالسعر.
ثلاث دوال مساعدة لإعادة المحاولة TryClose_EX16014 / TryClosePartial_EX16014 / TryModify_EX16014 تغلف استدعاءات trade بثلاث محاولات عند TRADE_RETCODE_REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED مع Sleep لمدة 200ms للإغلاق و 100ms للتعديل بين المحاولات. فقط TryModify_EX16014 تُستدعى فعلياً — فهي مدمجة في ManageProfitLock لكل حساب قفل ناجح. TryClose_EX16014 و TryClosePartial_EX16014 معرّفتان ولكن لم تُستدعيا أبداً، مما يعكس سياسة الـ EA في عدم إغلاق أي صفقة بشكل استباقي أو إغلاقها جزئياً. OnTester فارغة، OnTradeTransaction غير منفذة، وفحص الأمان العالمي الوحيد هو فلتر السبريد.
كتلة الترويسة في ملف المصدر تدّعي بنية من 12 طبقة (REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester) لكن التنفيذ الفعلي المدمج أقرب إلى سبع: REGIME عبر اتجاه الـ 50-EMA، SIGNAL عبر المقارنة المزدوجة للإغلاق مع المتوسط و RSI(14) > 50، ENTRY على شمعة M5 جديدة، SIZING عبر صيغة 1% للمخاطرة في CalculateLotSize، MANAGE عبر قفل الـ chandelier، EXIT عبر TP/SL بالإضافة إلى القفل، و SCALING عبر البيراميد المعتمد على ربح IsGridSafe حتى 3 طبقات. لا يوجد CONFIRM يتجاوز RSI نفسه، ولا بوابة NO-TRADE تتجاوز السبريد، ولا CAPITAL CAP، ولا وقف خسارة قائم على الرصيد، ولا دائرة خسارة يومية، ولا تمرير OnTester. ما يفعله الـ EA فعلياً قابل للقراءة بالكامل من المصدر: يحدد الاتجاه بمتوسط متحرك، ويؤكد الاتجاه بـ RSI، ويضيف طبقات على الربح، ويقفل الوقف، ويترك جني الأرباح أو القفل ليغلق الصفقة.
على الذهب عند M5، سقف InpMaxSpread=250 نقطة متساهل (حوالي 2.5 نقطة على السبريد المتغير النموذجي للوسيط بنقطة واحدة) وهو فقط حد أقصى صلب وليس فلتراً ضيقاً، لذلك لا يقوم الـ EA بترشيح انفجارات السبريد الصغيرة بقوة. تم ضبط وقف 30 نقطة وهدف 80 نقطة على نطاق شموع M5 للذهب — شموع M5 للذهب تمتد عادة من 30 إلى 80 نقطة، لذا يمكن الوصول إلى الهدف خلال عدة ساعات خلال الجلسات النشطة. لا ينشط قفل الـ chandelier إلا بعد 30 نقطة ربح ثم يقفل على بعد 15 نقطة خلف السعر، مما يعني أن نقطة التثبيت عادة ما تكون خلال شمعة أو شمعتين M5 قويتين بعد الدخول. مع مخاطرة 1% لكل صفقة وبوابة ربح البيراميد عند 25 نقطة، يضيف النظام طبقات فقط على الزخم المؤكد ويترك الفائزين يركضون.
تفاصيل الاستراتيجية
في كل tick، تتحقق OnTick أولاً من السبريد مقابل InpMaxSpread=250، ثم تشغل ManageProfitLock() لقفل أي صفقات رابحة، ثم تتوقف عن العمل ما لم يتغير الطابع الزمني لشمعة M5. على شمعة جديدة، تسحب CheckSignal() إغلاق الشمعة 1 + iMA(50, EMA, PRICE_CLOSE) + iRSI(14, PRICE_CLOSE) عبر CopyBuffer وتطلق إشارة شراء عندما close1 > ma AND rsi > 50 (معكوسة للبيع). تُفتح الصفقة الأولى في الاتجاه دون قيد عبر OpenBuy/OpenSell؛ أما الصفقات الإضافية في نفس الاتجاه فتمر عبر بوابة IsGridSafe()، التي تفحص كل الصفقات القائمة من ذلك النوع وترفض الإضافة ما لم تكن كل واحدة منها تحقق ربحاً غير محقق لا يقل عن InpMinProfitPoints=250 (25 نقطة) — مع تحديد عدد الطبقات عند InpMaxPositions=3. تحدد CalculateLotSize() حجم كل أمر جديد عند InpRiskPercent=1.0% من الرصيد مقابل وقف 300 نقطة، وتعود إلى InpFixedLot=0.01 عندما تكون المخاطرة صفراً. ManageProfitLock() هي الإدارة الوحيدة بعد الدخول: بمجرد أن يتجاوز الربح InpTrailStart=300 نقطة، فإنها تقفل وقف الخسارة عند السعر ± InpTrailDistance=150 نقطة، بحيث يتحرك القفل دائماً في الاتجاه المواتي فقط.
شراء عندما يكون إغلاق الشمعة 1 فوق المتوسط المتحرك الأسي لمدة 50 فترة ومؤشر RSI(14) فوق 50؛ بيع عند العكس. يتم تقييم التأكيد المزدوج مرة واحدة لكل شمعة M5 جديدة في CheckSignal() — تتوقف OnTick عن العمل حتى يتغير الطابع الزمني للشمعة. تُفتح الصفقة الأولى في الاتجاه دون قيد؛ ولا تنطلق إضافات البيراميد (حتى 3 طبقات) إلا عندما تؤكد IsGridSafe() أن كل صفقة قائمة في نفس الاتجاه تحقق ربحاً لا يقل عن 250 نقطة.
لا يوجد منطق إغلاق استباقي — TryClose_EX16014 و TryClosePartial_EX16014 معرّفتان ولكن لم تُستدعيا، ولا يوجد خروج قائم على الإشارة المعاكسة أو الوقت. تُغلق الصفقات فقط عبر قيم التذكرة الثابتة InpStopLoss=300 / InpTakeProfit=800، أو عبر ManageProfitLock() التي تقفل الوقف بعد 300 نقطة ربح لتثبيته على بعد 150 نقطة خلف السعر (Ask+150 للبيع، Bid-150 للشراء).
InpStopLoss=300 نقطة ثابتة (30 نقطة على XAUUSD) على كل تذكرة، يتم تحديدها عند الفتح من Ask للشراء و Bid للبيع — وقف خسارة متطابق للطبقة الأولى وطبقات البيراميد. لا يوجد وقف قائم على الرصيد، ولا دائرة خسارة يومية، ولا وقف بنسبة الرصيد؛ سطح الأمان العالمي الوحيد هو سقف InpMaxSpread=250.
InpTakeProfit=800 نقطة ثابتة (80 نقطة) على كل تذكرة، نسبة 2.67:1 مقابل وقف 300 نقطة، تُحدد عند الفتح ولا تعدلها ManageProfitLock() أبداً (القفل يلامس جانب وقف الخسارة فقط، وليس جانب جني الأرباح).
الحد الأدنى للرصيد الموصى به هو 100 دولار مع InpFixedLot=0.01 — عند InpRiskPercent=1.0% الافتراضي، يتم تحديد اللوت مقابل وقف 30 نقطة، لذا فإن رصيد 100 دولار مع تنفيذ الذهب بـ spread خام ينتج دخول بحجم 0.01 لوت. يتوقع الـ EA وسيط ECN أو RAW بـ spread منخفض لأن سقف InpMaxSpread=250 هو الفلتر العالمي الوحيد؛ على الحسابات العادية مع اتساع السبريد خلال الـ rollover، ستُتخطى الإشارات. الأفضل تشغيله خلال تداخل لندن ونيويورك (13:00-17:00 UTC) عندما يكون لشموع XAUUSD M5 أكبر نطاق للجسم ويمكن الوصول إلى هدف 80 نقطة خلال ساعات — نطاق شموع M5 على الذهب في الجلسة الآسيوية غالباً ما يكون تحت 30 نقطة، مما لن يملأ هدف 80 نقطة الثابت بشكل كافٍ.
منطق الاستراتيجية
Pipsgrowth EX16014 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216014
الإصدار: 2.00
الوصف:
Price Above/Below MA EA for XAUUSD on M5 timeframe. Uses MA direction with RSI filter for entry signals. BUY when price is above MA and RSI confirms momentum; SELL when below. Includes pyramiding, trailing stop, and spread filtering. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
CheckSignal()OpenBuy()OpenSell()ManageProfitLock()IsGridSafe()CalculateLotSize()CountPositions()TryClose_EX16014()TryClosePartial_EX16014()TryModify_EX16014()
// Pipsgrowth EX16014 Trend — Execution Flow (from source analysis)
// Family: Trend
// Price Above/Below MA EA for XAUUSD on M5 timeframe. Uses MA direction with RSI filter for entry signals. BUY when price is above MA and RSI confirms momentum; SELL when below. Includes pyramiding, trailing stop, and spread filtering. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMAPeriod | 50 | MA Period |
| InpMAMethod | MODE_EMA | MA Method |
| InpRSIPeriod | 14 | RSI Period (Filter) |
| InpRiskPercent | 1.0 | Risk Percent per Trade |
| InpFixedLot | 0.01 | Fixed Lot (if Risk=0) |
| InpStopLoss | 300 | Stop Loss (points) |
| InpTakeProfit | 800 | Take Profit (points) |
| InpMagicNumber | 22216014 | Magic Number |
| InpTradeComment | "Psgrowth.com Expert_16014" | Trade Comment |
| InpMaxSpread | 250 | Max Spread (points) |
| InpSlippage | 3 | Slippage |
| InpEnableTrail | true | Enable Trailing Stop |
| InpTrailStart | 300 | Trail Start Distance (points) |
| InpTrailStep | 100 | Trail Step (points) |
| InpTrailDistance | 150 | Distance behind price (points) |
| InpEnablePyramid | true | Enable Pyramiding |
| InpMaxPositions | 3 | Max Open Positions |
| InpMinProfitPoints | 250 | Min Profit (points) to Add Next |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16014 PriceAboveBelowMA XAUUSD 5M — MA/RSI trend EA, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
CTrade trade;
CPositionInfo position;
CSymbolInfo mysymbol;
CAccountInfo account;
//--- Input Groups
input group "=== Signal Settings ==="
input int InpMAPeriod = 50; // MA Period
input ENUM_MA_METHOD InpMAMethod = MODE_EMA; // MA Method
input int InpRSIPeriod = 14; // RSI Period (Filter)
input group "=== Money Management ==="
input double InpRiskPercent = 1.0; // Risk Percent per Trade
input double InpFixedLot = 0.01; // Fixed Lot (if Risk=0)
input int InpStopLoss = 300; // Stop Loss (points)
input int InpTakeProfit = 800; // Take Profit (points)
input group "=== Trade Management ==="
input int InpMagicNumber = 22216014; // Magic Number
input string InpTradeComment = "Psgrowth.com Expert_16014"; // Trade Comment
input int InpMaxSpread = 250; // Max Spread (points)
input int InpSlippage = 3; // Slippage
input group "=== Profit Lock / Trailing ==="
input bool InpEnableTrail = true; // Enable Trailing Stop
input int InpTrailStart = 300; // Trail Start Distance (points)
input int InpTrailStep = 100; // Trail Step (points)
input int InpTrailDistance = 150; // Distance behind price (points)
input group "=== Pyramiding / Scaling ==="
input bool InpEnablePyramid = true; // Enable Pyramiding
input int InpMaxPositions = 3; // Max Open Positions
input int InpMinProfitPoints= 250; // Min Profit (points) to Add Next
//--- Handles
int hMA;
int hRSI;
//--- Global Buffers
double bufMA[];
double bufRSI[];
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
trade.SetExpertMagicNumber(InpMagicNumber);
trade.SetDeviationInPoints(InpSlippage);
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.