Pipsgrowth EX12058 MultiIndicatorConfluence — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD، EURUSD، USDJPY، GBPUSD · M1
Pipsgrowth EX12058 MultiIndicatorConfluence — File-based bridge EA for MT5 <-> Python communication. Receives trade commands via text file, executes Buy/Sell orders w. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX12058 ForexSmartBotBridge ليس مستشار خبير استراتيجي بالمعنى التقليدي. هو منفّذ أوامر مقيم داخل MT5: مستمع دائم يجلس على الشارت، يفتح ملف نصي معروف عند كل تيكنر وكل ضربة تايمر، يقرأ سطراً بصيغة شبه-MQL4 كتبته عملية خارجية، ويُرجم ذلك السطر إلى أمر حقيقي على الحساب. تعليق الترويسة في المصدر يُفصح عن القصد التصميمي ("File-based bridge EA for MT5 <-> Python communication")، ومساحة السطح المكونة من 13 دالة مبنية بالكامل حول سير العمل الواحد هذا. لا توجد مؤشرات، ولا حسابات على الشموع، ولا تقييم إشارات، ولا مصنف نظام سوقي، ولا بلوك OnTester — منطق الاستراتيجية يعيش خارج المستشار، في عملية بايثون (أو أي عملية أخرى) تكتب ملف الأوامر، ومهمة المستشار هي أن يجعل المنفذ ينفّذ الأمر بنظافة.
جانب الاستماع مكرّر. OnTick() يقيّد استدعاء CheckForCommands() بمعدل مرة كل 500 ميلي ثانية عبر GetTickCount()؛ OnTimer() — المُعدّ في OnInit() عبر EventSetTimer(1) — يفعل الشيء نفسه ببوابة ثانية واحدة. أيهما ينطلق أولاً يفتح الملف ForexSmartBot_Command.txt من مجلد MQL5/Files المعزول بـ FILE_READ|FILE_TXT|FILE_ANSI، يقرأ السطور، ينفّذ كل واحد منها، ثم يستدعي FileDelete() على الملف حتى يرى الاستدعاء التالي بداية نظيفة. إذا لم يُقرأ سطر في المرور الأول، يُرجّع الكود المؤشر إلى البداية ويحاول مرة أخرى. هذا التكرار المزدوج هو ما يجعل الجسر يشعر وكأنه سوكيت لعميل بايثون رغم أنه مجرد I/O على القرص.
ExecuteCommand() هو جدول إرسال مصغر مكتوب يدوياً. المُرسِل يبحث بـ StringFind() عن السلاسل الفرعية "OrderSend"، "CloseAll"، "GetBalance"، "GetPositions"، و"GetPrice". OrderSend هو المسار الوحيد الذي يفتح صفقة: يتوقع حمولة من الشكل OrderSend(SYMBOL,BUY/SELL,QUANTITY,SL=value,TP=value)، يقسّم على القوس الأيسر لنزع اسم الدالة، ثم StringSplit() لقائمة المعاملات على الفواصل. SL وTP اختياريان، والمحلل يمشي مصفوفة المعاملات من المؤشر 3 بحثاً عن أزواج key=value. إذا لم يُرسل المُتصِل SL، يصنع الجسر واحداً عند 2% خلف السعر — price * 0.98 للشراء، price * 1.02 للبيع. إذا لم يُرسل TP يصنع واحداً عند 3% في الاتجاه المواتي (price * 1.03 للشراء، price * 0.97 للبيع). الأرقام الثلاثة تُطبَّع عبر NormalizeDouble() إلى عدد الخانات الرمزية قبل تمريرها إلى CTrade.
مسار تنفيذ الأمر يمر بنسخة CTrade مُعدّة في OnInit(): SetExpertMagicNumber(22212058) ثابت (وهو الطريقة الوحيدة للتفريق بين أوامر الجسر والأوامر اليدوية على الحساب)، SetDeviationInPoints(30) يحدد هامش انزلاق 30 نقطة في مقابل وضع الملء IOC المختار عبر SetTypeFilling(ORDER_FILLING_IOC). وضع IOC هو الخيار المهم: في سيناريو الجسر الملفّي السعر في الأمر هو لقطة من لحظة كتابة بايثون للملف، وFOK أو IOC وضعا ملء أكثر أماناً للأسعار القديمة لأنهما لا يصطفّان. SubmitOrder() هو نقطة دخول برمجية موازية تعيد تقييد الحجم إلى symbolInfo.LotsMin()/LotsMax() و MathFloor(volume/lot_step)*lot_step — شبكة أمان عندما يرسل المُتصِل الخارجي حجم لوت غير صالح — لكن المسار المُحرَّك من بايثون لا يستخدمه.
الافتراضات الافتراضية لـ SL/TP تستحق الانتباه لأنها ليست بالنقاط — هي بالنسبة المئوية من السعر. SL عند 2% على XAUUSD عند 2000$ هو 40$، أي 400 نقطة على وسيط خماسي الخانات. TP عند 3% هو 60$، 600 نقطة. على زوج FX خماسي الخانات عند 1.1000، يقع SL عند 1.0780 (220 نقطة) ويقع TP عند 1.1330 (330 نقطة). هذا ذو معنى: يعني أن أمر بايثون واحد مُعَد لشارت ذهب سيُنتج مخاطرة دولار مختلفة جذرياً على شارت EURUSD، وأمر واحد مُعَد لـ FX سيُنتج وقفاً مطلقاً صغيراً على الذهب. من يربط الجسر بأكثر من رمز يجب أن يحوّل أرقام SL/TP لكل رمز، لا أن يرسل سعراً خاماً.
الأوامر غير التداولية هي النصف الثاني من العقد. GetBalance() يكتب قيمة AccountInfoDouble(ACCOUNT_BALANCE) في ForexSmartBot_Balance.txt باستخدام FILE_WRITE|FILE_TXT. GetPositions() يُسلسل دفتر الصفقات الحي كمصفوفة JSON-مُشابهة (الكود يستخدم تسلسل نصوص بدل CJSONEncoder، فالخرج سلسلة مبنية حرفاً بحرف مع كل الصفقات مفصولة بفواصل داخل مغلَّف [ ]، لكل منها حقول ticket/symbol/type/side/volume/entry_price/current_price/sl/tp/profit/timestamp). GetPrice() يكتب symbolInfo.Bid() إلى ForexSmartBot_Price.txt. CloseAll(SYMBOL) يمشي PositionsTotal() بالعكس ويمرّر كل تذكرة عبر TryClose_EX12058() مع فلتر السحر، اختيارياً يُرسل السلسلة الحرفية "ALL" لتصفير كل شيء على الحساب بصرف النظر عن الرمز.
مسارات الإغلاق والتعديل تستخدم نفس اتفاقية الـ wrappers المُكرّرة كبقية عائلة EX12. TryClose_EX12058(ulong ticket) يلفّ حتى 3 مرات، يستدعي trade.PositionClose(ticket)، يفحص TRADE_RETCODE_DONE أو TRADE_RETCODE_DONE_PARTIAL، وعلى رمز إرجاع عابر REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED ينام Sleep(200) ويعيد المحاولة. TryClosePartial_EX12058 مطابق ضد trade.PositionClosePartial(). TryModify_EX12058 يلفّ 3 مرات ضد trade.PositionModify(ticket, sl, tp) مع Sleep أقصر 100ms ومجموعة رموز إرجاع أصغر (REQUOTE، TIMEOUT فقط). هذه الـ wrappers يستخدمها مسار CloseAll الخاص بالجسر، وتوجد أيضاً لأي مُتصِل مستقبلي يريد ربط أمر تعديل أو إغلاق جزئي بنفس البروتوكول.
المُدخلات قليلة لأن المنطق خارجي. مجموعة Connection تحوي ServerHost="127.0.0.1"، ServerPort=5555، و EnableLogging=true — لاحظ أن المضيف والميناء يُصدَغان فقط في نبضة OnTimer() عبر Print() ولا يُستخدمان لفتح سوكيت حقيقي. الكود صراحة جسر ملفّي، ليس جسر ZeroMQ، رغم وجود المساعد SimulateZeroMQResponse() الذي يُرجع JSON محفوظ لـ ping/price/balance/equity/symbol_info/historical_data/order/close_all/positions — هذه الدالة هي هيكل لمتغير سوكيت مستقبلي. مجموعة Identity تحوي MagicNumber=22212058، InpTradeComment="Psgrowth.com Expert_12058"، SymbolSuffix="m" (عرف Exness)، و DefaultSymbols="XAUUSDm,EURUSDm,USDJPYm,GBPUSDm" كقائمة رموز افتراضية. اللاحقة تُلصق على أي رمز يمرره متصل بايثون بدون واحدة، وهذا ما يجعل الجسر يعمل على تسمية الرموز بلاحقة m في Exness.
ترتيب تشغيل بايثون لهذا المستشار مباشر: ضع المستشار على أي شارت (المستشار لا يبالي بالفريم الزمني أو الرمز — يعمل ضد الرموز الممررة في الأوامر)، اكتب سطور OrderSend(...) في ForexSmartBot_Command.txt، اختيارياً استطلع ForexSmartBot_Balance.txt و ForexSmartBot_Positions.txt و ForexSmartBot_Price.txt للحالة. لأن الجسر يستدعي FileDelete() على ملف الأوامر بعد كل قراءة ناجحة، فإن النمط الآمن هو أمر واحد لكل ملف — اكتب سطراً، دع المستشار يستهلكه، ثم اكتب التالي. المستشار يجلس خاملاً حين يكون الملف مفقوداً، فلا تكلفة CPU خاملة تتجاوز رياضيات GetTickCount() في كل تيكنر.
هذه فئة مختلفة من المستشار الاستراتيجي. شغّل باك تيست لـ EX12058 في MT5 Strategy Tester وستحصل على منحنى حقوق مسطح بلا صفقات — التيستر لا يكتب ملفات أوامر للمستشار ليستهلكها. الطريقة الصحيحة للتحقق هي تشغيل حلقة بايثون على حساب تجريبي، مشاهدة السجلات، والتأكد أن الأوامر المُرسَلة تطابق ما نفّذه الجسر على الحساب. الجسر صادق حيال ذلك: ترويسته لا تدّعي منطقاً استراتيجياً، وجسم الكود جدول إرسال أحادي الغرض.
تفاصيل الاستراتيجية
EX12058 مستمع MT5 مقيم على الشارت لمحرك استراتيجية بايثون خارجي. OnTick() و OnTimer() بدورة ثانية واحدة كلاهما يقيّد CheckForCommands() — مسار التيكنر بخانق 500 ميلي ثانية عبر GetTickCount()، ومسار التايمر ببوابة ثانية — وأيهم ينطلق أولاً يفتح ForexSmartBot_Command.txt من MQL5/Files، يمشي على السطور، يرسل كل واحد إلى مفتاح ExecuteCommand() المُفتَّح بالسلاسل الفرعية (OrderSend, CloseAll, GetBalance, GetPositions, GetPrice)، ويمحو الملف عبر FileDelete(). فرع OrderSend هو المسار الوحيد الذي يفتح صفقة: يقسّم الحمولة على الفواصل، يفسر اختيارياً رموز SL= و TP=، يصنع افتراضات 2% SL / 3% TP إذا غابتا، يُطبّع NormalizeDouble كل شيء إلى خانات الرمز، ويمرّر CTrade.Buy أو CTrade.Sell إلى نسخة CTrade مُعدّة في OnInit() بالسحر 22212058، انزلاق 30 نقطة، ووضع ORDER_FILLING_IOC. الصفقات تحيا وتموت بضربات على جانب الوسيط لتلك الأقواس الثابتة، أو بأمر CloseAll مُحرَّك من بايثون يمر عبر غلاف TryClose_EX12058 بـ 3 محاولات و Sleep 200 ميلي ثانية. لا توجد مؤشرات، ولا توليد إشارات، ولا تحجيم، ولا trailing، ولا break-even، ولا فلتر جلسة، ولا حارس إيقاف مؤقت، ولا إغلاق يومي — الجسر منفّذ أحادي الغرض والاستراتيجية تعيش في أي عملية تكتب ملف الأوامر.
الصفقات لا تُولَّد داخلياً — EX12058 جسر ملفّي. المستشار يراقب الشارت بحثاً عن ملف ForexSmartBot_Command.txt في مجلد MQL5/Files المعزول، ثم يحلّل أي سطر OrderSend(SYMBOL,BUY/SELL,QUANTITY,SL=value,TP=value) كتبته عملية بايثون خارجية، يحلّ الرمز (مع إلحاق لاحقة 'm' تلقائياً لـ Exness)، يقرأ السعر الحي Ask أو Bid عبر CSymbolInfo، ويرسل أمر ماركت عبر CTrade بحجم اللوت الممرّر والأقواس (أو الافتراضات 2%/3% إذا غاب SL/TP). الفحص يعمل كل 500 ميلي ثانية على التيكنر وكل ثانية عبر OnTimer، وملف الأوامر يُمحى بـ FileDelete() بعد الاستهلاك، لذا النمط الآمن هو أمر واحد لكل ملف.
تحدث المخارج بطريقتين. أمر CloseAll(SYMBOL) من جهة بايثون — أو CloseAll(ALL) الحرفي — يكرّر على PositionsTotal() بالعكس ويمرّر كل تذكرة عبر غلاف TryClose_EX12058 (3 محاولات، Sleep 200 ميلي ثانية على REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED). وإلا تحدث المخارج بشكل سلبي حين يصل السعر إلى SL أو TP المُلصَق عند الدخول — تلك افتراضات بالنسبة المئوية من السعر (2% SL، 3% TP من الدخول) حين لا يمرّر متصل بايثون مستويات صريحة، وتبقى على تذكرة الأمر كأقواس عادية على جانب الوسيط بلا منطق trailing أو break-even داخل المستشار.
الجسر لا يفرض وقفاً على جانب المستشار؛ كل صفقة يفتحها تحمل الـ SL الذي إمّا فُسِّر من أمر OrderSend أو صُنع كافتراضي بالنسبة المئوية من السعر (2% حركة معاكسة من الدخول: price * 0.98 للشراء، price * 1.02 للبيع، NormalizeDouble إلى خانات الرمز). لشارت XAUUSD خماسي الخانات عند دخول 2000$ ذلك الـ 2% يقع عند 1960$ — 400 نقطة — وهو أوسع بشكل جذري من وقفات الشبكة المعتمدة على النقاط في بقية عائلة EX12.
يُفَسَّر TP من حمولة OrderSend حين يُمرَّر، وإلا يُصنَع كـ 3% في الاتجاه المواتي (price * 1.03 للشراء، price * 0.97 للبيع، NormalizeDouble إلى خانات الرمز). لا يوجد إغلاق جزئي أو trailing-take-profit على جانب المستشار — الـ TP يجلس على تذكرة الأمر كهدف ثابت على جانب الوسيط حتى يطبع السعر المستوى أو يتجاوزه أمر CloseAll من بايثون. الثنائي 2% SL / 3% TP يعني نسبة مخاطرة/مكافأة 1.5R افتراضية عند الدخول، مؤطّرة مرة أخرى بالنسبة المئوية من السعر بدل النقاط.
هذا المستشار مبني للمتداولين الذين يُشغّلون محرك استراتيجية بايثون (أو أي عملية خارجية) ويريدون ساق تنفيذ MT5 نظيفة محايدة الوسيط: ضع EX12058 على أي شارت، اضبط ServerHost/ServerPort/EnableLogging في مجموعة Connection و SymbolSuffix (الافتراضي "m" لـ Exness) في مجموعة Identity، ودع حلقة بايثون تكتب سطور OrderSend/CloseAll/GetBalance/GetPositions/GetPrice في مجلد MQL5/Files المعزول. الحد الأدنى الموصى به للرصيد 100$ وتقييد اللوت في SubmitOrder() يعني أن اللوتات الميكرو تُحترم على كل رمز. اجمعه مع حساب Exness MT5 (قائمة الرموز الافتراضية — XAUUSDm, EURUSDm, USDJPYm, GBPUSDm — مُعدّة مسبقاً) وجدول بايثون ينظّم أمراً واحداً لكل كتابة ملف، لأن الجسر يمحو ملف الأوامر عبر FileDelete() بعد كل قراءة ناجحة.
منطق الاستراتيجية
Pipsgrowth EX12058 MultiIndicatorConfluence — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MultiIndicatorConfluence
الماجيك: 22212058
الإصدار: 2.00
الوصف:
File-based bridge EA for MT5 <-> Python communication. Receives trade commands via text file, executes Buy/Sell orders with configurable SL/TP, symbol suffix support, and logging. Designed for Exness MT5 with suffix symbols. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
CheckForCommands()ExecuteCommand()OnTimer()GetCurrentPrice()GetAccountBalance()GetAccountEquity()GetSymbolInfo()GetHistoricalData()CloseAllPositions()GetOpenPositions()
// Pipsgrowth EX12058 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// File-based bridge EA for MT5 <-> Python communication. Receives trade commands via text file, executes Buy/Sell orders with configurable SL/TP, symbol suffix support, and logging. Designed for Exness MT5 with suffix symbols. 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اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
- 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_12058" | Trade comment |
| SymbolSuffix | "m" | Exness uses 'm' suffix (e.g., XAUUSDm, EURUSDm) |
| DefaultSymbols | "XAUUSDm,EURUSDm,USDJPYm,GBPUSDm" | Exness symbols |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\SymbolInfo.mqh>
// External parameters - Exness MT5 Configuration
input group "=== Connection ==="
input string ServerHost = "127.0.0.1";
input int ServerPort = 5555;
input bool EnableLogging = true;
input group "=== Identity ==="
input int MagicNumber = 22212058;
input string InpTradeComment = "Psgrowth.com Expert_12058"; // Trade comment
input string SymbolSuffix = "m"; // Exness uses 'm' suffix (e.g., XAUUSDm, EURUSDm)
input string DefaultSymbols = "XAUUSDm,EURUSDm,USDJPYm,GBPUSDm"; // Exness symbols
// Global variables
string g_log_prefix = "[ForexSmartBotBridge] ";
CTrade trade;
CPositionInfo positionInfo;
CAccountInfo accountInfo;
CSymbolInfo symbolInfo;
string g_symbol_suffix = ""; // Will be set from input
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Initialize symbol suffix
g_symbol_suffix = SymbolSuffix;
if (EnableLogging)
{
Print(g_log_prefix + "ForexSmartBotBridge EA loaded successfully");
Print(g_log_prefix + "Symbol Suffix: " + g_symbol_suffix);
Print(g_log_prefix + "Default Symbols: " + DefaultSymbols);
Print(g_log_prefix + "Account: " + IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN)));
Print(g_log_prefix + "Server: " + AccountInfoString(ACCOUNT_SERVER));
}
// Set up trade object
trade.SetExpertMagicNumber(MagicNumber);
trade.SetDeviationInPoints(30);
trade.SetTypeFilling(ORDER_FILLING_IOC);
// Enable live trading automatically
if (!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
{
if (EnableLogging)
Print(g_log_prefix + "Algorithmic trading not allowed - please enable in terminal settings");
}
// Set up timer for periodic data updates
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية أخرى
Pipsgrowth EX01007 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01007 Adaptive — Adaptive signal scorer EA combining EMA crossover, RSI, Heiken Ashi, Bollinger Bands, ATR and volume spike detection int. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX01019 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01019 Adaptive — Self-adaptive market regime EA that auto-detects trending, ranging, volatile, quiet and breakout conditions. Switches be. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX15029 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX15029 SMC-OrderBlock — Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, A. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.