تخطَّ إلى المحتوى

دورة حياة الاستراتيجية

تتمحور بنية AQE حول دورة حياة الاستراتيجية:

  • on_start
  • universe
  • init
  • on_bar
  • generate_insights
  • insight_pipeline
  • on_teardown
aq-engine/src/core/strategy/traits.rs
pub trait Strategy {
fn name(&self) -> &str {
"Base Strategy"
}
fn on_start(&mut self, ctx: &mut dyn StrategyContext);
fn init(&mut self, ctx: &mut dyn StrategyContext, asset: &Asset);
fn universe(&self, ctx: &mut dyn StrategyContext) -> HashSet<String>;
fn on_bar(&mut self, ctx: &mut dyn StrategyContext, symbol: &str, bar: &BarData);
fn generate_insights(&mut self, ctx: &mut dyn StrategyContext, symbol: &str);
fn insight_pipeline(&mut self, ctx: &mut dyn StrategyContext, insight: &Insight);
fn on_teardown(&mut self, ctx: &mut dyn StrategyContext);
}

استخدم on_start لتسجيل إعدادات التشغيل المشتركة:

  • المؤشرات
  • نماذج ألفا
  • مراحل المعالجة
  • إعدادات المخاطر
  • شموع التهيئة

تعيد universe() رموز الأدوات التي تتداولها الاستراتيجية. يستخدم AQE هذه الرموز لتحميل البيانات الوصفية لـAsset من منظومة البيانات والوسيط المختارة.

تُشغَّل init() مرة واحدة لكل أصل بعد تحميل نطاق الأصول. استخدمها لتهيئة المتغيرات وحالة المؤشرات الخاصة بكل رمز، أو لإجراء إعدادات تراعي خصائص الأصل.

تُستدعى on_bar() كلما وصلت شمعة جديدة لرمز ما. هنا تحدّث الحالة على مستوى الاستراتيجية باستخدام أحدث بيانات السوق.

بعد on_bar()، يستدعي AQE الدالة generate_insights(). هنا تنشئ إشارات تداولية جديدة وتضيفها إلى بيئة التشغيل.

بعد معالجة الشموع، يشغّل AQE مسار معالجة الإشارات التداولية. ويمكن لمراحله تحديد حجم الإشارات التداولية أو التحقق منها أو إرسالها أو رفضها أو إلغاؤها أو إغلاقها استنادًا إلى حالتها الحالية.

استخدم on_teardown() للتنظيف النهائي وإعداد الملخصات.

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