Notebooks de recherche
Les notebooks de recherche permettent d’analyser des données de marché historiques avec Rust et AQE tout en conservant ce travail dans le projet de stratégie. Chaque notebook possède ses propres cellules, résultats, paramètres de données et session Rust locale isolée.


Créer et enregistrer un notebook
Section intitulée « Créer et enregistrer un notebook »- Ouvrez Research et choisissez un projet de stratégie récent. S’il ne figure pas dans la liste, ouvrez-le d’abord depuis Projects.
- Saisissez un titre et sélectionnez New notebook. Un même projet peut contenir plusieurs notebooks.
- Ajoutez des cellules Rust ou Markdown. Nommez-les dans le champ de titre ; leur menu permet de les déplacer ou de les supprimer.
- Sélectionnez Save pour enregistrer les modifications. L’exécution d’une cellule enregistre le notebook avant le calcul, puis enregistre son résultat.
Les notebooks sont stockés dans research/*.ipynb, à l’intérieur du répertoire de stratégie. Les instantanés historiques se trouvent dans research/data/ et les traces d’exécution des cellules dans research/runs/. Ces traces contiennent le code exécuté, la révision du notebook, la configuration des données, les empreintes des instantanés et les résultats. Les identifiants du fournisseur de données ne sont pas enregistrés dans le notebook.
Les brouillons non enregistrés sont conservés lors des changements d’onglet tant qu’AQS reste ouvert. Reload from disk demande confirmation avant d’abandonner un brouillon et de réinitialiser sa session.
Charger des données historiques
Section intitulée « Charger des données historiques »Choisissez une connexion Data feed enregistrée, et non un courtier d’exécution. Les connexions personnalisées affichent leur nom suivi du fournisseur entre parenthèses. Configurez-les dans Flux de données.
Saisissez les symboles exacts du fournisseur, une unité de temps AQE telle que 1m, 5m ou 1h, ainsi que les dates et heures de début et de fin. Les deux sélecteurs utilisent l’heure UTC, quel que soit le fuseau horaire de votre ordinateur. Le début est inclus ; la fin est exclue et ne doit pas se situer dans le futur.
Sélectionnez Load data into Rust avant d’utiliser bars, data ou les fonctions de sortie AQS. Le premier chargement compile AQE et Polars et peut prendre plusieurs minutes. Les données de chaque symbole sont stockées dans un DataFrame Polars de data ; bars est une copie de travail des données du premier symbole :
data.summary()?;let mut btc = data.bars("BTCUSD")?;aqs_table(&btc, 10)?;aqs_chart(&btc).candles() .pane("Volume", |p| p.histogram("volume")) .show()?;Utilisez le symbole réellement chargé : par exemple, BTC-USD chez Yahoo plutôt que le BTCUSD d’un courtier MT5. Un historique CSV doit contenir exactement le symbole et l’unité de temps demandés ; le notebook ne choisit pas une unité voisine à leur place. Un flux absent ou vide entraîne une erreur de chargement.
Appelez data.symbols() pour obtenir la liste des symboles chargés, ou sélectionnez-en un sous Loaded symbols, puis choisissez Add symbol analysis cell. Cette action insère une cellule sans l’exécuter. Les fonctions de création de graphiques prennent en charge les superpositions, les panneaux d’indicateurs séparés, les distributions et les comparaisons normalisées entre symboles.
Après une modification des paramètres de données, chargez à nouveau les données. Les instantanés assurent la traçabilité des entrées, mais n’empêchent pas le biais d’anticipation dans votre code : les cellules peuvent accéder à l’intégralité de l’historique sélectionné.
Exécuter et examiner les cellules
Section intitulée « Exécuter et examiner les cellules »Les variables persistent d’une cellule à l’autre au sein d’une même session. Chaque notebook dispose de variables séparées. AQS accepte jusqu’à quatre sessions de notebook actives ; arrêtez une session inutilisée pour libérer une place.
Utilisez le bouton de lecture pour exécuter une cellule, ou Run all pour exécuter les cellules de code dans l’ordre du document. Chaque cellule affiche son numéro d’exécution, son état et le temps écoulé. Ce temps inclut la compilation et l’évaluation de l’exécution concernée ; ce n’est ni une mesure de performance répétée ni une mesure du débit de traitement d’une stratégie.
Les erreurs apparaissent dans la cellule concernée. Run all s’arrête sur une erreur de compilation, une erreur d’exécution, une panique ou un message stderr nécessitant une vérification. Écrire volontairement un avertissement sur stderr interrompt également l’exécution automatique.
Stop / reset termine la session et efface ses variables. Les résultats existants restent visibles, mais sont marqués comme périmés. Après une réinitialisation, rechargez les données et réexécutez les cellules qui en dépendent. Modifier le code ou déplacer des cellules marque aussi les résultats concernés comme périmés, sans annuler automatiquement les variables déjà créées dans la session.


Dépendances et intégration de la stratégie
Section intitulée « Dépendances et intégration de la stratégie »Les cellules Rust acceptent les déclarations de dépendances Evcxr :
:dep chrono = "0.4.45"use chrono::Utc;Utc::now()Conservez vos déclarations personnalisées dans une cellule de préparation enregistrée, puis réexécutez-la après une réinitialisation. Les dépendances compilées utilisent un cache persistant propre au notebook ; les variables Rust, elles, ne survivent pas à une réinitialisation.
Dans Strategy code & backtests, choisissez Load research tools pour rendre les composants de la stratégie liée accessibles via project::, avec les outils de backtest. Les éléments publics exportés par une bibliothèque existante sont utilisés directement. Pour les projets AQS uniquement binaires, un adaptateur dans research/imports/ expose les modules de src/main.rs ainsi que les fichiers .alpha.rs, .pipe.rs, .indicator.rs, .logic.rs et .universe.rs non raccordés au graphe, sans modifier les originaux.
Les dépendances ordinaires du projet deviennent accessibles aux cellules. Les chemins relatifs et les dépendances héritées de l’espace de travail sont résolus ; le compilateur du notebook part du Cargo.lock du projet. Research ajoute ses propres dépendances utilitaires : cela ne garantit donc pas un fichier de verrouillage identique octet pour octet. Les dépendances facultatives exigent toujours les fonctionnalités Cargo correspondantes. Un projet uniquement binaire avec un script de compilation personnalisé doit d’abord exposer une bibliothèque src/lib.rs.
Le chargement d’imports nouveaux ou modifiés réinitialise les variables Rust, restaure les bougies des instantanés déjà chargés et marque les résultats enregistrés comme périmés. Si vous cliquez à nouveau sans modifier les imports du projet, AQS réutilise la session en cours sans recompilation ni effacement des variables. Toute modification enregistrée du code, du graphe, du manifeste ou du fichier de verrouillage du projet exige de recharger les outils. Pour les modifications d’une dépendance externe référencée par un chemin, utilisez Stop/reset, puis Load research tools. Les cellules, fonctions, structures et déclarations :dep supplémentaires restent prises en charge.
L’action unique Load research tools prépare les imports du projet et l’analyse des backtests enregistrés sans connecter de fournisseur de données. La première compilation peut prendre plusieurs minutes ; le panneau affiche sa progression et le temps écoulé. Conservez le cache de compilation du notebook pour réutiliser les dépendances déjà compilées. Consultez Réutilisation de stratégies et comparaison de backtests pour les imports, le cache, les études de signaux alpha, les résultats enregistrés, les expériences isolées et les cartes thermiques.
Open strategy graph vous ramène au projet lié. Python et l’exécution distante ne sont pas disponibles dans cette version.
Partager des recherches dans un article AQI
Section intitulée « Partager des recherches dans un article AQI »La section AQI paper du panneau de session relie les notebooks locaux à AQ Insights. Connectez-vous, puis choisissez :
- Use notebook as paper ouvre l’éditeur AQI complet dans un nouveau brouillon local distinct, avec un bloc par cellule sélectionnée. Cette action n’envoie ni ne publie aucun contenu et ne remplace aucun autre article non enregistré.
- Attach to a paper permet de choisir l’un de vos brouillons privés et d’ouvrir son éditeur avec les blocs de cellules ajoutés. Le contenu existant et les modifications non enregistrées de l’éditeur sont conservés. Les articles publiés sont exclus de ce raccourci.
Le bouton Add notebook de la barre d’outils de l’éditeur se trouve près des références et des blocs de backtest. Sa boîte de dialogue permet de choisir un projet, un notebook et des cellules individuelles, puis d’inclure ou non le code et les résultats enregistrés. Vérifiez l’aperçu, puis sélectionnez Insert notebook cells. Cette action modifie uniquement le brouillon local : elle n’exécute jamais de cellule et ne charge pas de données de marché.
Le code et les résultats de chaque cellule restent regroupés. Survolez une cellule pour afficher les icônes Move up, Move down, Add text before, Add text after et Remove block dans son en-tête. Les infobulles expliquent chaque action ; les commandes apparaissent également lors de la navigation au clavier et restent visibles sur les appareils tactiles. Pour un ancien bloc contenant un notebook entier, utilisez Split into cells. Ces actions ne modifient pas le notebook source. Dans AQS, les lecteurs peuvent citer un passage d’une cellule plutôt que sélectionner tout le bloc.
Les blocs conservent les limites des cellules, le Markdown, le code Rust, les échantillons de tableaux, les graphiques à plusieurs panneaux, les nuages de points, les distributions et les résultats textuels. Le raccourci Research inclut toutes les cellules prises en charge ayant des résultats enregistrés admissibles ; utilisez le sélecteur de l’éditeur pour une sélection plus précise. Les résultats périmés, en échec ou non vérifiés, ainsi que les journaux d’exécution, sont exclus, avec des avertissements dans le bloc. Les images Markdown deviennent des descriptions ; le HTML du notebook est traité comme du texte. Les lecteurs peuvent consulter les résultats sans installer Rust ni exécuter le notebook.
Avant de confirmer, vérifiez que le code et les résultats ne contiennent aucun secret et que vous avez le droit de partager les données de marché incluses. Les fichiers de données, chemins locaux, identifiants de flux, informations de connexion et métadonnées arbitraires ne sont pas téléversés automatiquement. Un texte rédigé ou affiché par votre code peut néanmoins contenir des informations sensibles. Inclure des tableaux partage les lignes de données affichées.
Cochez la case confirmant la vérification du partage dans l’éditeur, puis choisissez Save Draft pour envoyer l’article comme brouillon privé ou Publish pour le publier explicitement. Toute modification du contenu décoche cette confirmation. Après l’enregistrement, AQS ajoute le lien de l’article aux métadonnées du notebook source lorsque celui-ci est accessible. Le notebook original reste dans research/, aux côtés de la stratégie. Aucune cellule ne s’exécute pendant l’export ou la lecture.
Il s’agit d’instantanés créés explicitement, et non d’une synchronisation en direct ou de pièces jointes de notebook exécutables. Modifier ultérieurement le notebook ne change pas l’article. Ajoutez un autre bloc pour partager un nouvel instantané ; sélectionnez un bloc et appuyez sur Suppr pour le retirer de l’article. Le contenu du bloc est en lecture seule, tandis que le texte environnant reste modifiable. Les graphiques sont des résultats statiques enregistrés et autonomes ; les tableaux présentent au maximum 100 lignes et 50 colonnes. Chaque instantané est limité à 100 cellules sélectionnées et 2 MiB ; un article contenant des blocs de notebook est également soumis à une limite de partage de 2 MiB.
Les brouillons locaux restent en mémoire lors des changements d’onglet, mais ne sont conservés durablement qu’après enregistrement. Si le résultat d’un enregistrement dans le cloud est incertain, vérifiez My Papers avant de réessayer afin d’éviter les instantanés en double. Si seul l’enregistrement du lien dans le notebook local échoue, l’article est déjà enregistré : utilisez Save dans le notebook, sans refaire l’export.
Sécurité et dépannage
Section intitulée « Sécurité et dépannage »N’exécutez que des notebooks de confiance. Les cellules Rust disposent des autorisations de votre compte local ; l’isolation des processus n’est pas un bac à sable de sécurité. Research ne place pas automatiquement des ordres, mais un code Rust écrit par l’utilisateur peut accéder aux fichiers, au réseau et aux API.
Si bars est absent, assurez-vous d’abord que le chargement des données historiques a réussi. Les fonctions utilitaires peuvent aussi être installées avec Load research tools, sans connecter de flux de données. Si l’environnement d’exécution Rust est indisponible, suivez les indications relatives à la chaîne d’outils affichées dans la cellule. Une panique nécessite de réinitialiser la session.
Consultez Graphiques de recherche et fonctions utilitaires pour les fonctions de sortie, et Graphiques AQS pour l’espace de graphiques de marché distinct.
Nous utilisons des cookies et un stockage essentiels pour la connexion, la sécurité du compte, les préférences de thème, cet avis et les mesures internes PostHog nécessaires au suivi de l’utilisation, de la qualité des sessions et de la fiabilité. Nous n’utilisons pas de cookies publicitaires.
