Finance

Les étapes clés pour réussir en trading automatique

Pour le 16e épisode de « How to ThinkScript », nous allons changer de vitesse et explorer l’écriture de code ThinkScript pour atteindre le trading automatisé dans ThinkOrSwim, autant que possible.

Avant d’aller plus loin, il faut être clair : chaque déclenchement de condition demande encore d’écrire le code manuellement. Impossible, à ce jour, de rendre ThinkOrSwim totalement autonome sur la plateforme. L’automatisation complète reste hors de portée, du moins pour l’instant.

Malgré cette limite, s’appuyer sur ThinkScript reste une arme redoutable pour exploiter les schémas détectés sur des graphiques à long terme. Pourquoi cette préférence pour les horizons étendus ? Les stratégies décrites ici réclament patience et observation régulière, afin de vérifier si les conditions apparaissent ou non sur les graphiques.

Pour ceux qui aiment structurer leur approche, une large part du processus devient mécanique et peut être déléguée à ThinkOrSwim. L’idée : automatiser autant d’étapes que possible pour fluidifier la gestion de ses positions.

Petit rappel : tout ceci reste du terrain expérimental. Avant de lancer la moindre stratégie, testez toujours vos scripts et vos idées sur PaperMoney. Cela évite bien des mauvaises surprises.

Entrons dans le vif du sujet.

