Pipsgrowth EX16076 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX16076 Trend — Smart trend follower using MA cross or trend-follow mode with Stochastic confirmation. Supports layered entries with con. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX16076 هو مستشار خبير ذكي يتبع الاتجاهات ويمنحك طريقتين مختلفتين لقراءة الزخم على نفس الشارت، ثم يضيف صفقات إضافية على شكل سلة يكون جني الأرباح ووقف الخسارة فيها محسوباً من سعر التعادل المرجح بحجم الصفقات وليس من سعر الدخول الأصلي. كلا وضعي الإشارة يعملان على الإطار الزمني للشارت — يحدد المستشار M5 كإطار عمل رئيسي و H1 كإطار مدعوم، والإشارة الافتراضية هي تقاطع متوسطين متحركين.
وضعَا الإشارة يختارهما متغير inJnsSignal (نوع إشارة). في وضع eTypeCrossMA (الافتراضي) تسحب دالة GetSignal() آخر ثلاث قيم لمتوسطَين بسيطَين — inMAPeriodFast افتراضياً 14 و inMAPeriodSlow افتراضياً 28، كلاهما SMA على الإغلاق — وتراقب انعكاس الخط السريع نسبةً إلى البطيء. إشارة بيع تُرسَل عندما يكون السريع فوق البطيء حالياً وكان تحته في الشمعة السابقة، وإشارة شراء تُرسَل عندما يكون السريع تحت البطيء حالياً وفوقه في الشمعة السابقة. هذا النمط المكون من شمعتين هو تأكيد متعمد وليس مجرد لمس على شمعة واحدة، فالمستشار يأخذ الشمعة الثانية بعد التقاطع وليس شمعة التقاطع نفسها.
عند تبديل inJnsSignal إلى eTypeTrend يتغير المحرك. الآن تقرأ GetSignal() قيمة الشمعة 1 فقط لكنها تضيف مؤشراً ثالثاً — gSTOHandle، وهو iStochastic بـ K=10 و D=3 و slowing=3 على low-high. زوج المتوسطات لا يزال مطلوباً لكن التقاطع نفسه لم يعد كافياً — إشارة شراء تُرسَل عندما يكون السريع فوق البطيء (مرشح اتجاه) والشمعة السابقة شمعة صاعدة (فتح تحت الإغلاق) والخط الرئيسي للستوكاستيك عند 30 أو أقل. إشارة بيع هي المرآة. بمعنى آخر، متابعة اتجاه مع دخول عند الانعكاس: المستشار ينتظر حتى يسحب الاتجاه الصاعد السعر إلى منطقة تشبع بيعي قبل أن يضغط الزناد.
حين تصل الإشارة يسلمها OnTick إلى manageTrading(). لو كانت هذه أول صفقة في الاتجاه، تحسب getLotSize() اللوت كـ inLotSize * MathPow(inMultiply, layerIndex) — للصفقة الأولى يكون 0.01 افتراضياً. تقوم validateLot() بتثبيت القيمة عند step الحجم، وتقييدها بين min/max، وتتأكد CheckMoneyForTrade() من الهامش الحر قبل أن ترسل openTrade() الأمر السوقي بسحر 22216076 وتعليق "Psgrowth.com Expert_16076". لو كان الاتجاه يحوي صفقة مفتوحة بالفعل، لا يفتح المستشار صفقة جديدة فوراً، بل يراقب تحرك السعر ضد الصفقة القائمة بمقدار inJarakLayer نقطة — 200 نقطة افتراضياً — وعندها فقط يفتح الطبقة التالية. للشراء يكون الشرط آخر سعر شراء − 200 * Point() >= Ask الحالي، ولبيع آخر سعر بيع + 200 * Point() <= Bid الحالي. صيغة getLotSize() ذاتها تعني أن المضاعف يتحكم بمقدار توسع كل طبقة عن الأولى — مع 1.0 تبقى كل الطبقات عند 0.01، ومع 1.5 تصبح الطبقة N هي 0.01 * 1.5^N.
مصفوفة trades[2] تخزن الحالة الجارية لكل جانب: عدد الصفقات (ttlPos)، وآخر سعر دخول للشراء أو البيع (hargaTA و hargaTB)، والقيمة التراكمية (ttlValue)، والحجم التراكمي (ttlLot). تعيد updateDataTrades() بناء هذه المصفوفة عند كل إشارة بتفحص PositionsTotal() عن الصفقات المطابقة للرمز والسحر وتأخذ أعلى وأقل سعر دخول في كل جانب وتجمع القيمة المرجحة بالحجم. هذه البنية وحدها هي ما يجعل جني الأرباح ووقف الخسارة على مستوى السلة ممكناً.
setTPSL() تعمل بدون شرط في كل تيكة — ليس فقط في المناسبات الجديدة — وهي منطق الخروج. تعيد بناء المصفوفة ثم تحسب لكل جانب سعر التعادل المرجح ttlValue / ttlLot، أي متوسط الدخول المرجح بكل صفقة في السلة. للشراء: جني الأرباح = BEP + inTakeProfit * Point() ووقف الخسارة = BEP − inStopLoss * Point(). للبيع تنعكس الإشارة. inTakeProfit افتراضياً 500 (50 نقطة) وinStopLoss افتراضياً 0 أي أن السلة فيها جني أرباح لكن بدون وقف. تتابع الدالة كل صفقة مفتوحة مطابقة للسحر وتستدعي modifTPSL() لدفع الـ TP/SL الجديد على أي صفقة لم يعد المستوى المطبق عليها محدّثاً. ولأن القيمتين على مستوى السلة وليس لكل صفقة، فإن كل الطبقات تُغلق معاً بمجرد وصول السعر إلى هدف BEP. ضبط inStopLoss على قيمة موجبة يُفعّل وقف خسارة على مستوى السلة أيضاً.
عنصر تحكم مخاطرة صغير لكنه حقيقي: ترفض getLotSize() أي لوت تتجاوز معه الكتلة الاتجاهية حد SYMBOL_VOLUME_LIMIT، وترفض CheckMoneyForTrade() أي لوت لا يكفي الهامش الحر لتغطيته. حتى مع مضاعفات مارتينجال عدوانية يبقى حد الحجم لدى الوسيط وحد الهامش في الحساب ضمن الحلقة.
المستشار بسيط ومباشر: كتلة رأسية، ثلاث مقابض مؤشرات تُنشأ مرة في OnInit، توليد إشارة من مرحلتين، جني أرباح/وقف خسارة على مستوى السلة عبر BEP مرجح، دخول متعدد الطبقات بمسافات قابلة للتكوين، كائن Trade القياسي مع ثلاث أدوات إعادة محاولة — TryClose_EX16076 و TryClosePartial_EX16076 و TryModify_EX16076 — تغلف CTrade بثلاث محاولات في حالات requote و timeout و price-off و price-changed. هذه الأدوات معرّفة في الكود لكنها لا تُستدعى حالياً من OnTick؛ المسار التنفيذي الحي يستخدم OrderSend خام في openTrade() و modifTPSL(). كود إعادة المحاولة موجود كشبكة أمان يمكن لمراجعة مستقبلية ربطه دون إعادة هيكلة. المستشار لا يستخدم فلتر جلسة، ولا فلتر أخبار، ولا OnTester، ولا قاطع خسارة يومي — جميع ضوابط المخاطر المتوقعة تبقى خارجه.
بما أن وقف الخسارة الافتراضي صفر وجني الأرباح محسوب من متوسط الدخول المرجح، فإن المستشار مصمم بنيوياً لحالة "اترك السلة تنضج" — افتح أول صفقة، تراكم الطبقات مع تحرك السعر ضدك، أغلق السلة بأكملها عند هدف نقاط ثابت من BEP لحظة انعكاس السعر. التباعد الافتراضي 200 نقطة والمضاعف 1.0 يحافظان على تعرض الطبقات صغيراً؛ رفع inMultiply فوق 1.0 يحول المستشار بسرعة إلى نظام متوسط مرجح مارتينجال وعلى المتداول أن يعتبر وقف الخسارة على مستوى السلة هو المتحكم الرئيسي بالمخاطرة وليس شبكة أمان.
تفاصيل الاستراتيجية
تعمل GetSignal() فقط عند افتتاح شمعة جديدة، بمقارنة الشمعة 0 والشمعة 1 من المتوسطين لاكتشاف تقاطع من شمعتين — الإشارة تُرسَل في الشمعة الثانية وليس شمعة التقاطع. في وضع eTypeTrend تقرأ الدالة أيضاً اتجاه الشمعة 1 والخط الرئيسي للستوكاستيك، وتطلب اتجاهاً مؤكداً (السريع فوق البطيء) مع انعكاس (ستوكاستيك ≤ 30 للشراء). تتولى manageTrading() دفتر الصفقات: أول صفقة باللوت الأساسي، الطبقات اللاحقة تُفتح فقط عند تحرك السعر بمقدار inJarakLayer (200 نقطة) ضد الجانب القائم، ويتدرج حجم كل طبقة وفق MathPow(inMultiply, layerIndex). setTPSL() هي منطق الخروج الجوهري — تعمل في كل تيكة (ليست مقيّدة بشمعة جديدة)، وتعيد حساب BEP السلة من بنية trades[] الحية، وتعيد كتابة TP و SL موحدَين على كل صفقة مفتوحة. ثلاث أدوات إعادة محاولة (TryClose_EX16076 و TryClosePartial_EX16076 و TryModify_EX16076) تغلف CTrade بثلاث محاولات في حالات requote و timeout و price-change، لكن المسار الحي يستخدم OrderSend خام فتكون إعادة المحاولة كوداً خاملاً.
في وضع Cross-MA الافتراضي تُرسَل الإشارة عند انعكاس متوسط 14 فترة فوق أو تحت متوسط 28 فترة بين الشمعة 1 والشمعة 0 — تأكيد بشمعتين يأخذ الشمعة الثانية وليس شمعة التقاطع. وضع Trend يستبدل التقاطع بمرشح "اشترِ عند الانخفاض": يجب أن يكون متوسط 14 فوق متوسط 28 وأن تكون الشمعة السابقة صاعدة وأن يكون خط الستوكاستيك الرئيسي iStochastic(10,3,3) عند 30 أو أقل للشراء أو 70 أو أكثر للبيع. لوت الطبقة الأولى هو inLotSize الأساسي (0.01 افتراضياً)؛ الطبقات اللاحقة يُفعّلها تحرك السعر بمقدار inJarakLayer (200 نقطة) ضد الصفقة القائمة ويتدرج حجمها وفق inMultiply (1.0 افتراضياً = بدون تدرج).
تعمل setTPSL() في كل تيكة، وتعيد حساب سعر التعادل المرجح بسلة الاتجاه (ttlValue / ttlLot)، وتعيد كتابة TP و SL على كل صفقة مفتوحة في السلة لتصبح نفس القيم على مستوى السلة. جني الأرباح = BEP + inTakeProfit * Point() (500 نقطة = 50 نقطة افتراضياً) ووقف السلة = BEP − inStopLoss * Point() (0 افتراضياً، أي لا وقف). ولأن حماية السلة موحدة، تُغلق كل الطبقات معاً عند وصول السعر إلى الهدف.
وقف الخسارة لكل صفقة مضبوط على صفر افتراضياً (inStopLoss = 0)، فلا تحمل الطبقات الفردية أي وقف. وقف الخسارة على مستوى السلة — الذي يثبّته setTPSL() على كل صفقة في السلة عند inStopLoss > 0 — يقع بمقدار inStopLoss * Point() تحت سعر التعادل المرجح للشراء أو فوقه للبيع ويُخرج كل الطبقات معاً.
جني الأرباح على مستوى السلة وليس لكل صفقة. تحسب setTPSL() قيمة BEP + inTakeProfit * Point() (500 نقطة = 50 نقطة افتراضياً) للشراء وBEP − inTakeProfit * Point() للبيع، حيث BEP هو المتوسط المرجح بحجم كل أسعار الدخول المفتوحة في السلة، ثم تكتب نفس الـ TP على كل طبقة.
EX16076 مهيّأ لحساب بحد أدنى 100 دولار على XAUUSD M5 أو H1 بمخاطرة متوسطة، بلوت أساسي 0.01 وبدون تدرج عند inMultiply = 1.0 الافتراضي. بنية السلة (دخول متعدد الطبقات كل 200 نقطة، جني أرباح 50 نقطة من BEP المرجح، بدون وقف لكل صفقة افتراضياً) تجعله الأنسب للمتداولين الذين يريدون اتجاه دخول واحد مدفوعاً بإشارة ويقبلون سياسة "اترك السلة تنضج" للخروج. وضع eTypeCrossMA هو نقطة البداية المناسبة على M5 في ساعات عمل لندن ونيويورك معاً عندما يكون XAUUSD في نطاق أو اتجاه بفصل واضح بين المتوسطين؛ وضع eTypeTrend يناسب الانعكاسات في اتجاهات راسخة وأكثر انتقائية في توقيت الدخول. الشرط الواقعي للوسيط هو سرعة تنفيذ وسبريد منخفض — لا يوجد فلتر سبريد ولا بوابة جلسة ولا فلتر أخبار، فالسبريد المرتفع أو فجوة نافذة الخبر ستصطدم بالسلة مباشرة.
منطق الاستراتيجية
Pipsgrowth EX16076 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216076
الإصدار: 2.00
الوصف: Smart trend follower using MA cross or trend-follow mode with Stochastic confirmation. Supports layered entries with configurable spacing; martingale multiplier disabled by default. Includes break-even TP/SL management across all open positions
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
isNewCandle()GetSignal()manageTrading()updateDataTrades()openTrade()setTPSL()modifTPSL()validateLot()getLotSize()getTotalVolume()
// Pipsgrowth EX16076 Trend — Execution Flow (from source analysis)
// Family: Trend
// Smart trend follower using MA cross or trend-follow mode with Stochastic confirmation. Supports layered entries with configurable spacing; martingale multiplier disabled by default. Includes break-even TP/SL management across all open positions
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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| inMagicNumber | 22216076 | Magic number |
| inLotSize | 0.01 | Initial Lot Size |
| inMultiply | 1.0 | Multiplier (1.0 = no martingale) |
| inJarakLayer | 200 | Jarak Layer (pips) |
| inJnsSignal | eTypeCrossMA | Signal Type |
| inMAPeriodFast | 14 | MA Fast |
| inMAPeriodSlow | 28 | MA Slow |
| inSTOKPeriod | 10 | Sto %K |
| inSTODPeriod | 3 | Sto %D |
| inSTOSlowing | 3 | Slowing |
| inTakeProfit | 500 | Take Profit |
| inStopLoss | 0 | Stop Loss |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16076 Smart Trend Follower — MA + Stochastic trend follower, full 12-layer stack."
#include <Trade\Trade.mqh>
enum enumJnsSignal{
eTypeCrossMA, //Cross 2 MA
eTypeTrend, //Follow Trend
};
enum enumOrderType{
eBuy, //BUY
eSell, //SELL
eNone = 99, //None
};
sinput const string GroupIdentity="";//=== Identity ===
input int inMagicNumber = 22216076; // Magic number
input string InpTradeComment = "Psgrowth.com Expert_16076";
sinput const string GroupTrading="";//=== Trading ===
input double inLotSize = 0.01; //Initial Lot Size
input double inMultiply = 1.0; //Multiplier (1.0 = no martingale)
input int inJarakLayer = 200; //Jarak Layer (pips)
input enumJnsSignal inJnsSignal = eTypeCrossMA; //Signal Type
sinput const string GroupMA="";//=== Moving Average ===
input int inMAPeriodFast = 14; //MA Fast
input int inMAPeriodSlow = 28; //MA Slow
sinput const string GroupStochastic="";//=== Stochastic Oscillator ===
input int inSTOKPeriod = 10; //Sto %K
input int inSTODPeriod = 3; //Sto %D
input int inSTOSlowing = 3; //Slowing
sinput const string GroupExit="";//=== Exit Management ===
input int inTakeProfit = 500; //Take Profit
input int inStopLoss = 0; //Stop Loss
struct dataTrades{
int ttlPos;
double hargaTA, hargaTB;
double ttlValue, ttlLot;
void initial(){
ttlPos = 0;
hargaTA = hargaTB = 0.0;
ttlValue = ttlLot = 0.0;
}
};
int gMAFastHandle, gMASlowHandle, gSTOHandle;
dataTrades trades[2];
double gLotMin, gLotMax,gLotStep, gLotLimit;
//+------------------------------------------------------------------+الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.