أحداث الشريط
غالبًا ما يحتاج مطورو الخوارزميات إلى الإشارة إلى أحداث الشريط من أجل تنفيذ استراتيجيات التداول في الوقت المناسب استجابة للأسعار المحدثة. يوفر API أحداث BarOpened و BarClosed لمنشئي الخوارزميات لضبط cBots بدقة واغتنام الفرص في نقاط مختلفة من دورة الشريط.
ملاحظة
يمكن التعامل مع أحداث الشريط فقط عند برمجة cBots. بدلاً من ذلك، تحتوي المؤشرات على طريقة Calculate() التي يتم استدعاؤها في كل تيك.
في هذا الدليل، نشرح الفرق بين طريقتي OnBar() و OnBarClosed() ونقدم العديد من حالات الاستخدام.
أحداث الشريط في دقيقة واحدة!
- يتم تشغيل طريقة
OnBar()في كل مرة يتم فيها رسم شريط جديد على الرسم البياني الذي تمت إضافة مثيل إليه. يتم استدعاؤها للشريط المشكل حديثًا. - يتم تشغيل معالج حدث
OnBarClosed()أيضًا في كل شريط جديد. ومع ذلك، يتم استدعاؤه للشريط الأخير المغلق (أي السابق للحالي). - بالإشارة إلى حدث الشريط الصحيح، تزيد من دقة تحليلك الفني وتختار التوقيت المناسب لإجراءات الخوارزمية.
- أنواع الرسوم البيانية المدعومة لـ
BarOpenedوBarClosedهي أشرطة الوقت، والشموع اليابانية، والتيك، ورينكو، والنطاق، ومخططات هيكين آشي.
استخدام طريقة OnBar()
يعتمد حدوث حدث BarOpened على جدول الرمز وتكرار الأسعار القادمة. عادةً، يمكن لمستخدمي المنصة ضبط حدوث BarClosed بإعدادات الإطار الزمني للرسم البياني.
ملاحظة
يمكن استدعاء طريقة OnBar() بتكرار يسمح به إعدادات الإطار الزمني للرسم البياني. بمجرد إغلاق الشريط، لن يتم تشغيل OnBar() حتى يصل التيك التالي، والذي يؤدي منطقيًا إلى تشكيل شريط جديد.
يتم استدعاء طريقة OnBar() في نفس الوقت مع كل شريط جديد يتم رسمه على الرسم البياني الذي تم إرفاق الخوارزمية به. نتيجة لذلك، فإن معالج OnBar() هو المكان المثالي لتحديد منطق التداول المخصص الذي يجب أن يكرره cBot الخاص بك بانتظام.
في محرر الكود، يمكنك تحديد معالج OnBar() على النحو التالي:
override void OnBar()
استخدام طريقة OnBarClosed()
يسمح Algo API أيضًا بتنفيذ المنطق للشريط الأخير المغلق، والذي، اعتمادًا على الاستراتيجية التي تريد تنفيذها، قد يكون بديلاً أكثر ملاءمة ودقة للتعامل مع حدث BarOpened. عند فتح الشريط، يظهر الشريط الجديد كـ (شمعة دوجي) ولا يحتوي على بيانات كاملة للتحليل الفني.
حدث BarClosed هو اسم مستعار لحدث BarOpened، مما يعني أنه يحدث فقط في حالة حدوث حدث BarOpened. على سبيل المثال، سيحدث حدث BarClosed للشريط الأخير يوم الجمعة مع أول شريط مفتوح يوم الاثنين، بشرط عدم تداول الرمز خلال عطلة نهاية الأسبوع.
ملاحظة
لن يتم استدعاء طريقة OnBarClosed() حتى يصل تيك لتشكيل الشريط الجديد.
يمكن الإعلان عن معالج حدث OnBarClosed() على النحو التالي:
override void OnBarClosed()
في جسم طريقة OnBarClosed()، يمكنك تحديد الإجراءات المتصلة التي ستنفذها cBots الخاصة بك عند تشغيل حدث BarClosed (على سبيل المثال، تنفيذ أمر، تحديد نمط، رسم مرئيات التحليل الفني، إلخ.).
عند الوصول إليها في معالج الحدث هذا، لا تحتوي مجموعة Bars على الشريط الحي الحالي، بينما تحتوي المجموعات الأخرى (مثل Positions وSymbols وما إلى ذلك) على بيانات فعلية.
تعمل معالجات الأحداث OnBar() وOnBarClosed() كما هو مقصود في الاختبار العكسي والتحسين. يمكن استخدام كلتا الطريقتين على أنواع مختلفة من الرسوم البيانية، بما في ذلك الأشرطة الزمنية، والشموع اليابانية، والتيك، ورينكو، والنطاق، ورسوم هيكين آشي البيانية.
إنشاء أمثلة cBots
يضع المثال التالي لـ cBot أمر سوق عند فتح كل شريط ثالث على الرسم البياني لـ EURCHF.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
نظرًا لأنه تم إطلاق cBot على رسم بياني m1، فإن الفاصل الزمني التقريبي بين أوامر السوق المنفذة هو ثلاث دقائق.

فيما يلي مثال على cBot مع مؤشر Directional Movement System (DMS) المتداخل، والذي يطبع (اتجاه صعودي!) إذا تجاوزت قيمة DI+ (الخط الأخضر) قيمة DI- (الخط الأحمر).

عندما تكون DI- أكبر من DI+، يتم طباعة (اتجاه هبوطي!) في حدث BarClosed.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
الملخص
يسمح تنوع أحداث الشريط الموجودة في واجهة برمجة تطبيقات Algo لمطوري الخوارزميات باختيار التوقيت الدقيق للطرق المستدعاة. يمكن استدعاء طريقة OnBar() بتردد مختلف اعتمادًا على جدول الرمز وإعدادات الإطار الزمني للرسم البياني، مما يضيف أيضًا إلى وظائف cBots. طريقة OnBarClosed() هي اختصار مناسب لـ OnBar() للعمل مع المؤشرات.