How To Use
Comment utiliser la stratégie AIO Top/Bottom : trading automatisé des retournements et configuration des webhooks
Du signal à l'exécution : ce que la version Stratégie fait différemment
L'indicateur AIO Top/Bottom Confidence vous indique quand un retournement est probable. La stratégie AIO Top/Bottom reprend ce même moteur de scoring à 9 facteurs et y ajoute la couche d'exécution complète : entrées automatisées en short et en long, placement du stop-loss et du take-profit basé sur l'ATR, un trailing stop optionnel, une gestion du breakeven, et un système d'alertes prêt pour les webhooks capable d'acheminer les ordres directement vers un exchange comme Binance.
Pour la plupart des traders discrétionnaires qui lisent un indicateur de signal et cliquent manuellement leurs entrées, l'écart entre un signal et une position exécutée introduit hésitation, slippage et incohérence. La version Stratégie élimine cet écart. Lorsque le score de confiance franchit le seuil et que la porte de structure s'active, la stratégie entre immédiatement à la clôture de la bougie — aucune étape manuelle requise.
Cet article explique comment la stratégie génère ses signaux, comment elle gère les trades, comment la configurer correctement pour le trading en direct, et comment brancher le système d'alertes webhook afin que TradingView envoie automatiquement des ordres vers votre exchange.
Le moteur de signal : 9 facteurs, un seul score
La logique de signal est identique à celle de l'indicateur AIO Top/Bottom Confidence — un système de scoring pondéré sur neuf conditions indépendantes. Comprendre ces pondérations est important car elles déterminent quelles configurations produisent les signaux les plus fiables.
La porte obligatoire : BOS ou MSS
Aucune entrée ne se déclenche à moins qu'une rupture de structure ne soit présente. Ce point n'est pas négociable. La stratégie vérifie deux formes de rupture de structure au cours des bosLen dernières bougies (8 par défaut) :
- BOS — Break of Structure (20 pts) : Le prix clôture au-delà du plus haut ou du plus bas récent. Simple, mais sans confirmation de momentum.
- MSS — Market Structure Shift (25 pts) : BOS plus une exigence de momentum — la bougie de rupture doit avoir un corps supérieur à
ATR(14) × 0.75et clôturer dans le sens de la rupture. Le MSS vaut 5 points de plus car les ruptures de structure confirmées par le momentum ont un suivi nettement meilleur.
Lorsque vous voyez un signal sur le graphique, la première chose à vérifier dans le tableau est de savoir si c'est un BOS ou un MSS qui s'est déclenché. Un signal basé sur un MSS à 65% de confiance est un trade fondamentalement différent d'un signal basé sur un BOS à 65% — le premier a un déplacement de momentum confirmé ; le second n'a qu'une clôture de prix passive.
Les huit autres facteurs et leurs pondérations
| Facteur | Poids | Ce qu'il vérifie |
|---|---|---|
| Épuisement | 15 | Range de bougie > ATR × 1.5, clôture contre le sens du mouvement |
| Retest | 10 | Le prix est revenu au niveau de swing dans les retestBars bougies (±0.5%) |
| Piège | 10 | La mèche pénètre le niveau de swing, la clôture inverse — mèche/range > 30% |
| Alignement HTF | 15 | La clôture 4H vs l'EMA(50) 4H confirme le sens du retournement |
| Motif en arc | 10 | Les 5 derniers hauts/bas de swing correspondent à une courbe de décélération parabolique |
| Pic de volume | 10 | Volume > SMA(20) × 1.5 au point de retournement |
| Contexte de tendance | 10 | EMA(20) vs EMA(50) confirme l'existence d'une tendance antérieure |
| Forme de bougie | 5 | Pin bar, doji, ou bougie englobante au niveau de retournement |
Total possible avant le plafond de 100 points : MSS (25) + Épuisement (15) + HTF (15) + BOS (20, mais MSS l'inclut déjà) + Retest (10) + Piège (10) + Arc (10) + Volume (10) + Tendance (10) + Bougie (5) = 110 points bruts, plafonnés à 100. En pratique, il est rare de voir les neuf facteurs se déclencher simultanément — un score de 70 à 80% signifie généralement que cinq ou six facteurs ont convergé, ce qui constitue un setup véritablement solide.
Le filtre de zone et le cooldown
Deux portes supplémentaires empêchent le spam de signaux. D'abord, le filtre de zone : la stratégie calcule le point médian entre le plus haut et le plus bas sur les zoneLookback dernières bougies (100 par défaut). Les signaux TOP ne se déclenchent que lorsque le prix est au-dessus de ce point médian ; les signaux BOT uniquement lorsque le prix est en dessous. Cela élimine la situation absurde d'un signal « TOP » se déclenchant alors que le prix est déjà proche du bas de son range.
Ensuite, le cooldown de signal (cooldownBars = 10) : un minimum de 10 bougies doit s'écouler entre deux signaux de même direction. Sur un graphique en 1H, cela représente environ une demi-session de trading. Réduisez à 5–7 bougies sur les timeframes inférieurs ; augmentez à 15–20 pour les graphiques journaliers ou pendant les périodes de faible volatilité où une consolidation latérale peut produire des signaux faibles répétés provenant de la même zone structurelle.
Gestion du trade : SL, TP, et le trailing stop
Une fois qu'un signal se déclenche à la clôture d'une bougie, la stratégie place une entrée et configure immédiatement les règles de sortie. Toutes les distances sont basées sur l'ATR(14), ce qui signifie qu'elles s'adaptent automatiquement à la volatilité actuelle de l'instrument.
Stop-loss et take-profit
- Stop-Loss :
ATR(14) × slAtrMult(1.5 par défaut). Pour un SHORT, le SL est placé au-dessus de la clôture d'entrée ; pour un LONG, en dessous. Avec les réglages par défaut sur un graphique BTC en 1H avec un ATR d'environ 1 800 $, le SL se situe à environ 2 700 $ de l'entrée — assez large pour absorber le bruit normal post-signal, mais assez serré pour définir un niveau d'invalidation clair. - Take-Profit :
ATR(14) × tpAtrMult(3.0 par défaut). Cela donne un ratio risque/récompense théorique de 2:1 (3.0 TP / 1.5 SL) avant même la prise en compte du trailing stop. En pratique, le trail capture davantage lorsque les tendances se prolongent au-delà de l'objectif TP.
Une nuance importante : ce ne sont pas des niveaux de prix fixes. Ils sont recalculés à chaque bougie d'entrée en utilisant la valeur actuelle de l'ATR(14). Un signal pendant une expansion de forte volatilité obtient un SL et un TP plus larges que la même configuration de signal pendant une période calme en range. C'est intentionnel — le dimensionnement normalisé par la volatilité signifie que vous n'êtes pas stoppé de manière disproportionnée sur les entrées à forte volatilité.
Le trailing stop : le paramètre le plus important
Le trailing stop est là où réside l'essentiel de la complexité du trading en direct. Deux paramètres le contrôlent :
- Distance du trail (
trailAtrMult = 0.10) : Le trailing stop suit le prix à une distance deATR(14) × 0.10. Avec BTC à 70K$ et un ATR d'environ 1 800$, cela représente environ 180$ — soit environ 3 fois la latence typique du webhook TradingView→Binance et le slippage d'ordre au marché (~60$ à ce niveau de prix). La valeur par défaut de 0.10 a été calibrée spécifiquement pour que le trail soit confortablement plus large que le frottement d'exécution réel tout en capturant la majorité d'un mouvement de retournement. Ne descendez pas en dessous de 0.075 pour le trading en direct ; en dessous de ce seuil, la latence du webhook seule peut provoquer des sorties à des prix moins favorables que l'objectif du trail. - Activation du trail (
trailActivateR = 0.4) : Le trailing stop ne s'active pas tant que le prix n'a pas évolué d'au moins0.4 × le risque initialen votre faveur. Avec un stop-loss de 1.5× ATR, cela signifie que le trail s'active après que le prix a évolué de 0.6× ATR (40% du risque de 1.5× ATR) dans le sens profitable. Cette valeur a été relevée de 0.2 à 0.4 car l'ancien réglage par défaut provoquait une activation trop précoce du trail — l'émulateur de broker de TradingView simule le chemin intra-bougie de chaque bougie, et un trail actif immédiatement dès l'entrée produit des simulations d'exécution qui ne reflètent pas le comportement réel des ordres en direct. La valeur par défaut de 0.4 produit des résultats de backtest nettement plus représentatifs de la performance réelle. Ne réglez jamais ce paramètre à zéro —trail_price=naen Pine déclenche un bug connu de l'émulateur qui fait s'effondrer les taux de réussite sur les comptes en direct.
Stop breakeven (optionnel)
Le stop breakeven (useBEStop, désactivé par défaut) déplace le stop-loss au prix d'entrée une fois que le prix a évolué de beTriggerR × le risque initial en votre faveur (1.0× par défaut). Activer cette option réduit le drawdown sur les trades gagnants qui inversent avant l'activation du trail. La contrepartie est qu'elle clôturera certains trades à breakeven qui auraient éventuellement atteint le take-profit. L'opportunité de l'utiliser dépend de votre marché : en crypto pendant les journées de forte tendance volatile, le stop BE clôture fréquemment les trades prématurément alors que le prix se rétracte avant de poursuivre. Sur des instruments plus ordonnés comme les futures d'indices, il tend à améliorer la courbe d'équité.
Configuration des alertes webhook pour l'exécution en direct sur exchange
Le système d'alertes est l'endroit où la stratégie passe d'un outil de backtesting à un système de trading en direct. La version actuelle dispose de messages distincts, configurables indépendamment, pour l'entrée et la sortie — une amélioration significative par rapport au précédent système à message unique.
Pourquoi des messages d'entrée et de sortie séparés sont importants
Les ordres d'entrée et de sortie ont des exigences d'exécution fondamentalement différentes. Une entrée se déclenche à la clôture de la bougie sur une bougie confirmée — ce qui signifie que la bougie s'est déjà clôturée au moment où l'alerte se déclenche. Comme le niveau de prix est désormais fixe et ne peut plus évoluer, placer un ordre Limit à ce prix de clôture exact offre une probabilité d'exécution extrêmement élevée. Vous capturez le prix de clôture au lieu de payer le spread et le slippage d'un ordre au marché.
Une sortie est différente. Lorsque le trailing stop est touché en milieu de bougie, vous devez sortir immédiatement — un ordre limit au prix du trail risque de ne pas s'exécuter si le prix fait un gap au travers. Les ordres de sortie utilisent des ordres au marché avec reduceOnly: true, garantissant que la position se clôture au meilleur bid/ask disponible et qu'aucune position inverse accidentelle ne s'ouvre si l'ordre dépasse.
Configuration des messages d'alerte
Le format de message d'entrée par défaut (compatible avec la plupart des bots webhook, y compris 3Commas, Cornix, et les serveurs webhook Binance personnalisés) ressemble à ceci :
{
"symbol": "{{ticker}}",
"side": "{{strategy.order.action}}",
"positionSide": "BOTH",
"investmentType": "coin_qty",
"qty": "{{strategy.order.contracts}}",
"order_type": "Limit",
"price": "{{strategy.order.price}}",
"reduceOnly": false,
"positionMode": "one_way_mode",
"signalId": "abc",
"uid": "xyz"
}
Remplacez "abc" et "xyz" par vos identifiants de bot réels avant de passer en direct. Les placeholders {{ticker}}, {{strategy.order.action}}, {{strategy.order.contracts}}, et {{strategy.order.price}} sont substitués automatiquement par TradingView lorsque l'alerte se déclenche.
Le message de sortie utilise "price": "market" et "reduceOnly": true :
{
"symbol": "{{ticker}}",
"side": "{{strategy.order.action}}",
"positionSide": "BOTH",
"investmentType": "coin_qty",
"qty": "{{strategy.order.contracts}}",
"price": "market",
"reduceOnly": true,
"positionMode": "one_way_mode",
"signalId": "abc",
"uid": "xyz"
}
Création des alertes sur TradingView
- Ajoutez la stratégie à votre graphique et configurez tous les paramètres pour votre marché et votre timeframe choisis.
- Cliquez sur le bouton « Alertes » (icône cloche) dans TradingView et créez une nouvelle alerte sur la stratégie.
- Réglez la condition sur « Exécutions d'ordres uniquement » — cela se déclenche à chaque exécution d'ordre plutôt qu'à chaque bougie.
- Réglez la fréquence sur « Une fois par clôture de bougie » pour les signaux d'entrée (ils ne se déclenchent que sur des bougies confirmées). Pour les signaux de sortie, la stratégie utilise
barstate.isrealtimeen interne, de sorte que l'alerte se déclenchera en intra-bougie lorsqu'un déclenchement du trail se produit. - Collez votre URL webhook dans le champ « URL du Webhook ».
- Dans le champ « Message », collez le JSON de l'entrée
Entry Alert Message. Créez une deuxième alerte spécifiquement pour les sorties en utilisant le JSON du message de sortie.
Une remarque pratique : les alertes ne se déclenchent qu'une seule fois par bougie par défaut pour une même condition. La stratégie utilise alert.freq_once_per_bar en interne comme mécanisme de déduplication côté serveur, de sorte que même si la condition du trail reste vraie pour plusieurs ticks au sein d'une bougie, une seule alerte de sortie se déclenche par bougie. Cela évite les doubles sorties accidentelles côté exchange.
Modèle d'exécution : pourquoi il a changé par rapport à la version précédente
La version précédente fonctionnait avec process_orders_on_close=true et calc_on_every_tick=false. Cela forçait toutes les exécutions — entrées, sorties, trails — à être simulées à la clôture de la bougie. Des courbes d'équité plus propres, mais une inadéquation fondamentale avec la manière dont les ordres en direct s'exécutent réellement.
La version actuelle utilise process_orders_on_close=false et calc_on_every_tick=true. Cela permet à l'émulateur de broker de simuler les réponses du trailing stop en intra-bougie : si le plus bas intra-bougie d'une bougie touche le niveau du trail sur un LONG, la sortie se simule en milieu de bougie plutôt que d'attendre la clôture. La contrepartie est que la simulation de chemin intra-bougie peut occasionnellement produire des exécutions trop optimistes sur des bougies très larges — mais cela reste plus proche du comportement réel qu'une simulation pure à la clôture, en particulier pour la composante trailing stop qui est intrinsèquement intra-bougie en trading en direct.
La conséquence pratique pour le backtesting : le modèle d'exécution actuel affichera un nombre de trades et des courbes d'équité légèrement différents de la version précédente sur la même période. Aucun des deux n'est « plus précis » en termes absolus, mais le modèle actuel est mieux calibré pour les environnements en direct où les ordres de sortie peuvent s'exécuter, et s'exécutent effectivement, en milieu de bougie.
Lecture des résultats de backtest
Les paramètres de backtest par défaut incluent une commission de 0.05% par côté et ont été calibrés sur des données BTCUSDT.P en 1H. Lors de l'évaluation des résultats, concentrez-vous sur ces métriques :
Ce qu'il faut regarder (et ce qu'il faut ignorer)
- Le taux de réussite pris isolément n'est pas significatif. Une stratégie avec 85% de taux de réussite et un R:R moyen de 0.3 peut être pire qu'une avec 60% de taux de réussite et un R:R de 2.5. Concentrez-vous sur le profit factor (profit brut ÷ perte brute) et l'espérance par trade.
- Le drawdown maximal en % de l'équité compte davantage que le drawdown absolu en dollars. Un drawdown de 1.5% du compte sur 200 trades est acceptable ; 15% ne l'est pas, quel que soit le profit net affiché.
- Un ratio de Sharpe supérieur à 1.5 suggère que la stratégie génère des rendements supérieurs à sa volatilité. En dessous de 1.0, les rendements ne compensent pas le profil de risque.
- Séparez les taux de réussite en long et en short. Si le taux de réussite en short est significativement plus élevé que celui en long, la stratégie a un biais directionnel. Ce n'est pas nécessairement mauvais — certains marchés tendent plus proprement dans une direction — mais cela signifie que la performance de la stratégie dépend en partie du régime de marché, pas uniquement de la qualité du signal.
Tests de résistance avant le passage en direct
Un backtest sur une seule période favorable peut sembler convaincant tout en dissimulant une fragilité. Exécutez la stratégie sur au moins trois régimes de marché distincts avant de risquer du capital réel :
- Une période de forte tendance (par exemple, le bull run BTC de 2020–2021)
- Une période latérale de retour à la moyenne (par exemple, la consolidation BTC fin 2022)
- Une période de choc à forte volatilité (par exemple, tout événement macro majeur — surprises du FOMC, effondrements d'exchanges)
Si la stratégie se dégrade significativement dans un régime mais pas dans les autres, cela vous indique les conditions de marché dans lesquelles vous devriez réduire la taille de position ou suspendre le trading. Une stratégie qui perd de l'argent pendant des marchés latéraux prolongés vous dit quelque chose d'utile : la porte BOS exige une rupture structurelle, mais dans un range, les « ruptures » sont régulièrement invalidées par un retour de prix. Envisagez de relever le seuil de confiance à 65%+ pendant les périodes de faible volatilité connues.
Dimensionnement automatique des ordres : évoluer avec l'équité
La fonctionnalité Auto Order Size (autoOrderSizeEnable) implémente un système simple de dimensionnement de position par paliers. En partant de la taille d'ordre par défaut (orderSizeDef = 0.1 BTC), la stratégie ajoute un palier (orderStep = 0.1 BTC) pour chaque tranche de stepMoney dollars (1 000$ par défaut) de profit cumulé au-dessus du capital initial.
Par exemple : si le capital initial est de 10 000$ et que la stratégie a généré 3 200$ de profit, _orderSteps = floor(3200 / 1000) = 3, donc la taille d'ordre devient 0.1 + 3 × 0.1 = 0.4 BTC. C'est une approche de composition conservatrice — elle augmente progressivement lors des séries gagnantes plutôt que de manière spectaculaire, ce qui limite le drawdown pendant une période perdante après un pic d'équité.
Laissez cette option désactivée pendant les tests initiaux. Ne l'activez qu'après avoir vérifié que la stratégie fonctionne comme prévu sur votre exchange, que votre webhook est fiable, et que vous avez observé au moins 20–30 trades en direct. Augmenter la taille de position sur un système en direct non testé est un moyen simple de transformer de petites erreurs en pertes importantes.
Guide de configuration des paramètres
La plupart des paramètres peuvent être laissés à leurs valeurs par défaut pour BTCUSDT en 1H, qui est la configuration principale calibrée. Les paramètres qui affectent le plus significativement la performance en direct sont :
Paramètres à fort impact
- Lookback BOS (
bosLen = 8) : Un lookback plus court = ruptures de structure plus sensibles = plus de signaux mais plus de faux positifs. Augmentez à 12–15 pour les graphiques à timeframe supérieur (4H, journalier) où la structure devrait être définie sur une fenêtre plus longue. - Cooldown de signal (
cooldownBars = 10) : Sur des graphiques en 15 minutes, 10 bougies ne représentent que 2.5 heures — envisagez de relever à 20–30. Sur les graphiques journaliers, réduisez à 5. - Distance du trail (
trailAtrMult = 0.10) : Ne réduisez pas en dessous de 0.075 pour le trading en direct. Augmentez à 0.15–0.20 si vous souhaitez maintenir vos positions plus longtemps à travers des rétracements plus profonds, en acceptant de rendre davantage sur chaque trade gagnant. - Activation du trail (
trailActivateR = 0.4) : La valeur par défaut de 0.4 reflète le comportement « réaliste en direct ». La relever à 0.6–0.8 fait s'activer le trail plus tard, laissant plus de marge aux trades gagnants au prix de sorties plus fréquentes en stop-loss complet sur des trades qui évoluent brièvement en profit avant de s'inverser. - Timeframe HTF (
htfTF = “240”) : Pour les trades sur graphique journalier, passez à“W”(hebdomadaire). Pour les scalps en 15 minutes, utilisez“60”(1H). Le principe est que le HTF devrait être au moins 4× le timeframe de trading.
Paramètres à faible impact (ajustement fin uniquement)
- Tolérance de retest (
retestPct = 0.5%) : un ajustement de ±0.1–0.2% est peu susceptible de changer significativement le comportement de la stratégie - Ratio Doji (
dojiRatio = 0.1) : la forme de bougie ne contribue que 5 points — pas la peine d'une optimisation approfondie - Score minimal de l'arc (
arcMinScore = 0.015) : laissez tel quel à moins d'avoir une raison spécifique d'être plus ou moins strict concernant la confirmation de l'arc parabolique
Le tableau d'informations : diagnostics en temps réel
Le tableau sur le graphique (en bas à droite par défaut, configurable) affiche la répartition actuelle des facteurs pour TOP et BOT simultanément. En mode Complet, chaque ligne montre si un facteur est actuellement actif. En mode Compact, seuls les scores totaux sont affichés.
Utilisez le tableau comme moniteur pré-signal : si le tableau montre 4 facteurs actifs avec un score de 48% côté BOT, vous savez que la stratégie est proche de se déclencher. Préparez votre taille de position et examinez le contexte du graphique — si un pic de volume se déclenche à la bougie suivante, le score peut dépasser le seuil moyen de 50% et générer un signal. Ce workflow vous permet d'anticiper les signaux plutôt que d'y réagir, ce qui est précieux lorsque vous souhaitez vérifier manuellement le contexte structurel avant que le système automatisé ne prenne le relais.
Points clés à retenir
- BOS/MSS est la porte obligatoire. Chaque signal commence par une rupture de structure. Un signal déclenché par MSS (25 pts) est plus fort qu'un signal basé uniquement sur BOS (20 pts) car le momentum de déplacement est confirmé.
- La distance du trailing stop (0.10× ATR) a été calibrée pour le trading en direct, pas pour l'esthétique visuelle. Elle se situe à environ 3 fois plus large que le frottement d'exécution typique des webhooks d'exchange. Réduire en dessous de 0.075× ATR risque de provoquer des sorties fréquentes du trail causées par la latence de routage des ordres plutôt que par une action de prix significative.
- L'activation du trail à 0.4× le risque évite les artefacts de l'émulateur. L'ancienne valeur par défaut de 0.2 provoquait une simulation par l'émulateur de broker de TradingView d'un comportement du trail qui ne se produit pas en trading en direct. La valeur par défaut de 0.4 produit des résultats de backtest nettement plus représentatifs.
- Utilisez des ordres Limit pour l'entrée, des ordres Market pour la sortie. L'entrée se déclenche à la clôture d'une bougie confirmée (le prix est verrouillé), donc un ordre Limit à la clôture a une probabilité d'exécution quasi certaine. La sortie se déclenche en intra-bougie sur les touches du trail, donc un ordre Market avec
reduceOnly: truegarantit une exécution immédiate sans risque de position inverse. - Des messages d'alerte séparés pour l'entrée et la sortie permettent des types et tailles d'ordres différents. Cela élimine l'inefficacité de frais liée à l'utilisation d'ordres au marché pour les entrées alors que des ordres Limit sont disponibles.
- Testez sur trois régimes de marché (tendance, range, choc) avant le déploiement en direct. Des résultats sur une seule période sont insuffisants pour valider une stratégie multi-conditions.
- Le dimensionnement automatique des ordres est une fonctionnalité post-validation — ne l'activez qu'après avoir confirmé que l'exécution en direct fonctionne de bout en bout avec votre exchange et votre infrastructure webhook spécifiques.