English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
preview
Eine Analyse der Gründe für das Scheitern von Expert Advisors

Eine Analyse der Gründe für das Scheitern von Expert Advisors

MetaTrader 5Experten | 25 Februar 2022, 09:06
783 0
Richard Poster
Richard Poster


Einführung

Expert Advisors (EAs) können über einen Zeitraum von Monaten und sogar einigen Jahren eine gute Performance aufweisen, aber es gibt immer Zeiträume, in denen die Performance schlecht ist.  EAs weisen nur selten über einen längeren Zeitraum, z. B. zehn Jahre, einen gleichmäßigen Gewinn auf.  Wenn ein EA in der Vergangenheit Perioden mit schlechter Performance hatte, wie kann man dann erwarten, dass er in der Zukunft immer gut abschneidet? 

Bei dieser Analyse stellen sich zwei Fragen: Welche Veränderungen treten in den Zeitreihendaten auf, die die Leistung des EA stark beeinflussen? Gibt es einen technischen Indikator, der vorhersagen kann, wann ein EA eine schlechte und wann er eine gute Performance hat? Ein solcher Indikator wäre sehr wertvoll!


Auslöser für das Kreuzen von Gleitenden Durchschnitten

Um diese Fragen zu untersuchen, werden 15-Minuten-Währungsdaten über einen Zeitraum von sechzehn Jahren zusammen mit einer Teststrategie, dem Kreuzen von Gleitenden Durchschnitten (Moving Average Crossover, MAC) verwendet. Für das Auslösen des Kreuzens von Gleitenden Durchschnitten (MAC) wird ein Kaufsignal erzeugt, wenn der schnelle Einfache Gleitende Durchschnitt (Simple Moving Average, SMA) den langsamen SMA nach oben überquert, und ein Verkaufssignal, wenn der schnelle SMA den langsamen SMA nach unten überquert. Die MAC-Strategie eignet sich gut als Testumgebung für Studien. Die wichtigsten Eingabeparameter für die MAC-Strategie sind die schnellen und langsamen SMA-Perioden. Die schnelle SMA-Periode beträgt in diesen Studien typischerweise 1 bis 4 und die langsame SMA-Periode 10 bis 150, und beide werden während des Testzeitraums als feststehend angenommen.

Abbildung 1 zeigt das Gewinn-Rendite-Verhalten des SMA-Kreuzungssignal für das Währungspaar EURUSD von Januar 2006 bis Dezember 2021. Für die optimierten schnellen und langsamen SMA-Perioden von 2 und 80 weist der EA für einige Intervalle eine positive Rendite und für andere Intervalle eine negative Rendite auf. Der Zeitraum von 1/2008 bis 6/2013 weist ein stetiges Gewinnwachstum auf. Abbildung 2 zeigt das Gewinn-Rendite-Verhalten des SMA-Kreuzungssignale für das Währungspaar GBPUSD für das gleiche Intervall mit den optimierten SMA-Perioden von 1 und 80. Der GBPUSD-Chart zeigt nur kurze Perioden mit positiver Gewinnentwicklung.

Abb_1_EURUSD_SMA-Kreuzungssignal

 Abb. 1 EURUSD SMA-Kreuzungssignal Gewinn(0.1 Lot)


     

Abb_2_GBPUSD_SMA-Kreuzungssignal

  Abbildung 2. GBPUSD SMA-Kreuzungssignal Gewinn (0,1 Lot)

In Anbetracht der in den Abbildungen 1 und 2 gezeigten zeitlichen Verhaltensweisen können wir das zeitliche Verhalten gängiger technischer Indikatoren untersuchen, um festzustellen, ob es einen Zusammenhang zwischen dem zeitlichen Verhalten technischer Indikatoren und dem zeitlichen Verhalten des Gewinns beim Kreuzungssignal des Gleitenden Durchschnitts gibt. 


Verhalten der traditionellen technischen Indikatoren

