Cycle de vie d’un insight
AQE suit les insights via une machine d’état qui inclut :
NewExecutedFilledClosedCancelledRejected
Les chemins typiques ressemblent à :
New -> Executed -> Filled -> ClosedNew -> RejectedExecuted -> CancelledFilled -> Closed
L’expiration, les échecs de pipes, les rejets courtier et les mises à jour de trade alimentent ces transitions.
Champs Time-To-Live
Section intitulée « Champs Time-To-Live »AQE prend en charge deux contrôles de cycle de vie importants :
period_unfilleds’applique quand l’insight est encoreNewouExecuted. Les insights expirés sont rejetés ou une annulation est demandée selon l’état.period_till_tps’applique une fois que l’insight estFilled. L’expiration peut déclencher une demande de clôture.
Ces vérifications sont appliquées par le runtime, pas par l’UI.
Historique D’état
Section intitulée « Historique D’état »Chaque changement significatif peut être enregistré dans state_history, notamment :
- transitions d’état
- soumission
- acceptation courtier
- fills
- clôtures partielles
- demandes d’annulation
- rejets
- gestion de l’expiration
Cet historique rend l’inspecteur partagé dans AQS et Backtest Results utile pour la revue.
Ajouter Un Message D’historique Personnalisé
Section intitulée « Ajouter Un Message D’historique Personnalisé »Utilisez state_log(...) quand vous voulez attacher une note de revue à un insight sans changer son état de cycle de vie. Le hook de stratégie reçoit les insights par référence partagée, donc ajoutez ces messages depuis un pipe ou un autre chemin runtime qui possède &mut Insight.
use aq_engine::core::insight::{types::InsightState, Insight};use aq_engine::core::pipeline::{InsightPipe, InsightPipeBuilder, InsightPipeResult};use aq_engine::core::strategy::StrategyContext;
pub struct ReviewNotePipe;
impl InsightPipe for ReviewNotePipe { fn version(&self) -> &str { "1.0" }
fn run(&mut self, _ctx: &mut dyn StrategyContext, insight: &mut Insight) -> InsightPipeResult { insight.state_log(Some("Risk check passed".to_string()));
InsightPipeResult::new( true, true, Some("Review note added to insight history".to_string()), self.name().to_string(), ) }}Enregistrez le pipe sur l’état où vous voulez ajouter la note :
ctx.add_pipe( InsightPipeBuilder::new(Box::new(ReviewNotePipe)) .target_state(InsightState::Filled) .build(),);state_log(...) conserve l’état courant, met à jour updated_at et ajoute le message fourni dans state_history. Si vous passez None, AQE enregistre "State log entry".
Persistance
Section intitulée « Persistance »Les snapshots d’insight incluent les champs d’exécution comme filled_price, close_price, broker_realized_pnl, commission et swap. Les runs live synchronisent ces snapshots vers AQS Cloud, et les backtests les persistent dans la base locale de résultats.
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.
