Aller au contenu

Sur quoi votre scanner classe vraiment

Le tableau du scanner Augury Grid sur un graphique ETHUSDT en quatre heures, sur sept lignes, dont la première a onze jours et reste classée première, annoté du calcul qui place un point de score de qualité devant 11,6 jours d’ancienneté.
La ligne classée première a onze jours. Le rang vaut la qualité multipliée par mille moins l’ancienneté en millisecondes divisée par un million, si bien qu’un point de score pèse plus que 11,6 jours. La colonne Ancienneté est juste là et le tri y est presque aveugle.

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 MACDalignement de tendance
prix du bon côté de l’EMA 200ADX au-dessus de son seuil
RSI hors des extrêmesprix non suracheté
pic de volumeamplitude de l’histogramme
momentum concordantscore 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 :

termevaleur
un jour d’ancienneté coûte86,4 unités de rang
un point de score vaut1000 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.

ligneancienneté affichéebougies d’ancienneté
signal 4H11d66
signal 15m2d192

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.

setupscore finalétoiles
franchit de justesse le minimum de 70, sur 3 unités de temps100★★★
presque parfait, seul94★★

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.


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.