Mehrere technische Standardindikatoren können daraufhin untersucht werden, ob ihr Verhalten in den Zeitregionen mit positiver und negativer Rendite unterschiedlich ist. Abbildung 3 zeigt den monatlichen Average True Range (ATR)-Indikator über einen Zeitraum von sechzehn Jahren für EURUSD. Der ATR-Indikator ist ein Maß für die Volatilität des Währungspaares. Er weist ein eindeutiges zeitabhängiges Verhalten auf, das jedoch nicht dem Gewinnzeitverhalten in Abbildung 1 entspricht. Interessanterweise zeigt Abbildung 3 die extreme Volatilität während der Wirtschaftskrise Ende 2008 und erneut Anfang 2020. Dies deutet auch darauf hin, dass es unklug ist, absolute Schwellenwerte für Preisänderungen als Auslöser für die Logik zu verwenden, und dass der geglättete ATR-Wert in Betracht gezogen werden sollte. Ein weiterer gängiger technischer Indikator ist die Spanne zwischen den oberen und unteren Bollinger Band. Dieser Indikator sollte sowohl von der Volatilität als auch von der Trendstärke beeinflusst werden. Überraschenderweise ist sein langfristiges monatliches Verhalten, wie in Abbildung 4 dargestellt, fast identisch mit dem ATR-Indikator. Wie der ATR-Indikator weist auch er kein Verhalten auf, das den positiven und negativen Renditebereichen in den EURUSD-Daten von Abbildung 1 entspricht. Ähnliche Ergebnisse zeigen sich für die GBPUSD-Daten. Die langfristige Volatilität ist nicht für das in den Abbildungen 1 und 2 gezeigte Zeitverhalten verantwortlich.


Fig_3_ATRvsMth

Abbildung 3. EURUSD ATR, monatlicher Durchschnitt     

FIg_4_BBSpreadVsMth

  Abb. 4. EURUSD Breite der Bollinger Bänder, monatlicher Durchschnitt


Autokorrelationsfunktion als Indikator

Im Gegensatz zu den Indikatoren ATR und Bollinger Bänder ist die Autokorrelationsfunktion (ACF) nicht von der Volatilität abhängig. Die ACF ist ein hilfreiches Instrument, um Muster in Zeitreihendaten zu finden. Die ACF misst die Korrelation von Elementen in einer Zeitreihe mit Elementen in dieser Zeitreihe, die um eine Verzögerungszeit verzögert sind. Wenn ein Trend in den Daten vorhanden ist, hat die ACF bei kleinen Verzögerungen positive Werte. In dieser Analyse wird das Element Yi in der Zeitreihe als (Schlusskurs - Eröffnungskurs) des Balkens i definiert.

Für eine Zeitreihe mit N Elementen Yi , i =1...N, ist der ACF definiert als:

ACF_GleichungV2

Die Autokorrelationsfunktion für eine Reihe von Preisdaten unterscheidet sich deutlich von der Autokorrelation einer Reihe von Balken-zu-Balken-Preisänderungsdaten. Für eine Reihe von Zahlen {1,2,3..14} beträgt die ACF beispielsweise 0,786. Für eine Reihe von Differenzen zwischen aufeinanderfolgenden Elementen dieses Arrays wird der ACF nahe bei Null liegen (unter der Annahme, dass die Werte ein wenig verrauscht sind, um eine Division durch Null zu vermeiden).

Die Berechnung des ACF ist im folgenden Codeschnipsel implementiert:

 double GetAtCorrVal(double &ClsOpn[],int CorrPer, int LagPer,int joff ) {
   double corr;
   double AIn[],BIn[];
   double XMean,XNum,XDen;
   int jj;
   ArrayResize(AIn,CorrPer);
   ArrayResize(BIn,CorrPer);
   XMean = 0.;
   XNum = 0.;
   XDen = 0.;
   corr = 0.;
   if(CorrPer<2)
    {
     Print("No AutoCorr Processing Allowed ");
     return(corr);
    }
   // mean
   for(jj=0;jj<CorrPer;jj++)
    {
     XMean +=ClsOpn[jj+joff];
    }
   XMean = XMean/CorrPer;
  // variances
   for(jj=0;jj<CorrPer;jj++)
    {
     if(jj<(CorrPer-LagPer))
       XNum  += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+LagPer+joff]-XMean);
     XDen += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+joff]-XMean);
    }  
    if(XDen==0.)
     {
      corr = 0.;
     }
    else
    corr = XNum/XDen;
   return(corr);
  }
//----------------------------------------------------------------

  

Abbildung 5 zeigt den monatlichen Durchschnitt des ACF über den Zeitraum von sechzehn Jahren für EURUSD-Daten mit einer Glättungsperiode von sechs Monaten. Abbildung 1 zeigt eine profitable Performance zwischen 2008 und Ende 2012, während Abbildung 5 zeigt auch einen etwas höheren ACF-Wert in dieser Zeitregion, was auf einen möglichen Zusammenhang zwischen der Gewinnentwicklung der MAC-Strategie und dem Wert des ACF hinweist.


         

Abb_5_EURUSD_ACFvsMth

  Abbildung 5. EURUSD-Autokorrelationsfunktion - monatlicher Durchschnitt


Bei den in Abbildung 6 dargestellten GBUUSD-Daten ist ein schwacher Zusammenhang zwischen der Gewinnentwicklung (wie in Abbildung 2 dargestellt) und dem ACF-Wert zu erkennen.

