Courtiers et flux de données
AQE garde l’exécution et les données de marché derrière des traits courtier/datafeed afin que le code de stratégie puisse utiliser la même surface runtime en backtest, en paper trading et en live.
Intégrations actuelles
Section intitulée « Intégrations actuelles »AQE expose actuellement ces intégrations runtime concrètes :
- courtiers d’exécution :
PaperBroker,Mt5Broker - datafeeds :
YahooFinanceDataFeed,Mt5DataFeed
Commencez par les pages d’intégration ciblées :
- PaperBroker et exécution paper couvre l’exécution simulée, l’état du compte paper, les données Yahoo et le modèle de frais d’actif.
- Courtier et datafeed MT5 couvre le bridge live MetaTrader 5, la configuration de l’Expert Advisor et les sources de données de frais MT5.
Elles sont composées via UnifiedBroker, qui donne au runtime de stratégie une surface courtier cohérente.
Traits courtier
Section intitulée « Traits courtier »pub trait Broker { async fn connect(&self) -> Result<bool, BrokerError>; async fn disconnect(&self) -> Result<bool, BrokerError>; fn is_connected(&self) -> bool; fn get_name(&self) -> String; fn get_account_type(&self) -> Result<AccountType, BrokerError>;}
pub trait OrderManagementProvider: Broker { async fn submit_order(&self, insight: Insight) -> Result<Order, BrokerError>; async fn cancel_order(&self, order_id: &str) -> Result<bool, BrokerError>; async fn close_position(&self, order_id: &str, qty: f64, price: Option<f64>) -> Result<bool, BrokerError>; async fn get_account(&self) -> Result<Account, BrokerError>; fn drain_trade_events(&self) -> Vec<(Order, TradeUpdateEvent)>;}Traits datafeed
Section intitulée « Traits datafeed »pub trait DataFeed { async fn connect(&self) -> Result<bool, BrokerError>; async fn disconnect(&self) -> Result<bool, BrokerError>; fn is_connected(&self) -> bool;}
pub trait DataProvider: DataFeed { async fn get_ticker_info(&self, symbol: &str) -> Result<Asset, BrokerError>; async fn get_history( &self, symbol: &str, start: DateTime<Utc>, end: DateTime<Utc>, time_frame: TimeFrame, ) -> Result<DataFrame, BrokerError>; async fn get_latest_quote(&self, symbol: &str) -> Result<Quote, BrokerError>; async fn get_latest_bar(&self, symbol: &str) -> Result<Bar, BrokerError>;}Combiner courtiers et datafeeds
Section intitulée « Combiner courtiers et datafeeds »let execution = PaperBroker::new(AccountType::Paper, 100_000.0, 1);let data = YahooFinanceDataFeed::new();
let broker = UnifiedBroker::new_backtest(execution, data);En live, le même pattern s’applique, mais le runtime utilise le chemin live au lieu de new_backtest(...).
Ce qu’AQS consomme depuis l’exécution live
Section intitulée « Ce qu’AQS consomme depuis l’exécution live »Quand la synchronisation live est activée, AQE publie l’état broker/runtime dans des tables par session utilisées par AQS :
insightsstrategy_accountsstrategy_equity_pointsstrategy_live_metricsstrategy_events
Cela signifie que le comportement courtier/datafeed façonne directement ce que l’opérateur voit dans l’UI desktop.
Source liée
Section intitulée « Source liée »aq-engine/src/core/broker/mod.rsaq-engine/src/core/broker/types/mod.rsaq-engine/src/core/broker/paper_broker.rsaq-engine/src/core/broker/mt5_broker.rsaq-engine/src/core/broker/data_feeds/yahoo.rs
Nous utilisons des cookies et du stockage essentiels pour la connexion, la sécurité du compte, les préférences de thème, cet avis et les métriques internes PostHog nécessaires sur l’utilisation, la qualité de session et la fiabilité. Nous n’utilisons pas de cookies publicitaires.
