MetaTrader 4 für eine Zeitbasierte Muster Analyse verwenden

Giampiero Raschetti | 9 März, 2016

Einführung

Das Lesen von Beiträgen im Automated Trading Championship Forum und von Interviews, führt immer zu vielen interessanten Informationen, die unter viel Drumherum begraben sind. Die von William Boatright (Wackena) in seinem Interview, https://championship.mql5.com, zur Verfügung gestellten Argumente, erregten meine Aufmerksamkeit für den zeitbasierten Ansatz zur Auswahl einer einzigen Stunde am Tag, um einen einzigen Trade mit einer täglichen Swing-Handelstechnik zu machen.

Also fing ich an Informationen über den Ansatz des zeitbasierten Einstiegs zu sammeln, und ich entschied ein System umzusetzen, das in der Lage sein muss die tatsächliche Leistungsfähigkeit dieser Technik zu bestätigen.

Ein an den Artikel angehangener Code wurde ohne wirkliche Ausstiegsstrategie verwirklicht, nur um Ihnen ein Beispiel zu geben, welche Art von Zeitmustern Sie mit MetaTrader 4 für Data Mining und statistische Untersuchung über eine relativ lange Datenreihe erwarten können.


Suche nach Literatur

Zuerst suchte ich nach der Bestätigung dieser Idee in der Literatur, und ich fand einen sehr interessanten Artikel über dieses Thema in "New Trading Systems and Methods" von Perry J. Kaufman, eine wirklich schwere Bibel des Abenteuers Technische Analyse. 15 Kapitel erzählen über Mustererkennug und eines der ersten Argumente ist die Tageszeit und Handelsgewohnheiten.

In diesem Kapitel erwähnt er Frank Tubbs' Börsenbrief Lektionen, in denen er die sechs dominierenden Muster des Aktienmarktes, basieren auf US-Handelszeiten erklärt, und wo er in Regel 4 behauptet: "Wenn der Markt bis 2:00 p.m. bullish war, wird sich dies wahrscheinlich bis Handelsschluss und den nächsten Tag fortsetzen".

Nun, 2:00 p.m. GMT-5 ist genau 20:00 Uhr GMT+1, die Zeit, in der Wakena in dem Wettbewerb seine Trades ausführte. Das ist die erste interessante Bestätigung über die Wirksamkeit dieser Technik. Weitere interessante Hinweise über das Thema werden in diesem Kapitel Kaufmans vorgestellt.


Umsetzung des zugrundeliegenden EA

Die erste Überlegung über die Umsetzung einesSystems, das eine Handelsrichtung zu einer bestimmten Tageszeit erfassen soll, ist, dass die einzigen relevanten Signale, nach denen Sie suchen können, diejenigen sind, die Ihnen Informationen geben über die Trendrichtung und die Gegentrend-Methoden oder Breakout Systeme, nicht zu diesem Zweck geeignet sind.

Ein grundlegender Expert Advisor wurde in diesem Artikel vorgestellt und ein Block- Diagramm, welches den Betriebsablauf darstellt, werden hier aufgezeigt.

Wobei:


Betriebs- und Optimierungsergebnisse

Ich verwende die MetaTrader Engine auf einem Apple MacBookPro mit einem virtuellen PC unter Parallel Desktop, wo er schnell und zuverlässig läuft, und ic kann schnell schnelle Momentaufnahmen der virtuellen Windows Maschine sehr einfach für die Dokumentation machen.

Das Backtesting wurde mit dem Währungspaar EURUSD gmeacht, über verfügbare Daten vom 1. Januar 2007 bis zum 29. Dezember 2007 in einem 15 Zeitrahmen, wo die Ergebnisse zufriedenstellen schienen.

Die wesentlichen in diesem Artikel verwendeten Betriebsparameter wurden einem ersten Optimierungsprozess entnommen, und Sie können selbst verschiedene solcher Parameter versuchen.

Die einzige Überlegung über die Auswahl der in diesem Test verwendeten Parameter für Take Profit und Stop Loss ist die, dass wir hier nicht wirklich an einer Maximierung des Kontostands interessiert sind, noch an irgendeinem anderen von MetaTrader präsentierten Optimierungsparameter, aber in der Tat, müssen wir nur die Anzahl der Gewinntrades maximieren, um die Einstiegsstrategie zu belasten.

Jede Optimierung anderer Ergebnisse muss in einer späteren Phase gemacht werden.

Hier ist der Code des Ananlyzer-Moduls, in den Sie, zu Testzwecken, jeden anderen Signaldetektor hinzufügen können.

Zwei verschiedene Signale müssen bei der Wah der richtigen Richtung übereinstimmen.

//+------------------------------------------------------------------+ 
//| Price Direction Analyzer 
//+------------------------------------------------------------------+ 
int Analyzer()  
{ 
 int  signalCount=0; 
 signalCount += EntrySignal1(); 
 signalCount += EntrySignal2(); 
 return(signalCount); 
} 
 
//+------------------------------------------------------------------+ 
//| ENTRY SIGNALS BLOCK MODULES 
//+------------------------------------------------------------------+ 
int EntrySignal1() 
{ // Long term SMA trend detect 
 int i,Signal; 
 
 int LongTrend=0; 
 for(i=0;i<3;i++) 
 { 
   if (iMA(Symbol(),PERIOD_H4,S1_MA_FAST,0,MODE_LWMA,PRICE_TYPICAL,i) > iMA(Symbol(),PERIOD_H4,S1_MA_FAST,0,
   MODE_LWMA,PRICE_TYPICAL,i+1)) 
     LongTrend++; 
   else 
     LongTrend--; 
 }     
 if( LongTrend < 0) 
   Signal=-1; 
 else 
   Signal=1;  
 return(Signal);  
} 
 
