Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Vues:
54
Note:
(2)
Publié:
\MQL5\Include\SAX\
SAXAnalog.mq5 (13.41 KB) afficher
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Présentation

Presque tous les outils que nous développons pour analyser un graphique restent cantonnés au monde des chiffres. Celui-ci en sort. La méthode SAX ( Symbolic Aggregate approXimation ), introduite par Jessica Lin, Eamonn Keogh et leurs collègues en 2003, transforme une fenêtre de cours en une courte chaîne de lettres, du genre bddcbbba. Une fois qu’un segment de marché est représenté par un mot, on peut lui appliquer toutes les opérations que l’informatique sait déjà effectuer sur du texte : le comparer, le compter, le hacher, le rechercher.

Cette publication applique cette méthode à une question concrète : le marché se comporte ainsi en ce moment ; quand s’est-il déjà comporté de manière similaire par le passé, et qu’est-il advenu par la suite ? L’indicateur encode la fenêtre actuelle, analyse l’historique à la recherche de fenêtres passées de forme similaire, examine l’avenir connu de chaque correspondance et représente la distribution des résultats obtenue sous la forme d’un cône de prévision sur le graphique, accompagné d’un panneau de verdict présentant les statistiques sous-jacentes.

La transformation elle-même comporte trois étapes, chacune ayant sa raison d’être :

  • Normalisation Z de la fenêtre, afin qu’il ne reste que la forme pure. Une hausse de l’EUR/USD et une hausse de l’or se superposent sur la même courbe normalisée si elles évoluent de la même manière.
  • Approximation agrégée par morceaux: découper la fenêtre normalisée en w segments égaux et remplacer chacun par sa moyenne. Une fenêtre de 48 barres avec w = 8 donne huit chiffres, ce qui constitue une réduction de dimension qui lisse le bruit au passage.
  • Discretisation: associer la moyenne de chaque segment à une lettre à l’aide de points de rupture qui divisent la distribution normale standard en bandes de probabilité égale, de sorte que chaque lettre soit a priori aussi probable qu’une autre.

Les trois étapes de la transformation SAX sur une fenêtre de cours

Le pipeline SAX : normaliser la fenêtre selon l’axe z, en calculer la moyenne par cellules, puis associer chaque cellule à une lettre à l’aide de points de rupture gaussiens.

Ce qui rend la recherche SAX « intelligente » plutôt que simplement rapide, c’est MINDIST, une distance entre deux mots qui constitue une borne inférieure prouvée de la véritable distance euclidienne entre les séries normalisées en z. Comme elle ne peut jamais que sous-estimer la distance réelle, elle peut être utilisée pour écarter des candidats sans risque d’écarter une véritable correspondance. C’est ce qui justifie ici la recherche en deux étapes : éliminer les éléments superflus à l’aide de la distance entre mots peu coûteuse, puis classer les éléments restants selon la véritable distance euclidienne. Le cadre de validation publié confirme que le pipeline renvoie exactement les mêmes correspondances que la méthode par force brute, tout en évitant une grande partie du travail.

À lire avant utilisation : l’étape de normalisation par z qui rend SAX si élégant écarte délibérément le niveau des cours et la volatilité, alors que dans le trading, ce sont souvent précisément ces éléments qui vous intéressent. Cet outil compense ce qu’il peut, en mesurant chaque résultat en unités de la volatilité qui prévalait à ce moment-là, mais cette limitation est bien réelle et ne peut être contournée par un réglage. Attendez-vous à ce que le verdict indique « aucun avantage » plus souvent qu’autre chose. Sur des marchés proches d’une marche aléatoire, c’est la bonne réponse, et non un dysfonctionnement.


Ce que l’indicateur affiche

Deux objets, tous deux recalculés à la clôture d’une nouvelle barre.

Le cône en éventail projette la distribution prospective des données analogues dans le futur à partir de la dernière barre clôturée. Une ligne continue trace le mouvement médian à chaque étape, tandis que les lignes pointillées au-dessus et en dessous tracent les 25e et 75e centiles ; ainsi, le cône s’élargit à mesure que la concordance entre les antécédents s’amenuise. La distribution par étape est exprimée en unités ATR et multipliée par l’ATR actuel pour se situer sur l’axe des prix réels, ce qui permet aux antécédents issus de phases calmes ou volatiles de contribuer au même cône. Le cône n’est tracé que lorsque le verdict est haussier ou baissier; ainsi, l’absence de cône constitue en soi une information et non un défaut d’affichage.

Le tableau des verdicts présente les chiffres que le cône masque :

