Expérience
Les supports et résistances ne sont-ils qu'un biais de confirmation ?
Chaque graphique ci-dessous est simulé. Aucun niveau n'entre dans sa construction, rien en lui ne se souvient d'un prix et les lignes se posent à une hauteur tirée d'un nombre aléatoire. Appuyez quelques fois sur le bouton et comptez combien d'entre elles semblent avoir tenu.
Si des lignes qui ne peuvent rien signifier tiennent à peu près aussi souvent que les lignes d'un vrai graphique, alors le fait qu'une ligne tienne ne dit rien sur l'importance du niveau. Le code sous le graphique affiche la graine et le tirage derrière chaque ligne, de sorte que l'affirmation qu'elles sont tracées à l'aveugle reste vérifiable.
Prix simulé
// Un seul entier détermine tout le graphique.
const seed = …;
// La forme de la trajectoire : de deux à cinq phases, chacune avec sa propre
// dérive, sa volatilité et son autocorrélation, toutes tirées de la graine.
const specRng = makeRng(seed ^ 0xa5a5a5a5);
const spec = randomSpec(specRng, regime);
// La trajectoire elle-même. Chaque transaction déplace le prix d'un tick vers
// le haut ou vers le bas, selon une chaîne de Markov à deux états. Aucun
// niveau n'est jamais une entrée.
const sim = pricesim(spec, { relative: 0.1, step_budget: 300000 }, seed);// Les deux seuls nombres qu'une ligne a le droit de voir : le plus bas et le
// plus haut du graphique.
let lo = Infinity, hi = -Infinity;
for (const b of sim.bars) { if (b.l < lo) lo = b.l; if (b.h > hi) hi = b.h; }
// Un tirage uniforme, et c'est tout le niveau. Rien ne lit la trajectoire des
// prix, les chandeliers, les plus hauts, les plus bas ni la position de la
// ligne précédente.
const u = lineRng.random(); // 0 <= u < 1
const level = lo + (hi - lo) * u;lineRng est initialisé à partir de l'horloge au chargement de la page et non à partir de la graine du graphique. Les tirages affichés ci-dessus sont ceux qui sont à l'écran en ce moment. Chaque ligne supplémentaire retire u et laisse intacts les plus bas et les plus hauts des chandeliers.
Une marche aléatoire repasse partout
Placez une ligne horizontale n'importe où dans la plage échangée et le prix y reviendra encore et encore, parce que c'est ce que fait une trajectoire errante. Chaque retour compte comme un test et chaque test se résout d'un côté ou de l'autre. L'arithmétique seule produit des lignes touchées vingt fois qui repoussent le prix douze fois, soit exactement le bilan d'un niveau que l'on dirait efficace.
La ligne est tracée après coup
Sur un vrai graphique le niveau est choisi une fois les rebonds déjà visibles, si bien que les lignes qui auraient échoué n'ont jamais été tracées ni comptées. Ici l'ordre est inversé : le niveau est fixé avant que quiconque regarde le résultat, et chaque ligne tracée reste au tableau qu'elle fonctionne ou non. Les deux procédures ne diffèrent que par cet ordre, et un graphique publié montre rarement laquelle l'a produit.
La règle décide du résultat
Élargissez la zone de contact et chaque ligne récolte davantage de tests, pour la plupart superficiels et résolus du côté d'où ils venaient, tandis que la rétrécir ne laisse dans le compte que les approches décisives. Le taux de tenue suit donc la définition d'un contact, ce qui rend un taux cité presque dénué de sens sans la règle qui l'a produit. Déplacer le curseur change cette définition, et le taux affiché change avec elle.
Ce qu'un vrai niveau doit battre
Pile ou face est le mauvais point de référence, car la comparaison qui vaut la peine se fait contre le taux de cette page : des trajectoires sans aucun niveau, mesurées sous la même règle de contact. Un vrai niveau doit battre ce taux sur des graphiques choisis avant que le résultat soit connu. Sans cette comparaison, une ligne qui tient ne constitue pas une preuve.

