Quasi tutti gli strumenti che creiamo per leggere un grafico rimangono nel mondo dei numeri. Questo invece ne esce. Il Symbolic Aggregate approXimation (SAX), introdotto da Jessica Lin, Eamonn Keogh e colleghi nel 2003, prende una finestra di prezzi e la trasforma in una breve stringa di lettere, qualcosa come bddcbbba. Una volta che una porzione di mercato è diventata una parola, è possibile applicare ad essa tutte le operazioni che l’informatica sa già eseguire con il testo: confrontarla, contarla, calcolarne l’hash, effettuare ricerche al suo interno.
Questa pubblicazione applica tale approccio a una questione pratica: il mercato si sta comportando in questo modo ora; quando si è comportato in modo simile in passato e cosa ne è seguito? L’indicatore codifica la finestra attuale, analizza la cronologia alla ricerca di finestre passate di forma simile, legge il futuro noto di ciascuna corrispondenza e traccia la distribuzione risultante degli esiti sotto forma di un cono di previsione sul grafico, con un pannello di valutazione che riporta le statistiche alla base di tale previsione.
La trasformazione stessa prevede tre fasi, ciascuna delle quali ha una sua ragion d’essere:

La pipeline SAX: normalizza la finestra con z, ne calcola la media nelle celle, quindi associa ogni cella a una lettera utilizzando punti di rottura gaussiani.
Ciò che rende la ricerca SAX "intelligente" anziché semplicemente veloce è MINDIST, una distanza tra due parole che costituisce un limite inferiore dimostrabile della vera distanza euclidea tra le serie normalizzate per z. Poiché può solo sottostimare la distanza reale, può essere utilizzata per scartare i candidati senza il rischio di scartare una corrispondenza vera. Questo è ciò che giustifica la ricerca in due fasi: sfoltire utilizzando la distanza tra le parole (a basso costo), quindi classificare i risultati rimanenti in base alla vera distanza euclidea. Il framework di validazione pubblicato conferma che la pipeline restituisce esattamente le stesse corrispondenze del metodo brute force, saltando gran parte del lavoro.
Due oggetti, entrambi ricostruiti alla chiusura di una nuova barra.
Il cono a ventaglio proietta la distribuzione prospettica degli analoghi nel futuro a partire dall’ultima barra chiusa. Una linea continua traccia il movimento mediano in avanti ad ogni passo, mentre le linee tratteggiate sopra e sotto tracciano il 25° e il 75° percentile; così il cono si allarga man mano che la concordanza tra i precedenti si assottiglia. La distribuzione per fase è espressa in unità ATR e moltiplicata per l’ATR corrente per essere riportata sull’asse dei prezzi reali; è proprio questo che permette ai precedenti provenienti da regimi tranquilli e violenti di contribuire allo stesso cono. Il cono viene tracciato solo quando il verdetto è rialzista o ribassista, quindi l’assenza del cono è di per sé un’informazione piuttosto che un errore di visualizzazione.
Il pannello del verdetto riporta i numeri nascosti dal cono:
| Riga | Cosa indica |
|---|---|
| parola | La codifica SAX della finestra corrente, ovvero la query su cui è stata effettivamente eseguita la ricerca. |
| analoghi | Quanti precedenti sono stati trovati e la loro distanza media di corrispondenza. Un numero elevato di risultati con una distanza media elevata è un caso meno significativo rispetto a un numero ridotto di corrispondenze ravvicinate. |
| fwd H | Mediana dello spostamento in avanti oltre l’orizzonte, espressa in multipli di ATR e in percentuale. |
| band | L'intervallo compreso tra il 25° e il 75° percentile di tali movimenti in avanti: la larghezza del cono, espressa numericamente. |
| tasso di rialzo | La quota di casi precedenti che hanno registrato un rialzo, e la dispersione. Una mediana che tende al rialzo con un tasso di rialzo del 51% è frutto della fortuna di un singolo caso, non una tendenza. |
| VERDETTO | Rialzista, ribassista, nessun vantaggio, troppo pochi casi analoghi o nessun dato. |
Il verdetto è volutamente difficile da ottenere. Si valuta innanzitutto la presenza di un numero insufficiente di analoghi, poi i casi in cui la decisione è aleatoria, e solo un campione che superi entrambe le soglie di convinzione ottiene una direzione: il movimento mediano deve superare la soglia di vantaggio in termini di ATR, e il tasso di rialzo deve uscire dalla fascia intorno a 0,5. Se uno dei due requisiti non viene soddisfatto, la risposta è “nessun vantaggio”, indipendentemente da ciò che indica la mediana.