Abb_6_GBPUSD_ACFvsMth

           

 Abb. 6. GBPUSD AutoKorrelationsfunktion Monatsdurchschnitt

Die Funktion AutoCorrelation kann als Indikator verwendet werden (AutoCorr.mq5), ist aber, wie aus Abb. 7 ersichtlich, kein guter Indikator zur Trenderkennung.


Abb_7_EURUSD_ACFIndikator

Abbild 7. ACF-Indikator, Lag=1

ACF Zeitverhalten und die Strategie der Kreuzung der SMA

Weitere Informationen erhält man, wenn man das Zeitverhalten des ACF kurz vor dem SMA Kreuzungspunkt (Trigger-ACF) und auch kurz nach dem Kreuzungspunkt, während der Handel noch offen ist (Trade-ACF), betrachtet. Die beiden Arten von ACFs, Trade-ACF und Trigger-ACF, haben unterschiedliche Eigenschaften. Die Abbildungen 8 und 9 zeigen den Handels-ACF für die EURUSD- und GBPUSD-Daten. Mit dem Strategietester kann der ACF-Wert getrennt für Gewinn- und Verlusttrades als Funktion der Zeit dargestellt werden. Beide Charts zeigen eine zeitlich variierende Trennung des ACF zwischen Gewinn- und Verlusttrades. Die profitable Region 1/2008-6/2013 in Abbildung 1 (EURUSD) entspricht ungefähr einer Region in Abbildung 8, in der die Trennung des ACF ebenfalls groß ist. Ab 1/2018 gibt es eine geringe Trennung zwischen den ACF-Werten für Gewinn- und Verlustpositionen. In Abbildung 1 entspricht dies einer flachen Region bei den Gewinnrenditen.


Abb_8_EURUSD_TradeACF

  Abb. 8. AutoCorrelation des Handels für EURUSD für SMA-Kreuzungssignale


Abb_9_GBPUSD_TradeACF

Abb. 9. AutoCorrelation des Handels für GBPUSD bei SMA-Kreuzungssignale

Abbildungen 10 und 11 zeigen den Trigger-ACF für die EURUSD- und GBPUSD-Daten. Der Zweck dieser beiden Diagramme ist es, zu untersuchen, ob der Trigger-ACF-Wert als Filter in einem Expert Advisor verwendet werden kann, um die Rentabilität der Strategie der SMA-Kreuzungssignale zu verbessern. Im Vergleich zu den Trade-ACF-Daten zeigen die Trigger-ACF-Daten eine geringere Trennung zwischen positiven und negativen Gewinnerträgen. Dies schwächt seinen Wert als Triggerfilter. Der ACF-Wert ist jedoch weitgehend flach im Zeitverlauf, was darauf hindeutet, dass ein fester Schwellenwert für den ACF als Triggerfilter verwendet werden könnte. Die Gewinn/Verlust-Kurven bewegen sich weitgehend übereinander, was bedeutet, dass es Bereiche im Zeitverlauf gibt, in denen Positionen nicht profitabel wären.

   

Abb_10_EURUSD_TriggerCF

 Abb. 10. Trigger-Autokorrelation für EURUSD für SMA-Kreuzungssignale


Abb_11_GBPUSD_TriggerACF

Abbildung 11. Trigger-Autokorrelation für GBPUSD für SMA-Kreuzungssignale


ACF-Filter für den SMA-Kreuzungssignale

Trotz der geringen ACF-Unterschiede zwischen den Positionen mit positivem und negativem Ergebnis (Abbildungen 10 und 11) wird die Renditeleistung des Expert Advisors in Regionen mit schlechter Gewinnentwicklung deutlich verbessert, wenn dem SMA-Kreuzungssignal eine Autokorrelationsschwellenanforderung hinzugefügt wird. Abbildungen 12 und 13 zeigen die Gewinnrendite des EA mit einem zusätzlichen ACF-Filter für EURUSD- und GBPUSD-Daten. Es wird die volle Laufzeit von 16 Jahren verwendet. Vergleicht man die Abbildungen 1 und 2 mit den Abbildungen 12 und 13, so zeigt sich, dass die Rendite sowohl für EURUSD als auch für GBPUSD erheblich verbessert wird, wenn ein Schwellenwert für die Autokorrelation angewendet wird.

                           

Abb_12_EURUSD_SMA Kreuzungskorrelation

Abbildung 12. EURUSD Kreuzungssignale mit ACF-Filter

Abb_13_GBPUSD_SMA Kreuzungskorrelation

Abb. 13. GBPUSD Kreuzungssignale mit ACF Filter


