Pipsgrowth EX18078 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX18078 TrendFollow — Gold scalping strategy using Parabolic SAR for trade direction and as a dynamic trailing stop. Enters on SAR flip signal. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX18078 هو مضارب على الذهب (XAUUSD) بمؤشر واحد فقط، مبني حول Parabolic SAR يؤدي دورين في وقت واحد: يُولّد إشارة الدخول ويُدير وقف الخسارة في كل تيكت. يُحمّل الخبير مُقبضين في OnInit — iSAR(_Symbol, PERIOD_M15, 0.02, 0.2) وiATR(_Symbol, PERIOD_M15, 14) — ويستخدم نفس سلسلة SAR على الإطار M15 لكلٍّ من قرار الدخول وتحديث الوقف المتحرك، لذا يكفي انعطافة واحدة في منحنى البارابوليك لقلب اتجاه المركز المفتوح.
يعيش شرط الدخول في دالة GetSARSignal(). تقارن الدالة قيمة SAR للشمعة السابقة مع إغلاق الشمعة السابقة، وSAR الحالي مع الإغلاق الحالي، وكلاهما مُجلب من PERIOD_M15. تنطلق إشارة الشراء عندما كان SAR السابق فوق الإغلاق السابق وانخفض SAR الحالي تحت الإغلاق الحالي — أي القلب الكلاسيكي للـ SAR من أعلى إلى أسفل. البيع هو المرآة: SAR السابق تحت الإغلاق السابق، وSAR الحالي فوق الإغلاق الحالي. إن لم يتحقق أي من الشرطين على شمعة M15 المغلقة للتو، تُرجع الدالة 0 ويبقى الخبير خارج السوق. لاحظ أن مُقبض iATR يُحمَّل في OnInit ويُحدَّث في RefreshIndicators، لكن currentATR لا يُستشار داخل GetSARSignal — الـ ATR جزء من كومة المؤشرات لكن قرار الدخول الفعلي يرتكز كليًا على قلب SAR.
الفلترة متعمَّدة الخفّة. ترفض CheckFilters() الشمعة عندما يتجاوز السبريد المباشر MaxSpreadPips = 25. الافتراضي سخي لأن سبريد الذهب يتأرجح بشدة خلال تجديد السيولة وحول إصدارات البيانات الأمريكية؛ تشديد الحد سيحجب الدخول عند كل ذروة خبرية. يفرض CountPositions() >= 1 سقفًا صارمًا بكون واحد مفتوح لكل ماجيك — لا تدرّج ولا تحوط داخل هذا الخبير. الخبير محصور بالشموع عبر IsNewBar() على M15، لذا حتى لو أراد كاشف الـ SAR إعادة التقييم داخل الشمعة، الوسيط لا يرى سوى قرار واحد عند كل إغلاق M15.
حين تنجح الإشارة في اجتياز الفلتر ويكون خانة المركز شاغرة، تقوم OpenPosition() بحساب حجم الصفقة. حساب اللوت هو الصيغة المعيارية: lots = (balance * RiskPercent/100) / (slPips * pipValuePerLot)، مع UseMoneyManagement = true وRiskPercent = 2.0 افتراضيًا. مع إيقاف إدارة المال، يهبط اللوت إلى FixedLotSize = 0.01. سعر وقف الخسارة الفعلي مُرتكز على قراءة SAR الحالية، ثم يُرفع إلى أكبر قيمة بين StopLossPips = 20 نقطة أو 1.5× مسافة stops-level للرمز، كي لا يصبح SAR الذي قطع الشمعة للتوّ وقفًا يرفضه الوسيط. يُضبط جني الأرباح عند ضعف مسافة وقف الخسارة، مما يعطي نسبة مخاطرة إلى عائد 1:2 في كل دخول بحكم البناء.
منطق التريلينج هو ما يُميّز هذا الخبير عن نظام تقاطع SAR القياسي. تعمل ManageOpenPositions() في كل تيكت (وليس فقط عند حدود شمعة M15)، وللمركز الطويل المفتوح للخبير، تضبط newSL = currentSAR وتستدعي SafePositionModify() كلما تحرك SAR فوق الوقف الحالي. للبيع، تُدرّج الوقف إلى الأسفل في كل مرة يهبط فيها SAR تحت الوقف الحالي — تدريج من طرف واحد، لا يخرج أبدًا ضد الصفقة. لأن SAR هو نفس السلسلة التي أنتجت الدخول، فإن الوقف يمشي فعليًا على منحنى البارابوليك، فيتشدد مع كل دفعة عكسية ويقفل الربح في كل دفعة في اتجاه الترند. يُجبر غلاف SafePositionModify() على الحد الأدنى لمسافة الوقف لدى الوسيط قبل إرسال التعديل، ويعود إلى minDist + 1 × _Point إذا كان الوقف المقترح قريبًا جدًا، ويمرّر التعديل الفعلي عبر TryModify_EX18078() بثلاث محاولات إعادة على requote/timeout ونوم 100 مللي ثانية بين المحاولات.
لا يوجد مصنّف نظام (regime) منفصل، ولا تأكيد HTF، ولا سقف خسارة يومي أو أسبوعي، ولا فلتر أخبار. ينعكس الخبير فقط عبر الـ SAR نفسه، لذا فإن انعكاس منحنى البارابوليك (طويل→قصير أو قصير→طويل) يُغلق المركز القائم ويفتح المركز الجديد في نفس التيكت. لا يزرع OnInit أي مخازن مؤشرات متدرجة من التاريخ، لكن SAR مؤشر مدمج في MQL5 وله تسخين داخلي خاص به، لذا تنتظر أول إشارة صالحة فقط إغلاق شمعة M15 بعد الإرفاق.
ما يمكن توقّعه في الباك تيست: منحنى الأسهم متعرّج. SAR مؤشر متأخر على شموع XAUUSD السريعة، لذا يُلامس وقف الخبير في النطاقات القِطعية أكثر من غيرها. نسبة 1:2 RR تُبقي توقّع الرابحين ضعف تكلفة الخاسرين تقريبًا، لذا تعتمد الاستراتيجية على أن يكون معدل الإصابة 34% على الأقل لتحقيق التعادل قبل التكاليف. من يحتاج منحنى أسهم أكثر سلاسة، فليُشغّل الخبير على إطار أبطأ من جهة الوسيط مثل M30 أو H1، أو ليُركّب أمامه فلتر نظام ترند خاص به — لا توجد فتحة إدخال لذلك في الخبير، لكن يمكن تعديل المصدر. مجموعة الإدخالات المُسلَّمة قليلة عن قصد: رقم الماجيك، التعليق، وسبعة أزرار سلوك (ثلاثة للمخاطرة، اثنان للـ SAR، واحد لوقف الخسارة/الانزلاق، اثنان للفلاتر) — بقية السياسة مُبرمجة في أجسام الدوال.
تفاصيل الاستراتيجية
في كل تيكت، تمشي ManageOpenPositions() على المركز المفتوح وتُدرّج الوقف على قراءة SAR الحالية على M15 إذا تحرك SAR لصالح الصفقة — المراكز الطويلة لا تحصل إلا على وقف أعلى، والقصيرة لا تحصل إلا على وقف أدنى. عند إغلاق شمعة M15 جديدة، تسحب RefreshIndicators() آخر مخازن SAR وATR، وترفض CheckFilters() الشمعة إذا تجاوز السبريد المباشر MaxSpreadPips = 25، وتحجب CountPositions() أي دخول جديد طالما يوجد مركز مفتوح على الماجيك. بعدها تقارن GetSARSignal() زوج SAR/إغلاق للشمعة السابقة بزوج SAR/إغلاق للشمعة الحالية على PERIOD_M15: القلب من أعلى إلى أسفل يُرجع 1 فتشتري OpenPosition()، والقلب من أسفل إلى أعلى يُرجع -1 فتبيع OpenPosition()، وإلا يُرجع الخبير 0 ويبقى محايدًا. تُرتكز SL في OpenPosition() على SAR الحالي، وتُرفع إلى أكبر قيمة بين 20 نقطة أو 1.5× مسافة stops-level، ويُحسب حجم اللوت من ميزانية المخاطرة البالغة 2% مقابل قيمة النقطة لوقف الخسارة المُرفع، ويُضبط TP عند ضعف مسافة SL لنسبة 1:2. يعمل انعكاس SAR إلى الجهة المقابلة أيضًا كخروج حي، لذا يمكن للخبير أن يقلب المركز في التيكت ذاته.
ينطلق الدخول عند قلب Parabolic SAR(0.02, 0.2) على الإطار PERIOD_M15: شراء عندما كان SAR الشمعة السابقة فوق إغلاقها السابق وانخفض SAR الحالي تحت الإغلاق الحالي، والبيع على القلب المعاكس. القرار محصور بإغلاقات M15، ويتطلب أن يكون السبائد المباشر عند MaxSpreadPips = 25 أو أقل، ويُحجب طالما يوجد مركز واحد مفتوح على رقم الماجيك.
يخرج المركز بثلاث طرق: يُصاب جني الأرباح الوقائي (عند ضعف مسافة وقف الخسارة الأولي)، أو يُصاب وقف الخسارة الوقائي (مُرتكز على SAR مع أرضية 20 نقطة)، أو ينقلب SAR إلى الجهة المقابلة، وفي هذه الحالة يمكن للتيكت ذاته أن يُغلق المركز القائم ويفتح مركزًا جديدًا في الاتجاه المعاكس. كما تُدرّج حلقة ManageOpenPositions() الوقف الحي على SAR الحالي في كل تيكت يتحرك فيه SAR لصالح الصفقة.
وقف الخسارة الأولي مُرتكز على سعر Parabolic SAR الحالي، ثم يُرفع إلى أكبر قيمة بين StopLossPips = 20 نقطة أو 1.5× مسافة stops-level للرمز، كي يبقى مقبولًا لدى الوسيط دائمًا. بعد الدخول، تُدرّج حلقة ManageOpenPositions() الوقف على SAR الحالي في كل تيكت يتحرك فيه SAR لصالح الصفقة — تدريج من طرف واحد لا يرتخي أبدًا.
يُضبط جني الأرباح عند ضعف مسافة وقف الخسارة الأولي بالضبط في كل دخول، مما يعطي نسبة مخاطرة إلى عائد ثابتة 1:2. يُضبط جني الأرباح مرة واحدة عند فتح الأمر ولا يُعدَّل بواسطة منطق التريلينج؛ الوقف وحده هو الذي يُدرَّج.
الأنسب للمتداولين الذين يُشغّلون XAUUSD على وسيط سبريده منخفض (سقف MaxSpreadPips = 25 يحتاج هامشًا وقت الأخبار) على شمعة M15 المُرتكز عليها SAR، مع إطارَي M5 وH1 المذكورَين في مجموعة الإدخالات بوصفهما سياقًا بصريًا لا شموع إشارة. الحد الأدنى الموصى به للرصيد هو 100 دولار مع المخاطرة الافتراضية البالغة 2% لكل صفقة، ويعني وقف الخسارة المُرتكز على SAR عند 20 نقطة أن الحساب دون 500 دولار سيصل سريعًا إلى أرضية الحد الأدنى للوت لدى الوسيط ويتوقف عن التدرّج. لا يوجد سقف خسارة يومي أو أسبوعي ولا فلتر أخبار ولا مصنّف نظام مع الخبير، لذا يُفضَّل تشغيله من قِبَل متداول مرتاح لمراقبة الشارت وتعطيله حول أحداث الدولار الأمريكية عالية التأثير المُجدوَلة.
منطق الاستراتيجية
Pipsgrowth EX18078 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218078
الإصدار: 2.00
الوصف:
Gold scalping strategy using Parabolic SAR for trade direction and as a dynamic trailing stop. Enters on SAR flip signals with spread filter and ATR-based validation. Includes money management with risk-based lot sizing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
SafePositionModify()RefreshIndicators()GetSARSignal()OpenPosition()ManageOpenPositions()CalculatePositionSize()IsNewBar()GetPipSize()CheckFilters()CountPositions()
// Pipsgrowth EX18078 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Gold scalping strategy using Parabolic SAR for trade direction and as a dynamic trailing stop. Enters on SAR flip signals with spread filter and ATR-based validation. Includes money management with risk-based lot sizing. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagicNumber | 22218078 | Magic Number (222 + Expert ID) |
| InpTradeComment | "Psgrowth.com Expert_18078" | Trade Comment |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18078 GoldScalper_ParabolicSAR_DynamicStop — SAR-based gold scalping with dynamic trailing, full 12-layer stack."
#include <Trade\Trade.mqh>
input group "=== Risk Management ==="
input bool UseMoneyManagement = true;
input double RiskPercent = 2.0;
input double FixedLotSize = 0.01;
input group "=== SAR Settings ==="
input double SAR_Step = 0.02;
input double SAR_Maximum = 0.2;
input group "=== Trade Settings ==="
input int StopLossPips = 20;
input int Slippage = 3;
input int InpMagicNumber = 22218078; // Magic Number (222 + Expert ID)
input string InpTradeComment = "Psgrowth.com Expert_18078"; // Trade Comment
input group "=== Filters ==="
input bool UseSpreadFilter = true;
input double MaxSpreadPips = 25.0;
CTrade trade;
int handleSAR, handleATR;
datetime lastBarTime = 0;
double currentSAR, prevSAR, currentATR;
ENUM_ORDER_TYPE_FILLING GetAllowedFilling()
{
int filling_mode = (int)SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE);
if((filling_mode & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK) return ORDER_FILLING_FOK;
else if((filling_mode & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC) return ORDER_FILLING_IOC;
else return ORDER_FILLING_RETURN;
}
//+------------------------------------------------------------------+
//| Safe Position Modify - validates stops before modifying |
//+------------------------------------------------------------------+
bool SafePositionModify(ulong ticket, double newSL, double newTP)
{
// Select the position
if(!PositionSelectByTicket(ticket))
{
return false; // Position doesn't exist, no error needed
}
// Get current price
long type = PositionGetInteger(POSITION_TYPE);
double price = (type == POSITION_TYPE_BUY) ?
SymbolInfoDouble(_Symbol, SYMBOL_BID) :
SymbolInfoDouble(_Symbol, SYMBOL_ASK);
// Get minimum stop level (in price units)
long stopLevel = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
double minDist = stopLevel * _Point;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.