Met behulp van de Singular Spectrum Analyse (SSA) kunnen we trends extraheren en ruis filteren. Door de parameters van de indicator aan te passen, krijg je controle over de gladheid van de geëxtraheerde trend en de drempel voor ruisfiltering.
De tijdshorizon van je handelsstrategie bepaalt hoe je de data het beste kunt splitsen in trendcomponenten, lage frequentie en hoge frequentie. Het resultaat is een reconstructie van het signaal. De indicator (de gladde trend) heeft geen fasevertragingen, in tegenstelling tot traditionele filtermethoden en gemiddelde waarden.
De trendindicator die gebruikmaakt van de "Caterpillar"-methode breidt de prijsserie uit in additieve componenten. Dit vereist niet dat de serie stationair is, en je hebt geen model van de trend of informatie over de aanwezigheid van periodieke componenten nodig.
De mogelijkheden van deze indicator laten je toe om de serie te gladstrijken, de trend te extraheren en (door de aanpassingsparameters van het model voor de initiële prijsserie te kiezen) de bijdrage van de oscillatorsummanden op een kleinere tijdschaal in overweging te nemen — zo filter je de "ruis" fluctuaties eruit.
Indicatorparameters
De belangrijkste parameters zijn:
- SegmentLength — de lengte van het fragment van de "meest recente geschiedenis" in de prijsserie.
- SegmentLag — de lengte van de caterpillar, gekozen in het bereik van 1/4 tot 1/2 van de fragmentlengte. Dit beïnvloedt de herkenbaarheid van de componenten en de gladheid van de trend.
- EigMax — het aantal hoofcomponenten (splitsingsmodi). Dit bepaalt de dimensie van de signaalruimte en de overweging van fluctuaties op verschillende schalen.
- EigNoiseFlag — een vlag voor het berekenen van het aantal hoofcomponenten, waarmee je kunt schakelen tussen een "vaste" aantal modi en de waarde van de toegestane ruis. Opties = 0, 1, 2.
- EigNoiseLevel — het toegestane percentage ruis in de totale "fluctuatie-energie" van de serie, als EigNoiseFlag != 0. Dit overschrijft de EigMax tijdens berekeningen.
Opties voor de EigNoiseFlag integerparameter:
- 0 - de dimensie van de signaalruimte is vast: [1,EigMax] (EigNoiseLevel wordt genegeerd. Als EigMax groter is dan toegestaan, wordt het beperkt tot de toegestane waarde).
- 1 — het aandeel van een individuele moduswaarde ten opzichte van de totale som van waarden moet minimaal gelijk zijn aan de opgegeven fout EigNoiseLevel. EigMax wordt automatisch gekozen.
- 2 — beschouw de modi met een totaal aandeel dat niet hoger is dan EigNoiseLevel.
Typische selectie en impact van parameters:
- SegmentLength — de lengte van het prijsseriefragment aan het einde van de datahistorie. Dit wordt gekozen op basis van de stabiliteit van de geschiedenis en de meer of minder uniforme aard van veranderingen in data of strategieperiode.
- SegmentLag — bepaalt de dimensie voor de "filterbreedte" voor individuele modi (omgekeerd evenredig). Dit beïnvloedt de gladheid en aanpassing van de trend aan de volatiliteit van de prijskaart.
- EigMax — stelt de dimensie in van de "signaal" subruimte met nuttige informatie. Bepaalt de "ruis" drempel.
- EigNoiseLevel — stelt de "ruis" waarde in van de totale spreiding van de serie. Dit moet worden opgegeven als een percentage.
Implementatie
De CCaterpillar klasse, geïmplementeerd in het CCaterpillar.mqh bestand, bevat alles wat nodig is voor de berekening van de trend, behalve de lineaire algebra procedures (de ALGLIB bibliotheek wordt gebruikt voor de singular dissectie van de trajectmatrix). De code in het bestand bevat beschrijvingen voor leden en procedures van de klasse.
Voor de werking van de indicator zijn de volgende bestanden nodig:
- 1) MQL5\Include\SSA\CCaterpillar.mqh
- 2) MQL5\Indicators\SingularMA.mq5
- De ALGLIB bibliotheek (ik sluit me aan bij velen die Sergey Bochkanov dankbaar zijn voor het bieden van de geweldige ALGLIB bibliotheek van numerieke methoden)
Bijzonderheden van gebruik
Het is niet aanbevolen om een datafragment groter dan 300 waarden in te stellen vanwege de hoge rekentijd. Het is optimaal om 150-200 te gebruiken. Je kunt altijd overschakelen naar een andere periode van grafiekberekeningen om een groter historisch interval te dekken.
Het is raadzaam om de "caterpillar"-venster te veranderen in het bereik van 1/3 tot 1/2 van de fragmentlengte. Als het venster meer dan de helft van het fragment overschrijdt, dan is dat vanwege de symmetrie van het traject en de getransponeerde matrix, dat gelijkwaardig aan een segment met een lengte, symmetrisch ten opzichte van het midden van het fragment. Een kleine vensterlengte zorgt niet voor kwalitatieve averaging en splitsing van informatie naar bepaalde modi.
Als er een trage doorstroming van data is in de grafische interface van de prijsserie, kunnen mogelijke oplossingen zijn: a) verklein de fragmentlengte; b) verhoog de ReCalcLim parameter van de herberekening discretie in de OnCalculate functie.