Ligne
Ce que cela signifie
mot
Le codage SAX de la fenêtre actuelle, c'est-à-dire la requête sur laquelle la recherche a effectivement porté.
analogues
Nombre de précédents trouvés et leur distance moyenne de correspondance. Un nombre élevé de résultats avec une distance moyenne faible est un cas moins pertinent qu’un nombre réduit de correspondances proches.
fwd H
Médiane du mouvement vers l’avant au-delà de l’horizon, exprimée en multiples de l’ATR et en pourcentage.
band
Plage comprise entre le 25e et le 75e centile de ces mouvements vers l’avant : la largeur du cône, exprimée en chiffre.
taux de hausse
La part des précédents ayant enregistré une hausse, quelle que soit son ampleur, ainsi que l’écart. Une médiane tendant à la hausse avec un taux de hausse de 51 % relève de la chance d’un seul précédent, et non d’une tendance.
VERDICT
Haussier, baissier, pas d’avantage, trop peu de cas similaires ou absence de données.

Le verdict est délibérément difficile à obtenir. On commence par déterminer s’il y a trop peu de cas analogues, puis on examine les cas indécis, et seul un échantillon qui satisfait aux deux critères de conviction obtient une orientation : la variation médiane doit dépasser le seuil d’avantage en termes d’ATR, et le taux de hausse doit sortir de la fourchette autour de 0,5. Si l’un ou l’autre de ces critères n’est pas rempli, la réponse est « aucun avantage », quelle que soit la valeur de la médiane.

L'indicateur de prévision analogique SAX sur l'EURUSD en M30 : cône en éventail et tableau de verdict

Le prévisionniste sur l’EURUSD, M30 : le cône en éventail projetant la médiane et la bande interquartile des analogues, avec le panneau de verdict indiquant l’échantillon correspondant.


Caractéristiques principales

Honnêteté inhérente à la conception

  • Pas d’anticipation. La fenêtre de résultat d’un match doit se terminer strictement avant le début de la fenêtre de requête, afin qu’aucun élément issu du futur de la requête elle-même ne puisse s’immiscer dans son ensemble de précédents. C’est le seul garde-fou qui distingue une recherche d’analogues d’un ajustement de courbe.
  • Résultats normalisés par l’ATR. Les mouvements futurs sont exprimés en multiples de l’ATR en vigueur au moment de la correspondance, de sorte qu’un antécédent issu d’une période calme et un autre issu d’une période de forte volatilité se situent sur un pied d’égalité. C’est la compensation pour ce que la normalisation par z a écarté.
  • Un verdict autorisé à dire « non ». L’outil s’abstient de fournir une prévision et supprime le cône dès lors que l’échantillon est trop petit ou que la tendance n’est pas décisive selon ces deux critères.

Une véritable bibliothèque SAX, et non une approximation

  • Normalisation z, PAA incluant le cas fractionnaire où la longueur de la fenêtre ne se divise pas exactement par la longueur du mot, points de rupture gaussiens via le probit d’Acklam, encodage, et une fonction MINDIST qui garantit une borne inférieure à la distance réelle. Aucun de ces éléments n’existait auparavant sur la plateforme.
  • Les tailles d’alphabet de 2 à 10 sont prises en charge, les points de rupture étant calculés une seule fois lors de la configuration puis mis en cache.
  • Une fenêtre plate est signalée comme telle plutôt que d’être encodée en silence : avec un écart-type proche de zéro, il n’y a pas de forme à normaliser, et en inventer une produirait un mot dénué de sens.
  • Une métrique euclidienne par force brute est fournie avec le pipeline de production sous forme d’option, ce qui permet de vérifier l’élagage par rapport à la réponse qu’il est censé reproduire, plutôt que de s’y fier aveuglément.

Utilisable sur un graphique en temps réel

  • La recherche s’exécute une fois par barre fermée, et non par tick, et lit l’historique à partir de la barre 1 ; ainsi, la barre en cours de formation n’entre jamais ni dans la requête ni dans l’ensemble précédent.
  • La taille de la zone d’affichage est déterminée par le texte effectivement affiché, ce qui évite tout rognage, quelle que soit la taille de la police ou le contenu. Deux thèmes (clair et foncé) sont proposés pour une lecture aisée sur n’importe quel arrière-plan de graphique.
  • Chaque objet du graphique porte un préfixe commun et est supprimé lors de la désinitialisation, ne laissant aucun objet orphelin.


Configuration recommandée

Paramètre
Valeur recommandée
Remarques
Symbole
Tout instrument liquide
La correspondance de forme est, par construction, indépendante de l'échelle. L'analyse et la capture d'écran utilisent la paire EURUSD.
Période
De M30 à H4
Un historique suffisamment long est nécessaire pour que les précédents soient significatifs. La fenêtre, l'horizon et l'analyse de l'historique sont tous mesurés en barres ; ils sont donc reportés tels quels d'une période à l'autre.
Historique
6 000 barres
Profondeur d’analyse par défaut. Plus l’historique est long, plus il y a de précédents et plus la distribution est solide, au prix d’une augmentation linéaire du temps de recherche.
Thème du panneau
Adaptez-le à votre graphique
Mode sombre par défaut. Passez en mode clair sur un graphique blanc, sinon le texte ne sera pas lisible.


Structure du fichier

