Se sei un trader, sai quanto sia fondamentale estrarre i trend e filtrare i rumori nei mercati. Utilizzando il metodo di analisi spettrale singolare, questo indicatore ti permette di controllare la levigatezza del trend estratto e la soglia di filtraggio del rumore, semplicemente regolando alcuni parametri.
La strategia di trading che scegli determina come suddividere i dati in componenti di trend, a bassa e alta frequenza, per poi ricostruire il segnale. A differenza dei metodi di filtraggio convenzionali e delle medie mobili, questo indicatore (trend smussato) non ha ritardi di fase.
Il nostro indicatore di trend, basato sul metodo "Caterpillar", espande la serie di prezzi in componenti additive, senza richiedere che la serie sia stazionaria o di conoscere il modello di trend. Questo rende l’analisi molto più flessibile e potente.
Grazie alle capacità di questo indicatore, è possibile levigare la serie, estrarre il trend e, regolando i parametri iniziali, considerare il contributo delle oscillazioni su scale temporali più piccole, filtrando così le fluttuazioni di "rumore".
Parametri dell'Indicatore
I parametri principali sono:
- SegmentLength — lunghezza del frammento di "storia recente" nella serie di prezzi.
- SegmentLag — lunghezza della "caterpillar". Va scelta tra 1/4 e 1/2 della lunghezza del frammento e influisce sulla discriminabilità delle componenti e sulla levigatezza del trend.
- EigMax — numero di componenti principali (modi di dissecazione). Definisce la dimensione dello spazio dei segnali e la considerazione delle fluttuazioni a diverse scale.
- EigNoiseFlag — flag per calcolare il numero di componenti principali, per passare tra un numero "fisso" di modi e il valore del rumore consentito. Opzioni = 0, 1, 2.
- EigNoiseLevel — percentuale di rumore consentita nell'"energia di fluttuazione" totale della serie, se EigNoiseFlag != 0. Questo parametro sovrascrive EigMax durante i calcoli.
Opzioni del parametro intero EigNoiseFlag:
- 0 - la dimensione dello spazio del segnale è fissata: [1,EigMax] (EigNoiseLevel viene ignorato. Se EigMax supera il valore consentito, viene limitato al valore massimo).
- 1 — la quota di un singolo valore di modo rispetto alla somma totale dei valori non è inferiore al margine di errore specificato EigNoiseLevel. EigMax viene selezionato automaticamente.
- 2 — considera i modi con la quota totale diversa da "uno" (totale) non più di EigNoiseLevel. EigMax viene selezionato automaticamente.
Selezione tipica e impatto dei parametri:
- SegmentLength — lunghezza del frammento della serie di prezzi alla fine della storia dei dati. Viene selezionata in base alla stabilità della storia e alla natura più o meno uniforme delle variazioni nei dati o nel periodo della strategia.
- SegmentLag — imposta la dimensione per la "larghezza del filtro" per i singoli modi (inversamente proporzionale). Influisce sulla levigatezza e sull'adattamento del trend alla volatilità del grafico dei prezzi.
- EigMax — imposta la dimensione allo "spazio del segnale" con informazioni utili. Imposta la soglia del "rumore".
- EigNoiseLevel — imposta il valore di "rumore" nella dispersione totale della serie. Deve essere specificato come una percentuale.
Implementazione
La classe CCaterpillar, implementata nel file CCaterpillar.mqh, include tutto il necessario per il calcolo del trend, escludendo le procedure di algebra lineare (utilizza la libreria ALGLIB per la dissecazione singolare della matrice della traiettoria). Il codice presentato nel file include le descrizioni per membri e procedure della classe.
Il funzionamento dell'indicatore richiede i seguenti file:
- 1) MQL5\Include\SSA\CCaterpillar.mqh
- 2) MQL5\Indicators\SingularMA.mq5
- La libreria ALGLIB (ringrazio sinceramente Sergey Bochkanov per aver fornito questa fantastica libreria di metodi numerici)
Particolarità d'uso
È sconsigliato impostare un frammento di dati maggiore di 300 valori a causa dell'elevato carico computazionale. È ottimale utilizzare tra 150 e 200 valori. Puoi sempre passare a un altro periodo di calcolo del grafico per coprire un intervallo di storia più ampio.
È consigliabile cambiare la finestra della "caterpillar" tra 1/3 e 1/2 della lunghezza del frammento. Se la finestra supera la metà del frammento, a causa della simmetria della traiettoria e della matrice trasposta, questo equivale a un segmento di lunghezza simmetrica rispetto al centro del frammento. Una piccola lunghezza della finestra non fornisce un'adeguata mediazione e suddivisione delle informazioni in determinati modi.
Se si nota un flusso lento di dati nell'interfaccia grafica della serie di prezzi, le possibili soluzioni possono essere: a) diminuire la lunghezza del frammento; b) aumentare il parametro ReCalcLim della discrezionalità di ricalcolo nella funzione OnCalculate.

Fig.1. Periodo di 5 minuti. Due trend SSA(120,50,4), SSA(50,20,7) e media mobile MA(14)

Fig. 2. Periodo di 1 ora. Due trend SSA(120,50,4), SSA(50,20,7) e media mobile MA(14)

Fig. 3. Periodo di 1 giorno. Due trend SSA(120,50,4), SSA(50,20,7) e media mobile MA(14)
Utilizzare l'analisi singolare per implementare un indicatore di trend in questa forma è una dimostrazione basilare. L'uso diffuso dei metodi SSA nel settore finanziario per l'analisi e la previsione delle serie temporali è ben documentato.
Riferimenti
- Elsner J.B., Tsonis A.A. Analisi Spettrale Singolare: Un Nuovo Strumento nell'Analisi delle Serie Temporali. Plenum Press. New York, 1996. 164 p.
- D. L. Danilov e A. A. Zhiglyavskii Componenti Principali nelle Serie Temporali: il Metodo Caterpillar. Università Statale di San Pietroburgo, 1997 -308 p.
- N. E. Golyandina Il metodo "Caterpillar"-SSA: analisi delle serie temporali: Guida di Studio. San Pietroburgo: 2004. - 76 p.
- Componenti Principali nelle Serie Temporali: il Metodo Caterpillar, a cura di D. L. Danilov, A. A. Zhigljavsky. San Pietroburgo: Presskom, 1997. P. 308.
- Metodo di «Caterpillar»-SSA — ARIMA — SIGARCH e modello ARSIMA — SIGARCH per l'analisi e la previsione delle serie temporali finanziarie ed economiche: Atti della Seconda Conferenza Scientifica Internazionale "Metodi matematici, modelli e tecnologie dell'informazione in economia", 4-6 maggio 2011, Chernivtsi. — P. 306—308.
- Kozhihova N.A., Shiryaev V.I. Previsione delle serie temporali utilizzando componenti caotiche. Bollettino dell'Università Statale del Sud Ural, n. 22, 2010, P. 22-25.
- A.M. Avdeenko Consulenti e indicatori basati su modelli SSA e generalizzazioni non lineari // vedi. arXiv:
Post correlati
- Volatilità Stocastica: Indicatore per MetaTrader 5 da Utilizzare sul Grafico
- Indicatore di Equità e Bilancio per MetaTrader 5: Monitoraggio della Tua Performance di Trading
- Notis: L'Indicatore per Misurare la Volatilità su MetaTrader 5
- Indicatore GARCH: Un Estimatore di Volatilità per il Trading Professionale
- Utilità per Serie e Informazioni sulle Rate in MetaTrader 5