الرئيسية > المدونة > الحل الشامل لخطأ Market closed (10018 / الخطأ 132)

MT5MQL5أخطاءحل المشاكلإكسبيرت

الحل الشامل لخطأ Market closed (10018 / الخطأ 132)

نُشر: 2026-07-07وقت القراءة: حوالي 7 دقيقة
This article reflects information as of its publish date. EA performance figures (PF, DD, annual return) change with live trading and re-validation — check the latest on the EA pages. See the latest EA results

المحتوى

  1. ما هو Market closed (الفرق بين 10018 و132)
  2. ① TRADE_RETCODE_MARKET_CLOSED = 10018 (كود إرجاع `OrderSend()` في MT5)
  3. ② ERR_MARKET_CLOSED = 132 (في MT4 / دالة `GetLastError()` في MQL4)
  4. تشخيص سريع في 30 ثانية
  5. الأسباب والحلول (6 حالات)
  6. ① السوق بأكمله مغلق بسبب عطلة نهاية الأسبوع أو عطلة رسمية
  7. ② خارج جلسة التداول الخاصة بالرمز (فترة التوقف اليومي)
  8. ③ الخلط بين توقيت السيرفر والتوقيت المحلي
  9. ④ الرمز معطّل للتداول أو للإغلاق فقط (SYMBOL_TRADE_MODE)
  10. ⑤ مباشرة بعد افتتاح السوق يوم الاثنين أو بعد استئناف الجلسة
  11. ⑥ توقف التداول بسبب أخبار أو أحداث
  12. كود MQL5 للوقاية من هذا الخطأ (لمطوري الإكسبيرتات)
  13. التحقق من كون الوقت الحالي داخل جلسة التداول
  14. التحقق من وضع التداول (SYMBOL_TRADE_MODE)
  15. تجميعهما كبوابة تحقق قبل إرسال الأمر
  16. التعامل مع الحالة إذا ظهر 10018 رغم كل ذلك
  17. قائمة تحقق حسب الأولوية
  18. الخلاصة
  19. الأسئلة الشائعة
  20. س: يظهر لدي Market closed في منتصف يوم عمل عادي. لماذا؟
  21. س: ما الفرق بين 10018 و132؟
  22. س: يستمر الإكسبيرت الخاص بي في إظهار الخطأ طوال عطلة نهاية الأسبوع. هل هذا آمن؟
  23. س: ظهر لدي Market closed أيضًا مع العملات الرقمية (BTCUSD). أليست قابلة للتداول على مدار الساعة؟

الحل الشامل لخطأ Market closed (في MT5/MQL5)

عندما يظهر في سجل الإكسبيرت الخاص بك Market closed أو market is closed، فإن تفسير "طبيعي، إنها عطلة نهاية الأسبوع" لا ينطبق إلا على نصف الحالات فقط. هذا خطأ يزعج الكثيرين لأنه يظهر في منتصف يوم عمل عادي، أو يظهر فقط مع رمز معيّن بينما تُنفَّذ الأوامر بشكل طبيعي على رموز أخرى.

السبب لا يقتصر على "عطلة نهاية الأسبوع"، بل هناك عدة أسباب أخرى مثل: جلسات التداول الخاصة بكل رمز (فترات التوقف اليومي في الذهب أو مؤشرات الأسهم)، والفارق بين توقيت سيرفر الوسيط والتوقيت المحلي لديك، وقيود وضع التداول الخاص بالرمز (مثل close-only). هذا المقال موجّه لمستخدمي الإكسبيرتات في MT5 ولمبرمجي MQL5 على حدٍ سواء، ويجمع كل ما تحتاج معرفته عن حقيقة خطأ Market closed، وأسبابه الستة، وطريقة تشخيصه في 30 ثانية، والحل الدائم على مستوى الكود. لمراجعة قائمة شاملة بجميع رموز الأخطاء، راجع الدليل الشامل لحل رموز أخطاء MQL5 / MT5.

