ZIMZIR · MT5 TROUBLESHOOTING

لماذا تظهر رسالة Invalid Stops في MT5؟

تظهر هذه الرسالة عندما يحتوي طلب التداول على مستوى Stop غير صالح وفق حالة السعر الحالية أو خصائص الأداة أو قواعد خادم التداول. المشكلة قد ترتبط بـStop Loss أوTake Profit أو مستويات مرتبطة بالأوامر المعلقة والتعديلات.

القاعدة الأساسية

لا تغيّر Stop Loss أوTake Profit عشوائيًا. افحص اتجاه المستوى، والمسافة من السعر، وخصائص الرمز أولًا.

معنى الخطأ

ماذا يعني Error 10016؟

في توثيق MQL5 الرسمي يحمل رمز خادم التداول TRADE_RETCODE_INVALID_STOPS الرقم 10016، ويعني أن مستويات الإيقاف الموجودة في طلب التداول غير صالحة.

Trade Server Return Code

10016 · TRADE_RETCODE_INVALID_STOPS

Invalid stops in the request.

وجود الخطأ لا يعني بالضرورة أن Stop Loss نفسه هو المشكلة الوحيدة. يجب فحص جميع مستويات السعر المرسلة مع الطلب والسياق الذي وقع فيه الرفض.

Stop Loss & Take Profit

افحص جهة المستوى قبل فحص المسافة

أول سؤال عند ظهور Invalid Stops هو: هل تم وضع Stop Loss وTake Profit على الجانب الصحيح من السعر بالنسبة لاتجاه المركز؟

BUY

Stop Loss

يكون أسفل السعر المرجعي للمركز وفق قواعد التنفيذ.

Take Profit

يكون أعلى السعر المرجعي للمركز.

SELL

Stop Loss

يكون أعلى السعر المرجعي للمركز وفق قواعد التنفيذ.

Take Profit

يكون أسفل السعر المرجعي للمركز.

Bid وAsk مهمان عند فحص المستويات

لا تعتمد على خط واحد تراه على الرسم البياني وتفترض أنه السعر الوحيد المستخدم في التحقق. يفرق MT5 بين Bid وAsk عند التعامل مع مستويات البيع والشراء، لذلك قد يبدو المستوى بعيدًا بصريًا لكنه لا يحقق الشرط المطلوب فعليًا.

افهم Bid وAsk ←

Stops Level

المستوى الصحيح قد يظل قريبًا جدًا

يمكن أن يحدد كل Symbol مسافة دنيا لمستويات Stop. في MQL5 تظهر هذه الخاصية باسم SYMBOL_TRADE_STOPS_LEVEL ويتم التعبير عنها بالنقاط Points.

لذلك قد يكون Stop Loss موضوعًا في الاتجاه الصحيح تمامًا، لكنه يظل غير صالح لأن المسافة بينه وبين السعر المرجعي أقل من الحد المطلوب.

Symbol Property

SYMBOL_TRADE_STOPS_LEVEL

Minimum stop distance expressed in points.

قيمة Stops Level ليست رقمًا عالميًا ثابتًا لجميع الأدوات أو الوسطاء. افحص مواصفات الرمز الذي تتداوله بدل استخدام مسافة مفترضة لجميع الأسواق.

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

لماذا يمكن أن يرفض MT5 مستوياتك؟

01

Stop Loss في الجهة غير الصحيحة

إذا كان مستوى Stop Loss موضوعًا على الجانب غير الصحيح من السعر بالنسبة لاتجاه المركز، فقد يكون الطلب غير صالح.

02

Take Profit في الجهة غير الصحيحة

يجب أن يكون Take Profit في الاتجاه المناسب للمركز. وضعه على الجانب المعاكس قد يؤدي إلى رفض مستويات الحماية.

03

المستوى قريب جدًا من السعر

قد يحدد الرمز مسافة دنيا يجب احترامها بين السعر الحالي ومستويات Stop Loss أو Take Profit أو بعض مستويات الأوامر.

04

السعر تحرك قبل وصول الطلب

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

05

مشكلة في دقة السعر

يجب أن تتوافق الأسعار المستخدمة مع خصائص الرمز مثل عدد الخانات ودقة تغير السعر. القيم المحسوبة بطريقة غير مناسبة قد تسبب رفض الطلب.

06

تعديل داخل Freeze Level

قد تكون هناك منطقة تجميد حول السعر تمنع تعديل بعض الأوامر أو المستويات عندما تصبح قريبة جدًا من سعر التفعيل.

Freeze Level

لماذا قد يفشل تعديل مستوى كان موجودًا بالفعل؟

بعض الرموز تحدد أيضًا مسافة تسمى Freeze Level. هذه المنطقة ترتبط بتجميد بعض عمليات التداول عندما يصبح السعر قريبًا من مستويات معينة.

لذلك يمكن أن تواجه مشكلة أثناء تعديل أمر أو مستوى حتى لو لم تكن تحاول إنشاء صفقة جديدة.

SYMBOL_TRADE_FREEZE_LEVEL

تمثل هذه الخاصية مسافة تجميد عمليات التداول بالنقاط.

