Pipsgrowth EX16006 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M15
Pipsgrowth EX16006 Trend — Gold Scalping EA trading pinbar rejection patterns. Detects bullish/bearish pinbar candles using wick-to-body ratio anal. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكس 16006 هو محرك انعكاس بنمط واحد، مصمم لاجتياح الذهب (XAUUSD) على إطار M15. لا يكدّس المؤشرات، ولا يبني هرماً للصفقات (pyramid)، ولا يستخدم trailing stop — كل ما يفعله هو مراقبة شموع M15 المغلقة بحثاً عن شكل واحد محدد، وهو شمعة البن بار (pinbar) الرافضة، ثم يُطلق أمراً واحداً في اتجاه الرفض عندما تكون هندسة الشمعة صحيحة. كل سطر في الكود المصدري يخدم هذا القرار الواحد: مرشح نطاق يرفض الشموع الصغيرة جداً، ومرфиль جسم يرفض الشموع التي تبدو مدفوعة بالجسم لا بالفتيل، ومرشح نسبة فتيل يفرض تعريف البن بار الفعلي. يجب أن تكون الشمعة مغلقة (المحرك يعمل فقط على bar[1] عبر حارس IsNewBar()) والصفقة هي الوحيدة المسموح بفتحها في كل وقت.
يقع كشف البن بار بالكامل داخل دالة GetPinbarSignal(). تقرأ الدالة قيم iOpen و iHigh و iLow و iClose للشمعة bar[1] على PERIOD_M15، وتحسب النطاق الكامل للشمعة كـ high - low، والجسم كـ |close - open|، والفتيل العلوي كـ high - max(open, close)، والفتيل السفلي كـ min(open, close) - low. تعمل ثلاثة بوابات بالتتابع. أولاً، مرشح النطاق: if (range < currentATR * 0.5) return 0 — أي شمعة أصغر من نصف قيمة الـ ATR(14) مضغوطة جداً ولا يمكن أن تنتج رفضاً ذا معنى، فترجع الدالة محايدة. ثانياً، مرشح الجسم: if (body / range > MaxBodyPercent) return 0 مع القيمة الافتراضية MaxBodyPercent = 0.3، أي أن الجسم يجب أن يشغل أقل من 30% من النطاق الكامل للشمعة — وكل ما يبدو كشمعة ذات جسم حقيقي يُرفض. ثالثاً، بوابة نسبة الفتيل: البن بار الصاعد يتطلب lowerWick > body * WickBodyRatio (افتراضياً 2.0) و lowerWick > upperWick * 2؛ والبن بار الهابط يعكس ذلك بالفتيل العلوي. النتيجة هي شمعة يكون فيها الفتيل المهيمن ضعف الجسم على الأقل وضعف الفتيل المقابل على الأقل — هندسة البن بار الكلاسيكية، وليست دوجي أو مطرقة على الجانب الخاطئ.
يُنشأ مؤشر ATR(14) في OnInit على PERIOD_M15 ويُستخدم في موضعَين. قيمة currentATR نفسها تغذي بوابة نطاق الشمعة داخل GetPinbarSignal وتدخل في حساب مسافة الوقف داخل OpenPosition. تستخدم طبقة المخاطر ATR(14) للإطار الزمني للدخول نفسه، وليس ATR لإطار أعلى، مما يبقي المحرك معتمداً بالكامل على M15 دون أي قراءة لأطر زمنية متعددة. لا يوجد أي مؤشر آخر: المحرك يعتمد على شكل الشمعة فقط، مع مؤشر ATR واحد يوفر السياق العددي الوحيد. يُحرر OnDeinit مؤشر ATR وهذا هو الجانب الوحيد المتعلق بدورة حياة المؤشر.
إدارة الصفقات متعمَّد الحد الأدنى. تمشي CountPositions() عبر PositionsTotal() وتعد الصفقات على الرمز الحالي التي يساوي سحرها InpMagicNumber (افتراضياً 22216006). تستدعي OnTick هذه الدالة بعد بوابات الشمعة والمرشحات، وإذا كان العدد >= 1 بالفعل ترجع الدالة دون إطلاق أمر — يُسمح بصفقة واحدة فقط من إكس 16006 على XAUUSD في كل وقت. بادئة الرقم السحري 222 هي توقيع عائلة PipsGrowth، مع 16006 كخانة Expert ID، ويُرفق تعليق Psgrowth.com Expert_16006 بكل أمر لتحديده لاحقاً.
بناء الأمر داخل OpenPosition هو الجزء الأكثر صراحة في التصميم. بعد حساب حجم البيب (بيب حقيقي يساوي _Point * 10 للرموز ذات 3 و5 أرقام، و _Point خام خلاف ذلك)، يوضع وقف الخسارة خلف أقصى امتداد لفتيل الرفض بقليل: للشراء slPrice = low - 2 * pipSize، ولبيع slPrice = high + 2 * pipSize. ثم تُقصَّ هذه المسافة بـ MathMax(slDist, MathMax(StopLossPips * pipSize, minDist * 1.5))، حيث StopLossPips افتراضياً 15. و minDist نفسه هو MathMax(stopLevel * _Point, 10 * pipSize) — أرضية صلبة عند مستوى الوقف عند الوسيط بالإضافة إلى وسادة 10 بيبات. يُضبط جني الأرباح عند tpDist = MathMax(slDist * 2, minDist * 1.5)، مما يعطي نسبة مخاطرة إلى عائد ثابتة 1:2 على كل صفقة. لا يوجد إغلاق جزئي، ولا خطوة نقل لخانة التعادل، ولا قفل trailing، ولا توسيع للصفقة — تعمل الصفقة حتى تصل إلى وقف الخسارة أو جني الأرباح، ثم تكون مؤهلة لإشارة البن بار التالية في الشمعة التالية.
حجم الصفقة قائم على المخاطرة بنسبة 2% افتراضياً. ترجع CalculatePositionSize(slPips) قيمة FixedLotSize = 0.01 إذا كانت UseMoneyManagement معطلة، وإلا تحسب riskAmount = balance * (RiskPercent / 100.0) (2% من AccountInfoDouble(ACCOUNT_BALANCE))، وتقسم على قيمة البيب للرمز — (tickValue / tickSize) * pipSize — وتُقرِّب الناتج نزولاً إلى مضاعفات SYMBOL_VOLUME_STEP. يُقصَّ الحجم النهائي بين SYMBOL_VOLUME_MIN و SYMBOL_VOLUME_MAX لدى الوسيط. لا يوجد فحص مارجن مسبق في مسار الحساب، لذا فإن سيناريو نداء المارجن يعتمد على رافعة الوسيط وليس على حارس صريح داخل الـ EA.
تُدار السلامة بطبقة صغيرة لكنها متسقة. تقرأ CheckFilters() قيمة (SymbolInfoInteger(_Symbol, SYMBOL_SPREAD) * _Point / GetPipSize()) وترفض التيك إذا تجاوز الفارق MaxSpreadPips (افتراضياً 25 بيب — سقف سخي يتناسب مع سلوك XAUUSD على M15). يتحقق غلاف SafePositionModify() من أي تعديل مقابل SYMBOL_TRADE_STOPS_LEVEL لدى الوسيط، ويُطبيع كل من وقف الخسارة وجني الأرباح الجديدَين إلى _Digits، ويتحقق مجدداً من أن وقف الخسارة في الجانب الصحيح من السعر قبل استدعاء TryModify_EX16006. أدوات إعادة المحاولة الثلاث — TryClose_EX16006 و TryClosePartial_EX16006 و TryModify_EX16006 — تكرر كل منها ثلاث مرات عند رموز REQUOTE و TIMEOUT و PRICE_OFF و PRICE_CHANGED (و PRICE_CHANGED لأدوات الإغلاق)، مع نوم 200 مللي ثانية بين المحاولات للإغلاق والإغلاق الجزئي و 100 مللي ثانية للتعديل. مع أن OnTick لا يستدعي حالياً أي خطوة trailing أو نقل لخانة التعادل، فإن هذه الأدوات مدمجة في SafePositionModify وتظل متاحة لأي امتداد إداري مستقبلي. يُكتشف وضع التعبئة تلقائياً من SYMBOL_FILLING_MODE عبر GetAllowedFilling() (يُفضَّل FOK، ثم IOC، ثم RETURN).
يعمل استكشاف وضع التعبئة مرة واحدة في OnInit إلى جانب إنشاء مؤشر ATR، والرقم السحري، والانزلاق، وتعليق الأمر. كائن trade ذو نطاق على مستوى الوحدة، لذا تتشارك أدوات الإغلاق والإغلاق الجزئي والتعديل ودوال الأمر نفس نسخة CTrade. يُتخذ اتجاه الأمر من القيمة المرجعة للإشارة: 1 يذهب إلى trade.Buy()، و -1 يذهب إلى trade.Sell(). سعر الأمر هو ASK الحالي للشراء و BID للبيع، مع تمرير وقف الخسارة وجني الأرباح في نفس استدعاء trade.Buy() / trade.Sell().
نظراً لأن المحرك لا يعمل إلا على شموع M15 مغلقة (حارس IsNewBar() يستخدم iTime(_Symbol, PERIOD_M15, 0)) ومرشح البن بار صارم، يجب أن يتوقع الاختبار الخلفي تدفق إشارات متفرق. على XAUUSD M15، الشموع التي تستوفي في الوقت نفسه نطاق ≥ 0.5 × ATR(14)، وجسم ≤ 30% من النطاق، وقاعدة ضعف الفتيل المهيمن، يمكن عدّها بأرقام فردية لكل جلسة. النتيجة هي دفتر انعكاس منخفض التردد وعالي الانضباط — النوع من الملفات الشخصية الذي يستفيد من اختبار أطول على العينات عبر أنظمة متعددة للذهب (لندن المتجه، نيويورك العرضي، آسيا منخفضة التذبذب) قبل التشغيل الحي، والذي يتزاوج طبيعياً مع وسطاء يقدمون فروقات ضيقة على XAUUSD M15 حتى لا يكون بوابة الفروقات 25 بيب هي القيد الفعلي.
تفاصيل الاستراتيجية
مع كل إغلاق شمعة M15، يُحدِّث الـ EA مؤشر iATR(14) واحداً ويمشي عبر أربع بوابات بالتتابع: كشف الشمعة الجديدة عبر IsNewBar()، وقراءة ATR داخل RefreshIndicators()، وفحص الفارق داخل CheckFilters() مقابل MaxSpreadPips = 25، وسقف CountPositions() >= 1. إذا اجتازت الشمعة البوابات، تقرأ GetPinbarSignal() قيم iOpen/iHigh/iLow/iClose للشمعة bar[1] وتطبق ثلاث قواعد متتابعة: نطاق ≥ 0.5 × ATR(14)، وجسم ≤ 30% من النطاق، وهندسة الفتيل المهيمن حيث يكون الفتيل الأكبر على الأقل WickBodyRatio (افتراضياً 2.0) × الجسم و2 × الفتيل المقابل. ترجع الهندسة الصاعدة 1، والهابطة -1؛ ويستدعي المحرك OpenPosition(ORDER_TYPE_BUY) أو OpenPosition(ORDER_TYPE_SELL) الذي يبني وقف الخسارة عند فتيل الرفض + 2 بيب، وجني الأرباح عند ضعف وقف الخسارة، وحجم اللوت من CalculatePositionSize (2% من الرصيد افتراضياً، مقرَّب نزولاً إلى مضاعفات SYMBOL_VOLUME_STEP). تتعامل أدوات إعادة المحاولة الثلاث مع أخطاء خادم التداول العابرة عند الإغلاق والإغلاق الجزئي والتعديل. لا يوجد trailing stop، ولا نقل إلى نقطة التعادل، ولا هرم للصفقات — تُحمل الصفقة حتى وقف الخسارة أو جني الأرباح وينتظر المحرك إشارة البن بار الصالحة التالية.
تُطلق الأوامر فقط على شموع M15 مغلقة (عبر حارس IsNewBar()) وفقط عندما ترجع GetPinbarSignal() قيمة +1 (صاعد) أو -1 (هابط). تتطلب الإشارة الصاعدة أن يكون الفتيل السفلي للشمعة السابقة على الأقل WickBodyRatio (افتراضياً 2.0) ضعف الجسم وعلى الأقل ضعف الفتيل العلوي، مع جسم ≤ 30% من النطاق الكامل للشمعة ونطاق ≥ 0.5 × ATR(14). الحالة الهابطة تعكس الصيغة بالفتيل العلوي. يُسمح بصفقة واحدة فقط في كل وقت (الفحص CountPositions() >= 1)، لذا تُحجب الإشارة الثانية ما دامت الأولى قائمة.
المخارج وقف خسارة وجني أرباح صافيان — لا trailing، ولا نقل إلى نقطة التعادل، ولا إغلاق جزئي، ولا خروج مبني على الوقت. تعمل كل صفقة من الدخول حتى وقف الخسارة (الموضوع على بُعد 2 بيب من أقصى فتيل رفض، بحد أدنى 15 بيب) أو حتى جني الأرباح (المضبوط على ضعف مسافة وقف الخسارة، مما يفرض نسبة 1:2). ما إن تُغلق الصفقة حتى تكون هندسة البن بار للشمعة M15 التالية مؤهلة لإطلاق دخول جديد.
يُربط وقف الخسارة لكل صفقة بأقصى فتيل الرفض (low - 2 بيب للشراء، high + 2 بيب للبيع)، ثم يُقصَّ إلى الأكبر بين StopLossPips (15 افتراضياً) × حجم البيب، و SYMBOL_TRADE_STOPS_LEVEL لدى الوسيط × 1.5، أو 10 بيبات. ينتج عن الإعداد الافتراضي وقف خسارة يقارب 15-30 بيب على XAUUSD M15؛ ولا يوجد سقف سحب إجمالي ولا خطوة نقل إلى نقطة التعادل.
جني الأرباح ثابت عند ضعف مسافة وقف الخسارة (tpDist = MathMax(slDist * 2, minDist * 1.5))، مما يفرض نسبة مخاطرة إلى عائد 1:2 على كل صفقة. يُمرَّر جني الأرباح في الاستدعاء الأولي trade.Buy() / trade.Sell() إلى جانب وقف الخسارة — لا إغلاق جزئي، ولا خروج متدرج، ولا إعادة استهداف بعد الدخول.
XAUUSD على M15، رمز واحد لكل مخطط (صفقة واحدة في كل وقت، الرقم السحري 22216006). الحد الأدنى للرصيد 100 دولار مع خيار 0.01 لوت ثابت أو مخاطرة 2% على حساب 500 دولار فأكثر لاستيعاب تباين نسبة 1:2. استخدم وسيط ECN/RAW بفارق ضيق حتى لا تكون بوابة الفارق 25 بيب هي القيد على معظم شموع M15؛ المحرك لا يحتوي على مرشح زمني ولا حارس أخبار، لذا ينبغي على المتداول تشغيله في جلسة لندن أو تداخل لندن/نيويورك حين يكون ATR لـ XAUUSD M15 أعلى عادة من 0.5 × ATR(14) للشمعة السابقة. مستوى المخاطرة متوسط بسبب الافتراضي 2% لكل صفقة والملف أحادي الصفقة غير المُحوَّط.
منطق الاستراتيجية
Pipsgrowth EX16006 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216006
الإصدار: 2.00
الوصف:
Gold Scalping EA trading pinbar rejection patterns. Detects bullish/bearish pinbar candles using wick-to-body ratio analysis and enters on reversal with ATR-based stops. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
SafePositionModify()RefreshIndicators()GetPinbarSignal()OpenPosition()CalculatePositionSize()IsNewBar()GetPipSize()CheckFilters()CountPositions()TryClose_EX16006()
// Pipsgrowth EX16006 Trend — Execution Flow (from source analysis)
// Family: Trend
// Gold Scalping EA trading pinbar rejection patterns. Detects bullish/bearish pinbar candles using wick-to-body ratio analysis and enters on reversal with ATR-based stops. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| WickBodyRatio | 2.0 | Min wick to body ratio |
| MaxBodyPercent | 0.3 | Max body as % of total range |
| InpMagicNumber | 22216006 | Magic Number (222 + Expert ID) |
| InpTradeComment | "Psgrowth.com Expert_16006" | Trade Comment |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16006 GoldScalper PinbarAction ReversalPattern — pinbar reversal scalper, 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 "=== Pinbar Settings ==="
input double WickBodyRatio = 2.0; // Min wick to body ratio
input double MaxBodyPercent = 0.3; // Max body as % of total range
input group "=== Trade Settings ==="
input int StopLossPips = 15;
input int Slippage = 3;
input int InpMagicNumber = 22216006; // Magic Number (222 + Expert ID)
input string InpTradeComment = "Psgrowth.com Expert_16006"; // Trade Comment
input group "=== Filters ==="
input bool UseSpreadFilter = true;
input double MaxSpreadPips = 25.0;
CTrade trade;
int handleATR;
datetime lastBarTime = 0;
double 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);الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.