هذا المقال يفترض إصدار MT5 (سلسلة build 4xxx) كما كان في يوليو 2026. أوقات الجلسات وأسماء الشاشات قد تختلف حسب الوسيط والإصدار.


ما هو Market closed (الفرق بين 10018 و132)

الرمز الذي يعني "السوق مغلق" مختلف تمامًا بين MT5 وMT4 (MQL4). يجب التمييز بينهما حسب المنصة التي تستخدمها ومصدر القيمة التي حصلت عليها.

① TRADE_RETCODE_MARKET_CLOSED = 10018 (كود إرجاع OrderSend() في MT5)

عند إرسال أمر في MQL5 عبر OrderSend()، توضع نتيجة التنفيذ في MqlTradeResult.retcode. عندما يقرر سيرفر التداول أن هذا الرمز "خارج ساعات التداول حاليًا" ويرفض الأمر، يكون الرمز الناتج هو 10018. هذا ليس خطأ داخليًا في MT5، بل إشعار رفض قادم من سيرفر الوسيط.

المعنى: السوق مغلق (Market is closed)
الثابت: TRADE_RETCODE_MARKET_CLOSED
القيمة: 10018
// مثال نموذجي لما يظهر في السجل
2026.07.06 23:05:11.204 EA_NAME XAUUSD,M5: OrderSend error 10018 [Market closed]

② ERR_MARKET_CLOSED = 132 (في MT4 / دالة GetLastError() في MQL4)

في MT4 (MQL4)، بعد فشل OrderSend()، تُرجع الدالة GetLastError() القيمة 132. المعنى مطابق تمامًا لـ 10018، أي "السوق مغلق حاليًا". إذا كنت تستخدم نسخة من الإكسبيرت على MT4 بالتوازي، فسيظهر نفس السبب كـ 10018 على MT5 وكـ 132 على MT4.

المعنى: السوق مغلق (Market is closed)
الثابت: ERR_MARKET_CLOSED (في MQL4)
القيمة: 132

الفرق العملي بين الاثنين:

المنصةمصدر القيمةالقيمة
MT5 (MQL5)MqlTradeResult.retcode / CTrade.ResultRetcode()10018
MT4 (MQL4)GetLastError() بعد فشل OrderSend()132

السبب الجذري في الحالتين واحد: "تم إرسال أمر خارج جلسة التداول المحددة من السيرفر (أو أن التداول على هذا الرمز مقيّد)". والحل مشترك أيضًا، لذا سنشرحه معًا فيما يلي.


تشخيص سريع في 30 ثانية

قبل إعادة تشغيل الإكسبيرت عشوائيًا، تحقق من هذه النقاط الأربع لتحديد السبب المحتمل.

  1. تحقق من جلسة تداول الرمز — في نافذة أسعار السوق (Market Watch)، انقر بزر الماوس الأيمن على الرمز المعني ← "المواصفات (Specification)" ← "جلسات التداول". ستجد أوقات التداول المتاحة لكل يوم (بتوقيت السيرفر). إذا كان الوقت الحالي خارج هذا النطاق، فهذا هو الجواب.
  2. تحقق من توقيت السيرفر — الوقت المعروض أعلى نافذة أسعار السوق هو توقيت سيرفر الوسيط. تحديد الجلسة يعتمد على هذا التوقيت وليس على ساعة جهازك. من الطبيعي أن يكون هناك فارق عدة ساعات عن توقيت بلدك.
  3. تحقق من وضع التداول — في نفس شاشة "المواصفات"، تأكد أن حقل "التداول" ليس شيئًا آخر غير Full access (مثل Disabled أو Close only). إذا كان كذلك، سيتم رفض الأوامر الجديدة حتى داخل الجلسة.
  4. جرّب رمزًا آخر — إذا نجح نفس الإكسبيرت أو نفس الأمر اليدوي على زوج فوركس رئيسي مثل EURUSD، فهذا يؤكد أن المشكلة ليست في الحساب أو الإكسبيرت، بل في جلسة أو قيود ذلك الرمز تحديدًا.

