PaperBroker et exécution paper
PaperBroker est le simulateur d’exécution d’AQE pour :
- le backtesting
- le paper trading
- la validation du comportement du cycle de vie des insights
Il gère :
- la soumission d’ordres
- les fills
- les annulations
- les demandes de clôture
- les jambes bracket
- l’exécution du trailing stop
- l’émission d’événements de trade
- l’état du compte et de l’equity
Il empêche aussi les états de compte paper invalides, comme des ordres qui dépasseraient le buying power disponible.
YahooFinanceDataFeed
Section intitulée « YahooFinanceDataFeed »YahooFinanceDataFeed fournit :
- les métadonnées ticker
- les barres historiques
- les dernières cotations
- les dernières barres
- l’abonnement au flux de barres live
C’est le chemin de données de marché par défaut pour la recherche historique et les workflows runtime orientés paper.
Modèle de frais d’actif
Section intitulée « Modèle de frais d’actif »AQE modélise les frais d’actif séparément du PnL brut du trade. Asset.fees contient :
commission.entry.longetcommission.entry.shortpour ouvrir des positions longues et courtescommission.exit.longetcommission.exit.shortpour clôturer des positions longues et courtesswap.longetswap.shortpour le financement overnight ou le crédit sur les positions longues et courtes
Long et short désignent le côté de la position, pas seulement l’action immédiate de l’ordre. Un ordre d’achat qui ouvre une exposition utilise le frais d’entrée long. Un ordre de vente qui ouvre une exposition utilise le frais d’entrée short. Lorsqu’une position est clôturée, AQE applique le frais de sortie et le swap du côté de position d’origine, donc commission.exit.short est le frais de clôture d’une position short même si l’action de clôture est un achat.
La commission et le swap utilisent le même enum public de type de frais, AssetFee. Les types de frais disponibles sont :
AssetFee::NoneAssetFee::Points(points), utilisé pour le calcul de swap en pointsAssetFee::PercentageFee(rate), où0.001signifie 0,1 % du notionnel traitéAssetFee::FixedFee(amount), un montant fixe par fillAssetFee::PerContractFee(amount), multiplié par la quantité traitéeAssetFee::PercentagePerContractFee(rate), appliqué commeprice * contract_size * quantity * rate
Les calculs de commission acceptent des valeurs positives PercentageFee, FixedFee, PerContractFee et PercentagePerContractFee. Points existe sur l’enum partagé parce que le swap en a besoin ; s’il est utilisé dans un champ de commission, AQE le traite comme zéro.
Les valeurs de swap peuvent être positives ou négatives. Un swap positif augmente le PnL et un swap négatif le réduit. En exécution paper, AQE calcule le PnL net de clôture ainsi :
PnL brut + swap - commission d’entrée - commission de sortieConfigurer les frais PaperBroker
Section intitulée « Configurer les frais PaperBroker »Utilisez with_asset_fees(...) lors de la création du broker d’exécution paper. Les backtests générés par AQS utilisent le même chemin.
use aq_engine::core::broker::paper_broker::PaperBroker;use aq_engine::core::broker::types::{ AccountType, AssetCommissionFees, AssetFee, AssetFees, AssetSideFees, AssetSwapFees,};
let fees = AssetFees { commission: AssetCommissionFees { entry: AssetSideFees { long: AssetFee::PercentageFee(0.0005), short: AssetFee::PercentageFee(0.0007), }, exit: AssetSideFees { long: AssetFee::FixedFee(1.0), short: AssetFee::FixedFee(1.0), }, }, swap: AssetSwapFees { long: AssetFee::PerContractFee(-3.25), short: AssetFee::PercentagePerContractFee(0.000041), }, ..AssetFees::default()};
let execution = PaperBroker::new(AccountType::Paper, 100_000.0, 1).with_asset_fees(fees);Les anciens champs entry et exit sur AssetFees restent acceptés comme fallback de compatibilité lorsque l’objet de commission par côté est vide. Les nouvelles configurations doivent utiliser les objets commission et swap.
Source liée
Section intitulée « Source liée »aq-engine/src/core/broker/paper_broker.rsaq-engine/src/core/broker/types/mod.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.
