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

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

يمتلك AQE كائن StrategyState ويشغّل الاستراتيجية بترتيب يمكن توقعه:

  1. on_start(ctx) لبدء التشغيل مرة واحدة.
  2. universe(ctx) لاختيار الرموز من قائمة ثابتة أو بمنطق مكتوب مباشرةً في الاستراتيجية.
  3. نماذج نطاق الأصول المسجّلة لاختيار الرموز بوحدات مستقلة.
  4. تحميل البيانات الوصفية للأصول في نطاق الأصول النهائي المدمج.
  5. init(ctx, asset) مرة واحدة لكل أصل قابل للتداول.
  6. تحديثات السجل والمؤشرات ونماذج ألفا ودوال استدعاء الاستراتيجية ومراحل معالجة الإشارات التداولية لكل شمعة.
  7. on_teardown(ctx) للتنظيف عند الإيقاف.

تُنفَّذ كتل منطق دورة الحياة حول دوال الاستراتيجية المُولَّدة أو المكتوبة مباشرةً. وتضيف نماذج نطاق الأصول رموزها إلى النطاق النهائي.

المسار الحالي للاختبار التاريخي

Section titled “المسار الحالي للاختبار التاريخي”

يتبع مسار تشغيل الاختبار التاريخي التنفيذ الموجود في StrategyState::run_backtest:

aq-engine/src/core/strategy/mod.rs
// 1. strategy.on_start(ctx)
// 2. load_universe() -> strategy.universe() -> broker.get_ticker_info()
// 3. alpha.start() per alpha
// 4. load_init() -> OnInit lifecycle logic -> strategy.init per asset
// 5. alpha.init(asset) per alpha per asset
// 6. broker.load_backtest_data()
// 7. loop: broker step -> on_bar() -> optional insight generation -> run_insight_pipeline()
// 8. strategy.on_teardown(ctx)
// 9. return BacktestResults

تتبع مشاريع AQS المُولَّدة ترتيب التشغيل نفسه. والفرق هو أن AQS يولّد أجزاءً من جسم الاستراتيجية من الرسم البياني للعقد قبل أن ينفّذ AQE الاستراتيجية.