الأسباب والحلول (6 حالات)

① السوق بأكمله مغلق بسبب عطلة نهاية الأسبوع أو عطلة رسمية

الأعراض: يظهر الخطأ يوم السبت أو الأحد، أو في مناسبات مثل رأس السنة أو عيد الميلاد. يظهر على جميع الرموز.

السبب: سوق الفوركس عمومًا لا يعمل من إغلاق يوم الجمعة (بتوقيت السيرفر) حتى افتتاح يوم الاثنين. في العطلات الرسمية (رأس السنة، عيد الميلاد، إلخ) قد يتوقف التداول أو يُختصر حتى في أيام العمل. إذا حاول الإكسبيرت إرسال أمر بسبب معالجة بقايا شمعة أو منطق الفريم الزمني خلال عطلة نهاية الأسبوع، ستتكرر أخطاء 10018/132 باستمرار.

الحل:

  1. الخطأ نفسه غير ضار. سيختفي تلقائيًا عند فتح السوق
  2. إذا كنت تريد سجلًا نظيفًا، أضف تحققًا من اليوم/الجلسة داخل الإكسبيرت لمنع إرسال الأمر من الأساس (الكود موضح لاحقًا)
  3. تقويم العطلات يختلف من وسيط لآخر، لذا تحقق من جدول عطلات وسيطك بالتحديد

② خارج جلسة التداول الخاصة بالرمز (فترة التوقف اليومي)

الأعراض: يظهر الخطأ رغم أنه يوم عمل عادي، لكن فقط على رموز معينة (الذهب، الفضة، مؤشرات الأسهم CFD، الطاقة، إلخ). يتكرر في نفس التوقيت تقريبًا كل يوم.

السبب: أزواج الفوركس تُتداول تقريبًا على مدار 24 ساعة في أيام العمل، لكن المعادن الثمينة ومؤشرات الأسهم CFD لديها فترة توقف يومية تتراوح بين عشرات الدقائق وعدة ساعات. هذا مرتبط بصيانة السوق الأصلي أو عمليات الترحيل (rollover)، ويختلف التوقيت حسب الوسيط والرمز. إذا أرسل الإكسبيرت أمرًا خلال فترة التوقف هذه، ستحصل على 10018.

الحل:

  1. تحقق من "المواصفات ← جلسات التداول" لمعرفة فترة التوقف الدقيقة لهذا الرمز تحديدًا (هذا هو المصدر الوحيد الموثوق — لا تعتمد على أوقات مذكورة في مدونات أخرى، فهي تختلف حسب الوسيط)
  2. استخدم فلتر الوقت في الإكسبيرت (مثل TradeStartHour/TradeEndHour) لتجنّب فترة التوقف
  3. للمطورين: تحقق من الكود باستخدام SymbolInfoSessionTrade() (موضح لاحقًا)

كما أن العملات الرقمية (مثل BTCUSD) تُتداول لدى كثير من الوسطاء حتى في عطلة نهاية الأسبوع، لكن هذا أيضًا يعتمد على الوسيط. لا تفترض أن "العملات الرقمية تعمل 24/7 بالضرورة"، بل تحقق من شاشة المواصفات.


③ الخلط بين توقيت السيرفر والتوقيت المحلي

الأعراض: يظهر الخطأ رغم أن "جلسة التداول في المواصفات تشير إلى أننا داخل وقت التداول". شائع عند استخدام وسطاء دوليين.

السبب: أوقات الجلسات المذكورة في المواصفات، وكذلك الوقت المعروض داخل MT5، كلها بـتوقيت سيرفر الوسيط. كثير من الوسطاء الدوليين يعتمدون توقيت GMT+2/+3 (بحيث يكون إغلاق نيويورك عند منتصف الليل)، مما يعني فارقًا يصل إلى 6-7 ساعات عن التوقيت المحلي لديك. من الشائع أن يكون الوقت لديك "ليلة الجمعة"، بينما يكون بتوقيت السيرفر بالفعل يوم السبت.

