الورشة التطبيقية

لماذا تختلف نتيجة الروبوت نفسه؟ سجل تشغيل قابل للفحص

قارن شروط اختبارين تاريخيين، واعزل أثر العمولة، وحدد أول حدث مختلف بدل اختيار منحنى الربح الأفضل.

نتيجتان صافيتان 8 و6 USD من ربح سعر 10 USD وعمولتين مختلفتين افتراضيًا.
تكلفة مصطنعة لكل تنفيذ؛ لا تعرفة أو نتيجة سوق.

قد يؤدي تداول العملات وعقود الفروقات بالرافعة المالية إلى خسائر كبيرة بسرعة. المحتوى تعليمي وليس توصية استثمارية شخصية.

في هذا المقال

بعد قراءة المقال ستتمكن من…

  • تقارن تصريحي تشغيل وتحدد المعلومات والأدلة الناقصة.
  • تفصل فرق التكلفة عن إثبات صحة بيئة الاختبار.
  • تحدد أول اختلاف في سلسلة أحداث رغم تطابق الرصيد النهائي.

شرح المصطلحات داخل المقال

الاختبار على البيانات التاريخية عمولة التداول (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. اكتب أرقام المواصفات كسلاسل نصية بأرقام ASCII ونقطة عشرية. الحقول الفارغة أو المفقودة تعني أن القيمة مجهولة. الحد لكل سجل 64 KiB.

صيغة JSON: الحقول والحدود

version: 1. الحقول الأخرى المدعومة: platform, build, codeRevision, inputs, dataSnapshot, symbolSpecification, executionModel, costs, requestedStart, actualStart, end, initialState.

قيم الحقول الرئيسية سلاسل نصية؛ ويمكن أن تكون inputs وcosts وinitialState كائنات أيضاً. الفراغ والحذف يعنيان مجهولاً. تُرفض المفاتيح المكررة والحقول الرئيسية غير الموثقة. الحدود: 8 مستويات و2000 قيمة؛ الأعداد المتداخلة حتى 15 رقماً معنوياً باستثناء الأعداد الصحيحة الكبيرة غير الآمنة. أضف منطقة زمنية صريحة للتاريخ. المقارنة حرفية؛ لا توحّد الأداة الأوصاف أو صيغ التاريخ المختلفة.

مقارنة السجلات لا تعيد تشغيل الاختبار ولا تثبت صحة التصريحات. احتفظ بمعرّفات الملفات والكود والتاريخ الأصلي؛ اختلاف الصياغة قد يظهر فرقاً حرفياً. الأرقام داخل JSON بصيغة ASCII القياسية؛ لا يحوّلها حقل عدد اللوتات.

المثالان في الأداة يستخدمان 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، دون إثبات إشارات أسوأ أو بيانات فاسدة أو انزلاق. ينبغي أن تشير المقارنة إلى تغير حقل التكلفة؛ تفسيره يحتاج مطابقة التقرير وبقية الافتراضات.

صفقة واحدة وافتراضان للتكلفة

مرر أفقيًا لرؤية الرسم كاملًا.

مرّر أفقيا لعرض الرسم كاملا.

صفقة واحدة وافتراضان للتكلفةربح سعر مصطنع 10 USD. تنفيذان، بتكلفة إجمالية 2 USD في A و4 USD في B. الصافي 8 و6 USD. لا تعرفة فعلية أو تنفيذ سوق.صفقة واحدة وافتراضان للتكلفةالاختبار Aربح السعر: +10 USDلكل تنفيذ: 1 USDالتكلفة: 2 × 1 = 2 USDالصافي: +8 USDتغيير مصرح واحدالحقل: costsالأسعار والكمية متطابقةفرق الصافي: 2 USDنموذج، لا تعرفةالاختبار Bربح السعر: +10 USDلكل تنفيذ: 2 USDالتكلفة: 2 × 2 = 4 USDالصافي: +6 USDالافتراضات: عدد الصفقات 1، والتنفيذات 2، ورسوم أخرى = 0
العمولة وحدها تفسر الفرق في هذا النموذج. لا تتحقق الأداة من صدق الشروط المصرح بها.

ماذا إن بدت السجلات متطابقة؟

ابحث عن أول تنفيذ مختلف: وقت الإشارة والرمز وجهة السعر والكمية وسبب الدخول أو الخروج. قد يخفي الرصيد الأخير اختلافًا عند أول قراءة مؤشر. سجل قرارات عدم التداول أيضًا. غيّر شرطًا واحدًا في تشغيل مضبوط واحتفظ بالسابق؛ يصعب عزل السبب إذا غيرت إعدادات متعددة معًا.

افحص الاعتمادات والتهيئة. تميز وثائق المختبر بيئة الوكيل عن الطرفية في المتغيرات العامة وعمليات الملفات. إذا استعمل الكود أعدادًا عشوائية فاحفظ طريقة تهيئة مولدها؛ توثق MQL5 أن البذرة المحددة في MathSrand تعيد التسلسل نفسه. هذا لا يكفي لإثبات تطابق باقي البيئة. لا تنسب كل اختلاف إلى ذاكرة التخزين المؤقت ولا تحذف الأرشيف أولًا؛ احفظ ما يعيد الملاحظة الأصلية.

تطابق التصريحات بداية لتحقيق أعمق. قد يغيب اعتماد أو توصف البيانات خطأ. لا تختَر الأفضل تلقائيًا ولا تعتبر الأسوأ عطل منصة. يساعد سجل الإصدارات والأدلة في التحقق، ويشرح دليل MT4 وMT5 الإعدادات.

لماذا لا يكفي حتى تطابق الرصيد النهائي؟

مثال مستقل ومصطنع، بلا إيداعات أو سحوبات: يبدأ الاختباران من 1000 USD. صافي الحدثين بعد جميع تكاليفهما في A هو +8, −2 USD، وفي B هو +3, +3 USD. نستخدم الحدثين مرجعين تشخيصيين متقابلين في الترتيب، لا ندعي أنهما صفقات سوق حقيقية.

تساوي النهاية لا يمحو أول اختلاف
الموضعرصيد Aرصيد Bفرق الرصيد A ناقص B
البداية100010000 USD
بعد الحدث الأول10081003+5 USD
بعد الحدث الثاني100610060 USD

استعمل أول فرق بعد الحدث الأول لطلب سجل الإشارة والسعر والحجم والتكلفة، لا النتيجة النهائية لاختيار فائز. عوض الحدث الثاني فرق الأول حسابيًا؛ ليس ذلك دليل تطابق القرارات أو تفسير سبب الفرق. الأداة تقارن التصريحات فقط ولا تحلل قوائم الأحداث: هذه خطوة بشرية إضافية تربط التقرير بالأرشيف.

نهاية متساوية ومسار مختلف

نهاية متساوية ومسار مختلفرصيد ابتدائي 1000 USD، وحدثان صافيان مصطنعان بلا تدفقات خارجية.حساب وفق افتراضاتالحدث الأولA 1008; B 1003الحدث الثانيA 1006; B 1006الاستنتاجالنهاية وحدها لا تكفي
نهاية متساوية ومسار مختلف. رصيد ابتدائي 1000 USD، وحدثان صافيان مصطنعان بلا تدفقات خارجية.

تطابق الإجمالي لا يثبت تطابق الإشارات والتنفيذ؛ لا تحلل المقارنة نفسها تسلسل الأحداث.

على الشاشات الصغيرة، مرّر الرسم أفقيا أو كبّره. تجد القيم والخلاصة أيضا في النص أدناه.

الحدث الأول
A 1008; B 1003 – أول فرق +5 USD يحتاج دليلًا.
الحدث الثاني
A 1006; B 1006 – فرق الحدث الثاني يعوض الأول حسابيًا.
الاستنتاج
النهاية وحدها لا تكفي – ارجع إلى أول اختلاف؛ لا تستنتج سببًا من الإلغاء.

ماذا تفعل بعد المقارنة؟

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

اختر اختلافًا واحدًا وافحص أثره في مثال قصير مضبوط. للعمولة، طابق عدد التنفيذات والرسوم؛ لتغير البداية، حدد أول إشارة متاحة. احفظ أيضًا التشغيلات التي لا تؤيد تفسيرك الأول.

إذا تطابقت التصريحات فابحث عن أول حدث مختلف في السجل، وحدد المعلومة اللازمة لإعادة القرار ووسع أرشيفك. عد لتقييم الاستراتيجية بعد تفسير السبب. لا تتنبأ هذه الأداة بالعوائد ولا تصدق على النتائج التاريخية.

اختبر فهمك

الوقت التقديري للتمرين: نحو 2 د.

ربح السعر 10 USD، وعدد التنفيذات 2. العمولة لكل تنفيذ 1 USD في A و2 USD في B. ما فرق الصافي؟

عرض الإجابة والشرح

صحيح. A:10−2=8 USD، وB:10−4=6 USD؛ الفرق 2 USD.

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

هل يشهد تطابق السجلين بإمكان إعادة الاختبار؟
لا؛ تقارن الأداة الوصف المدخل، لا البيئة العاملة كلها. تطابق dataSnapshot لا يثبت تطابق الملفات. احفظ التقارير والكود والإعدادات والبيانات واحسب البصمات منفصلة عند الحاجة. لا تملأ المجهول بافتراض. قد تضيق المقارنة التحقيق لكنها لا تنفي اعتمادًا مهملًا أو تهيئة مختلفة أو تكاليف موصوفة خطأ.
هل أمسح الذاكرة المؤقتة أو أعيد بناء EA أولًا؟
احفظ دليل التشغيلين أولًا. تغيير الملف أو الإعدادات أو التاريخ قبل الأرشفة يصعب إعادة السبب. قارن السجلات وأول تنفيذ مختلف ثم اختبر تغييرًا واحدًا. عند إعادة البناء سجل مراجعة الكود والبناء واحتفظ بالملف السابق. لا تحذف نسخة البيانات الوحيدة اللازمة للتحقيق.
لماذا تختلف actualStart عن requestedStart؟
يحتاج المختبر تاريخًا سابقًا للتهيئة. توثق MT5 أن نقصه قد يزيح البداية. احفظ الحقلين بعد فحص التقرير والسجل والتاريخ المتاح ونموذج الاختبار؛ لا تنسخ تاريخًا واحدًا فيهما تلقائيًا. تشابه المنحنيين لا يعوض فحص بداية الفترة ودليل التحضير.
هل أختار التشغيل ذي الربح الأعلى؟
لا تختَر المعاملات من التقرير الأجمل قبل تسوية الشروط. في مثالنا الزيادة ناتجة فقط عن عمولة أقل لا إشارة أفضل. قد تتغير البيانات والفترة والتنفيذ أيضًا. حدد السبب والشروط المناسبة لسؤالك ثم قيّم الاستراتيجية بالتكاليف والتراجعات وفترة مستقلة عن الاختيار؛ لا يثبت الربح التاريخي ربحًا قادمًا أو صدق المدخلات.

المصادر والتحقق

  1. MetaQuotes: اختبار الاستراتيجيات

    تمييز الاختبار والتحسين والتحقق المنفصل؛ تاريخ البداية وتهيئة البيانات.

  2. MetaQuotes: تحميل التاريخ والتحضير

    قد تتغير البداية الفعلية عند نقص التاريخ التحضيري.

  3. MetaQuotes: خصائص المختبر

    متغيرات الوكيل وملفاته والعزل وسياق النموذج؛ لا شهادة صحة لهذا الروبوت.

  4. MQL5: MathSrand

    بذرة محددة تعيد تسلسل الأعداد شبه العشوائية؛ لا تثبت تطابق كل البيئة.

تُذكر افتراضات الأمثلة الحسابية بوضوح. وهي لا تحل محل بيانات السوق الحالية أو شروط مزوّد الخدمة.

عن المؤلف

ياروسواف فاشينسكي (Jarosław Wasiński)، محرّر محتوى الموقع في بولندا.