Fig.1. Periode van 5 minuten. Twee trends SSA(120,50,4), SSA(50,20,7) en voortschrijdend gemiddelde MA(14)

Fig. 2. Periode van 1 uur. Twee trends SSA(120,50,4), SSA(50,20,7) en voortschrijdend gemiddelde MA(14)

Fig. 3. Periode van 1 dag. Twee trends SSA(120,50,4), SSA(50,20,7) en voortschrijdend gemiddelde MA(14)
Het gebruik van de singular analyse voor de implementatie van een trendindicator in deze vorm is een basisillustratie. Het wijdverspreide gebruik van SSA-methoden in de financiële sector voor de analyse en prognose van tijdseries wordt gepresenteerd in verschillende studies.
Referenties
- Elsner J.B., Tsonis A.A. Singular Spectrum Analysis: A New Tool in Time Series Analysis. Plenum Press. New York, 1996.
- D. L. Danilov en A. A. Zhiglyavskii Principal Components in Time Series: the Caterpillar Method. St. Petersburg State Univ., St. Petersburg, 1997.
- N. E. Golyandina The "Caterpillar"-SSA method: analysis of time series: Study Guide. St. Petersburg: 2004.
- Principal Components in Time Series: the Caterpillar Method, edited by D. L. Danilov, A. A. Zhigljavsky. St. Petersburg: Presskom, 1997.
- Method of «Caterpillar»-SSA — ARIMA — SIGARCH and ARSIMA — SIGARCH model for the analysis and forecast of the financial and economic time series: Proceedings of the Second International Scientific Conference "Mathematical methods, models and information technology in economy", 4-6 May 2011, Chernivtsi.
- Kozhihova N.A., Shiryaev V.I. Time series forecasting using chaotic component. Bulletin of the South Ural State University, № 22, 2010.
- A.M. Avdeenko Advisors and indicators based on the SSA models and non-linear generalizations.
Gerelateerde berichten
- PCA Synthetics: Automatische Coëfficiëntselectie voor MetaTrader 5
- iExposure Indicator: Beheer je Handelsposities Efficiënt met MetaTrader 5
- Efficiënt Grafische Objecten Kopiëren in MetaTrader 5 met ChartObjectsCopyPaste
- Efficiëntie Ratio (ER) Berekenen met de CEROnRingBuffer voor MetaTrader 5
- Verbeter je Handelsstrategieën met de ColorXADX Indicator voor MetaTrader 5