Abb. 14 zeigt eine Tabelle mit den Leistungsergebnissen des Strategy Testers. Eine signifikante Verbesserung ist sowohl für die EURUSD- als auch für die GBPUSD-Daten zu erkennen. In beiden Fällen erhöht sich der Gesamtgewinn um etwa 50%, wenn der ACF-Filter aktiviert ist, und der Gewinn je Position (PO) wird ebenfalls stark verbessert.

Auslöser-Typ

# Positionen

Gewinn $

(0.1 Lot)

Gewinn/Verlust (PF)

Gewinn/Position (PO)

EURUSD SMA kreuzen

3160

5830.

1.10

1.85

EURUSD SMA kreuzen + ACF

1548

8511.

1.33

5.50

GBPUSD SMA kreuzen

3672

5352.

1.07

1.46

GBPUSD SMA kreuzen + ACF

3096

8317.

1.13

2.69

                              Abb. 14. Tabelle der Testentwicklung für EURUSD- und GBPUSD-Daten


Abhängigkeit des ACF von der SMA-Slow-Periode für die Strategie der SMA-Kreuzungssignale


Es ist auch von Interesse, die Abhängigkeit der durchschnittlichen Autokorrelationsfunktion von der Wahl der langsamen Periodenlänge des SMA für Gewinn- und Verlustpositionen zu untersuchen. Dies wird für die EURUSD M15-Daten in Abbildung 15 gezeigt. Im Rahmen der Handelseröffnungsstrategie wird keine Korrelationsschwelle verwendet. Unter Berücksichtigung des ACF-Wertes wurde die optimale langsame Periode für die Strategie der SMA-Kreuzungssignale auf 80 festgelegt. Abbildung 15 zeigt, dass der größte Abstand des durchschnittlichen ACF-Wertes zwischen Gewinn- und Verlustpositionen bei langsamen SMA-Perioden zwischen 65 und 80 auftritt. Eine weitere Analyse könnte dazu führen, die ACF-Informationen zu nutzen, um den optimalen langsamen Zeitraum auf der Grundlage des gemessenen Autokorrelationswertes zum Zeitpunkt der Handelseröffnung zu bestimmen. 


Abb_15_AvgACVvsSlowPeriod

Bild 15. Durchschnittlicher ACF gegenüber der Periodenlänge des langsamen SMA für EURUSD

Schlussfolgerung

Die Autokorrelationsfunktion ist ein wertvoller Indikator zur Verbesserung der Leistung von Expert Advisors. Sie verbessert die Leistung des Test-Triggers, indem sie Regionen mit schlechter Leistung herausfiltert.

Im Allgemeinen stellen Korrelationskoeffizienten, einschließlich der Autokorrelationsfunktion, einen fruchtbaren Forschungsbereich zur Verbesserung der Handelseffizienz dar. Sie sind immun gegen Volatilitätseffekte und reagieren empfindlich auf Kursmuster einschließlich Trendbildung und -umkehr.


Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/3299

Beigefügte Dateien |
AutoCorr.mq5 (4.12 KB)
Entwicklung eines Expert Advisor für den Handel von Grund auf Entwicklung eines Expert Advisor für den Handel von Grund auf
In diesem Artikel werden wir besprechen, wie man einen Handelsroboter mit minimalem Programmieraufwand entwickelt.
Lernen Sie, wie man ein Handelssystem mit Hilfe der Bollinger Bänder entwickelt Lernen Sie, wie man ein Handelssystem mit Hilfe der Bollinger Bänder entwickelt
In diesem Artikel lernen wir die Bollinger Bänder kennen, einen der beliebtesten Indikatoren in der Handelswelt. Wir werden die technische Analyse betrachten und sehen, wie man ein algorithmisches Handelssystem auf der Grundlage des Bollinger Bänder Indikators entwickelt.
Grafiken in der DoEasy-Bibliothek (Teil 92): Speicherklasse der grafischen Standardobjekte. Änderungsverlauf der Objekteigenschaften Grafiken in der DoEasy-Bibliothek (Teil 92): Speicherklasse der grafischen Standardobjekte. Änderungsverlauf der Objekteigenschaften
In diesem Artikel werde ich die Speicherklasse der grafischen Standardobjekte erstellen, die es dem Objekt ermöglicht, seine Zustände zu speichern, wenn seine Eigenschaften geändert werden. Dies wiederum ermöglicht den Rücksprung zu vorherigen Zuständen des grafischen Objekts.
Lernen Sie, wie man verschiedene Systeme mit gleitenden Durchschnitten entwirft Lernen Sie, wie man verschiedene Systeme mit gleitenden Durchschnitten entwirft
Kurzbeschreibung: In diesem Artikel lernen wir, wie man verschiedene Systeme des gleitenden Durchschnitts nach unterschiedlichen Strategien des gleitenden Durchschnitts entwickelt.