Un indicateur et deux en-têtes. Les en-têtes sont inclus sous la forme <SAX\...>, ils doivent donc se trouver dans leur propre sous-dossier SAX.

Fichier
Rôle
Description
Include\SAX\SAXTransform.mqh
La transformation
Normalisation Z, PAA, points de rupture gaussiens, encodage par mots et MINDIST de limite inférieure. Réutilisable sur n’importe quelle série, sans dépendance vis-à-vis des graphiques ou du trading.
Include\SAX\SAXAnalogs.mqh
La recherche
Correspondance en deux étapes (élagage puis classement), la protection « no-lookahead », les résultats normalisés par l’ATR, la distribution par étape derrière le cône et la classification du verdict.
Indicators\SAX\SAXAnalog.mq5
L'indicateur
Lance la recherche sur chaque nouvelle barre et trace le cône de prévision ainsi que le panneau de verdict. Ne trace rien dans les tampons ; tout est constitué d’objets graphiques.


Paramètres d’entrée

Entrée
Valeur par défaut
Ce qu’il contrôle
InpWinLen
48 barres
Longueur de la fenêtre de requête : portion de la courbe récente devant correspondre pour qu'une barre soit considérée comme un précédent.
InpHorizon
12 barres
Horizon de prévision : jusqu'à quel point dans l'avenir connu de chaque antécédent le résultat est-il mesuré, et jusqu'où s'étend le cône.
InpWordLen, InpAlphabet
8, 4
La résolution du SAX. Des mots plus longs et des alphabets plus vastes permettent une discrimination plus fine et aboutissent donc à moins de correspondances ; des mots plus courts et des alphabets plus restreints permettent de rassembler davantage de précédents présentant une ressemblance plus vague.
InpMaxAnalogs, InpMinAnalogs
50, 10
Nombre de précédents les plus proches à conserver, et échantillon minimal en dessous duquel le verdict est forcé à « trop peu », indépendamment de ce que ces quelques-uns indiquent.
InpEdgeATR
0,25
Seuil de conviction : le mouvement médian vers l’avant doit dépasser un quart de l’ATR pour être considéré comme une tendance.
InpMetric
MINDIST
Le pipeline en deux étapes « élagage puis classement », qui correspond au paramétrage de production. Passez à Euclid pour une analyse par force brute de chaque candidat : même classement, pas d’élagage, utile comme référence en termes d’exactitude et de vitesse.
InpATRPeriod
14
L'ATR utilisé pour normaliser les résultats et mettre le cône à l'échelle sur l'axe des prix.
InpMaxHistory
6 000 barres
Période de recherche de précédents.
Couleurs, coin, thème
Bleu / rouge / gris, coin supérieur gauche, sombre
Couleurs d’accentuation du cône et du panneau en fonction du verdict, de la couleur de la ligne de la bande, du coin d’ancrage du panneau et du thème clair ou foncé.


Base de recherche

La mise en œuvre s’appuie sur les travaux originaux sur SAX menés par Jessica Lin, Eamonn Keogh et leurs collègues, dont la page SAX rassemble les articles.

SAX n’est pas une boule de cristal permettant de prédire les prix, et cet outil signalera plus souvent l’absence de tendance qu’il ne signalera quoi que ce soit d’autre. Sa valeur réside dans les rares occasions, bien étayées, où de nombreux précédents authentiques vont dans le même sens, ainsi que dans la rigueur d’un outil qui refuse de prétendre le contraire. Cette même bibliothèque ouvre la voie à d’autres travaux : l’utilisation des mots SAX comme caractéristiques catégorielles pour un modèle d’apprentissage automatique, la découverte de motifs et de discordances pour la détection d’anomalies, ou encore un modèle de transition de Markov sur le dictionnaire de mots.

Un article complémentaire dérive la transformation et la borne inférieure, détaille la recherche et ses conditions de sécurité, et montre que le harnais de validation est satisfait : Approximation agrégée symbolique (SAX) en MQL5 : recherche d'analogies historiques et prévisions.

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/75543

Trade Journal and Performance Analytics Dashboard Trade Journal and Performance Analytics Dashboard

Un tableau de bord léger intégré au graphique qui analyse l'historique de vos transactions clôturées et affiche le taux de réussite, le facteur de profit, les séries de gains ou de pertes et la courbe de capital — aucune stratégie à définir, uniquement vos propres chiffres, mis à jour automatiquement.

Order Block Detector Order Block Detector

Detects order blocks — the last opposing candle before an impulsive move that breaks market structure — and draws them as zones that extend live until price returns and mitigates them. Structure breaks and mitigation are both evaluated only on closed bars, so nothing repaints.

Change in State of Delivery Change in State of Delivery

Concept: Identifies market microstructure turning points based on ICT/SMC principles.

Session Range Desk MT5 Session Range Desk MT5

Session-range breakout EA with ATR filtering, stop-distance sizing, optional break-even/partial close, and a shared chart desk. Hedging accounts; educational source with documented execution and coordination limits.