حالة VPS الخضراء وقائمة صفقات بلا تغيّر تجيبان عن سؤالين مختلفين. تحتاج مراقبة المستشار الخبير إلى أدلة حديثة عن المنصة وبيانات السوق المطلوبة وتشغيل البرنامج وأوامر الوسيط، مع مسار تنبيه يعمل حتى عند توقف المنصة المرسلة.
هذا الدليل 4 من سلسلة استقرار VPS وMT4. ابدأ بـالاستضافة واستمرارية التشغيل، واستخدم الدليل 2 للإعداد والدليل 3 للاستعادة. يركّز هذا الدليل على متابعة التشغيل الطبيعي وكشف عدم اليقين قبل توسع الحادثة.
حدّد التشغيل الطبيعي قبل البحث عن عطل
قد يعمل المستشار الخبير بصورة سليمة من دون فتح صفقة. فقد يفسّر ذلك فلتر وقت التداول أو حد السبريد أو سلة صفقات قائمة أو قاعدة للمخاطر أو غياب إشارة صالحة. ينبغي أن تتحقق المراقبة من قدرة البيئة المقصودة على أداء مهمتها الموثقة، بما في ذلك إدارة الأوامر القائمة، لا أن تشترط عددًا أدنى من الصفقات.
سجّل هوية المنصة والحساب والخادم المقصودين، وأسماء الرموز والأطر الزمنية الدقيقة، وإصدار المستشار وإعداداته المعتمدة، وقواعد المسؤولية عن الأوامر وفترات التشغيل المتوقعة. أدرج الرموز الأخرى التي يحتاجها. اسأل المطوّر عن الحالات والسجلات وسلوك إعادة التشغيل التي يعرضها البرنامج فعلًا. لا يعني وجود ملف EX4 أنه يوفّر تلقائيًا تقريرًا دوريًا للنشاط أو تفسيرًا كاملًا لكل قرار.
ميّز بين ثلاث حالات: طبيعي، ومشكلة مؤكدة، وغير معروف. إذا توقفت لوحة المتابعة عن التحديث، اعرض وقت آخر ملاحظة واعتبر الحالة الحالية غير معروفة. لا تعرض مؤشرًا أخضر قديمًا بوصفه دليلًا على الوضع الحالي.
تحقّق من أربع طبقات من الأدلة
| الطبقة | الملاحظة المفيدة | ما لا تثبته بمفردها |
|---|---|---|
| VPS ونظام التشغيل | التوافر وإعادة التشغيل وضغط الموارد ومساحة التخزين وعملية MT4 المقصودة. | إمكانية الوصول إلى الجهاز أو وجود عملية قيد التشغيل لا يثبت استجابة منطق المستشار. |
| MT4 وبيانات السوق | الحساب والخادم الصحيحان، والاتصال، وبيانات حديثة لكل رمز مطلوب. | تحديث رسم بياني واحد لا يثبت وصول بيانات رمز آخر يحتاجه المستشار. |
| تشغيل المستشار | نجاح التهيئة والحالة الموثقة والصلاحيات وإشارة نشاط ذات معنى إن كانت مدعومة. | رسالة المؤقّت لا تثبت اكتمال حساب الإشارات أو إدارة المراكز. |
| أوامر الوسيط وإدارتها | الصفقات المفتوحة والأوامر المعلقة الحالية، والحماية المقبولة، ونتائج الطلبات، والنسخة المسؤولة عن الإدارة. | الرصيد أو تقرير قديم أو آخر صفقة ناجحة لا يثبت الحماية الحالية. |
هذه فحوص منفصلة. يمكنك مراجعتها يدويًا أو جمعها بنظام مراقبة أُعدّ لهذا الغرض. لا يدمجها MT4 تلقائيًا في لوحة المتابعة الموضحة هنا.
مراجعة من خمس دقائق دون تغيير الاستراتيجية
- تأكّد من مكان تشغيل المستشار. افحص المنصة والحساب المقصودين، لا رسمًا محليًا بقي مفتوحًا بعد الترحيل.
- راجع الجلسة والأسعار المطلوبة. حدّد ما إذا كانت التحديثات متوقعة الآن وما إذا كانت رموز الوسيط الدقيقة تملك بيانات قابلة للاستخدام.
- افحص التهيئة والصلاحيات. اقرأ الرسائل الحديثة في
ExpertsوJournalوالحالة التي توثقها تعليمات المستشار. - راجع الأوامر الحالية. تحقّق ممن يديرها ومن الحماية الموجودة فعلًا لدى الوسيط.
- افحص مسار المراقبة. تأكّد من وقت آخر تقرير ووصول تنبيه اختباري إلى الجهاز المقصود.
خمس دقائق هي صيغة للمراجعة، وليست ضمانًا للتشخيص أو زمن استجابة مناسبًا لكل مستشار. عند الغموض، احتفظ بالأدلة واستخدم دليل أخطاء المستشار. لا توسّع حدود السبريد أو المخاطر، ولا تغيّر Magic Numbers، ولا تفرض دخولًا إلى السوق لجعل المؤشر أخضر.
الاتصال لا يعني وصول أسعار حديثة
تصف IsConnected() اتصال المنصة بالخادم. ولا تؤكد حداثة بيانات كل رمز أو صلاحية التداول أو سلامة منطق الاستراتيجية. افحص أسماء الرموز الدقيقة، بما فيها لواحق الوسيط، والبيانات التي يحتاجها المستشار خارج الرسم الذي يعمل عليه.
تعيد MarketInfo(symbol, MODE_TIME) وقت آخر تحديث سعري وصل للرمز المحدد، وفق مرجع وقت خادم الوسيط. آخر سعر دليل تاريخي، وليس ساعة تتقدم من دون تحديثات جديدة. قد يكون السعر القديم طبيعيًا في عطلة نهاية الأسبوع أو توقف جلسة الرمز أو فترات الهدوء. راجع جدول الوسيط الفعلي قبل اعتبار غياب التحديث عطلًا في تدفق البيانات.
حدّد فحوص عمر السعر لكل رمز وجلسة بعد مراقبة التشغيل الطبيعي. لا توجد مهلة آمنة موحدة لكل أزواج الفوركس أو جميع المستشارين. وثبات Bid وحده لا يكفي؛ فقد تحمل تحديثات متتالية السعر نفسه. سجّل وصول أحداث البيانات حين يكون ذلك متاحًا، لا تغيّر السعر فقط.
استخدم الساعة المناسبة لكل سؤال
| الساعة أو الطابع الزمني | المعنى | حدود المراقبة |
|---|---|---|
TimeCurrent() | آخر وقت معروف للخادم. داخل OnTick() يخص الحركة المعالجة؛ وفي المعالجات الأخرى يخص آخر سعر لأحد الرموز المختارة في Market Watch. | قد يتوقف عن التقدم عند غياب الأسعار، ولا يثبت حداثة الرمز المستهدف للمستشار تحديدًا. |
MODE_TIME | وقت آخر تحديث سعري وصل للرمز المحدد. | استخدم مرجع وقت الخادم الصحيح وسياق الجلسة. |
TimeLocal() | الساعة المحلية للحاسوب. | قد تغيّر المنطقة الزمنية والتوقيت الصيفي وتصحيحات الساعة نتيجة المقارنة. |
| وقت الاستلام لدى جهة جمع مستقلة | وقت وصول تقرير محدد الهوية فعلًا إلى خدمة المراقبة. | يعتمد على جهة الجمع والنقل؛ ولا يثبت اكتمال عملية التداول. |
لا تطرح وقت سعر الوسيط مباشرة من ساعة Windows وتسمّي الناتج عمر السعر قبل إثبات مرجع زمني مشترك. يستطيع المطوّر قياس الفترات بعدّاد مناسب، لكنه يجب أن يعالج إعادة الضبط والتفاف العدّاد عند بلوغ حده. وعلى جهة الجمع الخارجية تقييم غياب التقارير بمنطق مستقل ومختبر للزمن المنقضي، منفصل عن أوقات السوق.
اربط أوقات السجلات بالمصدر والتاريخ والمنطقة الزمنية. وحّد المراجع قبل إعادة بناء الحادثة؛ وجود وقتين متشابهين على الشاشة لا يثبت ترتيب الأحداث. راجع دليل Experts وJournal.
حدّد ما تثبته إشارة النشاط فعلًا
إشارة النشاط، أو heartbeat، تقرير دوري يصدر عن مكوّن معروف الهوية. إشارة VPS تصف الجهاز، وإشارة مستشار المراقبة تصف معالجة أحداثه هو. ولا تثبت أي منهما تلقائيًا أن مستشار تداول آخر قيّم إشارة أو أدار سلة صفقات.
تعمل OnTick() عند وصول تحديث سعري جديد لرمز الرسم المرتبط بالمستشار. قد تغيب الإشارة التي تُرسل منها فقط حين لا تصل تحديثات. وإذا نفّذ المطوّر ذلك، يستطيع البرنامج استخدام EventSetTimer() مع OnTimer() لطلب أحداث دورية. تُوضع هذه الأحداث في طابور؛ وإذا كان حدث Timer ينتظر أو يُعالج بالفعل، لا يُضاف حدث آخر. ليست هذه ساعة خارجية دقيقة ولا ضمانًا لاستمرار تقارير برنامج عالق.
اسأل عن نقطة التحقق التي تُنتج التقرير: دخول معالج الحدث، أو انتهاء فحص البيانات، أو اكتمال دورة الإدارة، أو نجاح الإرسال. من الحقول المفيدة هوية النسخة والإصدار والرقم التسلسلي ووضع التشغيل وحالة البيانات ووقتا الإنشاء والاستلام. يساعد تزايد الرقم التسلسلي على تمييز التقارير الجديدة من المكررة، لكنه لا يثبت تنفيذ صفقة.
مع مستشار مغلق المصدر، استخدم الحالة المدعومة من المورّد والملاحظات الخارجية. إضافة مراقب لا تمنحه معرفة بالصحة الداخلية للاستراتيجية. يحتاج مستشار المراقبة المنفصل إلى رسم خاص به؛ إرفاقه برسم الاستراتيجية يستبدل المستشار الموجود. ينبغي أن يراقب من دون إرسال صفقات أو إدارة أوامر الاستراتيجية.
راقب غياب التقارير من خارج المنصة
لا تستطيع منصة متوقفة إرسال رسالتها الأخيرة عن العطل بصورة موثوقة. يستطيع مراقب مستقل اكتشاف توقف التقارير المتوقعة بشرط استمرار عمله واتصاله ومسار التنبيه. إبقاء المراقب الوحيد على VPS نفسه يعرّضه لعطل الجهاز نفسه.
افصل جمع البيانات عن التدخل. تنبيه غياب تقرير يعني أن الملاحظة فشلت في مكان ما بين المرسل والشبكة وجهة الجمع ومسار التنبيه. ولا يثبت توقف المستشار الأساسي عن التداول، ويجب ألا يفعّل تلقائيًا نسخة احتياطية للتداول. افحص الجهاز والأوامر الحالية قبل إجراء التسليم في الدليل 3.
امنح كل نسخة مقصودة هوية مراقبة مستقلة، واكتشف المرسلين المجهولين أو المكررين. راقب جهة الجمع نفسها واختبر وسيلة اتصال بديلة. أرسل معلومات الحالة الضرورية فقط؛ كلمات المرور وأسرار التفعيل والوصول غير المقيّد إلى الحساب ليست حقولًا لإشارة النشاط.
راقب الصلاحيات دون تفعيلها عشوائيًا
في MT4 المكتبي المعتاد، افحص AutoTrading وصلاحية المستشار نفسه، ووصول الحساب المقصود إلى التداول، وترخيص المورّد. قد يعرض تسجيل الدخول للقراءة فقط معلومات الحساب مع منع التداول. وقد يترك تغيير الصلاحيات المستشار يحسب، لكنه غير قادر على تعديل الأوامر المطلوبة.
تفحص IsTradeAllowed() بلا معاملات صلاحية المستشار الذي استدعاها، وما إذا كان سياق التداول غير مشغول. النتيجة false ليست تشخيصًا كاملًا، وtrue لا تضمن قبول الوسيط للطلب التالي. نتيجة مراقب منفصل لا تثبت الصلاحية الخاصة بمستشار آخر.
نبّه إلى أي تغيير غير متوقع عن الوضع المعتمد. ينبغي تسجيل المنصة المتوقفة عمدًا بوصفها متوقفة مؤقتًا، لا أن «يصلحها» المراقب تلقائيًا. تعطيل الأتمتة لا يغلق المراكز، وقد يوقف مخارج تُدار محليًا. ضع خطة إدارة صريحة لكل توقف مؤقت.
راقب الطلبات الفاشلة والمراكز القائمة
اتبع تسلسل طلب التداول الموثق: الإجراء المقصود، والمحاولة، والنتيجة، ثم المطابقة مع سجلات الوسيط. تهم الطلبات المرفوضة والتعديلات الفاشلة حتى لو لم يظهر مركز جديد. إذا لم يسجّل المورّد المحاولات أو أسباب تجاوز الإشارات، فلا يمكن إعادة بناء هذه المعلومات بصورة موثوقة من قائمة الصفقات وحدها.
الخطأ 128 يعني انتهاء مهلة طلب التداول. بعد ضياع رد أو عدم وضوحه، راجع الصفقات المفتوحة والأوامر المعلقة والسجل ذي الصلة قبل تقرير إعادة المحاولة. غياب التأكيد المحلي لا يثبت الرفض. أدرج الرمز الدقيق والاتجاه والحجم ورقم التذكرة إن عُرف ووقت الطلب؛ ولا تخمّن أي أمر يخص المحاولة.
راجع الانكشاف الحالي والربح أو الخسارة العائمة وقيمة الحساب الحالية، equity، ومستويات Stop Loss وTake Profit المقبولة مع قواعد مسؤولية المستشار الموثقة. الحماية لدى الوسيط تختلف عن وقف افتراضي مخطط أو تعديل trailing لاحق. قد تظل المراكز مفتوحة بعد توقف المستشار، وقد يُفعّل أمر معلّق أثناء غياب المراقبة المحلية. لا يضع هذا الدليل حدًا جديدًا للتراجع أو سياسة تصفية تلقائية.
اختبر التنبيهات حتى وصولها إلى المستلم
- في المنصة المقصودة، افتح
Tools → Options → Notifications، وفعّل إشعارات الدفع، وأدخلMetaQuotes IDالخاص بمنصة الهاتف المقصودة. - استخدم
Test، وتحقّق من نتيجة المنصة ومن الاستلام على الجهاز الفعلي. راجع أذونات الإشعارات ومسار الاستجابة العملي. - اختبر شرط التنبيه الحقيقي للمستشار أو المراقب بصورة منفصلة. اختبار الإعدادات لا يثبت وجود قاعدة لغياب إشارة النشاط أو رفض الطلبات.
- سجّل وقت الاختبار والمرسل والوجهة والنتيجة؛ وكرره بعد ترحيل VPS أو تغيير الجهاز أو إعدادات الإشعارات.
يغطي Notify of trade operations عمليات التداول الناجحة وأحداث الحساب الموثقة، ولا يرسل إشعارات للعمليات الفاشلة. ولذلك ليس نظامًا كاملًا لمراقبة الرفض أو البيانات القديمة أو توقف المنصة.
توثّق MetaQuotes للدالة SendNotification() حدًا قدره 255 حرفًا، وبحد أقصى 2 استدعاء في الثانية و10 في الدقيقة. قد يؤدي تجاوز معدل الإرسال إلى تعطيل الدالة. وهي لا تعمل في Strategy Tester، لذا يجب التحقق من التسليم في بيئة تجريبية مناسبة قيد التشغيل. نجاح الإرسال لا يثبت أن شخصًا رأى الرسالة أو أقرّ بها. اجمع الأعطال المتكررة وأرسل تغيّرات الحالة ذات المعنى بدل التنبيه عند كل تحديث سعري.
اكتب قاعدة تنبيه بسياق وخطوة تالية
| الشرط | السياق المطلوب | الخطوة التالية المفيدة |
|---|---|---|
| لا يوجد تقرير حديث | المرسل والفترة المتوقعة، وحالة جهة الجمع، والصيانة المخططة. | تحقّق من مسار الملاحظة وحالة النسخة الأساسية؛ لا تفعّل الاحتياطية تلقائيًا. |
| سعر قديم لرمز مطلوب | الرمز الدقيق والجلسة ونمط التحديث الطبيعي والمرجع الزمني. | افحص الرموز المطلوبة الأخرى والاتصال وخدمة الوسيط. |
| قيد تداول غير متوقع أو طلب فاشل | الوضع المعتمد والمستشار المستدعي والحساب والرسالة الدقيقة والأوامر الحالية. | افحص الصلاحيات أو سبب الرفض؛ طابق النتيجة غير المؤكدة قبل إعادة الطلب. |
| إدارة غير معروفة مع أوامر مفتوحة | الانكشاف الحالي والحماية المقبولة لدى الوسيط والنسخة المسؤولة. | اتبع خطة الحوادث وحدّد المسؤولية عن الإدارة. |
حدّد مدة استمرار الشرط والفاصل بين التنبيهات والإقرار بالتنبيه وشرط التعافي. ينبغي أن توضّح رسالة التعافي أي ملاحظات استؤنفت؛ إشارة واحدة جديدة لا تثبت تعافي جميع الطبقات. استخدم فترة صيانة صريحة بمسؤول ووقت انتهاء، بدل إسكات إنذار متكرر نهائيًا.
حدّد الخطورة بحسب وضع الحساب الفعلي. قد يختلف أثر مشكلة البيانات نفسها بين حساب بلا انكشاف ومراكز تعتمد على مخارج محلية. تكشف المراقبة هذا السياق، لكنها لا تحدّد فترة انتظار آمنة موحدة.
مثال لغياب إشارة النشاط باستخدام ساعة واحدة
مثال افتراضي: تتوقع جهة جمع تقريرًا محدد الهوية كل 60 ثانية، وتنبّه بعد 180 ثانية بلا تقرير جديد. هذه إعدادات تعليمية وليست حدودًا عامة موصى بها. جميع الأوقات أدناه ملاحظات لدى جهة الجمع بتوقيت UTC؛ ولا يُطرح منها وقت سعر لدى الوسيط.
| وقت جهة الجمع (UTC) | الملاحظة | الاستنتاج المدعوم |
|---|---|---|
| 10:00:00 | استُلمت آخر إشارة نشاط محددة الهوية. | وصل تقرير وأبلغ عن نقطة التحقق التي يعرّفها. |
| 10:01:00 | يستجيب فحص منفصل للجهاز، ولا تصل إشارة جديدة من المستشار. | مسار فحص الجهاز يعمل؛ وتقارير المستشار ما زالت غير مؤكدة. |
| 10:03:00 | لم تصل إشارة جديدة إلى جهة الجمع منذ 180 ثانية. | تحقق شرط المثال، لكن المكوّن المتعطل ما زال غير معروف. |
| 10:03:20 | تُظهر مراجعة مخوّلة أسعارًا محدثة وأمرًا مفتوحًا لدى الوسيط. | شوهدت بيانات السوق والانكشاف؛ وما زالت إدارة المستشار تحتاج تحققًا. |
مرّت هنا 180 ÷ 60 = 3 فترات متوقعة دون استلام جديد. لا يثبت ذلك توقف التداول عند 10:00:00 أو رفض الخادم لطلب أو غياب إدارة الأمر. افحص المستشار والسجلات وحالة الأوامر قبل التدخل. وإذا تعطلت جهة الجمع نفسها، فلا يمكنها الادعاء بأنها راقبت الفترة كاملة بلا انقطاع.
احتفظ بسجل تشغيل مختصر
سجّل وقت آخر مراجعة ناجحة، وحالة بيانات الرموز المطلوبة، وهوية المستشار والمنصة، والمسؤول عن الأوامر المفتوحة، والرسائل غير المحسومة، ونتيجة اختبار التنبيه، والتغييرات المخططة. راجع بعد النشر وإعادة التشغيل والترحيل وتغييرات الإعدادات المعتمدة وصيانة الوسيط، ثم بتواتر يناسب احتياجات الإدارة الفعلية للمستشار.
تفيد المتابعة العامة في تقييم الأداء، لكن تحقّق أولًا من آخر تحديث وتأخر النشر. منحنى رصيد جذاب ليس فحصًا آنيًا لسلامة التشغيل. لا يميّز تقرير هادئ أو رصيد ثابت بين انتظار إشارة وتوقف المنصة. اعتبر تقييم الأداء والإشراف التشغيلي الفوري مهمتين مختلفتين.
راقب البيئة التي تتداول فعلًا
في VPS يعمل بنظام Windows، قد تغطي فحوص الجهاز والعملية وملاحظات المنصة وجهة الجمع المستقلة مسارات عطل مختلفة. راجع ضغط الموارد وسلوك بدء التشغيل باستخدام الدليل 2؛ نجاح الدخول إلى Windows لا يؤكد عمل المستشار.
في الاستضافة الافتراضية المدمجة من MetaTrader، افحص حالة التشغيل البعيدة والمزامنة وسجلات المنصة وExperts المطلوبة من خلال أدوات الاستضافة. الرسم أو إشارة النشاط المحليان لا يعرضان المستشار البعيد. يجب نشر أي إشارة نشاط بعيدة عمدًا، والتحقق من توافقها واختبارها هناك؛ لا يمكن نسخ خدمات Windows وأدوات DLL غير المدعومة إليها مباشرة.
لا يوقف AutoTrading المحلي النسخة المستضافة. عند التدخل، استخدم أدوات الاستضافة وتحقّق من الحالة البعيدة الفعلية. ينبغي أن يحدّد نظام المراقبة هل يراقب جهاز التداول الأساسي أم منصة إعداد محلية أم نسخة احتياطية.
اختبر فجوات المراقبة على حساب تجريبي
استخدم بيئة تجريبية مخوّلة وملفات الحالة الخاصة بها. اختبر إغلاق المنصة بصورة مضبوطة، وانقطاع مسار التقارير، وتوقف جلسة رمز متوقع، وتوقفًا مقصودًا، والعودة إلى التشغيل الطبيعي. ميّز بين تنبيه فعلي ونجاح اختبار التسليم. لا تترك مركزًا حقيقيًا بلا إدارة لاختبار المراقب.
سجّل الإعدادات المختبرة والملاحظات والجوانب التي ما زالت غير مرئية. تقلل المراقبة الناجحة عدم اليقين، لكنها لا تضمن التوافر أو تنفيذ الأوامر أو أداء الاستراتيجية.
أسئلة شائعة عن مراقبة المستشار
هل غياب الصفقات الجديدة يعني أن المستشار معطل؟
لا. افحص الجلسة وقواعد الإشارة والبيانات والصلاحيات وإدارة الأوامر القائمة. قد تنتظر استراتيجية سليمة بصورة صحيحة.
هل تثبت إشارة النشاط سلامة كل الوظائف؟
لا. تثبت فقط إنشاء التقرير الموثق أو استلامه. تعتمد فائدتها على موضع إنشائه والحقول التي تحتوي معلومات حديثة.
هل تكشف إشعارات الدفع المعتادة كل الأعطال؟
لا. إشعارات العمليات الناجحة لا تشمل الفاشلة، والمنصة المتوقفة لا تستطيع الإبلاغ الموثوق عن توقفها الكامل. اختبر القواعد المخصصة ومراقبة غياب التقارير المستقلة كلًا على حدة.
هل يجب أن يشغّل غياب إشارة النشاط VPS احتياطيًا تلقائيًا؟
لا. تأكّد أولًا من حالة تداول النسخة الأساسية وأوامر الوسيط الحالية والمسؤولية عن إدارتها. غياب تقرير وحده لا يجيز أتمتة مكررة.
المراجع الرسمية والنطاق العملي
رُوجعت تفاصيل المنصة في وثائق MetaQuotes الرسمية. صيغة المراجعة وحدود المثال وقواعد الحوادث إرشادات تشغيلية تعليمية، وليست منتج مراقبة مقدّمًا أو نتائج موثوقية مقاسة. تختلف أسماء الواجهة بحسب اللغة؛ تحقّق من أسماء نسختك.
- MQL4: حالة الاتصال وصلاحية تداول المستشار.
- MQL4: أوقات أسعار الرموز وسلوك وقت الخادم وحدود أحداث المؤقّت.
- MetaTrader 4: إعدادات الإشعارات؛ وMQL4: حدود إشعارات الدفع المخصصة.
- MetaTrader 4: حالة الاستضافة البعيدة وسجلاتها.