الحل:

  1. تعوّد على اعتماد الوقت الظاهر في نافذة أسعار السوق (= توقيت السيرفر) كمرجع أساسي
  2. عادةً ما تُحدَّد معاملات الإكسبيرت (مثل فلاتر وقت التداول) بتوقيت السيرفر. تأكد أنك لم تضبطها ظنًا منك أنها بتوقيتك المحلي
  3. في الكود، استخدم TimeTradeServer() (ولا تعتمد TimeLocal() لتحديد الجلسة)

④ الرمز معطّل للتداول أو للإغلاق فقط (SYMBOL_TRADE_MODE)

الأعراض: رغم أنه داخل وقت الجلسة ويوم عمل، تُرفض جميع الأوامر الجديدة على رمز معين. أحيانًا يُسمح فقط بإغلاق الصفقات القائمة.

السبب: يمكن للوسيط ضبط وضع التداول لكل رمز على حدة.

SYMBOL_TRADE_MODEالمعنى
SYMBOL_TRADE_MODE_FULLبدون قيود (الوضع العادي)
SYMBOL_TRADE_MODE_CLOSEONLYإغلاق فقط (لا يُسمح بأوامر جديدة). مثل عقود CFD قبل انتهاء الإدراج أو تبديل الشهر
SYMBOL_TRADE_MODE_DISABLEDالتداول معطّل بالكامل
SYMBOL_TRADE_MODE_LONGONLY / SHORTONLYشراء فقط / بيع فقط

قد تختلف الإعدادات بين الحساب التجريبي والحقيقي، وقد تختلف الرموز المتاحة حسب نوع الحساب.

الحل:

  1. تحقق من حقل "التداول" في شاشة "المواصفات"
  2. إذا كان Close only، تخلَّ عن فتح صفقات جديدة وركّز على تصفية المراكز الحالية. إذا أردت الاستمرار في تداول هذا الرمز، تحقق مما إذا كان هناك رمز بديل بشهر تسليم مختلف أو لاحقة مختلفة (مثل US500.f)
  3. إذا بقي الوضع Disabled، تواصل مع الوسيط للتأكد من إمكانية التداول عليه ضمن نوع حسابك

⑤ مباشرة بعد افتتاح السوق يوم الاثنين أو بعد استئناف الجلسة

الأعراض: يظهر الخطأ أو يُرفض التنفيذ فقط لبضع دقائق بعد افتتاح السوق يوم الاثنين، أو مباشرة بعد انتهاء فترة التوقف اليومي.

السبب: هناك فجوة زمنية بين لحظة "فتح" الجلسة واستقرار التنفيذ الفعلي. مباشرة بعد الافتتاح، تكون السيولة ضعيفة والسبريد واسعًا جدًا، وقد يرفض بعض الوسطاء استقبال الأوامر حتى تبدأ الأسعار بالتدفق (أي يُعامَل الأمر كأن السوق مغلق ويُرفض). هذا شائع مع الإكسبيرتات التي تصدر إشارات فور افتتاح يوم الاثنين، أو إكسبيرتات الذهب التي تستهدف ما بعد فترة التوقف مباشرة.

الحل:

  1. أضف فلترًا يتجاهل فتح الصفقات الجديدة لعدد دقائق بعد الافتتاح (مثل AvoidMondayOpen). لهذا السبب تحمل الإكسبيرتات الموزعة على موقعنا إعدادًا افتراضيًا يتجنّب الساعات 0-3 يوم الاثنين (بتوقيت السيرفر)
  2. استخدم دائمًا فلتر السبريد (MaxSpread) بالتزامن مع ذلك. التنفيذ بسبريد غير طبيعي مباشرة بعد الافتتاح قد يسبب خسارة أكبر ضررًا من الخطأ نفسه
  3. صمّم المنطق بحيث لا تُعاد المحاولة فورًا عند ظهور 10018، بل ينتظر حتى الشمعة التالية

