Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Visualizzazioni:
17
Valutazioni:
(2)
Pubblicato:
Aggiornato:
\MQL5\Include\SAX\
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Panoramica

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:

  • Normalizzazione Z della finestra, in modo che ciò che rimane sia la forma pura. Un rialzo dell’EURUSD e un rialzo dell’oro si mappano sulla stessa curva normalizzata se salgono nello stesso modo.
  • Approssimazione aggregata a tratti: suddividere la finestra normalizzata in w segmenti uguali e sostituire ciascuno con la sua media. Una finestra di 48 barre con w = 8 diventa otto numeri, il che costituisce una riduzione di dimensionalità che attenua il rumore lungo il percorso.
  • Discretizzazione: mappare la media di ciascun segmento su una lettera utilizzando punti di rottura che suddividono la distribuzione normale standard in bande di uguale probabilità, in modo che ogni lettera sia a priori ugualmente probabile.

Le tre fasi della trasformata SAX su una finestra di prezzo

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.

Da leggere prima di utilizzarlo: la fase di normalizzazione z che rende SAX così elegante scarta deliberatamente il livello dei prezzi e la volatilità, che nel trading sono spesso proprio gli aspetti di maggiore interesse. Questo strumento compensa dove possibile, misurando ogni risultato in unità della volatilità prevalente in quel momento, ma il limite è reale e non viene eliminato. Aspettatevi che il verdetto indichi “nessun vantaggio ” più spesso di qualsiasi altra cosa. Su mercati vicini a un percorso casuale, questa è la risposta corretta, non un malfunzionamento.


Cosa rappresenta l’indicatore

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 analogico SAX su EURUSD M30: cono a ventaglio e pannello di valutazione

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.


Caratteristiche principali

Onestà intrinseca

  • Nessuna anticipazione. La finestra di esito di una corrispondenza deve terminare rigorosamente prima che inizi la finestra di query, in modo che nulla del futuro della query stessa possa infiltrarsi nel suo insieme di precedenti. Questa è l’unica garanzia che distingue una ricerca per analogia da un adattamento alla curva.
  • Risultati normalizzati per l’ATR. I movimenti futuri sono espressi in multipli dell’ATR prevalente al momento della corrispondenza, in modo che un precedente proveniente da un periodo tranquillo e uno proveniente da un periodo turbolento siano su un piano di parità. Questa è la compensazione per ciò che la normalizzazione z ha tralasciato.
  • Un verdetto che può dire «no». Lo strumento non fornisce una previsione e sopprime il cono ogni volta che il campione è troppo piccolo o l’inclinazione non è decisiva su entrambe le misure.

Una vera libreria SAX, non un’approssimazione

  • Normalizzazione z, PAA che include il caso frazionario in cui la lunghezza della finestra non è divisibile in modo esatto per la lunghezza della parola, punti di rottura gaussiani tramite il probit di Acklam, codifica e una distribuzione MINDIST che garantisce un limite inferiore dimostrabile alla distanza reale. Nessuna di queste funzionalità era presente in precedenza sulla piattaforma.
  • Sono supportate dimensioni dell’alfabeto da 2 a 10, con punti di rottura definiti una volta al momento della configurazione e memorizzati nella cache.
  • Una finestra piatta viene segnalata come tale anziché essere codificata in modo silenzioso: con una deviazione standard prossima allo zero non c’è alcuna forma da normalizzare, e inventarne una produrrebbe una parola priva di significato.
  • Una metrica euclidea "brute-force" viene fornita insieme alla pipeline di produzione come opzione, in modo che la potatura possa essere verificata rispetto alla risposta che dovrebbe riprodurre, anziché essere semplicemente considerata attendibile.

Funziona su un grafico in tempo reale

  • La ricerca viene eseguita una volta per ogni barra chiusa, non per ogni tick, e legge la cronologia a partire dalla barra 1, in modo che la barra in formazione non entri mai né nella query né nell’insieme precedente.
  • La dimensione del riquadro del pannello viene calcolata in base al testo effettivamente visualizzato, in modo che nulla venga troncato a qualsiasi dimensione del carattere o contenuto, e sono disponibili un tema chiaro e uno scuro per garantire la leggibilità su entrambi gli sfondi del grafico.
  • Ogni oggetto del grafico presenta un prefisso comune e viene rimosso al momento della deinit, senza lasciare oggetti orfani.


Configurazione consigliata

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.


Struttura dei file

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.


Parametri di input

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.


Base di ricerca

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 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.

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.