Il sistema di previsione su EURUSD, M30: il cono a ventaglio che proietta la mediana e la banda interquartile dei casi analoghi, con il pannello di verdetto che riporta il campione sottostante.
Onestà intrinseca
Una vera libreria SAX, non un’approssimazione
Funziona su un grafico in tempo reale
| Impostazione | Valore consigliato | Note |
|---|---|---|
| Simbolo | Qualsiasi strumento liquido | La corrispondenza delle forme è, per definizione, indipendente dalla scala. Lo sviluppo e lo screenshot hanno utilizzato la coppia EURUSD. |
| Intervallo di tempo | Da M30 a H4 | È necessaria una cronologia sufficientemente ampia affinché il set di precedenti sia significativo. La finestra, l’orizzonte temporale e la scansione della cronologia sono tutti misurati in barre, quindi vengono riportati invariati da un timeframe all’altro. |
| Cronologia | 6000 barre | La profondità di scansione predefinita. Più dati storici significano più precedenti e una distribuzione più solida, con un aumento lineare del tempo di ricerca. |
| Tema del pannello | Adatta al grafico | Scuro per impostazione predefinita. Passa alla modalità chiara su un grafico bianco, altrimenti il testo del corpo non sarà leggibile. |
Un indicatore e due intestazioni. Le intestazioni sono incluse come <SAX\...>, quindi devono trovarsi nella propria sottocartella SAX.
| File | Ruolo | Descrizione |
|---|---|---|
| Include\SAX\SAXTransform.mqh | La trasformazione | Normalizzazione Z, PAA, punti di rottura gaussiani, codifica delle parole e MINDIST di limite inferiore. Riutilizzabile su qualsiasi serie, senza dipendenze da grafici o trading. |
| Include\SAX\SAXAnalogs.mqh | La ricerca | Corrispondenza in due fasi “prune-then-rank”, la protezione “no-lookahead”, risultati normalizzati con ATR, la distribuzione per fase alla base del cono e la classificazione del verdetto. |
| Indicatori\SAX\SAXAnalog.mq5 | L'indicatore | Esegue la ricerca su ogni nuova barra e disegna il cono di previsione a ventaglio e il pannello del verdetto. Non traccia nulla nei buffer; si tratta esclusivamente di oggetti del grafico. |
| Input | Predefinito | Cosa controlla |
|---|---|---|
| InpWinLen | 48 barre | Lunghezza della finestra di query: quanta parte della forma recente deve corrispondere affinché una barra sia considerata un precedente. |
| InpHorizon | 12 barre | Orizzonte di previsione: fino a che punto nel futuro noto di ciascun precedente viene misurato il risultato e fino a che punto si estende il cono. |
| InpWordLen, InpAlphabet | 8, 4 | La risoluzione SAX. Parole più lunghe e alfabeti più estesi consentono una discriminazione più fine e quindi una corrispondenza meno frequente; parole più brevi e alfabeti più ristretti raccolgono un maggior numero di precedenti con somiglianze più vaghe. |
| InpMaxAnalogs, InpMinAnalogs | 50, 10 | Quanti precedenti più simili conservare e il campione minimo al di sotto del quale il verdetto viene forzato a "troppo pochi", indipendentemente da ciò che dicono quei pochi. |
| InpEdgeATR | 0,25 | Soglia di convinzione: lo spostamento in avanti mediano deve superare un quarto di un ATR per essere considerato una tendenza. |
| InpMetric | MINDIST | Il flusso di elaborazione in due fasi (pruning e classificazione), che rappresenta l'impostazione di produzione. Passare a Euclid per un'analisi brute force su ogni candidato: stessa classificazione, nessun pruning, utile come riferimento per la correttezza e la velocità. |
| InpATRPeriod | 14 | L'ATR utilizzato per normalizzare i risultati e per scalare il cono sull'asse dei prezzi. |
| InpMaxHistory | 6000 barre | Fino a quanto indietro cercare i precedenti. |
| Colori, angolo, tema | Blu / rosso / grigio, in alto a sinistra, scuro | Colori di risalto del cono e del pannello in base al verdetto, al colore della linea della banda, all’angolo di ancoraggio del pannello e al tema chiaro o scuro. |
L'implementazione segue il lavoro originale su SAX di Jessica Lin, Eamonn Keogh e colleghi, la cui pagina dedicata a SAX raccoglie gli articoli.
SAX non è una sfera di cristallo per i prezzi, e questo strumento segnalerà più spesso l’assenza di un vantaggio piuttosto che qualsiasi altra cosa. Il suo valore risiede nelle rare occasioni, ben supportate, in cui molti precedenti autentici puntano nella stessa direzione, e nella disciplina di uno strumento che rifiuta di fingere il contrario. La stessa libreria apre la strada a ulteriori sviluppi: le parole SAX come caratteristiche categoriali per un modello di apprendimento automatico, l’individuazione di motivi e discrepanze per il rilevamento di anomalie, oppure un modello di transizione di Markov sul dizionario delle parole.
Un articolo di approfondimento illustra la trasformazione e il limite inferiore, guida l’utente attraverso la ricerca e le relative condizioni di controllo e mostra il superamento dei test di validazione: Approssimazione aggregata simbolica (SAX) in MQL5: ricerca di analogie storiche e previsioni.
Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/75543
Trade Journal and Performance Analytics Dashboard
Un dashboard leggero e integrato nel grafico che analizza la cronologia delle operazioni chiuse e mostra la percentuale di successo, il fattore di profitto, le serie di risultati e la curva del capitale: non occorre inserire alcuna strategia, bastano i tuoi dati, aggiornati automaticamente.
PropFirmGuard
Equity guard that enforces a daily loss limit and a total drawdown limit, flattens the account on breach and blocks trading until the next daily reset. Includes the guard as a reusable include file plus a self-test expert that proves the behaviour in the strategy tester.
Change in State of Delivery
Concept: Identifies market microstructure turning points based on ICT/SMC principles.
TradeHistoryLogger
Exporting your deal history is easy and a dozen scripts already do it..