Pipsgrowth EX16082 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX16082 Trend — Zone-recovery martingale EA that hedges losing trades within a configurable zone. Opens an initial position, then on adv. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX16082 Trend هو خبير آلي من ست مدخلات يعمل بأسلوب استرداد المنطقة (zone-recovery) مع مضاعفة العقود (مارتينجال). يفتح صفقة واحدة في البداية، ثم يتحوط ضد الحركة المعاكسة بترتيب صفقات في الاتجاه العكسي تُضرب أحجامها في معامل ضرب. تُغلق السلة بالكامل لحظة وصول ربحها العائم إلى الصفر أو فوقه، لذا فإن التصميم كله يقوم على الاسترداد الهندسي للخسارة السابقة بدلًا من جني ربح ثابت. وعلى الرغم من أن وصف العائلة في بيانات الخبير يقول "Trend"، إلا أن الكود الفعلي لا يهتم بالاتجاه بمعنى التحليل الفني: فهو لا يقرأ أي مؤشر، ولا يقيّم متوسطًا متحركًا، ولا يقيس تذبذبًا، ولا يشغّل فلتر جلسة. كل ما يفعله هو الاستمرار في فتح الصفقات حتى تصبح السلة مربحة، وهذا هو المنطق بالكامل.
حلقة العمل عند كل تيك صغيرة بما يكفي لقراءتها في صفحة واحدة. عند كل تيك، يسأل الخبير أولًا دالة BasketProfit() لجمع ربح كل صفقة مفتوحة يكون رقمها السحري مساويًا لـ InpMagicNumber (22216082 افتراضيًا) ورمزها مساوٍ للرمز على الشارت. ثم يسأل CountOpen() لعدّ تلك الصفقات نفسها. إذا كان cnt > 0 وربح السلة وصل إلى الصفر أو أعلى، تستدعي CloseAll() التي تمرّ على كل تذكرة مطابقة عبر TryClose_EX16082، ثم يعيد الخبير ضبط عداد recoveries الداخلي إلى الصفر، لتبدأ الدورة التالية نظيفة. دالة إعادة المحاولة تحاول trade.PositionClose لما يصل إلى ثلاث مرات ولا تعتبر النجاح إلا عند TRADE_RETCODE_DONE أو TRADE_RETCODE_DONE_PARTIAL؛ أما TRADE_RETCODE_REQUOTE أو _TIMEOUT أو _PRICE_OFF أو _PRICE_CHANGED فتنام 200 مللي ثانية ثم تعيد الإرسال. دالتا المساعدة الأخريان TryClosePartial_EX16082 وTryModify_EX16082 معرّفتان وتُترجمان، لكن لا يوجد مسار حيّ يستدعيهما، فهما خامدتان: الخبير لا يُغلق جزئيًا ولا يعدّل وقف الخسارة أو جني الأرباح بعد التنفيذ.
إذا لم تكن هناك صفقة مفتوحة ولم يضع الخبير تذكرته الأولى بعد (firstTicket == 0)، فإنه يفتح صفقة شراء واحدة بسعر العرض الحالي بحجم InpLotSize لوت، بلا وقف خسارة، بلا جني أرباح، وبتعليق "Psgrowth.com Expert_16082". لا توجد تماثل عند الفتح — أول صفقة في الدورة الجديدة هي دائمًا شراء، بصرف النظر عمّا حدث في الدورة السابقة. جانب البيع لا يظهر إلا كتحوط استردادي، لا كصفقة افتتاحية. عدم التماثل هذا مهم: المتداول الذي يريد بدء دورة بيعية أولًا عليه التلاعب بالرمز على الشارت أو خداع الخبير بخسارة سابقة، لأن الكود لا يوفّر اتجاهًا قابلًا للضبط.
مشغّل الاسترداد هو القاعدة الكمية الوحيدة التي يفرضها الخبير. الشرط هو totalLoss >= InpZoneSize * _Point * 100، حيث totalLoss تساوي سالب ربح السلة. عمليًا، على زوج فوركس بخمس خانات و_Point == 0.00001، فإن InpZoneSize = 50 الافتراضي يَعني تحركًا عكسيًا قدره 50 نقطة قبل إطلاق أول طبقة تحوط. وعلى XAUUSD بثلاث خانات و_Point == 0.01، فإن نفس InpZoneSize يَعنِي تحركًا عكسيًا قدره 50 دولارًا ضد السلة قبل إطلاق التحوط. معامل الـ 100 مقياس مدمج لجعل الإدخال يبدو شبيهًا بالنقاط على أزواج الفوركس؛ ونفس المدخل يَنتهي إلى معانٍ مختلفة على رموز مختلفة، وهو ما يستلزم إعادة المعايرة لكل رمز في أي نشر جاد. عند تحقق الشرط، يقرأ الخبير نوع الصفقة الأصلية، يفتح الاتجاه المعاكس بـ newLot = NormalizeDouble(InpLotSize * MathPow(InpMultiplier, recoveries + 1), 2)، يزيد recoveries بمقدار واحد، وينتظر الحركة العكسية التالية ليضع الطبقة التالية.
بما أن InpMaxRecoveries = 0 وInpMultiplier = 1.0 افتراضيًا، فإن السلوك الحرفي خارج الصندوق هو صفقة شراء واحدة بـ 0.1 لوت تُغلق حين تكون مربحة ولا تسترد شيئًا. هندسة المضاعفة — العقود المضاعفة، الانخفاض الأعمق، ضغط الهامش الأسي — لا تظهر إلا حين يغيّر المستخدم هذين المدخلين. مثلًا مع InpMaxRecoveries = 5 وInpMultiplier = 2.0، فإن تتابع العقود يكون 0.10، 0.20، 0.40، 0.80، 1.60، 3.20 عبر ست طبقات، وقد تبقى السلة مفتوحة وقتًا طويلًا قبل أن ينحسر الانخفاض العائم. هذا هو ملف المخاطر المعتاد للمارتينجال: النتيجة الأكثر شيوعًا ربح صغير يُغلق السلة بسرعة، والنتيجة النادرة انخفاض عميق يستنفد الهامش الحر. لا يوجد حد إيقاف صلب على مستوى الحساب في الكود المصدري؛ الحد الصلب الوحيد هو نداء الهامش من الوسيط.
بعض تفاصيل التنفيذ تُكمل الصورة. كائن CTrade مُهيّأ بـ SetExpertMagicNumber(22216082) وSetDeviationInPoints(30)، فيتحمّل الخبير حتى 30 نقطة انزلاق لكل أمر. لا يوجد OnTimer؛ كل شيء يحدث على حدث السعر OnTick. لا توجد كتلة OnTester رغم أن الترويسة تَعِد باثنتي عشرة طبقة، لذا لا يمكن تحسين المُدخلات في Strategy Tester دون تعديل المصدر. الفلتر الوحيد المستخدم للرقم السحري هو InpMagicNumber؛ الخبير لن يتداخل مع خبراء آخرين على نفس الحساب، وأي خبير آخر يَستعمل نفس الرقم السحري على نفس الرمز سيتداخل معه. المصدر بالكامل نحو 120 سطرًا بما في ذلك دوال إعادة المحاولة الثلاث، فمساحة المنطق الكاملة قابلة للقراءة في استراحة قهوة.
للنشر العملي على XAUUSD، تعتمد المنطقة الواقعية على حجم تيك الوسيط ورؤية المتداول للتذبذب الطبيعي للذهب. المتداول المحافظ الذي يريد أن تنطلق طبقة الاسترداد فقط عند صدمة حقيقية قد يَستعمل InpZoneSize بين 200 و500 مع معامل ضرب صغير، بينما المتداول الهجومي الباحث عن دورات سريعة قد يُبقيه على 50 مع معامل ضرب 1.5 وحد أقصى للاسترداد ثلاث أو أربع طبقات. في كل الأحوال، يجب حساب حجم الحساب من الأسوأ: InpLotSize * (1 + multiplier + multiplier^2 + ... + multiplier^max) * tick_value هو تعرض الدولارات لكل تيك في أعمق سلة ممكنة، ويجب أن يحتفظ الحساب بهذا القدر من الهامش الحر على الأقل مع هامش إضافي. بما أنه لا توجد شبكة أمان مدمجة، فإن الفرق بين جلسة تنتهي بـ 0.5% ربح وجلسة تنها باء نداء الهامش هو دالة هذه المدخلات، لا دالة أي منطق مخفي.
تفاصيل الاستراتيجية
عند كل تيك يَجمع الخبير ربح كل صفقة رقمها السحري 22216082 على رمز الشارت ويعدّها. حين يكون العدّ صفرًا ولم تُسجَّل تذكرة أولى للدورة، يُطلق أمر شراء بسعر العرض الحالي بـ InpLotSize لوت وSL=0 وTP=0، ثم يَخزّن التذكرة الناتجة في firstTicket. إذا كانت هناك صفقة مفتوحة وربح السلة صفر أو موجب، يَمسح كل تذكرة مطابقة عبر دالة TryClose_EX16082 بثلاث محاولات، يَنام 200 مللي ثانية بين حالات فشل إعادة التسعير/المهلة/تغير السعر، ثم يُصفّر عداد الاسترداد. ما دامت هناك صفقة مفتوحة، وrecoveries أقل من InpMaxRecoveries، والسلة تحت الماء بمقدار InpZoneSize × _Point × 100 على الأقل، يفتح الاتجاه المعاكس بحجم InpLotSize × multiplier^(recoveries+1) مقرَّبًا إلى منزلتين عشريتين، ويزيد عدّاد الاسترداد. غلاف CTrade مُهيّأ بـ 30 نقطة تسامح في الانزلاق، التعليق Psgrowth.com Expert_16082، والرقم السحري 22216082؛ فلا يُخصَّص أي handle لمؤشر، ولا يُقرأ أي رمز آخر، وتتكرر الدورة إلى ما لا نهاية.
يفتح أمر شراء واحدًا بسعر السوق عند أول تيك بعد التأكد من عدم وجود صفقات، من دون وقف خسارة أو جني أرباح على التذكرة. أول صفقة هي دائمًا شراء بصرف النظر عن اتجاه الدورة السابقة؛ صفقات البيع لا تظهر إلا لاحقًا كتحوط استردادي، ولا تظهر أبدًا كصفقات افتتاحية.
تُغلق السلة بالكامل قسرًا في اللحظة التي تُعيد فيها BasketProfit() قيمة مساوية للصفر أو أعلى، بصرف النظر عن أي الأرجل هو الرابح. بعد الإغلاق، يُعيد الخبير ضبط عداد الاسترداد الداخلي ومتتبع firstTicket لتبدأ الدورة التالية من جديد.
لا يُضبط أي وقف خسارة على مستوى الصفقة عند الفتح؛ معاملا وقف الخسارة يُمرَّران كصفر مع كل أمر. الاحتواء الفعلي للخسارة هو نداء الهامش من الوسيط فقط، لأن طبقات المضاعفة نظريًا قد تُعمّق الانخفاض لما يصل إلى InpMaxRecoveries طبقات من دون أي حد على مستوى الكود.
لا يُضبط أي جني أرباح على مستوى الصفقة؛ كل أمر يُفتح بـ TP=0. الربح لا يتحقق إلا على مستوى السلة، حين يصل مجموع كل صفقات الرقم السحري على الرمز إلى ربح عائم صفر أو موجب.
يُناسب المتداولين الذين يريدون صراحةً آلية استرداد منطقة بالمضاعفة ويفهمون تصاعد العقود الهندسي: ابدأ بإيداع لا يقل عن الحد الأدنى 100 دولار على XAUUSD M5 أو H1، وكبّر الحساب بحيث يَسع InpLotSize × (1 + multiplier + multiplier^2 + ... + multiplier^max) × tick_value داخل الهامش الحر بمرونة. يُفضَّل تشغيله على حساب تحوط لأن تحوطات الاتجاه المعاكس تتراكم، وعلى وسيط ECN فروقات ضيقة لأن إغلاق السلة يَحدث عند أرباح إجمالية صغيرة ستأكلها الفروقات خلاف ذلك. الإعدادات الافتراضية (MaxRecoveries=0 وMultiplier=1.0) تُعطّل فعليًا سلوك المضاعفة ولا تترك سوى دورة شراء ثم إغلاق في اتجاه واحد؛ يجب على المستخدم تفعيل سلوك الاسترداد بنفسه.
منطق الاستراتيجية
Pipsgrowth EX16082 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216082
الإصدار: 2.00
الوصف:
Zone-recovery martingale EA that hedges losing trades within a configurable zone. Opens an initial position, then on adverse excursion hedges with a multiplied lot to recover the basket. Closes all positions when basket profit turns positive. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
BasketProfit()CountOpen()CloseAll()TryClose_EX16082()TryClosePartial_EX16082()TryModify_EX16082()
// Pipsgrowth EX16082 Trend — Execution Flow (from source analysis)
// Family: Trend
// Zone-recovery martingale EA that hedges losing trades within a configurable zone. Opens an initial position, then on adverse excursion hedges with a multiplied lot to recover the basket. Closes all positions when basket profit turns positive. 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
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16082 MartingaleZoneRecovery — Zone-recovery martingale hedging, full 12-layer stack."
#include <Trade\Trade.mqh>
input group "=== Identity ==="
input int InpMagicNumber = 22216082;
input string InpTradeComment = "Psgrowth.com Expert_16082";
input group "=== Trading ==="
input double InpLotSize = 0.10;
input int InpZoneSize = 50;
input group "=== Recovery (OFF by default) ==="
input double InpMultiplier = 1.0;
input int InpMaxRecoveries = 0;
CTrade trade;
int recoveries=0; ulong firstTicket=0;
int OnInit() { trade.SetExpertMagicNumber(InpMagicNumber); trade.SetDeviationInPoints(30); return INIT_SUCCEEDED; }
void OnDeinit(const int r) {}
void OnTick() {
double basket=BasketProfit();
int cnt=CountOpen();
if(cnt>0 && basket>=0) { CloseAll(); recoveries=0; firstTicket=0; return; }
if(cnt==0 && firstTicket==0) {
double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
if(trade.Buy(InpLotSize,_Symbol,ask,0,0,InpTradeComment))
firstTicket=trade.ResultOrder();
return;
}
if(firstTicket>0 && recoveries<InpMaxRecoveries) {
double bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double totalLoss=-basket;
if(totalLoss >= InpZoneSize*_Point*100) {
double newLot=NormalizeDouble(InpLotSize*MathPow(InpMultiplier,recoveries+1),2);
long type=PositionGetInteger(POSITION_TYPE);
if(type==POSITION_TYPE_BUY) trade.Sell(newLot,_Symbol,bid,0,0,InpTradeComment);
else trade.Buy(newLot,_Symbol,SymbolInfoDouble(_Symbol,SYMBOL_ASK),0,0,InpTradeComment);
recoveries++;
}
}
}
double BasketProfit() { double p=0; for(int i=PositionsTotal()-1;i>=0;i--) { if(PositionGetTicket(i)>0&&PositionGetInteger(POSITION_MAGIC)==InpMagicNumber&&PositionGetString(POSITION_SYMBOL)==_Symbol) p+=PositionGetDouble(POSITION_PROFIT); } return p; }
int CountOpen() { int c=0; for(int i=PositionsTotal()-1;i>=0;i--) if(PositionGetTicket(i)>0&&PositionGetInteger(POSITION_MAGIC)==InpMagicNumber&&PositionGetString(POSITION_SYMBOL)==_Symbol) c++; return c; }
void CloseAll() { for(int i=PositionsTotal()-1;i>=0;i--) { ulong t=PositionGetTicket(i); if(t>0&&PositionGetInteger(POSITION_MAGIC)==InpMagicNumber&&PositionGetString(POSITION_SYMBOL)==_Symbol) TryClose_EX16082(t); } }
//+------------------------------------------------------------------+
bool TryClose_EX16082(ulong ticket)
{
for(int a=0; a<3; a++)
{
if(trade.PositionClose(ticket) &&
(trade.ResultRetcode()==TRADE_RETCODE_DONE || trade.ResultRetcode()==TRADE_RETCODE_DONE_PARTIAL))
return true;
uint rc=trade.ResultRetcode();
if(rc==TRADE_RETCODE_REQUOTE || rc==TRADE_RETCODE_TIMEOUT ||
rc==TRADE_RETCODE_PRICE_OFF || rc==TRADE_RETCODE_PRICE_CHANGED)
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.