Bull/Bear Strength Index - Python Trading Strategy
Comment lire la force du marché pour répondre à une question fondamentale, le marché est-il vraiment haussier ? Ou est-il seulement en train de faire semblant sur un horizon de temps trop court pour être fiable.
Ainsi le Bull/Bear Strength Index (BSI) croise trois horizons de temps différents, trois échelles de temps court terme, moyen terme et long terme pour n'autoriser la prise de décision que si les trois sont d'accord.
Cette stratégie fait partie des scripts utilisateur de TradingInPython, la plateforme de trading et d'analyse technique développée en Python.
Le code source complet de cette stratégie est disponible ici :
Et peut s'exécuter soit en stand alone pour un seul ticker soit avec la plateforme pour profiter le l'API.
Architecture du BSI
Cet un indicateur composé qui s'affiche sur le graphe du prix et sous forme d'histogrammes, CT/MT/LT.
| Architecture de l'indicateur BSI |
Le principe du croisement de trois échelles de temps
Un signal haussier en clôture journalière signifie pas grand-chose si la tendance de fond, elle, est baissière. Le BSI part de ce constat et calcule un biais de marché sur trois horizons distincts, chacun ayant un rôle précis :
- BSI LT (long terme) - La boussole. Il donne le biais de fond du marché, celui qu'on ne doit jamais ignorer.
- BSI MT (moyen terme) - l'indicateur stratégique. Il aide à décider des prises de bénéfices et du calibrage de position.
- BSI CT (court terme) - l'indicateur chirurgical. Il sert au timing précis d'entrée et de sortie.
L'idée est de vérifier si les trois horizons racontent la même histoire avant d'agir.
Les quatre composants visuels
Le Cloud BSI
Ce sont deux moyennes mobiles exponentielles (EMA 9 et EMA 26) forment un nuage coloré, sur le même principe que la "conversion line" et la "base line" de l'indicateur Ichimoku.
Quand l'EMA rapide est au-dessus de l'EMA lente, le nuage est vert ; dans le cas contraire, il est rouge. C'est la lecture la plus immédiate de la tendance de court-moyen terme.
Le Stop BSI
C'est un trailing stop basé sur l'ATR (Average True Range), construit sur le même principe que l'indicateur technique SuperTrend. Il matérialise un niveau de protection qui suit le prix et bascule de sens quand la tendance se retourne
Il peut être utiliser pour visualiser un stop-loss dynamique.
La Synergie multi-timeframe
C'est le cœur du système de filtrage des faux signaux. Le script calcule un biais haussier ou baissier sur les trois horizons (CT, MT, LT) et applique une règle d'unanimité stricte :
- les trois horizons haussiers : synergie verte, autorisation d'aller long
- les trois horizons baissiers : synergie rouge, autorisation d'aller short
- désaccord entre horizons : zone blanche, on ne trade pas
Cette zone blanche est un choix de conception assumé : mieux vaut rater une entrée que d'ouvrir une position en désaccord avec sa propre analyse.
Le fond du graphique de prix se colore en fonction de cette synergie, ce qui permet de voir en un coup d'œil les périodes où le marché est réellement aligné sur les trois échelles de temps.
Les histogrammes
Ce sont trois oscillateurs empilés sous le graphique de prix, un par horizon (9/26, 21/55, 50/200), construits sur le principe d'un MACD.
Chaque histogramme est coloré selon le signe de son propre signal, ce qui permet de repérer les divergences et le ralentissement du momentum, indépendamment du biais de tendance affiché en fond de case.
Bull/Bear Strength Index pour NVIDIA
C'est dernier jours le BSI donne cette analyse graphique pour l'action NVIDIA :
| NVIDIA - Bull/Bear Strength Index |
Comment transformer le BSI en stratégie de trading ?
Formalisons quelques règles :
1. Par exemple le BSI Long Terme comme filtre de fond :
- EMA 50 > EMA 200 : Marché en régime Bull
- EMA 50 < EMA 200 : Marché en régime Bear
Première règle :
On ne cherche des positions Long que dans un régime Bull et des positions Short que dans un régime Bear.
2. Utiliser le BSI MT Moyen Terme comme filtre stratégique :
Il permet de vérifier si le mouvement intermédiaire va dans le même sens :
- LONG : EMA 50 > EMA 200 et EMA 21 > EMA 55 : Contexte Long confirmé
- SHORT : EMA 50 < EMA 200 et EMA 21 < EMA 55 : Contexte Short confirmé
Donc :
- LT Bull et MT Bull : Contexte Long
- LT Bear et MT Bear : Contexte Short
C'est une première forme de confluence multi-timeframe.
3. Utiliser le BSI Cour Terme comme déclencheur :
Il va servir à chercher le moment où entrer.
Par exemple, pour une position Long :
- LT Bull et MT Bull et CT passe de Bear à Bull
Le marché est haussier sur le long terme et le moyen terme, puis le momentum court terme repasse positif. Le signal court terme est maintenant conditionné par la tendance de fond.
Voici donc les rôles des différents éléments qui compose le BSI :
| Élément | Fonction |
|---|---|
| BSI LT | Déterminer le régime |
| BSI MT | Confirmer la tendance |
| BSI CT | Détecter le momentum / timing |
| Synergie | Identifier l'alignement |
| Stop BSI | Gérer la sortie |
La Synergie nous permet d'instaurer deux règles supplémentaires :
En vert : on peut rechercher des achats, mais on ne doit pas vendre.
En rouge : on peut rechercher des ventes/shorts, mais on ne doit pas acheter.
Exemple complet d'une stratégie BSI Long
Étape 1 : LT Bear, MT Bear, CT Bear et Synergie rouge
=> aucune position Long
Étape 2 : Le marché commence à se retourner :
LT Bear et MT Bull et CT Bull Synergie blanc
=> toujours aucune position
Le marché est en transition.
Étape 3 : La tendance LT finit par devenir haussière :
LT Bull, MT Bull, CT Bull et Synergie verte
evénement déclenchant : Synergie passe de blanc à vert
=> entrée Long
Étape 4 : Le marché poursuit la tendance :
LT Bull, MT Bull, CT Bull et Stop BSI Bull
=> position conservée.
Étape 5 : Le momentum CT ralentit :
LT Bull, MT Bull, CT Bear et Synergie passe de vert à blanc
Mais le Stop BSI est encore Bull.
=> On peut conserver la position.
Le ralentissement CT n'est pas nécessairement une inversion.
Étape 6 : Le Stop BSI se retourne :
Stop BSI passe de Bull à Bear
=> EXIT LONG.
La stratégie laisse donc courir la tendance malgré le ralentissement temporaire du momentum.
Exercez votre compréhension de cette stratégie sur le graphique suivant en trouvant les points d'entrée et les points de sortie :
| Stratégie BSI sur AIR LIQUIDE |
Bien sûr à vous de peaufiner votre stratégie d'en trouver une autre qui vous semble fonctionner en fonction de votre trading et des risques que vous souhaitez prendre.
Sous le capot
Le script s'appuie sur des bibliothèques Python classiques de l'analyse financière : pandas et numpy pour le calcul, matplotlib pour le rendu graphique, et yfinance pour la récupération des données de marché.
Détails d'implémentation si vous souhaitez réutiliser ou adapter ce code :
L'axe des abscisses est positionnel (un entier par barre tradée) plutôt que temporel. Cela évite "les trous" visuels liés aux week-ends et jours fériés qu'un axe de dates classique laisserait apparaître.
Les vraies dates sont réinjectées après coup, au niveau de l'affichage des ticks et du survol de la souris.
Le calcul du trailing stop (fonction stop_bsi) reproduit fidèlement la logique du SuperTrend : bandes supérieure et inférieure basées sur l'ATR, verrouillage progressif des niveaux, et bascule de direction dès que le prix de clôture franchit la bande active.
La fonction de synergie normalise soigneusement les types booléens lors du réindexage (infer_objects), pour éviter les avertissements pandas liés au changement de comportement de fillna/ffill sur des colonnes booléennes.
Le script peut être exécuté seul stand alone (bloc __main__, affichage direct dans une fenêtre Tkinter) ou appelé depuis TradingInPython via son architecture user_scripts, qui délègue l'affichage de la figure au thread principal pour rester compatible avec Matplotlib.
Backtesting de la stratégie
Mettez des étoiles dans le projet GitHub, abonnez-vous pour suivre les évolutions de TradingInPython.
Nous verrons bientôt comment créer les signaux automatiques pour backtester totalement cette stratégie.
Conclusion
Le Bull/Bear Strength Index n'est pas un indicateur miracle qui prédit le marché : c'est un cadre de discipline. Il force à vérifier que le court terme, le moyen terme et le long terme racontent la même histoire avant de prendre position, et il matérialise visuellement les moments où ce n'est pas le cas.
Comme tout indicateur technique, il ne remplace ni la gestion du risque ni le bon sens mais il donne un filtre clair et reproductible pour éviter d'entrer en désaccord avec sa propre analyse du marché.
Le code complet, ainsi que d'autres stratégies Python prêtes à l'emploi, sont disponibles sur le dépôt GitHub de TradingInPython.
Cet article est fourni à titre pédagogique et ne constitue pas un conseil en investissement.
Commentaires
Enregistrer un commentaire
Merci pour votre commentaire.
S'il n'apparaît pas tout de suite c'est qu'il est en attente de modération.
Merci de votre compréhension.