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

الاختبارات التاريخية والتشغيل المباشر

اختيار وسيط ومصدر بيانات

Section titled “اختيار وسيط ومصدر بيانات”

يوفّر AQE الوصول إلى وسطاء التنفيذ ومزوّدي بيانات السوق عبر UnifiedBroker.

من التركيبات الشائعة:

  • PaperBroker + YahooFinanceDataFeed للاختبارات التاريخية المحلية.
  • PaperBroker + Mt5DataFeed لاستخدام شموع MT5 مع محاكاة تنفيذ الأوامر في الاختبار التاريخي.
  • Mt5Broker + Mt5DataFeed للتنفيذ المباشر عبر MetaTrader 5.
aq-engine/src/core/broker/mod.rs
let execution = PaperBroker::new(AccountType::Paper, 100_000.0, 1);
let data = YahooFinanceDataFeed::new();
let broker = UnifiedBroker::new_backtest(execution, data);

للإعداد الخاص بكل وسيط، راجع الوسطاء ومصادر البيانات.

التشغيل في وضع الاختبار التاريخي

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

تحفظ عمليات التشغيل المُولَّدة ملفات النتائج على القرص ضمن:

  • backtests/<run_id>/backtest.db

يكتب AQE ملف SQLite الذي يتضمن سجلات التداول، والصفقات المكتملة من الفتح إلى الإغلاق، وسجل الحساب، والإشارات التداولية، والشموع. يمكنك فحص هذه النتائج في AlgoQuant Studio عبر Backtest Results، أو باستخدام أي قارئ SQLite.

يستخدم الوضع المباشر بنية الاستراتيجية والتشغيل نفسها، لكنه يشترك في البيانات المباشرة وتحديثات التداول.

يمكنك تشغيل AQE في الوضع المباشر:

  • مع AQS، بتمرير بيانات المصادقة وتمكين المزامنة المباشرة
  • دون AQS، بتشغيل run_live(None)
aq-engine/src/node/codegen.rs
if let Err(e) = state.run_live(auth).await {
eprintln!("Live execution failed: {:?}", e);
std::process::exit(1);
}

عند توفير بيانات المصادقة، يكتب AQE الحالة المباشرة في جداول ضمن نطاق AQS، مثل:

  • insights
  • strategy_accounts
  • strategy_equity_points
  • strategy_live_metrics
  • strategy_events

عند عدم توفير بيانات المصادقة، يظل بإمكان AQE العمل محليًا في الوضع المباشر دون المزامنة مع AQS.

عندما يُبنَى AQE مع ميزتَي runtime وtui وتكون العملية متصلة بطرفية تفاعلية، تفتح عمليات الاختبار التاريخي والتشغيل المباشر واجهة Ratatui تلقائيًا. تعكس واجهة الطرفية المقاييس والإشارات التداولية النشطة ومتغيرات الاستراتيجية ومسارات المتغيرات المراقبة وحالة مزامنة AQS وأحداث التشغيل.

استخدم --no-tui لعرض السجلات في وحدة التحكم النصية:

Terminal window
cargo run --features runtime,tui --release -- --no-tui

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