Voici le plan détaillé des points à explorer :

  • Tutoriel vidéo sur le trading automatisé dans ThinkorSwim
  • Présentation de la Volatility Box
  • Pourquoi automatiser son trading ?
  • Présentation de la fenêtre des déclencheurs automatisés
  • Les 8 scénarios de déclenchement à construire ensemble
  • Scénario 1 : Liste des tendances nocturnes
  • Scénario 2 : Condor de fer en phase de consolidation
  • Scénario 3 : Appel couvert automatique sur extension Fibonacci
  • Scénario 4 : Achat de put sur signal baissier du RSI
  • Scénario 5 : Achat d’actions lors d’un retour sur la 34 EMA
  • Scénario 6 : Vente de position lorsque le Squeeze s’essouffle
  • Scénario 7 : Combinaison de plusieurs indicateurs
  • Scénario 8a : Achat lors d’extractions de volatilité implicite (entrée)
  • Scénario 8b : Vente lorsque la tendance se fissure
  • Autres pistes à explorer
  • Téléchargement
  • Tutoriel vidéo de trading automatisé dans ThinkorSwim

    Suivez ce tutoriel vidéo pour découvrir comment utiliser les fonctionnalités d’automatisation sur ThinkorSwim, accompagné des extraits de code détaillés plus bas.

    Un PDF regroupant tous les scripts est disponible gratuitement juste en dessous.

    Volatility Box : Invitation

    Bienvenue chez TOS Indicators.com, le berceau de la Volatility Box.

    La Volatility Box, c’est notre outil de prédilection pour détecter des opportunités et générer des profits réguliers sur le marché. Notre petite équipe s’active chaque soir, après la clôture, pour disséquer des milliers de données et affiner sans cesse les niveaux de prix des boîtes de volatilité.

    Deux boîtes de volatilité sont proposées : l’une dédiée aux contrats à terme, l’autre aux actions.

    Voici ce que propose la boîte de volatilité « contrats à terme » :

    • 4 modèles de volatilité pour chaque marché couvert
    • Prise en charge de 9 marchés à terme (/ES, /NQ, /YM, /RTY, /CL, /GC, /ZB, /HG, /NG)
    • Guide vidéo pour configurer la boîte
    • Plan de trading inclus
    • Accès à toutes les ressources réservées aux membres, dont la Squeeze Course

    La boîte « actions » comprend : Inscrivez-vous à la boîte Volatility Box « contrats à terme » ici.

    • Plateforme web puissante pour trader les actions de façon méthodique
    • Plus de 8 200 actions et ETF disponibles, accompagnés de niveaux de prix quotidiens prédéfinis
    • Scanner temps réel pour repérer les titres liquides offrant une configuration Volatility Box active ; il suffit ensuite d’ajouter vos choix à votre dashboard personnel
    • Service totalement indépendant de la plateforme ThinkorSwim, utilisable même sans y être inscrit
    • Ressources membres incluses, comme la Squeeze Course

    Inscrivez-vous à la boîte Volatility Box « actions » ici. Pour ceux qui combinent actions et contrats à terme, contactez-nous à contact@tosindicators.com : une formule groupée sur-mesure vous attend.

    Rejoignez la communauté Volatility Box, prenez une longueur d’avance et commencez à trader différemment dès aujourd’hui.

    Pourquoi s’orienter vers le trading automatisé ?

    Souvent, les stratégies et modèles que l’on souhaite appliquer ont déjà été éprouvés, par soi-même ou par d’autres. Rares sont les idées vraiment inédites dans ce domaine.

    La différence entre ceux qui progressent et les autres ? L’exécution fidèle du plan. Chacun a un plan sur le papier, mais lorsque le moment d’entrer en position arrive, la discipline flanche parfois.

    L’un des atouts majeurs de l’automatisation sur ThinkorSwim, c’est justement de pouvoir transposer ce plan en code, puis de le laisser tourner : dès que les conditions sont réunies, l’ordre s’exécute, sans hésitation ni surinterprétation.

    Ce mécanisme éloigne l’émotionnel de l’équation. Plus besoin de se demander, minute après minute, si le mouvement va se poursuivre ou non. Fini les vérifications compulsives des graphiques pour surveiller un déclenchement sur SPY ou ailleurs.

    À mesure que l’on multiplie les stratégies, la gestion devient vite complexe. C’est là que ThinkorSwim tire son épingle du jeu : la plateforme prend en charge la majorité du travail répétitif.

    Cela dit, ThinkorSwim n’a pas été conçue pour du trading automatisé pur et dur. Soyons lucides : ses fonctionnalités restent limitées, notamment en termes d’études et de fonctions intégrées.

    Par exemple, tenter d’intégrer des études complexes comme Market Pulse ou vScore génère souvent une ribambelle d’erreurs, notamment à cause de la gestion des variables ou de la non-prise en charge de certains opérateurs.

    En résumé, la fenêtre « Déclencheurs de trading automatisés » propose moins de profondeur que le menu d’études classique de la plateforme.

    Autre bémol : on perd la capacité d’analyser les données de marché en temps réel au moment de l’entrée, ce qui peut priver d’informations précieuses issues du volume ou d’indicateurs maison.

    Malgré tout, pour ceux qui hésitent à acheter lors de retours dans la tendance, ces scripts allègent la pression : il devient possible de créer une condition automatique pour acheter, par exemple, Microsoft dès qu’il revient sur la 34 EMA.

    Alors, comment transformer ces limites en atouts pour son propre trading ?

    Présentation de la fenêtre des déclencheurs automatisés

    Pour accéder à la fenêtre de trading automatisé, commencez par créer un ordre dans ThinkorSwim.

    Une fois l’ordre placé dans l’onglet « Trade », cliquez sur l’icône engrenage pour ouvrir le panneau dédié à l’automatisation :

    Voici ce que vous pouvez ajuster :

    • Limite liée à : choisissez de lier le prix d’exécution à la fourchette qui vous intéresse (bid, ask, mid, dernière transaction). Par exemple, lors d’un achat sur repli, préférez « Bid » ou « Mid » pour éviter les achats impulsifs hors de prix.
    • Conditions : personnalisez la méthode en optant pour une étude, puis saisissez votre code ThinkScript ou référencez une étude préalable pour créer vos propres conditions d’automatisation.

    Pour lancer l’imagination, voici quelques pistes de scénarios à automatiser.

    Les 8 scénarios de déclenchement à construire

    • Scénario 1 : Achat automatique de MSFT si le cours dépasse 175 $ dans les 15 premières minutes
    • Scénario 2 : Vente d’un Iron Condor sur HD lorsque le prix oscille entre 195 $ et 200 $
    • Scénario 3 : Appel couvert automatique sur 100 actions LVGO lorsqu’on atteint l’extension 2.00, pour générer un revenu sur une position gagnante
    • Scénario 4 : Achat de put dès que le RSI envoie un signal de rupture baissier
    • Scénario 5 : Achat d’actions dès qu’un repli touche la 34 EMA (avec les moyennes mobiles alignées), déclenché avec une commande OCO
    • Scénario 6 : Fermeture de position lorsque l’indicateur Squeeze montre un affaiblissement de la dynamique
    • Scénario 7 : Achat d’un call présélectionné si compression, volume supérieur à la moyenne et EMA en phase avec la tendance
    • Scénario 8 : Entrée sur baisse de volatilité implicite en tendance haussière forte, et sortie automatique si les EMA ne sont plus empilées (sur une unité de temps inférieure)

    Scénario 1 : Liste des tendances nocturnes

    L’étude intégrée sert ici de socle. Chaque soir, nous dressons une liste d’actions et d’ETF susceptibles de prolonger leur tendance le lendemain. Cette sélection est transmise par mail à tous les membres Volatility Box, avant l’ouverture des marchés.

    Dans ce scénario, l’idée est d’acheter Microsoft (MSFT) si le prix franchit 179,18 $ dans le premier quart d’heure de cotation.

    Aucun script particulier n’est requis : tout se règle directement en personnalisant les conditions dans le volet « Déclencheurs » de ThinkorSwim.

    Scénario 1 bouclé. Passons à la suite.

    Scénario 2 : Condor de fer en phase de consolidation

    Supposons que vous identifiiez une phase de consolidation sur Home Depot (HD) : l’objectif ici est de vendre un Iron Condor dès que le prix évolue entre 195 $ et 200 $.

    La configuration recoupe souvent la ligne de l’indicateur Market Pulse, offrant alors un argument supplémentaire pour jouer la stagnation.

    Encore une fois, ces exemples sont purement pédagogiques, n’allez pas les exécuter tels quels.

    Peut-être souhaitez-vous attendre un léger repli avant de vendre le Condor de fer, histoire d’optimiser l’entrée.

    Le script ThinkScript correspondant reste accessible :

    plot signal = if close >= 195 and close

    Il suffit alors de relier cette condition à la demande ou au prix moyen, puis de paramétrer l’ordre en GTC. Une expiration peut aussi être fixée, par exemple à la fin de la semaine.

    Scénario 3 : Appel couvert automatique sur extension Fib

    Imaginons que vous déteniez déjà 100 actions de Livongo Health (LVGO), qui approche le retracement 1.618.

    Si vous estimez que le potentiel haussier s’amenuise au-dessus du niveau 2.00 (44,88 $), vous pouvez déclencher la vente d’un call couvert sur cette position, sans attendre devant l’écran ni installer d’alerte, le script s’en charge.

    Le but ? Vendre automatiquement un call 45 $ dès que le prix touche le retracement 2.00 à 44,88 $. C’est une façon de générer un revenu supplémentaire sur une position déjà dans le vert.

    Aucun code n’est requis : les conditions se règlent via l’éditeur. Sélectionnez l’option d’achat 45 $ dans la chaîne d’options, puis personnalisez l’automatisation :

    De préférence, collez-vous à l’offre pour maximiser le crédit (ou au prix médian), et paramétrez l’ordre en GTC.

    Scénario 4 : Achat de put sur signal baissier du RSI

    Ce scénario s’appuie sur le signal de rupture baissière du RSI. Plus l’horizon de temps est long, plus le signal a de poids.

    Exemple : sur un graphique daily du SPY, il serait pertinent d’acheter un put avec au moins 90 jours d’échéance, pour bénéficier du temps sans avoir à reprogrammer le déclencheur chaque mois.

    Le script est succinct et s’attache au volet du put ciblé :

    plot signal = RSI().DownSignal[1];

    L’indice [1] garantit que le signal a bien été validé sur la barre précédente, et non en formation.

    Scénario 5 : Achat d’actions lors d’un retour sur la 34 EMA

    Ici, on code une entrée sur un titre dont les moyennes mobiles (8, 21, 34 EMA) sont empilées de façon haussière, signe d’une tendance affirmée.

    Concept déjà abordé dans nos tutoriels précédents, notamment le Simple Breakout Tool.

    Dans ce contexte, acheter sur repli à la 34 EMA permet de surfer sur la tendance.

    Le script ci-dessous s’applique directement :

    def EMA8 = ExpAverage(close, 8); def EMA21 = ExpAverage(close, 21); def EMA34 = ExpAverage(close, 34); def stacked = if EMA8 > EMA21 and EMA21 > EMA34 then 1 else 0; plot signal = if stacked and close

    Scénario 6 : Vente de position lorsque le Squeeze s’essouffle

    Dans ce cas, vous êtes déjà en position, suite à un déclenchement par TTM_Squeeze. L’enjeu est de sortir dès que l’histogramme indique une perte de momentum.

    Le script ThinkScript correspondant :

    plot signal = if TTM_Squeeze().Histogram[1]

    Scénario 7 : Combinaison de plusieurs indicateurs

    Pour ce septième scénario, l’objectif est de combiner plusieurs conditions en un seul déclencheur. Ce qui compte ici, c’est moins la nature précise des indicateurs que la manière de les superposer pour contourner les limitations de ThinkorSwim.

    La condition testée : achat d’un call présélectionné si :

    • Il y a un Squeeze
    • Le volume dépasse la moyenne
    • Les EMA sont alignées avec la tendance

    Script proposé :

    def EMA8 = ExpAverage(close, 8); def EMA21 = ExpAverage(close, 21); def EMA34 = ExpAverage(close, 34); def bullish = if EMA8 > EMA21 and EMA21 > EMA34 then 1 else 0; def squeeze = if TTM_Squeeze().squeezeAlert == 0 then 1 else 0; def greaterVol = VolumeAvg().Vol > VolumeAvg().volavg and close > close[1]; def conditions = bullish and squeeze and greaterVol; plot signal = conditions[1];

    Scénario 8a : Achat lors d’extractions de volatilité implicite (entrée)

    Pour ce scénario final, il s’agit d’automatiser l’achat lors de retraits de volatilité implicite vers la 34 EMA. Ici, les moyennes mobiles sont calculées non pas sur le prix, mais sur la volatilité implicite.

    Cela ouvre la porte à des analyses multi-couches et permet de visualiser précisément les moments où les conditions étaient réunies, et ce qu’il s’est passé ensuite.

    Sur ce scénario, on utilise la commande « Acheter personnalisée » reliée à un stop :

    Voici le script d’entrée :

    def EMA8 = ExpAverage(close, 8); def EMA21 = ExpAverage(close, 21); def EMA34 = ExpAverage(close, 34); def stacked = if EMA8 > EMA21 and EMA21 > EMA34 then 1 else 0; def IMPVol = IMP_VOLATILITY(); def IV8 = ExpAverage(IMPVol, 8); def IV21 = ExpAverage(IMPVol, 21); def IV34 = ExpAverage(IMPVol, 34); def IVStacked = if IV8 > IV21 and IV21 > IV34 then 1 else 0; def conditions = if stacked and IVStacked and IMPVol

    Scénario 8b : Vente lorsque la tendance se fissure

    Pour compléter l’automatisation, on ajoute un script personnalisé de sortie. L’ordre de clôture s’appuie ici sur la désorganisation des EMA.

    Script de sortie :

    def EMA8 = ExpAverage(close, 8); def EMA21 = ExpAverage(close, 21); def EMA34 = ExpAverage(close, 34); def stacked = if EMA8 > EMA21 and EMA21 > EMA34 then 1 else 0; def conditions = if stacked[2] and !stacked[1] then 1 else 0; plot signal = conditions;

    Autrement dit, dès que les trois EMA cessent d’être empilées, la position est clôturée, qu’elle soit gagnante ou perdante.

    Voici à quoi ressemble la configuration finale, codes d’achat et de vente inclus :

    Le tour est joué.

    Huit scénarios passés en revue, chacun proche de situations rencontrées en trading réel. L’automatisation sur ThinkorSwim a ses limites, mais elle reste un précieux levier pour exploiter la préparation et la rigueur du trader.

    Quelles autres pistes explorer ?

    Une fois familiarisé avec le fonctionnement du trading automatisé sur ThinkorSwim, il ne reste plus qu’à pousser l’expérimentation.

    Voici quelques directions à tester :

    • Déployer vos propres configurations et observer les résultats
    • En cas de message d’erreur lié à la complexité, décomposer l’indicateur en modules plus simples pour contourner la limitation
    • Utiliser PaperMoney comme laboratoire d’essai
    • Mettre à profit les ordres GTC pour tester des idées de stratégie, et valider leur robustesse dans le temps (véritable backtesting semi-automatisé)
    • Explorer les différentes formes d’ordres, les supports multiples TRG, ainsi que l’intégration d’études personnalisées

    Téléchargement

    Téléchargez le PDF regroupant les extraits de code pour le trading semi-automatisé sur ThinkorSwim en cliquant ci-dessous.

    Télécharger PDF et Code