Publié sous forme d'Idée TradingView sur ETHUSDT. Voir le graphique sur TradingView
Un scanner est un classement. Quelque chose décide de l’ordre, et ce n’est en général pas la colonne que vous regardez.
Voici notre propre scanner multi-unités de temps. Il affiche sept lignes sur vingt et une cellules analysées, chacune avec un biais, une note en étoiles, une ancienneté, une entrée, un stop, un objectif et un résultat en cours. Voici ce qui le trie réellement.
D’abord, ce qu’il fait et que la plupart des scanners ne font pas
Il vous dit pourquoi il se tait. Quand une ligne n’a pas de signal, elle nomme la condition manquante au lieu de rester vide. Il y en a douze : en attente du croisement du MACD, de l’alignement de tendance, de l’EMA 200, de l’ADX, du volume, de l’histogramme, du momentum, du score, ou marquée RSI extrême, prix suracheté, stop touché, périmée.
Un scanner qui dit « en attente du volume » vous apprend le setup. Un scanner qui affiche une liste vide est une boîte noire.
Et le filtre est réellement strict. Pour qu’un signal se déclenche, dix conditions doivent être vraies en même temps :
| croisement du MACD | alignement de tendance |
| prix du bon côté de l’EMA 200 | ADX au-dessus de son seuil |
| RSI hors des extrêmes | prix non suracheté |
| pic de volume | amplitude de l’histogramme |
| momentum concordant | score de qualité de 70 ou plus |
Beaucoup de scanners se déclenchent sur une seule. C’est pour cela que la suite vaut la peine : un outil aussi explicite sur ses conditions a mérité le même soin appliqué à son classement.
Un. L’ancienneté est affichée et à peine prise en compte
La ligne qui calcule le rang est celle-ci :
rank = score × 1000 - (timenow - ts) / 1000000 // ts in milliseconds
Faites-y passer des chiffres :
| terme | valeur |
|---|---|
| un jour d’ancienneté coûte | 86,4 unités de rang |
| un point de score vaut | 1000 unités de rang |
| donc un point de score équivaut à | 11,6 jours |
Un signal doit rester là une semaine et demie avant que son ancienneté ne coûte un point de score. La colonne Ancienneté est là, dans le tableau, et le tri y est presque aveugle.
Voilà pourquoi une ligne périmée peut tenir la première place sur un tableau que les gens lisent comme « ce qui se passe maintenant ».
Et l’unité le cache davantage
L’ancienneté s’affiche en jours pour chaque ligne, quelle que soit l’unité de temps.
| ligne | ancienneté affichée | bougies d’ancienneté |
|---|---|---|
| signal 4H | 11d | 66 |
| signal 15m | 2d | 192 |
Le nombre qui paraît le plus grand est le setup le plus récent. Sur le tableau en direct, l’unité de temps la plus rapide portait les trades les plus anciens, d’un facteur trois environ.
Deux. Le bonus de confluence s’ajoute après le plafond
Commençons par ce qui est bien fait. Le comptage de confluence tient compte du sens. Un symbole avec deux signaux haussiers et un baissier compte pour deux, pas pour trois. Cela paraît évident et c’est précisément ce que les implémentations ratent, car la version paresseuse compte combien d’unités de temps ont un signal plutôt que combien concordent.
Le comptage est donc soigneux. C’est la pondération qui ne l’est pas.
La qualité est notée sur 100 et plafonnée là. Puis un bonus s’ajoute par-dessus : 15 de plus si le même signal apparaît sur deux unités de temps, 30 s’il apparaît sur trois. Les étoiles sont attribuées à 95 et à 85.
| setup | score final | étoiles |
|---|---|---|
| franchit de justesse le minimum de 70, sur 3 unités de temps | 100 | ★★★ |
| presque parfait, seul | 94 | ★★ |
Le plafond s’applique à la qualité puis se fait contourner par la concordance.
Et nous avons mesuré ce que vaut cette concordance. La concordance entre unités de temps est ressortie à 0,60 fois le hasard dans nos propres données. En dessous de la chance. C’est le plus gros terme du classement, attaché à la preuve la plus faible dont nous disposons.
Trois. Le tableau efface ses perdants
Quand le prix franchit le stop d’un signal, le signal cesse d’être un signal et quitte le tableau.
Toute ligne encore affichée est donc, par construction, une ligne qui n’a pas été stoppée. Lire la colonne de résultat comme un historique revient à sélectionner sur la survie puis à mesurer les survivants.
C’est le comportement correct pour un scanner. Un setup mort ne doit pas occuper une place. Ce n’est trompeur que si vous lisez la colonne comme un historique, ce que l’œil fait avec une colonne portant ce nom.
Quatre. La colonne de résultat est rognée aux deux bouts
Si le résultat en cours a dépassé le stop, elle affiche la distance au stop. S’il a dépassé le premier objectif, elle affiche la distance à l’objectif.
Une ligne affichant +1 % avec une coche à côté n’est donc pas le résultat. C’est la distance au premier objectif, atteint ou dépassé. Les gagnants sont tronqués et les perdants reçoivent un plancher.
Défendable aussi, car cela empêche une ligne périmée d’afficher -60 %. Et cela signifie que la colonne ne peut être ni sommée, ni moyennée, ni comparée d’une ligne à l’autre.
Le propos n’est pas que l’outil est faux
Chacune de ces décisions de conception est raisonnable. Aucune n’est un bug.
Ensemble, elles font que le tableau montre des survivants, classés presque sans égard à l’ancienneté, avec des résultats rognés aux deux bouts, et une note en étoiles dominée par un bonus accordé à une propriété que nous avons mesurée en dessous du hasard.
Le travail n’est pas de s’en méfier. C’est de savoir quelle colonne répond à quelle question. Le biais et les étoiles décident de l’ordre. L’ancienneté informe et ne trie presque pas. Le résultat décrit les survivants et seulement eux.
Comment faire cela sur votre propre scanner
Trouvez la ligne qui calcule le rang. Pas celle qui dessine le tableau, celle qui le trie. Puis faites-y passer de vrais chiffres.
La nôtre paraissait équilibrée jusqu’à ce que nous demandions ce que valait un jour d’ancienneté face à un point de score, et la réponse fut 11,6 jours pour un point.
Si vous ne trouvez pas cette ligne, vous ne savez pas sur quoi votre classement s’ordonne, et la colonne que vous lisez n’est probablement pas celle-là.
La portée honnête
Pas un backtest, et pas une affirmation sur le fait que ces signaux rapportent. Rien ici ne mesure un résultat. C’est une lecture de la façon dont un affichage est construit, à partir de son propre code, et elle se reproduit sur tout scanner dont vous pouvez voir le code.
Publié sous forme d'Idée TradingView sur ETHUSDT. Voir le graphique sur TradingView
Mesure passée de notre propre outillage, décrite après coup. Rien ici n'est une recommandation ni une indication de résultats futurs.