Apparence
07 — Tutoriel : une stratégie complète, pas à pas
Ce tutoriel construit une stratégie réelle de bout en bout : création, réglage d'un paramètre, enrichissement du graphe d'états, backtest walk-forward, lecture des résultats et de la robustesse. Il traverse au passage l'essentiel des fonctionnalités de la plateforme — assistant guidé, comparaison de variantes, éditeur avancé, multi-timeframe, filtre calendaire, délai de refroidissement, trailing stop, batterie de robustesse, export/import JSON. Les captures d'écran proviennent d'un déroulé réel sur la plateforme : les chiffres que vous y voyez sont de vrais résultats, pas des illustrations.
Comptez une trentaine de minutes. Prérequis : un compte et la page 01 — Prise en main. Les notions croisées en route sont définies dans le Lexique.

Ce tutoriel n'est pas un conseil d'investissement. La stratégie qui suit est un exemple pédagogique honnête — une logique classique, pas une martingale. Son intérêt est de vous apprendre à vous servir de la plateforme, y compris de tout ce qui sert à se méfier de ses propres résultats. Vous verrez d'ailleurs à la fin ce que la plateforme pense de cet exemple — et c'est précisément la leçon.
La stratégie : « Pullback en tendance »
L'idée, ancienne et défendable : n'acheter que quand le marché de fond monte, et entrer sur un repli plutôt qu'au plus haut.
| Règle | Formulation |
|---|---|
| Filtre de tendance | Le prix est au-dessus de sa moyenne mobile 10 semaines (timeframe hebdomadaire) |
| Déclencheur d'entrée | Le RSI 2 jours passe sous 25 — le repli court |
| Filtre calendaire | Jamais d'entrée le vendredi |
| Protection | Stop-loss 8 %, trailing stop 15 %, évalués par lot |
| Sortie de tendance | La moyenne 10 semaines repasse au-dessus du prix — la tendance de fond s'est retournée |
| Refroidissement | Après une sortie, attendre 5 barres avant de réarmer le signal |
Trois états : attente (on guette le repli), en position (les sorties montent la garde), repos (le délai de refroidissement). Nous la construirons en deux temps : une version simple avec l'assistant guidé, puis l'enrichissement dans l'éditeur avancé — dans cet ordre, pour une raison précise expliquée à l'étape 3.
Pourquoi un RSI 2 jours, et pas le classique RSI 14 ? Parce que les deux conditions doivent être vraies en même temps. Un RSI 14 jours ne descend sous 35 qu'après des semaines de baisse — et à ce moment-là, le prix a presque toujours déjà cassé sa moyenne 10 semaines : sur AAPL 2015–2024, la combinaison « RSI(14) sous 35 et tendance haussière » ne s'est produite aucun jour en dix ans. Une stratégie peut être valide à l'écran et ne jamais trader. Le RSI 2 jours, lui, plonge sur un repli de deux ou trois séances, ce qui arrive régulièrement pendant une tendance haussière. Vérifiez toujours que vos conditions combinées ont une chance d'être vraies ensemble.
Terrain de jeu : AAPL, du 01/01/2015 au 31/12/2024 — dix ans, assez pour dix folds walk-forward et plusieurs régimes de marché (2018, krach COVID, baissier 2022).
Étape 1 — Suivre le symbole
Un backtest ne peut porter que sur un symbole suivi. Ouvrez Symboles : si AAPL n'apparaît pas dans la liste, demandez son ajout à l'administrateur (avec le bouton +, il cherche AAPL, choisit la classe d'actifs stocks et l'ajoute).

Étape 2 — Créer la version simple avec l'assistant guidé
Stratégies → Créer une nouvelle stratégie. La page s'ouvre sur l'onglet Assistant guidé ; laissez l'onglet Éditeur avancé de côté pour l'instant.
Ne changez pas d'onglet en cours de saisie : le passage direct d'un onglet à l'autre perd ce que vous avez saisi. Le seul chemin sans perte est le bouton Passer à l'éditeur avancé → en bas de l'assistant — nous n'en aurons pas besoin ici, l'enrichissement passera par un autre chemin.
Étape 1/5 — Informations générales. Nom : Pullback en tendance. Décrivez l'idée en une phrase si vous voulez — c'est aussi le champ qu'utiliserait Générer avec l'IA pour pré-remplir les étapes suivantes ; ce tutoriel saisit tout à la main, mais rien ne vous empêche de comparer. Classes d'actifs : cochez stocks. Symboles : laissez vide (Tous les symboles si vide) — le symbole se choisit au moment du backtest, pas ici.

