Backtests y ejecuciones en vivo
Seleccionar un bróker y una fuente de datos
Sección titulada «Seleccionar un bróker y una fuente de datos»AQE expone los brókeres de ejecución y los proveedores de datos de mercado mediante UnifiedBroker.
Estas son algunas combinaciones habituales:
PaperBroker+YahooFinanceDataFeedpara backtests históricos locales.PaperBroker+Mt5DataFeedcuando necesitas velas de MT5 con ejecución simulada en los backtests.Mt5Broker+Mt5DataFeedpara ejecución en vivo en MetaTrader 5.
let execution = PaperBroker::new(AccountType::Paper, 100_000.0, 1);let data = YahooFinanceDataFeed::new();let broker = UnifiedBroker::new_backtest(execution, data);Para la configuración específica de cada bróker, consulta Brókeres y fuentes de datos.
Ejecutar en modo de backtesting
Sección titulada «Ejecutar en modo de backtesting»El ejecutor de backtests sigue la implementación actual de StrategyState::run_backtest:
// 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 BacktestResultsLos artefactos de cada ejecución se guardan en disco en:
backtests/<run_id>/backtest.db
AQE escribe el artefacto SQLite con registros de operaciones, operaciones completas de apertura y cierre, historial de cuenta, insights y velas. Puedes inspeccionar esos resultados en AlgoQuant Studio mediante Backtest Results o con cualquier lector de SQLite.
Ejecutar en vivo
Sección titulada «Ejecutar en vivo»El modo en vivo usa la misma estructura de estrategia y entorno de ejecución, pero se suscribe a datos y actualizaciones de operaciones en vivo.
Puedes ejecutar AQE en vivo:
- con AQS, proporcionando autenticación y activando la sincronización en vivo
- sin AQS, ejecutando
run_live(None)
if let Err(e) = state.run_live(auth).await { eprintln!("Live execution failed: {:?}", e); std::process::exit(1);}Cuando se proporciona autenticación, AQE escribe el estado en vivo en tablas del ámbito de AQS, como:
insightsstrategy_accountsstrategy_equity_pointsstrategy_live_metricsstrategy_events
Cuando se omite la autenticación, AQE puede seguir ejecutándose en vivo de forma local sin sincronizarse con AQS.
Interfaz de terminal
Sección titulada «Interfaz de terminal»Cuando AQE se compila con las funcionalidades runtime y tui y el proceso está conectado a un terminal interactivo, los backtests y las ejecuciones en vivo abren automáticamente una interfaz Ratatui. La TUI refleja métricas, insights activos, variables de estrategia, rutas de variables supervisadas, estado de sincronización con AQS y eventos de ejecución.
Usa --no-tui cuando necesites el flujo de registros de consola sin interfaz:
cargo run --features runtime,tui --release -- --no-tuiLee Interfaz de terminal para conocer la distribución de los paneles, los controles y el comportamiento de apagado de las ejecuciones en vivo.
Usamos cookies y almacenamiento esenciales para el inicio de sesión, la seguridad de la cuenta, las preferencias de tema de color, este aviso y las métricas internas necesarias de PostHog sobre uso, calidad de las sesiones y fiabilidad. No usamos cookies publicitarias.