عند التشخيص، لا تفترض أن Stops Level وFreeze Level شيء واحد. الأول يرتبط بالمسافة الدنيا لمستويات الإيقاف، بينما الثاني يرتبط بمنطقة يمكن أن تتقيد داخلها بعض عمليات التعديل.

Price Precision

Point وDigits وTick Size ليست تفاصيل شكلية

تختلف طريقة تسعير الأدوات. قد يعرض رمز خمس خانات عشرية بينما يعرض آخر خانتين أو ثلاثًا، كما توجد خاصية Tick Size التي تحدد أقل تغير سعري للأداة.

إذا كان EA أو سكربت يحسب Stop Loss أوTake Profit رياضيًا، فيجب أن تكون النتيجة متوافقة مع خصائص الرمز الفعلية بدل افتراض نفس دقة السعر لجميع الأدوات.

Digits

عدد الخانات السعرية المعروضة.

Point

قيمة النقطة المستخدمة في خصائص الرمز.

Tick Size

أقل تغير سعري تسمح به مواصفات الأداة.

خطوات التشخيص

افحص هذه النقاط بالترتيب

الهدف هو معرفة أي شرط فشل في الطلب بدل تحريك المستوى عدة مرات حتى يقبله الخادم بالصدفة.

01

حدد أولًا هل الخطأ ظهر أثناء فتح صفقة أم تعديل Stop Loss أو Take Profit أم تعديل Pending Order.

02

راجع اتجاه الصفقة: Buy أم Sell.

03

قارن Stop Loss وTake Profit مع Bid وAsk الحاليين.

04

افتح Symbol Specification وراجع Stops Level.

05

راجع Freeze Level إذا كانت المشكلة تظهر عند التعديل.

06

تحقق من Digits وPoint وTick Size الخاصة بالرمز.

07

إذا كان السوق سريع الحركة، أعد قراءة السعر الحالي قبل حساب المستويات.

08

إذا كان الطلب صادرًا من EA، راجع Journal وExperts وTrade Return Code.

Moving Market

المستوى قد يكون صالحًا عند الحساب وغير صالح عند الإرسال

الأسعار لا تبقى ثابتة أثناء تنفيذ البرنامج أو إرسال الطلب إلى خادم التداول. إذا تحرك Bid أوAsk، فقد تتغير المسافة الفعلية بين السعر ومستوى Stop Loss أوTake Profit.

تظهر أهمية ذلك بصورة أكبر عندما تكون المسافة المستخدمة قريبة أصلًا من الحد الأدنى المسموح به.

لا تعتمد على سعر قديم

احسب مستوياتك باستخدام بيانات السعر الحالية قبل إرسال الطلب.

وإذا كان النظام آليًا، يجب أن يتعامل مع تغير السعر والقيود الحالية بدل افتراض أن السعر الذي استُخدم في خطوة سابقة ما زال صالحًا.

Expert Advisor

ماذا تفحص داخل EA؟

عند استخدام Expert Advisor لا يكفي أن تعرف أن الصفقة لم تُفتح أو أن تعديل Stop Loss فشل. اقرأ نتيجة طلب التداول نفسها.

ظهور Retcode 10016 يساعدك على فصل مشكلة مستويات السعر عن مشكلات أخرى مثل حجم الصفقة أو الهامش أو إغلاق السوق.

اقرأ السعر الحالي

لا تعتمد على Bid أوAsk قديم عند تكوين الطلب.

اقرأ خصائص الرمز

افحص Stops Level وFreeze Level وPoint وTick Size بدل كتابة قيم ثابتة تصلح لرمز واحد فقط.

سجّل القيم الفعلية

عند الخطأ، سجّل Bid وAsk وSL وTP والمسافات وRetcode حتى تعرف الشرط الذي فشل.

لا تخلط الأخطاء

Invalid Stops لا يعني أن كل شيء في الطلب غير صالح

يستخدم MT5 رموز رفض مختلفة للمشكلات المختلفة. تحديد الرمز الصحيح يمنعك من معالجة مشكلة غير موجودة.

10016

Invalid Stops

يرتبط بمستويات Stop الموجودة في طلب التداول.

Invalid Volume

مشكلة حجم

تتعلق بحجم التداول وقواعد الحد الأدنى أو الأقصى أو الخطوة.

Not enough money

مشكلة هامش

تتعلق بعدم كفاية الأموال أو الهامش المتاح لإتمام الطلب.

اقرأ دليل Not enough money ←

الخلاصة

Invalid Stops يعني أن مستوى في طلبك لا يحقق قواعد السعر الحالية.

ابدأ باتجاه Stop Loss وTake Profit، ثم افحص المسافة من Bid وAsk وStops Level. وإذا كان الخطأ يظهر عند تعديل مستوى موجود، افحص Freeze Level أيضًا. أما الأنظمة الآلية فيجب أن تقرأ خصائص الرمز والأسعار الحالية بدل الاعتماد على قيم ثابتة.

هذا المحتوى تعليمي عام. قواعد Stops Level وFreeze Level ودقة الأسعار وأنواع الأوامر قد تختلف حسب الأداة والسوق والحساب والوسيط. راجع مواصفات الرمز الفعلية داخل MT5 والمعلومات الرسمية لمزود الخدمة عند التشخيص.