في هذا المقال
بعد قراءة المقال ستتمكن من…
- إعداد CSV بطوابع ذات إزاحة صريحة وحساب المواضع المتوقعة.
- تمييز الفراغ والتكرار وتعارض OHLC وحفظ سجل التحقيق.
- كشف تكرار اللحظة نفسها عبر إزاحات مختلفة دون عد الصفوف كشموع مستقلة.
شرح المصطلحات داخل المقال
الاختبار على البيانات التاريخية سعرا البيع والشراء (Bid/Ask) المستشار الخبير EAالشمعة المفقودة لا تخبرك وحدها هل فشل المزود أم كانت الجلسة مغلقة. قارن التصدير بنافذة معلنة وقواعد بناء الشموع لدى المصدر أولاً. يساعد الفاحص المحلي هنا على كشف فراغات شبكة وقت ثابتة وتكرار الطوابع وتعارض الأسعار والصفوف غير الصالحة؛ لا يخترع أسعاراً أو يقرر إصلاحاً مناسباً تلقائياً. استخدم التقرير قبل اختبار استراتيجية على بيانات تاريخية.
ماذا تحدد قبل عد الشموع الناقصة؟
سجل الأداة والمزود وأساس السعر والإطار الزمني. شموع Bid و Ask ومتوسطهما سلاسل مختلفة؛EUR/USD وحدها تسمية غير كافية. قارن أوقات افتتاح متناظرة. إذا كان ملف موسوماً بالإغلاق وآخر بالافتتاح، فقد يبدوان منزاحين رغم سلامة الأسعار. سجل إعدادات المحاذاة والتنعيم إن كانت مؤثرة، ولا تضف Z إلى وقت خادم محلي على أنه تحويل.
الرأس المقبول حرفياً هو timestamp,open,high,low,close. بعده خمسة حقول فقط لكل صف تفصلها فاصلة ASCII. الأسعار بأرقام ASCII ونقطة عشرية دون فاصل آلاف. الحقول المحاطة باقتباس والأعمدة الإضافية والفاصل المنقوط تحتاج تحويل نسخة أولاً؛ يرفض الفاحص التنسيقات غير المدعومة بدلاً من تخمين معناها. احتفظ بالأصل وسجل التحويل، ولا تحول أرقام CSV تلقائياً كما لو كانت أرقام واجهة يدوية.
اكتب وقتاً كاملاً، مثل 2026-10-12T08:00:00Z أو 2026-10-12T10:00:00+02:00، فهما اللحظة نفسها. الثواني لازمة، ويدعم الفاحص حتى ثلاثة أرقام لكسر الثانية. الوقت بلا إزاحة لا يحدد منطقة الخادم؛ إضافة Z تغير معنى الرقم المحلي ولا تحوله. تشرح معلمات محاذاة شموع OANDA اختيار منطقة المحاذاة مع بقاء وقت الاستجابة ممثلاً في UTC؛ هذه قواعد ذلك API لا قاعدة كل مزود.
حدد أول وآخر افتتاح متوقعين منفصلين، وكلا الحدين مشمول. من 08:00 إلى 08:11 بفاصل دقيقة توجد 12 لحظة. تثبت الشبكة عند الأول ويجب أن يقع الأخير عليها بالضبط. نموذج الفاحص لفواصل زمنية متساوية المنقضي، لا لشهر تقويمي أو ليوم محلي يتغير طوله مع التوقيت الصيفي. ولا يستبعد العطل تلقائياً؛ افحص جلسات معلنة منفصلة عند الحاجة.
تشغيل الفاحص وإعادة المثال
اختر الملف وفاصلاً صحيحاً بين 1 و 1440 دقيقة وأدخل حدّي النافذة. التحليل داخل المتصفح دون إرسال محتوى الملف أو حفظه تخزيناً دائماً في هذه الأداة. الحد 2 MiB و 100000 صف بيانات و 100000 موضع متوقع؛ قسّم الفترة الأطول إلى نوافذ موثقة غير متداخلة. يقبل حقل الفاصل اليدوي الأرقام العربية والهندية وفق واجهة الأعداد، لكن CSV وأوقاته تبقى ASCII بصيغتها المعلنة.
حد السعر 15 رقماً ذا دلالة و 48 محرفاً للحقل؛ ترفض السجلات الأدق حتى لا يخفي التقريب تعارضاً. يظهر التقرير الأعداد الكلية مع عشرين مثالاً كحد أقصى لكل فئة، لا كل صف متضرر. إذا عطلت JavaScript تبقى إرشادات المقال وأمثلته؛ الحساب يحتاج مكونات الأداة المفعلة.
فحص تغطية شبكة الأوقات في CSV
يحلل هذا الفاحص الملف محليًا دون إرساله أو حفظه دائمًا. الحد 2 MiB. الصيغة: timestamp,open,high,low,close. تتطلب الأوقات Z أو إزاحة UTC صريحة.
ملف CSV وأوقات UTC فيه تستخدم الأرقام ASCII 0–9 والنقطة . والفاصلة , فقط؛ لا نحول أرقام الملف أو رموزه تلقائيًا. الفاصل المدخل يدويًا يقبل الأرقام العربية والهندية، دون فواصل آلاف. الشبكة شاملة لأول وآخر وقت افتتاح؛ أدخل نطاق جلسة متصلة أو افحص الجلسات منفصلة، فالفاحص لا يستبعد العطلات تلقائيًا.
تصدير افتراضي: اثنا عشر صفاً لا تثبت الاكتمال
ملفا التدريب مؤلفان وليسا تسعير وسيط أو بيانات عميل. اختر M1 من 2026-10-12T08:00:00Z إلى 2026-10-12T08:11:00Z. يحتوي الملف السليم 12 وقتاً مختلفاً بلا موضع خالٍ، بينما يحتوي ملف التشخيص 12 صفاً لكن ثمانية مواضع صحيحة مختلفة على الشبكة فقط.
| النتيجة في ملف التشخيص | المعنى |
|---|---|
| 4 مواضع خالية | لا شمعة صالحة عند 08:03 أو 08:04 أو 08:10 أو 08:11. |
| 2 صفان متكرران | يتكرر طابع 08:02 وطابع 08:06. |
| 1 مجموعة تعارض سعر | شمعتان صحيحتان بنيوياً عند 08:06 بقِيَم OHLC مختلفة. |
| 1 صف غير صالح | أعلى 08:04 أقل من افتتاحها. |
| 1 خارج الشبكة و 1 رجوع في الوقت | 08:07:30 ليس افتتاح M1؛ ويظهر 08:08 بعد 08:09 في ترتيب الملف. |
أطول فجوتين تحتوي كل منهما افتتاحين متوقعين. يعيد التعادل أولاهما:08:03–08:04. هذا ليس قياس مدة انقطاع المزود؛ حالة السوق والتحميل في الفترة تحتاج تفسيراً خارج الملف.
ثمانية مواضع مشغولة وتعارض لم يُحل
مرّر أفقيا لعرض الرسم كاملا.
الخلاصة: الموضع 08:06 محسوب مرة في التغطية رغم وجود خلاف سعر يحتاج إلى حل. اثنا عشر صفاً أخفت أربعة مواضع خالية؛ عدد الصفوف لا يكفي، وحتى صفر مواضع خالية لا يصدق صلاحية الأسعار.
ما يحتاج إلى تحقيق لا إصلاح آلي؟
التغطية تعد الطوابع الصحيحة المختلفة، لا الصفوف. التكرار المتطابق لا يزيدها. وإذا كانت شمعتان مختلفتان صحيحتين بنيوياً في الوقت نفسه، يحتسب الموضع مرة وتظهر مجموعة تعارض. طابق السعر مع مصدره مع الاحتفاظ بالنسختين؛ لا يختار الفاحص الأعلى أو الأحدث أو ما يحسن نتيجة الاستراتيجية.
الصف غير الصالح لا يضيف تغطية. يفحص البرنامج أسعاراً محدودة رقمياً، وألا يقل High عن Open أو Close أو Low، وألا يزيد Low على بقية الأسعار. الصف خارج النافذة أو خارج الشبكة لا يزيد تغطيتها. رتب السجلات لفحص التسلسل إن احتجت، لكن الفرز لا يحل تعارض OHLC.
قارن فجوة نهاية الأسبوع بتقويم جلسات المنتج الفعلي. افحص فجوة داخل جلسة معلنة مع سجل التنزيل والمصدر. تعريف OANDA لحقلcompleteهو أن نهاية فترة الشمعة ليست في المستقبل؛ ليس شهادة أن التصدير كله كامل أو أن كل سعر صحيح. لا تملأ الفراغ بآخر سعر لمجرد تنعيم الرسم، فهذا ينشئ شموعاً تركيبية قد تغير المؤشرات وترتيب الوقف. احفظ الأصل وسجل كل تغيير وسببه ومصدره.
إضافة: اختلاف شكل الوقت قد يخفي تكرار اللحظة نفسها
نموذج جديد مؤلف بأربعة صفوف M1، لا أسعار حقيقية ولا تقويم مدينة مفترض. أول سطرين بإزاحتي+03:00 و+04:00 يمثلان اللحظة 08:00 UTC نفسها، وليس شمعتين. الأسعار متطابقة وصحيحة بنيوياً. افحص النافذة 08:00–08:03 UTC، مع شمول الحدين:
timestamp,open,high,low,close
2026-10-12T11:00:00+03:00,1.1000,1.1010,1.0990,1.1005
2026-10-12T12:00:00+04:00,1.1000,1.1010,1.0990,1.1005
2026-10-12T08:01:00Z,1.1000,1.1010,1.0990,1.1005
2026-10-12T08:03:00Z,1.1000,1.1010,1.0990,1.1005حوّل الإزاحات حسابياً إلى لحظات قبل المقارنة، واحتفظ بالأصل وسبب كل معالجة.
على الشاشات الصغيرة، مرّر الرسم أفقيا أو كبّره. تجد القيم والخلاصة أيضا في النص أدناه.
- زمنان مكتوبان للحظة واحدة
- 11:00 +03:00 = 12:00 +04:00 = 08:00 UTC – الأسعار متطابقة؛ الموضع يحسب مرة والتكرار يظهر منفصلاً.
- نافذة شاملة من 08:00 إلى 08:03
- 4 متوقعة / 3 مشغولة / 1 مفقودة – الفاصل دقيقة؛ الموضع الخالي 08:02 UTC.
- دلالة التقرير
- 4 صفوف / 1 تكرار / 0 تعارض – لا يثبت عدد الصفوف اكتمال الزمن أو أصالة الأسعار.
النتيجة المتحققة بهذه الدالة:4 صفوف و 4 مواضع متوقعة، لكن 3 مواضع صحيحة مختلفة، وتكرار 1 وفجوة 1 عند 08:02 UTC وبلا تعارض سعر. المقارنة النصية لوقت 11:00 و 12:00 قد تخطئ فتعدهما مختلفين. وبعد تحويل الإزاحات حسابياً، لا تحذفهما من الأصل بلا سجل؛ فحص تكرار اللحظة لا يفسر سبب تكرار التصدير. ولو اختلفت الأسعار الصحيحة لاحتجت أيضاً فحص تعارض، لا اختيار نسخة من تلقاء نفسك.
لا تستنتج أن النقص عطل فني أو أن إصلاحه سيزيد الربح. نموذج المساواة الزمنية لا يتحقق من دقة ساعة المصدر أو صلاحية السعر أو كفاية تاريخ النبضات. احفظ إعداد النافذة والفاصل والنسخة المستخدمة مع التقرير كي يعيد شخص آخر الفحص نفسه.
هل اكتمال OHLC يثبت استخدام نبضات مسجلة في MT5؟
لا؛ الشموع لا تصف المسار الداخلي كله. توثق MetaQuotes توليد نبضات من بيانات الدقيقة عند وجود شمعة دقيقة وغياب نبضاتها في سياق الاختبار الموصوف. لذلك لا يثبت اكتمال CSV من M1 أن كل ملاحظة في الاختبار سجل تاريخي فعلي. افحص نمط الاختبار وسجل التشغيل وفترة النبضات المتاحة؛ ولا تساوِ أربع نقاط OHLC بمسار كل عرض وطلب.
قارن أيضاً تاريخ البداية المطلوب بالفعلي؛ تشرح وثائق تجهيز التاريخ تأخر البداية عند عدم كفاية التاريخ. وعند التصدير عبر CopyRates قارن العدد المطلوب بالمرجع وعدد العناصر المعادة، فقد يستمر التنزيل بعد عودة الاستدعاء. كون البيانات أعيدت لا يعني اكتمال كل الطلب.
ماذا تفعل بالتقرير؟
- احفظ الأصل وإعدادات الفاحص والتقرير، مع الأداة وأساس السعر والمنطقة أو الإزاحة ومصدر الجلسة.
- حقق في أطول فجوة وكل مجموعة تعارض، وطابق سجل التنزيل والمصدر. وثق الجلسة المغلقة فعلاً أو اطلب تصديراً مصححاً إذا ثبت النقص.
- أعد النافذة نفسها واحتفظ بالتقرير السابق وسجل التغيير، لا بالنسخة المحسنة وحدها.
- شغل اختباراً بصرياً قصيراً للفترة المقبولة، وافحص الإشارات قرب الفجوات والسبريد وترتيب التنفيذ؛ لا تنتقل تلقائياً إلى تداول حي.
تابع إعداد اختبار MT4 و MT5، ثم منهج تحقق الاستراتيجية، أو فحص البيانات والإشارات في Python عند بناء محرك منفصل. تقرير التغطية ليس توقعاً للعائد أو شهادة استراتيجية قابلة للتنفيذ.
اختبر فهمك
الوقت التقديري للتمرين: نحو 2 د.
عرض الإجابة والشرح
12 موضعاً متوقعاً ناقص 8 مشغولة يساوي 4 خالية. التكرار والصفوف خارج الشبكة لا يضيفان تغطية.
الأسئلة الشائعة
هل عدد الصفوف المطابق يثبت اكتمال CSV؟
هل تعني complete في OANDA أن كل الملف سليم؟
هل أضع آخر سعر في الفجوة؟
هل يسمح CSV بالأرقام العربية وفاصل منقوط؟
هل يكفي M1 كامل لاختبار نبضات فعلية؟
المصادر والتحقق
- www.metatrader5.com
مرجع للمحتوى؛ راجع نطاق التطبيق والافتراضات داخل المقال.
- www.metatrader5.com
مرجع للمحتوى؛ راجع نطاق التطبيق والافتراضات داخل المقال.
- www.mql5.com
مرجع للمحتوى؛ راجع نطاق التطبيق والافتراضات داخل المقال.
- developer.oanda.com
مرجع للمحتوى؛ راجع نطاق التطبيق والافتراضات داخل المقال.
- developer.oanda.com
مرجع للمحتوى؛ راجع نطاق التطبيق والافتراضات داخل المقال.
تُذكر افتراضات الأمثلة الحسابية بوضوح. وهي لا تحل محل بيانات السوق الحالية أو شروط مزوّد الخدمة.