⑥ توقف التداول بسبب أخبار أو أحداث

الأعراض: يظهر الخطأ مؤقتًا قبل أو بعد صدور بيانات اقتصادية مهمة، أو أثناء تقلبات غير طبيعية على رمز معين.

السبب: بعض الوسطاء أو الرموز قد يتوقف تداولها مؤقتًا (halt) أو تُقيّد الأوامر الجديدة خلال أحداث كبرى. مؤشرات الأسهم CFD قد تتوقف أحيانًا تبعًا لقواطع الدائرة (circuit breaker) في السوق الأصلي. أي أمر خلال هذه الفترة سيُرفض كخطأ من نوع "السوق مغلق".

الحل:

  1. هذا وضع مؤقت، وسيُحل تلقائيًا بعد فترة
  2. استخدام فلتر الأخبار الاقتصادية (UseEconomicFilter في إكسبيرتات موقعنا) لإيقاف فتح الصفقات الجديدة قبل وبعد صدور البيانات يحقق هدفين معًا: تجنّب الخطأ وتجنّب مخاطر التقلبات المفاجئة

كود MQL5 للوقاية من هذا الخطأ (لمطوري الإكسبيرتات)

الحل الصحيح لخطأ Market closed ليس "التعامل معه بعد ظهوره"، بل التحقق من الجلسة ووضع التداول قبل إرسال الأمر، وعدم الإرسال أصلاً إذا كان السوق مغلقًا. هذا لا يجعل السجل نظيفًا فقط، بل يمنع أيضًا طلبات سيرفر غير ضرورية ومحاولات إعادة إرسال متكررة بلا فائدة.

التحقق من كون الوقت الحالي داخل جلسة التداول

تُرجع الدالة SymbolInfoSessionTrade() وقت بداية/نهاية الجلسة رقم i ليوم معيّن (بالثواني منذ منتصف الليل بتوقيت السيرفر). للتعامل مع الرموز التي لديها أكثر من جلسة واحدة (مثل المؤشرات التي تتخللها فترة توقف يومي)، نستخدم حلقة تكرارية للتحقق من جميع الجلسات.

// التحقق مما إذا كان الوقت الحالي بتوقيت السيرفر داخل جلسة تداول هذا الرمز
bool IsTradeSessionOpen(const string symbol)
{
   MqlDateTime dt;
   TimeToStruct(TimeTradeServer(), dt);           // يجب الاعتماد دائمًا على توقيت السيرفر
   int now = dt.hour*3600 + dt.min*60 + dt.sec;   // الثواني المنقضية منذ منتصف الليل

   datetime from, to;
   for(uint i = 0; SymbolInfoSessionTrade(symbol, (ENUM_DAY_OF_WEEK)dt.day_of_week, i, from, to); i++)
   {
      int f = (int)from;                 // الثواني منذ منتصف الليل
      int t = (int)to;                   // نهاية الساعة 24:00 تُمثَّل بـ 86400
      if(now >= f && now < t)
         return true;
   }
   return false;   // لا توجد جلسة لهذا اليوم (عطلة نهاية أسبوع مثلاً) أو خارج جميع الجلسات
}

التحقق من وضع التداول (SYMBOL_TRADE_MODE)

// التحقق مما إذا كان وضع التداول يسمح بفتح صفقة جديدة
bool IsNewEntryAllowed(const string symbol, ENUM_ORDER_TYPE type)
{
   long mode = SymbolInfoInteger(symbol, SYMBOL_TRADE_MODE);
   if(mode == SYMBOL_TRADE_MODE_DISABLED)  return false; // التداول معطّل
   if(mode == SYMBOL_TRADE_MODE_CLOSEONLY) return false; // إغلاق فقط = لا يُسمح بصفقات جديدة
   if(mode == SYMBOL_TRADE_MODE_LONGONLY  && type != ORDER_TYPE_BUY)  return false;
   if(mode == SYMBOL_TRADE_MODE_SHORTONLY && type != ORDER_TYPE_SELL) return false;
   return true;   // مثل SYMBOL_TRADE_MODE_FULL
}

