في هذا المقال
بعد قراءة المقال ستتمكن من…
- تقارن تصريحي تشغيل وتحدد المعلومات والأدلة الناقصة.
- تفصل فرق التكلفة عن إثبات صحة بيئة الاختبار.
- تحدد أول اختلاف في سلسلة أحداث رغم تطابق الرصيد النهائي.
شرح المصطلحات داخل المقال
الاختبار على البيانات التاريخية عمولة التداول (Commission) المستشار الخبير EAقد تختلف نتيجة تشغيلين للروبوت نفسه رغم تطابق المعاملات الظاهرة. قبل تعديل الاستراتيجية، تحقق من تطابق الكود والبيانات ومواصفات الرمز ونموذج التنفيذ أيضًا. يوثق سجل التشغيل هذه الشروط؛ وتقارن الأداة أدناه تصريحين، ثم يعزل مثال محسوب أثر تغيير العمولة. حتى السجلان المتطابقان لا يثبتان بيئتين متطابقتين: احتفظ بالتقارير وسجلات التنفيذ التي تسند كل تصريح.
ما الذي تحفظه قبل إعادة الاختبار؟
احتفظ بالتقريرين وقائمتي التنفيذ وسجلي التشغيل ومجموعتي المعاملات. سمِّ التشغيلين منفصلين، بما في ذلك النتيجة الأقل جاذبية. لا تثبت لقطة منحنى حقوق الحساب سعر أول تنفيذ أو عدد التنفيذات الجزئية أو البداية الفعلية. تحتاج مسارًا من شروط التشغيل إلى العمليات ثم النتيجة النهائية.
ميز الاختبار الواحد عن البحث عن معاملات وعن تقييم على فترة لاحقة؛ توضح وثائق مختبر الاستراتيجيات هذه الأوضاع.
- قد يعني «الروبوت نفسه» اسم الملف نفسه مع بناء مختلف أو اعتماد برمجي مختلف. احفظ بناء الطرفية والبرنامج والمكتبات ذات الصلة؛ الاسم لا يحدد المحتوى.
- قارن البداية المطلوبة بالبداية الفعلية. تشرح MetaQuotes أن نقص التاريخ اللازم للتهيئة قد يزحزح بداية الاختبار.
شهر كامل وفترة مختصرة تقييمان مختلفان. تفحص أداة تغطية CSV الملف المصدر نفسه، بينما يفحص هذا المقال مجموعة أوسع من شروط التشغيل.
كيف تجهز سجلين بالتنسيق نفسه؟
ألصق كائني JSON بأسماء الحقول الثلاثة عشر كما هي. لا تترجم المفاتيح أو تضف حقولًا عليا. version هو العدد 1 ويحدد تنسيق السجل، لا إصدار المستشار الآلي EA. بقية القيم نصوص؛ ويمكن أيضًا أن تكون inputs وcosts وinitialState كائنات بسيطة تصف الإعدادات.
| أسماء الحقول | المحتوى المطلوب |
|---|---|
version, platform, build, codeRevision | التنسيق والمنصة والبناء وتعريف الكود واعتماداته. |
inputs, dataSnapshot | المعاملات وإصدار مجموعة البيانات المحفوظة. |
symbolSpecification, executionModel, costs | مواصفات العقد وقواعد المحاكاة وجميع التكاليف المفترضة. |
requestedStart, actualStart, end | البداية المطلوبة والفعلية والنهاية. |
initialState | الرصيد والمراكز وشروط التهيئة ذات الصلة. |
في dataSnapshot أدخل معرف أرشيف أو بصمة حسبتها على حدة. عبارة data-v1 تصريح لا فحص لملف: الصفحة لا تقرأ الأرشيف. وكذلك تسمية codeRevision بصمة لا تتحقق منها تلقائيًا. تكفي معرفات تقنية؛ لا تدخل كلمات مرور أو رموز وصول أو بيانات شخصية.
استخدم تواريخ ذات منطقة زمنية صريحة، ويفضل تمثيل UTC متسقًا. المقارنة بين النصوص المدخلة وليست تقويم المزود. قد تحتاج إلى توحيد وصفين للحظة نفسها يدويًا؛ إضافة Z إلى ساعة الخادم لا تحولها إلى UTC. حدد المعلومة المجهولة لتستكملها بدل اختلاق معرف يبدو موثوقًا. هذا مهم سواء عرضت تقويمك بالرياض أو دبي أو أي مدينة أخرى؛ احتفظ بتوقيت الخادم الأصلي وطريقة التحويل.
ما الذي تتحقق منه المقارنة فعلًا؟
تعرض الأداة سجلين مصطنعين قابلين للتعديل وتقارن الحقول. الحساب محلي في المتصفح دون إرسال المدخلات أو استيراد ملفات أو حفظ دائم. راجع الفروق والحقول المجهولة؛ لا تُشغل الأداة MT5 ولا تقرأ حسابًا، ولا تثبت تطابق التصريحات مع الاختبارين الحقيقيين. تساوي الكائنات يعني تساوي المدخلات، لا تطابق ظروف السوق أو اكتمال وصف البيئة.
قارن سجلَي اختبار تاريخي
المثالان في الأداة يستخدمان version: 1، ومنصة وبناء وكودًا وبيانات ومواصفات EURUSD افتراضية، وفترة 14. البداية المطلوبة والفعلية 2026-10-01T00:00:00Z والنهاية 2026-10-12T00:00:00Z، وإيداع 1000 USD دون مراكز. عدد التنفيذات 2 والتمويل والرسوم الأخرى صفر؛ العمولة لكل تنفيذ 1 USD في A و2 USD في B. هذه تواريخ ومعرفات وعقود تعليمية وليست اختبارًا نفذناه.
أدخل أرقام المواصفات كنصوص بفاصل عشري نقطي. القيم الفارغة أو الناقصة مجهولة. حد كل سجل 64 KiB؛ ترفض المفاتيح المكررة والحقول العليا غير الموثقة. الحد 8 مستويات و2,000 قيمة؛ الأعداد المتداخلة حتى 15 رقمًا معنويًا مع استبعاد الأعداد الصحيحة الكبيرة غير الآمنة. المقارنة حرفية، فلا توفق تلقائيًا بين صيغ تواريخ مختلفة. مفاتيح JSON والمعرفات ثابتة باتجاه LTR؛ لا تحولها إلى أسماء عربية أو تطبعها بصورة تغير معناها.
مثال مصطنع: الصفقة نفسها وعمولة مختلفة
نفترض عقدًا خطيًا وحساب USD وصفقة مغلقة بتنفيذين. ربح السعر 10 USD. تتطابق الأسعار والكمية والفترة؛ التمويل والرسوم الأخرى صفر. العمولة في costs هي 1 USD لكل تنفيذ في A و2 USD في B. ليست هذه تعرفة وسيط.
نتيجة A هي 10 − 2 × 1 = 8 USD، وB هي 10 − 2 × 2 = 6 USD. تفسر التكلفة فرق 2 USD، دون إثبات إشارات أسوأ أو بيانات فاسدة أو انزلاق. ينبغي أن تشير المقارنة إلى تغير حقل التكلفة؛ تفسيره يحتاج مطابقة التقرير وبقية الافتراضات.
صفقة واحدة وافتراضان للتكلفة
مرر أفقيًا لرؤية الرسم كاملًا.
مرّر أفقيا لعرض الرسم كاملا.
ماذا إن بدت السجلات متطابقة؟
ابحث عن أول تنفيذ مختلف: وقت الإشارة والرمز وجهة السعر والكمية وسبب الدخول أو الخروج. قد يخفي الرصيد الأخير اختلافًا عند أول قراءة مؤشر. سجل قرارات عدم التداول أيضًا. غيّر شرطًا واحدًا في تشغيل مضبوط واحتفظ بالسابق؛ يصعب عزل السبب إذا غيرت إعدادات متعددة معًا.
افحص الاعتمادات والتهيئة. تميز وثائق المختبر بيئة الوكيل عن الطرفية في المتغيرات العامة وعمليات الملفات. إذا استعمل الكود أعدادًا عشوائية فاحفظ طريقة تهيئة مولدها؛ توثق MQL5 أن البذرة المحددة في MathSrand تعيد التسلسل نفسه. هذا لا يكفي لإثبات تطابق باقي البيئة. لا تنسب كل اختلاف إلى ذاكرة التخزين المؤقت ولا تحذف الأرشيف أولًا؛ احفظ ما يعيد الملاحظة الأصلية.
تطابق التصريحات بداية لتحقيق أعمق. قد يغيب اعتماد أو توصف البيانات خطأ. لا تختَر الأفضل تلقائيًا ولا تعتبر الأسوأ عطل منصة. يساعد سجل الإصدارات والأدلة في التحقق، ويشرح دليل MT4 وMT5 الإعدادات.
لماذا لا يكفي حتى تطابق الرصيد النهائي؟
مثال مستقل ومصطنع، بلا إيداعات أو سحوبات: يبدأ الاختباران من 1000 USD. صافي الحدثين بعد جميع تكاليفهما في A هو +8, −2 USD، وفي B هو +3, +3 USD. نستخدم الحدثين مرجعين تشخيصيين متقابلين في الترتيب، لا ندعي أنهما صفقات سوق حقيقية.
| الموضع | رصيد A | رصيد B | فرق الرصيد A ناقص B |
|---|---|---|---|
| البداية | 1000 | 1000 | 0 USD |
| بعد الحدث الأول | 1008 | 1003 | +5 USD |
| بعد الحدث الثاني | 1006 | 1006 | 0 USD |
استعمل أول فرق بعد الحدث الأول لطلب سجل الإشارة والسعر والحجم والتكلفة، لا النتيجة النهائية لاختيار فائز. عوض الحدث الثاني فرق الأول حسابيًا؛ ليس ذلك دليل تطابق القرارات أو تفسير سبب الفرق. الأداة تقارن التصريحات فقط ولا تحلل قوائم الأحداث: هذه خطوة بشرية إضافية تربط التقرير بالأرشيف.
نهاية متساوية ومسار مختلف
تطابق الإجمالي لا يثبت تطابق الإشارات والتنفيذ؛ لا تحلل المقارنة نفسها تسلسل الأحداث.
على الشاشات الصغيرة، مرّر الرسم أفقيا أو كبّره. تجد القيم والخلاصة أيضا في النص أدناه.
- الحدث الأول
- A 1008; B 1003 – أول فرق +5 USD يحتاج دليلًا.
- الحدث الثاني
- A 1006; B 1006 – فرق الحدث الثاني يعوض الأول حسابيًا.
- الاستنتاج
- النهاية وحدها لا تكفي – ارجع إلى أول اختلاف؛ لا تستنتج سببًا من الإلغاء.
ماذا تفعل بعد المقارنة؟
احفظ التقريرين منفصلين وأكمل الحقول الثلاثة عشر. اربط كل معرف بأرشيف الكود والبيانات والإعدادات الصحيح. إذا غاب التوثيق فسجل المجهول بدل اختلاق إصدار يملأ النموذج.
اختر اختلافًا واحدًا وافحص أثره في مثال قصير مضبوط. للعمولة، طابق عدد التنفيذات والرسوم؛ لتغير البداية، حدد أول إشارة متاحة. احفظ أيضًا التشغيلات التي لا تؤيد تفسيرك الأول.
إذا تطابقت التصريحات فابحث عن أول حدث مختلف في السجل، وحدد المعلومة اللازمة لإعادة القرار ووسع أرشيفك. عد لتقييم الاستراتيجية بعد تفسير السبب. لا تتنبأ هذه الأداة بالعوائد ولا تصدق على النتائج التاريخية.
اختبر فهمك
الوقت التقديري للتمرين: نحو 2 د.
عرض الإجابة والشرح
صحيح. A:10−2=8 USD، وB:10−4=6 USD؛ الفرق 2 USD.
الأسئلة الشائعة
هل يشهد تطابق السجلين بإمكان إعادة الاختبار؟
هل أمسح الذاكرة المؤقتة أو أعيد بناء EA أولًا؟
لماذا تختلف actualStart عن requestedStart؟
هل أختار التشغيل ذي الربح الأعلى؟
المصادر والتحقق
- MetaQuotes: اختبار الاستراتيجيات
تمييز الاختبار والتحسين والتحقق المنفصل؛ تاريخ البداية وتهيئة البيانات.
- MetaQuotes: تحميل التاريخ والتحضير
قد تتغير البداية الفعلية عند نقص التاريخ التحضيري.
- MetaQuotes: خصائص المختبر
متغيرات الوكيل وملفاته والعزل وسياق النموذج؛ لا شهادة صحة لهذا الروبوت.
- MQL5: MathSrand
بذرة محددة تعيد تسلسل الأعداد شبه العشوائية؛ لا تثبت تطابق كل البيئة.
تُذكر افتراضات الأمثلة الحسابية بوضوح. وهي لا تحل محل بيانات السوق الحالية أو شروط مزوّد الخدمة.