int EntrySignal2() 
{ // Daily MACD 
   int Signal; 
 
   if (iMACD(NULL,PERIOD_D1,S2_OSMAFast,S2_OSMASlow,S2_OSMASignal,PRICE_WEIGHTED,MODE_MAIN,0) > 
       iMACD(NULL,PERIOD_D1,S2_OSMAFast,S2_OSMASlow,S2_OSMASignal,PRICE_WEIGHTED,MODE_MAIN,1) ) 
     Signal=1; 
   else 
     Signal=-1; 
   return (Signal); 
}

Trading hour is matched in a block trading filter module that can be simply realized as follows.

Modular architecture described can easily leave space for new blocking filters in the operation flow.

//+------------------------------------------------------------------+ 
//| FILTER BLOCK MODULES 
//+------------------------------------------------------------------+ 
bool BlockTradingFilter1() 
{
 bool BlockTrade=false;  //trade by default 
 if (UseHourTrade) 
 { 
   if( !(Hour() >= FromHourTrade && Hour() <= ToHourTrade && Minute()<= 3) ) 
     { 
      //  Comment("Non-Trading Hours!"); 
      BlockTrade=true; 
     } 
  } 
 return (BlockTrade);  
}

Wir sollten in der Tat in der Lage sein viele kleine Gewinn-Trades zu haben, ohne den gesamten Kontostand zu berücksichtigen.

Hier ist die wichtigste Optimierungeistellung:

Um Zeitintervalle zu analysieren, welche die besten Ergebnisse liefern, müssen Sie FromHourTrades auf 0 bis 23 mit 1 Stunde Schritten einstellen und das Häkchen bei der Optimierung im Backtest setzen, bevor Sie den Vorgang starten.

Hier sein die Optimierunsergebnisse:

Wie Sie sehen können sind dort Stunden, in denen die Verwendung von Handelszeit-Techniken sehr gefährlich sein kann, während die Auswahl der Trendrichtung zu anderen Stunden am Tag deutlich rentabler sein sollte, und dieser Zeitinterall, zwischen 19:00 Uhe und 22:00 Uhr GMT+1, der Nachmittag der Eastern-Zeitzone, ist die Zeit, wenn alle Nachrichten von den Märkten verdaut worden sind. In diesem Fall, mit verfügbaren historischen Daten, die von dem Optimierungsvorgang erhaltene Spitzenstunde entspricht 21:00 GMTü1 (MEZ).

Natürlich sollten diese Ergebnisse für den Forex-Markt in 2007 als gültig angesehen werden, aber Frank Tubbs alte Überlegungen über die Handelsgewohnheiten lassen uns hoffen, dass sie über einen größeren Zeitraum gütlig sind.

Und hier sind die detaillierten Ergebnisse des Optimierungsvorgangs:

Sie müssen berücksichtigen, dass diese Ergebnisse auch von den Trendsignalen zur Auswahl der Richtung der Order abhängen, und ich kann Ihnen sagen, dass in dieser zeitbasierten Strategie die Auswahl aus einer großen Anzahl unterschiedlicher Signale zu ganz ählichen Ergebnissen führt, aber sicherlich können Sie andere Signale testen und mir Ihre Ergebnisse mitteilen.

Und hier die Berichte des Backtests um 21:00 GMTü1

Wie Sie sehen können, sind dort 160 Trades und 154 Gewinn-Trades (96.86%).

Diese Information bestätigt die von Wakena in seinem Interview.


Einführung in Zeitbasierte Stop-Loss

Die Anzahl der während des Backtest über den Zeitraum von einem Jahr könnte daruf hindeuten, dass wir in der Lage sein sollte die Handelsergebnisse zu verbessern, durc den Einsatz eines zeitbasierten Stop-Loss, der Raum für neue Ordern lassen sollte, sollte es irgendwelche Verluste geben, wenn wir nach 23:00 Uhr am Markt sind.

Dazu können Sie einfach UseTimeBasedStopLoss auf 'true' einstellen und verschiedene Optimierungsparameter versuchen.

Die folgende Berichtstabelle zeigt die Folgen dieser Strategieänderung.

Wie Sie sehen können, lässt sich bei dieser Ausstiegsstrategie vermuten, das ein langer Swing-Trade, in einem schwachen Markt, Sie vor dem Hinzufügen unerwünschter Ordern in schlechten Momenten schützen kann. Also sollte es besser sein geduldig zu bleiben und zu warten bis der gefährliche Mrkt seitwärts auslüuft.


Fazit

Die Strategie der zeitbasierten Mustererkennung auf Handelsgewohnheiten legt weitere Unterungen nahe, und rechtfertigt es eine gültige Money-Management Strategie zu diesem Exoert Advisor hinzuzufügen, und vor allem eine gültige Trailing Stop Engine, aber dies sollte ein Grung für einen neuen Artikel sein.

Der angehängte Code kann auch verwendet werden um weitere Untersuchungen über andere Muster und Währungspaare anzustellen, um andere zeitbasierte Handelsverhalten zu analysieren. Lassen Sie mich einfach Ihre Erfahrungen bei dieser Untersuchung wissen.


Referenzen

New Trading Systems and Methods, by Perry J. Kaufman

https://championship.mql5.com

The Encyclopedia of Trading Strategies, by Jeffrey Owen Katz,Donna L. McCormick

Forex conquered, by J.L.Person

Trading with the odds, by Cynthia A.Kase