Brókeres y fuentes de datos
AQE separa los datos de mercado de la ejecución. Una fuente de datos proporciona historial y precios; un bróker de ejecución gestiona las órdenes y el estado de la cuenta. UnifiedBroker los combina para que la estrategia pueda usar la misma estructura en pruebas históricas y operaciones en vivo.
Elegir una integración
Sección titulada «Elegir una integración»| Finalidad | Implementaciones |
|---|---|
| Ejecución simulada | PaperBroker |
| Ejecución en MetaTrader 5 | Mt5Broker |
| Datos de mercado | YahooFinanceDataFeed, Mt5DataFeed |
Consulta PaperBroker para la ejecución simulada y los supuestos sobre comisiones. Consulta la guía de MT5 para configurar el Expert Advisor y el puente.
let execution = PaperBroker::new(AccountType::Paper, 100_000.0, 1);let data = YahooFinanceDataFeed::new();let broker = UnifiedBroker::new_backtest(execution, data);API de ejecución actual
Sección titulada «API de ejecución actual»La API 0.2.0 envía un BrokerOrderRequest en lugar de pasar el insight completo al bróker. Incluye los datos de entrada, protección e identidad necesarios para la ejecución.
let request = aq_engine::core::broker::BrokerOrderRequest::from(&insight);let order = broker.submit_order(request).await?;Este fragmento presupone que ya existen un bróker, un insight y una importación de OrderManagementProvider. Los pipes de estrategia normalmente deben solicitar mutaciones mediante el contexto de la estrategia y conservar sus resultados pendientes; consulta Pipes de insights.
Los adaptadores personalizados deben devolver futuros Send para las mutaciones del bróker. La sustitución de entradas pendientes usa replace_order; los cambios de protección usan update_take_profit o update_stop_loss. No reutilices la interfaz eliminada y ambigua update_order.
Para un insight en estado Executed cuya orden aún no se haya ejecutado, update_limit(ctx, price) modifica su precio límite de entrada y update_stop_limit(ctx, price) modifica el precio de activación de su orden stop de entrada. Este último no es una actualización del stop-loss. El adaptador de ejecución gestiona estos cambios mediante amend_entry_prices(order_id, limit_price, stop_price) y declara AmendLimitPrice o AmendStopPrice para las operaciones compatibles. Esta modificación de precio conserva la cantidad de la orden; replace_order es una operación independiente. Consulta Ciclo de vida de los insights para las reglas de estado y confirmación de recepción.
Crear tu propia fuente de datos
Sección titulada «Crear tu propia fuente de datos»Conecta tu servicio de datos de mercado, API de un mercado o conjunto de datos históricos implementando DataFeed y DataProvider. Estos traits cubren la gestión de conexiones, los metadatos de activos, las velas históricas, los precios actuales y las suscripciones. Puedes combinar el resultado con PaperBroker para probar los datos independientemente de la ejecución en vivo.
Sigue Crear una fuente de datos personalizada para conocer los métodos requeridos, los formatos de velas y cotizaciones, los indicadores de capacidades y una lista de validación.
Crear tu propio bróker
Sección titulada «Crear tu propio bróker»Conecta un centro de ejecución implementando Broker y OrderManagementProvider. Tu adaptador traduce las solicitudes de órdenes de AQE a la API del centro, devuelve el estado de la cuenta y de las posiciones e informa de los eventos del ciclo de vida de las órdenes. UnifiedBroker puede combinarlo con una fuente de datos existente o con tu propia implementación.
Sigue Crear un bróker personalizado para conocer el contrato de ejecución, las colas de eventos acotadas, la gestión de protección y los requisitos de recuperación.
Estas integraciones de Rust se compilan dentro de tu estrategia. Implementar los traits no añade automáticamente un proveedor al selector de conexiones de AQS.
Cotizaciones y datos de velas
Sección titulada «Cotizaciones y datos de velas»| Fuente | Comportamiento de las cotizaciones |
|---|---|
| MT5 en vivo | Bid/ask nativos muestreados, independientes del marco temporal de las velas |
| Yahoo en vivo o en simulación | Cierre de vela de un minuto obtenido por sondeo y representado como una cotización sintética bid=ask |
| Reproducción de backtest | Cotizaciones sintéticas de velas históricas ya consumidas |
Las cotizaciones sintéticas no proporcionan un spread real ni un precio ejecutable. Los backtests no obtienen cotizaciones actuales del mercado. Las suscripciones de cotizaciones no introducen un callback de estrategia on_quote ni backtests basados en ticks.
Para un consumidor de datos personalizado, comprueba DataFeedFeature::QuoteStream y los indicadores de capacidades nativas o sintéticas. Usa un ID de suscripción único y libera únicamente tu propia suscripción. Mantén los callbacks breves y no bloqueantes.
Capacidad y dimensionamiento
Sección titulada «Capacidad y dimensionamiento»El motor actual distingue tres límites:
| Campo | Significado |
|---|---|
Account.max_total_orders | Número máximo de órdenes pendientes |
Asset.max_order_size | Cantidad máxima de una orden de entrada |
Asset.max_total_size | Límite de cantidad agregada para un símbolo |
El dimensionamiento considera las cantidades activas y reservadas antes de dividir una orden. MT5 informa de la capacidad mediante el Expert Advisor actualizado. La ejecución simulada no hereda todos los límites de las cuentas en vivo de su fuente de datos.
Las reservas se mantienen por separado para cada estrategia. Otras estrategias u órdenes manuales pueden consumir capacidad de la cuenta; un bróker puede rechazar una orden incluso después de la validación local. Inspecciona el rechazo antes de volver a intentarlo.
Supervisar la ejecución
Sección titulada «Supervisar la ejecución»AQS muestra las observaciones de cuenta, el patrimonio, los eventos y los insights recibidos. La confirmación de recepción de un comando no equivale a una orden ejecutada, y una observación ausente o desactualizada no demuestra una cancelación. Comprueba los registros del bróker y el historial del insight cuando el resultado sea incierto.
Consulta Ejecución en vivo para la recuperación y Fuentes de datos en AQS para la configuración de escritorio.
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.