تجميعهما كبوابة تحقق قبل إرسال الأمر

// داخل OnTick: حتى لو ظهرت إشارة، لا يُرسل الأمر إذا كان السوق مغلقًا
if(!IsTradeSessionOpen(_Symbol) || !IsNewEntryAllowed(_Symbol, ORDER_TYPE_BUY))
{
   // منع 10018 قبل حدوثه. سجل سطرًا واحدًا فقط وانتظر الشمعة التالية
   return;
}

التعامل مع الحالة إذا ظهر 10018 رغم كل ذلك

هناك حالات لا يمكن تفاديها تمامًا، مثل تأخر تحديث معلومات الجلسة أو رفض التنفيذ مباشرة بعد الافتتاح. القاعدة الأساسية هي: عند رؤية retcode يساوي 10018 من OrderSend()، لا تُعِد المحاولة فورًا (انتظر حتى الشمعة التالية). إعادة المحاولة المتكررة أثناء إغلاق السوق لن تُحسّن شيئًا، بل ستملأ السجل فقط.

MqlTradeRequest req; MqlTradeResult res;
ZeroMemory(req); ZeroMemory(res);
// ... تجهيز req ...
if(!OrderSend(req, res) || res.retcode != TRADE_RETCODE_DONE)
{
   if(res.retcode == TRADE_RETCODE_MARKET_CLOSED)   // 10018
      Print("Market closed. Skip and wait for the next session.");
   else
      PrintFormat("OrderSend failed: retcode=%d, lastError=%d", res.retcode, GetLastError());
}

بصراحة، الإكسبيرتات التي ترسل أوامر مباشرة بعد افتتاح يوم الاثنين أو حول فترة التوقف اليومي (خاصة في الذهب ومؤشرات الأسهم) تصطدم بهذا الخطأ بشكل يومي تقريبًا. الإكسبيرتات المصممة بوعي بالجدول الزمني — التي تتحقق من الجلسة، وتتجنب الافتتاح المباشر، وتغلق الصفقات قبل عطلة نهاية الأسبوع — لا تتجنب الأخطاء غير الضرورية فحسب، بل تتجنب أيضًا التنفيذ السيئ في أوقات ضعف السيولة. الإكسبيرتات الموزعة عبر FXEA365 تطبّق كميزة أساسية: تجنّب افتتاح يوم الاثنين (AvoidMondayOpen)، وفلتر الوقت، وإغلاق الصفقات قبل عطلة نهاية الأسبوع (CloseAllBeforeWeekend).


قائمة تحقق حسب الأولوية

الأولويةالتحققالحل
🚨 أولاًهل الوقت الحالي عطلة نهاية أسبوع أو عطلة رسمية (بتوقيت السيرفر)؟فقط انتظر. الخطأ نفسه غير ضار
🚨 أولاًهل الوقت داخل نطاق "جلسة التداول" المذكورة في المواصفات؟تجنّب فترة التوقف الخاصة بالرمز باستخدام فلتر وقت
⚠️ ثانيًاهل تم الخلط بين توقيت السيرفر والتوقيت المحلي؟أعد الضبط بالاعتماد على الوقت الظاهر في أسعار السوق
⚠️ ثانيًاهل وضع التداول هو Full access؟إذا كان Close only / Disabled، تحقق من مواصفات الوسيط
✅ تحققهل نحن مباشرة بعد الافتتاح أو بعد انتهاء فترة التوقف؟تجاهل عدة دقائق + فلتر السبريد
🛠 للمطورينهل يتم التحقق من الجلسة/الوضع قبل إرسال الأمر؟طبّق بوابة تحقق باستخدام SymbolInfoSessionTrade