Étape 2/5 — Règle d'entrée. Indicateur d'entrée : RSI — Relative Strength Index, paramètre Period à 2. Condition : croise en-dessous. Comparer à : Valeur fixe, valeur 25. Direction : Long.

Pourquoi « croise en-dessous » et pas « descend sous » ? La version simple n'a qu'un état qui boucle sur lui-même : une condition « descend sous » resterait vraie barre après barre tant que le RSI est sous 25 et, pyramidage aidant, empilerait un lot par barre. « Croise en-dessous » ne se déclenche que sur la barre du franchissement. (L'étape 4 montrera que le graphe multi-états règle ce problème plus élégamment.)
Étape 3/5 — Règle de sortie. L'assistant exige une sortie sur indicateur : RSI — Relative Strength Index, Period 2, monte au-dessus, Valeur fixe 70. C'est une sortie provisoire — l'étape 4 la remplacera par la vraie logique de sortie.
Étape 4/5 — Capital & risque. Méthode de dimensionnement : % du capital, pourcentage 20. Stop-loss : 8. Laissez le take-profit tel quel — il disparaîtra à l'étape 4 au profit d'un trailing stop. (Ces deux champs s'affichent en anglais, stop loss percent et take profit percent.)
Étape 5/5 — Résumé. Relisez — l'entrée doit se lire RSI(2) croise en-dessous de 25 (Long) — puis Créer la stratégie. Le bandeau Stratégie créée avec succès ! confirme. La stratégie est en brouillon : tout reste modifiable.

Étape 3 — Régler le seuil RSI avec « Comparer des variantes »
Pourquoi maintenant, avant d'enrichir le graphe ? Parce que la comparaison de variantes ne sait faire varier qu'une règle à condition unique : dès que l'entrée deviendra un groupe ET (tendance + RSI + calendrier), elle sera refusée. Et parce qu'une comparaison de variantes ne verrouille pas la stratégie — contrairement à un vrai backtest — le brouillon restera modifiable pour l'étape 4.
Ouvrez la stratégie, cliquez sur Lancer un backtest, puis sur l'onglet Comparer des variantes (certains libellés de ce formulaire sont encore en anglais). Renseignez :
| Champ | Valeur |
|---|---|
| Start Date / End Date | 01/01/2024 → 31/12/2024 |
| Symbole | AAPL |
| Règle | Entrée |
| Paramètre à faire varier | Seuil |
| Min / Max / Pas | 10 / 35 / 5 |
Le formulaire annonce « 6 variantes seront testées » — la limite est de 8. L'analyse est synchrone : comptez environ deux secondes par variante et par année de données, pendant lesquelles la page attend. Une fenêtre courte comme celle-ci suffit largement — c'est un premier tri, pas une validation.

Dans le panneau Analyse de sensibilité, lisez la forme, pas le sommet :

- Sur notre déroulé, le badge signale un Pic isolé en 30 : la variante 30 fait le meilleur rendement (+5,26 %), mais son voisinage ne confirme pas. La retenir serait exactement l'erreur que la page met en garde.
- La zone 10–25 forme un voisinage plus régulier ; la médiane des variantes (3,65 %) est votre meilleure estimation de ce que vaut l'idée — pas le meilleur des six chiffres.
- L'encart Biais de sélection en pied rappelle que chacune de ces variantes compte comme un essai au compteur de la stratégie — vous le retrouverez à l'étape 6, dans le Deflated Sharpe Ratio.
Nous gardons 25 : dans la zone stable, avec assez de trades pour être significatif. Deux mises en garde : ces runs ne font pas de walk-forward (un seul bloc pleine période), et ils tournent avec le capital et l'ajustement par défaut, pas ceux de votre futur backtest.
Étape 4 — Enrichir le graphe dans l'éditeur avancé
Depuis la page de la stratégie, cliquez sur Éditer les règles (disponible tant qu'elle est en brouillon). L'éditeur de graphe s'ouvre sur la machine créée par l'assistant : un seul état dont les transitions bouclent sur lui-même. Nous allons la déplier en trois états.
4a. Les trois états
Cliquez sur l'état unique, et dans le panneau latéral renommez-le attente (champ Nom de l'état). Puis, deux fois + Ajouter un état, et renommez les nouveaux venus en position et repos. Le badge Initial doit rester sur attente.
4b. L'entrée : tendance + repli + calendrier
Cliquez sur la flèche d'entrée (celle dont l'étiquette mentionne l'entrée long). Dans le panneau Transition :
- État cible :
en position— entrer change désormais d'état, au lieu de boucler. - Dans l'arbre de conditions, la feuille RSI est seule. Passez sa condition de croise en-dessous à descend sous — dans un graphe multi-états, l'entrée ne peut plus s'empiler (une fois
en position, l'étatattenten'est plus évalué) et « descend sous » attrape aussi les configurations où le franchissement exact a eu lieu une barre trop tôt — et fixez son Timeframe à1Day(voir l'encadré ci-dessous). - Cliquez sur Grouper sur la feuille RSI : elle devient un groupe ET avec une nouvelle condition vierge. Configurez cette nouvelle feuille : SMA — Simple Moving Average, Period
10, Timeframe1Week, condition descend sous, comparer à Prix. - Toujours dans le groupe ET, cliquez sur + Filtre temporel. La feuille arrive préréglée exactement comme il nous faut : Jour de la semaine, sens exclure, valeur vendredi.

Le prix ne peut jamais être le membre gauche d'une condition — la gauche est toujours un indicateur. « Le prix est au-dessus de sa moyenne 10 semaines » se saisit donc à l'envers :
SMA(10) descend sous le prix. C'est la même affirmation, lue depuis l'autre rive. Le résumé de la transition l'affichera sous cette forme inversée — c'est normal.
Pourquoi épingler
1Daysur la feuille RSI ? Le backtest s'exécute sur le plus fin des timeframes explicitement référencés par les règles. Si la seule feuille à timeframe explicite est la SMA en1Week, la stratégie entière tourne en hebdomadaire — votre RSI 2 devient un RSI de 2 semaines, et le filtre « jour de la semaine » est refusé à l'enregistrement (sur des barres hebdomadaires, exclure le vendredi n'a pas de sens). Épingler1Daysur le RSI ancre le run en journalier. L'erreur est signalée sur la flèche fautive si vous l'oubliez.
Autres choix commentés :
- SMA 10 semaines (≈ 50 jours de bourse) plutôt qu'une moyenne plus longue : au début de chaque segment walk-forward, une moyenne hebdomadaire est muette tant que ses barres hebdomadaires ne sont pas toutes clôturées — soit ici une dizaine de semaines sans signal possible. Une SMA 40 semaines aurait consommé près de dix mois de chaque segment out-of-sample : le filtre aurait mangé le test.
- Le filtre calendaire est ici pour l'exemple ; gardez en tête l'avertissement de la page 02 : c'est un vecteur classique de surapprentissage.
4c. Les sorties : la garde montée depuis en position
Les deux transitions de sortie créées par l'assistant bouclent encore sur attente — elles n'y servent plus à rien. Sélectionnez-les l'une après l'autre (liste Transitions sortantes de l'état attente) et Supprimer la transition, pour ne laisser à attente que la transition d'entrée.
Sélectionnez ensuite en position et créez deux transitions (+ Ajouter une transition), dans cet ordre :
- La protection. État cible
repos, action Sortie, déclencheur Seuils % : Stop-loss (%)8, Trailing stop (%)15, Take-profit (%) vide. Évalués par lot, à l'intérieur de la barre, contre le prix d'entrée (et le meilleur prix atteint, pour le trailing). - La sortie de tendance. État cible
repos, action Sortie, déclencheur Conditions indicateurs, une feuille : SMA — Simple Moving Average, Period10, Timeframe1Week, monte au-dessus, comparer à Prix — la moyenne repasse au-dessus du prix, donc le prix est passé sous sa moyenne 10 semaines : la tendance de fond qui justifiait la position n'existe plus.
Les transitions sont évaluées dans l'ordre (flèches ▲/▼ du panneau de l'état) : la protection passe avant la sortie discrétionnaire. Il n'y a plus de take-profit fixe : c'est le trailing stop qui laisse courir les gains et encaisse le retournement.
4d. Le refroidissement
Sélectionnez repos, ajoutez une transition : état cible attente, action Aucune — enchaînement pur, déclencheur Conditions indicateurs, et dans l'arbre + Durée dans l'état : au moins 5 barres (supprimez la feuille indicateur vierge créée par défaut).
Sans cet état, une position stoppée le lundi peut se réarmer dès le mardi si le RSI est toujours sous le seuil — ce qu'aucun opérateur ne ferait. La barre d'entrée dans l'état compte pour 0 ; au bout de 5 barres, la stratégie retourne guetter en attente. Accessoirement, c'est cette transition qui évite à repos d'être un état puits, que l'éditeur refuserait.
4e. Vérifier et enregistrer
Le résumé de validation doit afficher « ✓ Aucun problème détecté — la machine à états est valide ». Un clic sur Réorganiser remet le graphe d'aplomb :

Enregistrer. La stratégie est toujours en brouillon — c'est le backtest qui la verrouillera, pas l'enregistrement du graphe.
Étape 5 — Lancer le backtest walk-forward
Retour sur Lancer un backtest, onglet Backtest simple cette fois. Dans Configurer le backtest :
| Champ | Valeur | Pourquoi |
|---|---|---|
| Date de début / Date de fin | 01/01/2015 → 31/12/2024 | Dix ans, plusieurs régimes de marché |
| Symbole | AAPL | Un seul instrument par run |
| Capital initial | 10 000 | Le dimensionnement ne le dépassera jamais — pas de levier |
| Ajustement des prix | Splits (défaut) | Passez à Total return pour réinvestir les dividendes — sur dix ans d'AAPL, la différence n'est pas cosmétique |
| Folds walk-forward | 10 | La valeur par défaut |
| Mode walk-forward | Anchored (défaut) | Fenêtre in-sample croissante — voir 03 pour l'alternative Rolling |

Le timeframe n'est pas demandé : il découle de la stratégie — ici le journalier, ancré par la feuille RSI (la feuille 1Week est plus grossière).
Lancer le backtest. Le calcul part en arrière-plan et une barre de progression suit son avancement en direct — comptez une à deux minutes pour dix ans en dix folds. Avant de simuler, le moteur contrôle la qualité des données et bloque le run si la série est douteuse plutôt que de produire un chiffre faux — ces messages de contrôle s'affichent pour l'instant en anglais. Le résultat s'affiche à la fin ; vous le retrouverez aussi dans le panneau Backtests précédents.
Ce premier run verrouille la stratégie. Elle passe au statut backtestée et ses règles deviennent définitives — c'est ce qui garantit qu'un résultat passé correspond bien à la stratégie affichée. Pour essayer une variante ensuite : Dupliquer, la copie repart en brouillon.
Étape 6 — Lire les résultats
L'ordre de lecture compte. Le réflexe à prendre : l'out-of-sample d'abord. Voici le résultat réel de notre déroulé, et comment le lire.

- La carte « Out-of-sample (hors échantillon) » : rendement moyen +1,24 % par fold (écart-type 2,57), Sharpe moyen 0,41. La carte in-sample affiche +5,94 % — l'écart entre les deux est déjà une information : ce que la stratégie « savait » faire sur le passé connu ne s'est que partiellement transporté sur l'inconnu.
- La WFE médiane : 12 %, badge ambre — la stratégie ne conserve hors échantillon qu'une fraction de son efficacité in-sample (le badge passe au vert à partir de 50 %). Les folds OOS profitables : 50 % — une pièce ou presque.
- Le tableau fold par fold. Cherchez la régularité, pas l'exploit. Remarquez les WFE extrêmes (2324 %, −127 %) : sur un fold dont l'in-sample est proche de zéro, le ratio explose — c'est pour cela que c'est la médiane qui est affichée en synthèse, pas la moyenne. Les avertissements en tête de tableau signalent aussi les 10 barres de warm-up par segment ; s'y ajoute le silence de la SMA hebdomadaire, muette ses 10 premières semaines de chaque segment.
- L'equity cousue et la heatmap mensuelle : la trajectoire out-of-sample, seule partie des résultats qui compte, mois par mois.
- Le rappel de configuration du run — moteur v3.1.0, sizing 20 %, coûts (10 bps de frais, 5 de slippage, 5 de spread — jamais nuls), warm-up — figé au lancement. C'est ici, et seulement ici, que vous voyez les coûts réellement appliqués.
- L'onglet Graphique : les chandeliers, la SMA superposée, le RSI en panneau, les marqueurs d'entrée/sortie, la courbe de capital, et le tableau des trades avec motif de sortie et excursions MAE/MFE — exportable en CSV. Vérifiez sur quelques trades que la stratégie fait ce que vous avez écrit : entrées sur repli en tendance, jamais le vendredi.

- La section Robustesse — le walk-forward dit si l'avantage tient dans le temps, cette batterie dit s'il tient à autre chose :

- Deflated Sharpe Ratio : 3,4 % — « Compatible avec la chance ». La stratégie totalise 7 essais (6 variantes du sweep de l'étape 3, plus ce run) ; avec autant de tentatives sans aucun vrai signal, le hasard seul produirait un Sharpe d'environ 1,04 — et notre Sharpe observé (0,46) ne s'en distingue pas. Après moins d'une dizaine d'essais, un verdict prudent est le résultat normal, pas un échec ; seul Significatif (≥ 95 %) autorise à prendre un Sharpe au sérieux.
- Monte Carlo : 8,3 % de probabilité de finir en perte, 0 % de probabilité de ruine — la stratégie risque peu, c'est cohérent avec son exposition partielle et ses stops.
- Stress des coûts : +16,2 % → +14,9 % (×2) → +13,6 % (×3). Le rendement ne s'effondre pas quand les coûts doublent : elle ne vit pas de son modèle de coûts.
- Performance par année et crises : 6 années sur 10 positives ; pertes contenues pendant le krach COVID (−1,8 %) et le baissier 2022 (−2,3 %) — le filtre de tendance a fait son travail de parachute.
- Sensibilité à la date de départ : écart de 0,45 point, badge Signe stable — le résultat ne dépend pas d'un point d'entrée chanceux.
- « Hypothèses et limites du moteur », l'accordéon en bas de page : ce que ces chiffres supposent, et dans quel sens chaque approximation les tire. La version longue est la page 06 — Hypothèses et limites.

Le verdict, alors ? Cette stratégie est robuste sans être bonne : elle survit aux coûts, ne dépend pas de la date de départ, perd peu dans les crises — mais sa WFE de 12 %, ses folds gagnants une fois sur deux et son DSR « compatible avec la chance » disent qu'aucun avantage n'est démontré ; sur la période, détenir simplement AAPL rapportait bien davantage (au prix d'un risque bien supérieur). C'est exactement le service qu'un backtest honnête doit rendre : vous l'apprendre avant que ce soit votre argent qui l'apprenne. Résistez à la tentation de retoucher les paramètres jusqu'à ce que « ça marche » : chaque essai gonfle le compteur, et le Deflated Sharpe Ratio s'en souviendra.
Étape 7 — Pour aller plus loin
Dimensionner au risque (ATR). Notre « % du capital » engage 20 % du capital quel que soit le climat de volatilité. Le dimensionnement au risque vise autre chose : risquer le même pourcentage de capital à chaque trade, en prenant des positions plus petites quand la volatilité monte. Les formulaires ne le proposent pas — il passe par l'export/import JSON. Sur la page de la stratégie : Exporter JSON, puis Copier. Dans Stratégies → Créer une nouvelle stratégie → Éditeur avancé → Importer du JSON, collez le document en remplaçant son bloc position_sizing par :
json
"position_sizing": {
"method": "atr_risk",
"atr_period": 14,
"atr_multiplier": 2.0,
"risk_percent": 1.0
}— soit : risquer 1 % du capital par trade, pour un stop implicite à 2 ATR(14). L'éditeur affiche Dimensionnement importé sans chercher à le réécrire. Changez le nom (Pullback en tendance (ATR)), créez, relancez le même backtest et comparez les deux runs — même logique d'entrée et de sortie, profil de risque différent.
La version short. Dupliquez la stratégie et inversez le miroir : SMA 10 semaines monte au-dessus du prix (tendance baissière), RSI 2 monte au-dessus de 75 (rebond à vendre), action Entrée short. Gardez en tête ce que la page 06 dit du short simulé : ni coût d'emprunt, ni marge.
L'intraday. Chaque feuille de condition peut viser 1Hour ou plus fin — le run s'exécute alors sur ce timeframe. Lisez d'abord les limites de couverture intraday des fournisseurs de données dans la page 06.
Et ensuite ? La même stratégie sur un autre symbole (le formulaire de backtest suffit — la stratégie n'est pas liée à AAPL), le mode Rolling si vous soupçonnez un changement de régime, et le compteur d'essais qui, lui, n'oublie rien.