الخلاصة

  • خطأ Market closed هو 10018 (TRADE_RETCODE_MARKET_CLOSED) في MT5، و132 (ERR_MARKET_CLOSED) في MT4. المعنى واحد: "أمر خارج جلسة التداول/أثناء قيود على التداول".
  • لا يظهر فقط في عطلة نهاية الأسبوع، بل أيضًا بسبب فترة التوقف اليومي الخاصة برمز معيّن (الذهب، المؤشرات)، والفارق مع توقيت السيرفر، وقيود SYMBOL_TRADE_MODE، والرفض مباشرة بعد الافتتاح. إذا ظهر في يوم عمل عادي، ابدأ بالتحقق من "المواصفات ← جلسات التداول".
  • أوقات الجلسات تختلف حسب الوسيط والرمز. المرجع الوحيد الصحيح هو ما هو مكتوب في شاشة المواصفات في MT5 الخاص بك.
  • على مطوري الإكسبيرتات تطبيق بوابة تحقق قبل الإرسال باستخدام SymbolInfoSessionTrade() + SYMBOL_TRADE_MODE + TimeTradeServer() كحل دائم. وعند ظهور 10018، لا تُعِد المحاولة فورًا بل انتظر حتى الشمعة التالية.

لمراجعة جميع رموز الأخطاء، راجع الدليل الشامل لحل رموز أخطاء MQL5 / MT5، ولتحميل إكسبيرتات مجانية مزوّدة بتجنّب الجلسات وفلاتر الوقت كميزة أساسية، راجع قائمة الإكسبيرتات.


الأسئلة الشائعة

س: يظهر لدي Market closed في منتصف يوم عمل عادي. لماذا؟

السبب غالبًا هو فترة توقف التداول الخاصة بذلك الرمز تحديدًا (التوقف اليومي)، أو قيود على وضع التداول لذلك الرمز. الذهب والفضة ومؤشرات الأسهم CFD لديها فترات لا يمكن التداول فيها حتى في أيام العمل. انقر بزر الماوس الأيمن على الرمز في أسعار السوق ← "المواصفات" ← تحقق من "جلسات التداول" وحقل "التداول".

س: ما الفرق بين 10018 و132؟

الفرق فقط في المنصة، والمعنى واحد. 10018 (TRADE_RETCODE_MARKET_CLOSED) هو كود إرجاع OrderSend() في MT5، بينما 132 (ERR_MARKET_CLOSED) هو قيمة GetLastError() في MT4 (MQL4). الحل مشترك في الحالتين.

س: يستمر الإكسبيرت الخاص بي في إظهار الخطأ طوال عطلة نهاية الأسبوع. هل هذا آمن؟

لا يوجد ضرر فعلي. سيتوقف تلقائيًا عند فتح السوق. لكن إذا كان يزعجك امتلاء السجل أو استمرار تنبيهات الإشعارات، فالحل الجذري هو إضافة تحقق من اليوم/الجلسة داخل الإكسبيرت لمنع إرسال الأمر أصلاً (راجع الكود في المقال).

س: ظهر لدي Market closed أيضًا مع العملات الرقمية (BTCUSD). أليست قابلة للتداول على مدار الساعة؟

إمكانية تداول عقود العملات الرقمية CFD في عطلة نهاية الأسبوع تعتمد على الوسيط. بعض الوسطاء يوقفون التداول في عطلة نهاية الأسبوع أو يضعون فترة صيانة قصيرة. كما هو الحال مع أزواج الفوركس، تحقق من "المواصفات ← جلسات التداول" لمعرفة أوقات التداول الفعلية المتاحة لدى وسيطك.

📧 تنبيهات قبل رفع الأسعار + دورة مجانية عبر البريد لمدة 5 أيام

جميع الروبوتات متاحة الآن بسعر الإطلاق وترتفع تدريجياً مع المبيعات. تلقَّ إشعاراً قبل كل زيادة، إضافة إلى رسالة يومية عن أساسيات التداول الآلي وقراءة الاختبارات الخلفية واختيار الوسيط.

* الخصوصية محمية بشكل صارم. يمكنك إلغاء الاشتراك في أي وقت.

التعليقات والأسئلة