Identifizieren von Handelsstrategien durch Unterstützungs-/Widerstandspunkte und Kursentwicklungen

MICHAEL JANUS | 29 April, 2016

Inhaltsverzeichnis


Einleitung

In diesem Artikel werden eine Handelsmethode, die in jedem Forex-, Aktien- oder Rohstoffmarkt genutzt werden kann, sowie MQL4-Codebeispiele beschrieben, die auf der Grundlage dieser Methodik in Expert Advisors verwendet werden können.

Die Kursbewegung und die Bestimmung der Unterstützungs- und Widerstandspunkte sind die Schlüsselkomponenten des Systems. Der Markteintritt basiert vollständig auf diesen beiden Komponenten. Bestimmte Kursniveaus werden gemeinsam mit effektiven Wegen, wie man sie nutzt, erklärt. Die MQL4-Beispiele enthalten Parameter zur Risikominimierung. Dies wird erreicht, indem man die Stops bzw. die Punkte für einen Marktaustritt relativ nahe den Einstiegskursen platziert.

Es gibt einen zusätzlichen Vorteil bei höheren Handelsvolumen, unabhängig von der Kontogröße. Abschließend werden die Optionen zur Bestimmung der Gewinnziele diskutiert, begleitet vom MQL4-Code, der einen profitablen Marktaustritt während einer Reihe von Bedingungen ermöglicht.


1. Ein Blick auf Unterstützungs-/Widerstandspunkte

Wenn Sie auf einen Kurschart mit einem beliebigen Zeitrahmen für einen beliebigen Markt schauen, werden zwei Tatsachen offensichtlich, die auf Eigenschaften basieren, die ständig auftreten. Eine dieser Tatsachen ist, dass der Marktpreis zu keinem Zeitpunkt sehr lange unverändert bleiben wird. Nach einiger Zeit wird sich der Marktpreis wesentlich verändert haben. Jeder Kurs, der auf dem Chart dargestellt wird, kann als Referenzwert verwendet werden.

Bestimmte Kurse dienen als bessere Referenzen als andere. Wir werden in Kürze darauf eingehen. Die zweite vorher erwähnte Tatsache ist, dass ein jeder Chart bestimmte Kursniveaus hat, an denen der Markttrend umkehren wird. Oftmals erreicht der Markt immer wieder diese Kursniveaus und ändert dann jedes Mal kurz danach die Richtung. Es gibt Unterstützungs- und Widerstandspunkte, von denen praktisch ein jeder Händler schon gehört hat. Unterstützungspunkte sind Kursniveaus, unter die der Markt nicht fallen wird. Widerstandspunkte sind Kursniveaus, die der Markt nicht übersteigen wird.

Auch bekannt als Hochs und Tiefs, besagen diese Niveaus, dass dies die Grenze ist, wie weit der Markt (vorerst) gehen wird und dass eine Umkehr in der Nähe dieser Punkte stattfinden wird. Unterstützungs- und Widerstandspunkte sind gute Kursniveaus um als Referenzwerte verwendet zu werden, da sie Kursniveaus sind, bei denen mit hoher Wahrscheinlichkeit ein neuer Trend beginnen kann. Andere Kursniveaus, die ungefähr in der Mitte zwischen zwei relativen Unterstützungs- und Widerstandspunkten liegen, sind ebenfalls gute Referenzwerte. Wir werden später näher auf diese Mittelpunkte eingehen.

Jeder Teil eines Kurscharts kann mit horizontalen Linien abgegrenzt werden, die jeweils relevante Unterstützungs-, Widerstands- und Mittelwertpunkte miteinander verbinden. Diese Punkte werden als Referenzpunkte verwendet. Ein Beispiel hierfür wird unterhalb in Abb. 1 veranschaulicht.

Fig.1. Support, resistance, and midpoint

Abb. 1. Unterstützungs-, Widerstands- und Mittelwertlinie

Die untere violette Linie zeigt den Unterstützungspunkt bei 1,09838 an. Die obere rote Linie zeigt den Widerstandspunkt bei 1,10257 an.

Etwa auf halber Strecke zwischen den beiden Linien ist eine schwarze Linie, der Mittelpunkt, bei 1,10048. Die exakte Bestimmung der Unterstützungs- und Widerstandslinien ist subjektiv und kann anhand Ihrer eigenen Wahl von Markteinstiegen und Austritten variieren. Wahrscheinlich möchten Sie eine Position zu einem ganz bestimmten Kurs oder in der Nähe eines ganz bestimmten Kurses eröffnen. Oder der genaue Kurs bei Markteintritt spielt keine so große Rolle und es ist ausreichend, wenn er sich in einem größeren Bereich befindet. Es hängt alles von Ihrem individuellen Handelsstil und Ihren Gewinnzielen ab.

Als Folge kann der Abstand zwischen Ihren Unterstützungs- und Widerstandspunkten stark variieren. Es sind nur Referenzpunkte, die zur Definierung der richtigen Handelsbedingungen verwendet werden.

Fig.2. Support and Resistance price ranges

Abb. 2. Bereiche zwischen den Unterstützungs- und Widerstandslinien

Abb. 2 zeigt vier unterschiedliche Bereiche zwischen Unterstützungs- und Widerstandslinien auf einem 1-Minuten-Chart.

Einige der Bereiche sind breiter und einige sind etwas schmaler. Wie bereits erwähnt, sind die Kursniveaus subjektiv abgesteckt, aber es ist offensichtlich, dass sie immer bei den Hochs und Tiefs (und in der Mitte zwischen ihnen) bei kurzfristigen Trends erscheinen.

Die Abbildungen 3 bis 6 sind Beispiele für Unterstützungs- und Widerstandsbereiche die sowohl über längere als auch kürzere Zeiträume auf 1-Minuten-Charts eingezeichnet wurden.

Die Abbildungen 3-4 zeigen einen Bullenmarkt und die Abbildungen 5-6 zeigen einen Bärenmarkt.

Fig.3. Wide bull market

Abb. 3. Breiter Bullenmarkt


Fig.4. Narrow bull market

Abb. 4. Schmaler Bullenmarkt


Fig.5. Wide bear market

Abb. 5. Breiter Bärenmarkt


Fig.6. Narrow bear market

Abb. 6. Schmaler Bärenmarkt


Diese Kursniveaus zeigen Bereiche, die es bei bestimmten Arten von Kursbewegungen zu beobachten gilt. Ein Trade-Setup findet statt, wenn diese Arten von Kursentwicklungen auf einem Chart zu sehen sind.


2. Das Identifizieren von höchstwahrscheinlichen Kursentwicklungen aus Kursbewegungen

Es gibt eine Vielzahl von Doppel-Candlestick-Mustern, die ein Trade-Setup mit hoher Wahrscheinlichkeit bieten. Drei, die betrachtet werden, werden hier beschrieben. Das Auftreten dieser Muster kann nur in der Nähe der Unterstützungs- und Widerstandspunkte beobachtet werden, die als Referenzen für mögliche Einstiegsniveaus verwendet werden. Als Randnotiz, jedes Beispiel, das von diesem Punkt an präsentiert wird, wird auf einem 1-Minuten-Candlestick-Chart dargestellt. Dieser Zeitrahmen wird immer wegen der genauen Einstiegspunkte verwendet, die dieses System nutzt, sowie wegen seinen kurzen Entfernungen, was Stop-Loss-Orders betrifft.

Jedes der folgenden drei Muster setzt sich aus zwei 1-Minuten Candlesticks zusammen. Wenn eines dieser Muster in der Nähe von einem Referzenpunkt (Unterstützungs-, Widerstands- oder Mittelpunkt) gesehen wird, findet der Markteinstieg genau zum Eröffnungskurs des nächsten (dritten) 1-Minuten Candlesticks statt. Beispiele hierfür werden angezeigt, nachdem die drei Muster beschrieben wurden.

Das erste Muster, Muster 1, setzt sich aus einem Candlestick, der einen "Docht" hat, der länger als sein Körper ist, und einem zweiten Candlestick, der nach dem ersten und zwar in der entgegengesetzten Richtung des Dochts des ersten Candlesticks schließt, zusammen. Der Docht ist die gerade vertikale Linie, die entweder die Kursspanne zwischen dem Hoch und dem Anfang/Ende eines Candlesticks über seinem Körper, oder die Kursspanne zwischen dem Tief und dem Anfang/Ende unterhalb des Körpers angibt. "Doji" Candlesticks könnten als erste Candlesticks im Muster enthalten sein.

Fig. 7. Bullish Pattern 1

Abb. 7. Bullisches Muster 1


Fig. 8. Bearish Pattern 1

Abb. 8. Bearishes Muster 1

Abbildung 7 zeigt ein bullisches Muster und Abb. 8 zeigt ein bearishes Muster.

Diese Muster sind ähnlich wie die "Hammer" Candlestick Muster, aber nicht so spezifisch, da Dojis ebenso wie eine beliebige Kombination von "rauf" oder "runter" enthalten sein können.

Abb. 9 zeigt einen bullischen Trend, der mit dieser Art von Muster beginnt.

Fig. 9. Bullish Trend

Abb. 9. Bullischer Trend


Das zweite Muster, Muster 2, besteht aus zwei Candlesticks, wo der zweite Candlestick einen Körper hat, der praktisch die gleiche Länge wie der Körper des ersten Candlesticks hat.

Die Körper der beiden Candlesticks haben auch etwa die gleichen Eröffnungs- und Schlusskurse. Es sei angemerkt, dass die Länge der Körper der beiden Candlesticks sowie ihre entsprechenden Eröffnungs- und Schlusskurse, nicht exakt übereinstimmen müssen. Beispiele für diese Muster werden in Abb. 10, ein bearishes Muster, und in Abb. 11, ein bullischens Muster, dargestellt.

Diese Muster sind auch bekannt als "Pinzetten". Abb. 12 zeigt einen bearishen Trend, der mit einem Pinzetten-Muster beginnt.

Fig. 10. Bearish Pattern 2

Abb. 10. Bearishes Muster 2


Fig. 11. Bullish Pattern 2

Abb. 11. Bullisches Muster 2


Fig. 12. Bearish Trend

Abb. 12. Bearisher Trend

Das letzte Muster, Muster 3, ist eher ein allgemeines Muster, in dem praktisch eine jede Art von Candlestick in der ersten Position sein kann und der zweite Candlestick sich vollständig außerhalb des ersten befindet. Abb. 13 zeigt ein bullisches Muster und Abb. 14 zeigt ein bearishes Muster.

Abb. 15 zeigt einen bullischen Trend, der mit dieser Art von Muster beginnt.

Fig. 13. Bullish Pattern 3

Abb. 13. Bullisches Muster 3


Fig. 14. Bearish Pattern 3

Abb. 14. Bearishes Muster 3


Fig.15. Bullish Trend

Abb. 15. Bullischer Trend

Wenn Sie sich ein Paar 1-Minuten-Candlesticks ansehen, die eines dieser drei Muster bilden, sollten Sie einen weiteren Faktor berücksichtigen, wenn es darum geht, ob Sie zu diesem Zeitpunkt den Markt betreten sollten oder nicht.

Und zwar die Differenz zwischen dem möglichen Einstiegskurs und dem sich in der Nähe befindenden Unterstützungs- oder Widerstandspunkt, der als Referenz verwendet wird. Liegt der Einstiegskurs zu weit vom Referenzpunkt entfernt, sollten Sie wohl keine Position eröffnen, unabhängig vom Muster, das durch die Kursbewegung entstanden ist.

Wie bereits erwähnt, findet der Markteintritt exakt in dem Moment statt, an dem der nächste 1-Minuten-Candlestick beginnt. Mit anderen Worten, 2 Candlesticks bilden eines der beschriebenen Muster und dann beginnt ein dritter Candlestick. Es ist genau zum Zeitpunkt des Eröffnungskurses, wenn eine Marktorder platziert wird. Dies wird im folgenden Abschnitt veranschaulicht, der sich mit dem MQL4-Code befasst, der für diese Setups verwendet wird. Da die Kursbewegung offensichtlich ein Schlüsselelement bei dieser Art von Trade-Setups ist, werden immer Marktorders zum Einstieg verwendet. Ausstehende Orders werden niemals für den Einstieg verwendet.


3. MQL4-Code zur Bestimmung der Kursentwicklung

Da nun die Methodologie der Einstiege bei Handelssystemen behandelt wurde, wird nun der Code für die Umsetzung erläutert.

Die folgenden Codeblöcke können basierend auf der Kursbewegung und den Unterstützungs-/Widerstandspunkten in EAs verwendet werden. Als erstes müssen Sie Ihre Variablen definieren. Einige der Variablen werden aus den letzten Kursen vom Hoch/Tief, bzw. vom Beginn/Ende des 1-Minuten-Candlestics bestehen. Jeder dieser vier Kurse ist auf dem aktuellen 1-Minuten-Candlestick sowie auf den beiden vorhergehenden Candlesticks zu finden. Dies geschieht durch die Verwendung von iOpen(), iHigh(), iLow(), und iClose().

Da Sie nach einem vollständig geformten 2-Candlestick-Muster suchen werden, ist der Candlestick, der zwei Minuten vor dem aktuellen gebildet wurde, der erste im Muster (zum Beispiel der linke Candlestick in Abb. 7). Dieser Candlestick erhält die Bezeichnung Candle1. Der nächste Candlestick, der eine Minute später gebildet wird, wir als Candle2 bezeichnet (der rechte Candlestick in Abb. 7).

Der aktuelle Candlestick erhält die Bezeichnung Candle3 und wird rechts von Candle2 gebildet. Da die Echtzeit-Kursbewegung beobachtet wird, sind es der aktuelle sowie die zwei vorangegangenen Candlesticks, von denen aus der Expert Advisor arbeiten wird.

double O1=NormalizeDouble(iOpen(Symbol(),PERIOD_M1,2),4);

Der oben angeführte Code wird den Eröffnungskurs von Candle1 definieren.

Da der Wert dieser Variablen ein Dezimalwert sein wird, wird dieser doppelte Datentyp verwendet. "O1" bezieht sich auf den Eröffnungskurs des ersten Candlesticks im Muster. iOpen() stellt diese Daten mit Symbol() zur Verfügung, das als erster Parameter verwendet wird, so dass es mit jedem Symbol im Chart arbeitet, von dem aus der EA operiert.

"PERIOD_M1" legt den 1-Minuten-Zeitrahmen und den letzten Parameter fest, der in diesem Fall den Wert 2 hat und die relative Verschiebung zum aktuellen Candlestick definiert. Eine Verschiebung von 0 würde auf den aktuellen Candlestick, 1 auf den Candlestick davor und 2 auf den vorvorigen Candlestick hinweisen.

Dementsprechend beziehen sich O1, H1, L1 und C1 auf das Hoch, Tief sowie auf den Eröffnungs- und Schlusskurs von Candle1. O2, H2, L2, C2 und O3, H3, L3, C3 beziehen sich auf die gleichen Kurse für die Candlesticks 2 und 3.

Der folgende Codeblock ist ein Beispiel für die Definierung dieser Variablen.

//---- Candle1 OHLC
double O1=NormalizeDouble(iOpen(Symbol(),PERIOD_M1,2),4);
double H1=NormalizeDouble(iHigh(Symbol(),PERIOD_M1,2),4);
double L1=NormalizeDouble(iLow(Symbol(),PERIOD_M1,2),4);
double C1=NormalizeDouble(iClose(Symbol(),PERIOD_M1,2),4);
//---- Candle2 OHLC
double O2=NormalizeDouble(iOpen(Symbol(),PERIOD_M1,1),4);
double H2=NormalizeDouble(iHigh(Symbol(),PERIOD_M1,1),4);
double L2=NormalizeDouble(iLow(Symbol(),PERIOD_M1,1),4);
double C2=NormalizeDouble(iClose(Symbol(),PERIOD_M1,1),4);
//---- Candle3 OHLC
double O3=NormalizeDouble(iOpen(Symbol(),PERIOD_M1,0),4);
double H3=NormalizeDouble(iHigh(Symbol(),PERIOD_M1,0),4);
double L3=NormalizeDouble(iLow(Symbol(),PERIOD_M1,0),4);
double C3=NormalizeDouble(iClose(Symbol(),PERIOD_M1,0),4);

Die Bedingungsanweisungen werden als nächstes beschrieben. Insbesondere die Bedingungen, die das Auftreten von einem der drei primären 2-Candlestick-Muster definieren würden.

Das Beispiel des Muster 1, das im vorigen Abschnitt beschrieben wurde und oben in Abb. 7 dargestellt ist, wäre aufgetreten, wenn die folgende Aussage wahr wäre.

if(C1 >= O1 && L1 < O1 && ((O1-L1)>(C1-O1)) && C2 >= O2 && C2 > H1 && L2 > L1)

Dieses Muster erfordert sechs Bedingungen, die erfüllt sein müssen. Die erste, C1>=O1, sagt aus, dass Candle1 ein Candlestick nach oben sein muss oder dass der Eröffnungskurs gleich dem Schlusskurs sein kann. L1<O1 besagt, dass der Tiefstkurs von Candle1 niedriger als der Eröffnungskurs sein muss. Die nächste Bedingung erfordert, dass die Differenz zwischen dem Eröffnungskurs und Tiefstkurs von Candle1 größer sein muss als die Differenz zwischen den Schluss- und Eröffnungskursen von Candle1. Das bedeutet, dass Candle1 einen Docht nach unten haben muss, der länger als sein Körper ist.

Die vierte Bedingung bezieht sich auf Candle2 und verlangt, dass der Schlusskurs höher oder zumindest gleich wie der Eröffnungskurs ist. C2>H1 erfordert, dass Candle2 über dem Höchstkurs von Candle1 schließt. Schließlich muss der Tiefstkurs von Candle2 höher als der Tiefstkurs von Candle1 sein.

Wenn alle diese Bedingungen beim Auftreten von Muster 1 erfüllt sind, dann wird der folgende Code eine KAUF-Marktorder platzieren.

Diese Order wird ein Volumen von 0,1 Lot, eine Slippage von 5, einen Stop Loss von 10 Pips unterhalb der Geldseite, sowie einen Take Profit von 50 Pips über der Geldseite haben.

 //---- Pattern 1 - bullish 
 if(C1 >= O1 && L1 < O1 && ((O1-L1)>(C1-O1)) && C2 >= O2 && C2 > H1 && L2 > L1)
  { 
   OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-10*Point,Bid+50*Point);
   return;
  }

Alternativ können, um eine VERKAUF-Marktorder zu platzieren, die Bedingungen geändert werden, um ein bearishes Muster wie in Abb. 8 zu ermöglichen. Auch werden sich die OrderSend() Funktionsparameter dementsprechend unterscheiden.

Dieser Code würde eine Order wie die obige platzieren, jedoch in der entgegengesetzten Richtung:

 //---- Pattern 1 - bearish
 if(C1 <= O1 && H1 > O1 && ((H1-O1)>(O1-C1)) && C2 <= O2 && C2 < L1 && H2 < H1)
  { 
   OrderSend(Symbol(),OP_SELL,0.1,Bid,5,Ask+10*Point,Ask-50*Point);
   return;
  }

Ein ähnlicher Code wird verwendet, um Marktorders zu platzieren, wenn die Fälle von Muster 2 und Muster 3 auftreten.

Ein bullisches Muster 2 (Pinzette) muss die folgenden Voraussetzungen haben:

 //---- Pattern 2 - bullish
 if(C1 < O1 && C2 > O2 && ((O1-C1)>(H1-O1)) && ((O1-C1)>(C1-L1)) && ((C2-O2)>(H2-C2)) && ((C2-O2)>(O2-L2)) && O2 <= C1 && O2 >= L1 && C2 >= O1 && C2 <= H1)
  { 
   OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-10*Point,Bid+50*Point);
   return;
  }

Ein bearishes Muster 2 hätte diesen Code:

 //---- Pattern 2 - bearish
 if(C1 > O1 && C2 < O2 && ((C1-O1)>(H1-C1)) && ((C1-O1)>(O1-L1)) && ((O2-C2)>(H2-O2)) && ((O2-C2)>(C2-L2)) && O2 >= C1 && O2 <= H1 && C2 <= O1 && C2 >= L1)
  { 
   OrderSend(Symbol(),OP_SELL,0.1,Bid,5,Ask+10*Point,Ask-50*Point)
   return;
  }

Abschließend hat Muster 3 folgende Bedingungen für die jeweiligen bullischen und bearishen Setups:

 //---- Pattern 3 - bullish
 if(C1 > O1 && ((C2-O2)>=(H2-C2)) && C2 > O2 && C2 > C1)
  { 
   OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-10*Point,Bid+50*Point);
   return;
  }

 //---- Pattern 3 - bearish
 if(C1 < O1 && ((O2-C2)>=(C2-L2)) && C2 < O2 && C2 < C1)
  { 
   OrderSend(Symbol(),OP_SELL,0.1,Bid,5,Ask+10*Point,Ask-50*Point)
   return;
  }
Einige der Orderparameter, wie zum Beispiel der Stop Loss und Take Profit können auch als Variable festgelegt werden anstatt wie im obigen Beispiel explizit angegeben zu werden.


4. Die Kombination von Unterstützungs-/Widerstandslinien mit der Kursbewegung

Nun ist es Zeit, den Code für die Kursbewegung mit einem zusätzlichen Code zu kombinieren, der die Unterstützungs- und Widerstandspunkte als Ihre Referenzwerte überwacht.

Der EA wird den Markt beobachten, ob ein bestimmtes Kursniveau erreicht wird. Sobald dieses Niveau erreicht ist, wird er sich die Arten der Preisbewegungen ansehen, die in den Mustern 1-3 dargestellt sind. Es können alle Muster sein, sowohl bullisch als auch bearish, oder nur eine kleine Anzahl von ihnen. Der folgende Code verwendet zwei weitere Variablen, um zu überprüfen, ob der Markt ein bestimmtes Kursniveau, in diesem Fall 1,09000 für EURUSD erreicht hat.

In diesem Beispiel handelt der EURUSD Markt zum Zeitpunkt der Aktivierung dieses Codes unter 1,09000.

double ref=1.09000;
int refhit=0;

if(O2 < ref && C3 >= ref)
  {
   refhit=1;
   return;
  } 

Die Variable ref bezeichnet ein Referenzkursniveau (Unterstützung, Widerstand oder Mittelpunkt), das beobachtet wird. Die andere Variable, refhit, beschreibt den aktuellen Marktstatus, ob das Referenzkursniveau bereits erreicht wurde oder noch nicht. Refhit ist eine ganze Zahl, die den Wert 0 oder 1 haben kann. Der Standardwert ist 0, welcher aussagt, dass das Referenzkursniveau noch nicht erreicht wurde.

Die Konditionen, die unterhalb der Variablen angezeigt werden, würden, falls sie erreicht werden, sofort registrieren, ob und wann der Markt den Referenzwert getroffen hat. Diese beiden Variablen werden nun dem zuvor beschriebenen Code für die Preisbewegung hinzugefügt.

Um das EURUSD Beispiel abzuschließen, sehen wir und das bullische Muster 3 für über 1,09000 an.

Dies ist, wie der Muster 3 Code modifiziert wird:

  if(refhit==1 && C1 > O1 && ((C2-O2)>=(H2-C2)) && C2 > O2 && C2 > C1 && C1 > ref && C2 > ref)
  { 
   OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-10*Point,Bid+50*Point);
   return;
  }

Die erste zusätzliche Bedingung, refhit==1, erfordert, dass der Markt den definierten Wert für die Variable ref, in diesem Fall 1,09000, erreicht oder übertroffen hat. Denken Sie daran, dass der Markt zuvor unter 1,09000 handelt, bevor er das Niveau erreicht. Die letzten beiden Bedingungen, die hinzugefügt wurden, erfordern, dass beide Candlesticks des Muster 3 über der Variablen ref von 1,09000 schließen.

Im letzten Beispiel in Abb. 16 sieht man, dass EURUSD in einem Bereich zwischen den Unterstützungs- und Widerstandspunkten bei 1,07660 und 1,07841 handelt.

Fig. 16. EURUSD

Abb. 16. EURUSD

Im äußersten rechten Bereich der Abbildung können Sie sehen, dass der Markt in etwa auf halber Strecke zwischen den zwei Leveln handelt.

Der Einstieg für eine Long-Position wird beim Unterstützungspunkt von 1,07660 beobachtet. Da die Märkte nicht immer die exakten Unterstützungs- und Widerstandspunkte erreichen, wird ein Referenzwert verwendet, der sich in der Nähe der Unterstützungslinie befindet.

In diesem Fall ist es 1,07690, ein Kurs der 3 Pips über der Unterstützung liegt. Lassen Sie uns die bullischen Setups ansehen, welche die Muster 1 bis 3 nutzen.

//---- Variables defined ------------------
//---- Candle1 OHLC
double O1=NormalizeDouble(iOpen(Symbol(),PERIOD_M1,2),4);
double H1=NormalizeDouble(iHigh(Symbol(),PERIOD_M1,2),4);
double L1=NormalizeDouble(iLow(Symbol(),PERIOD_M1,2),4);
double C1=NormalizeDouble(iClose(Symbol(),PERIOD_M1,2),4);
//---- Candle2 OHLC
double O2=NormalizeDouble(iOpen(Symbol(),PERIOD_M1,1),4);
double H2=NormalizeDouble(iHigh(Symbol(),PERIOD_M1,1),4);
double L2=NormalizeDouble(iLow(Symbol(),PERIOD_M1,1),4);
double C2=NormalizeDouble(iClose(Symbol(),PERIOD_M1,1),4);
//---- Candle3 OHLC
double O3=NormalizeDouble(iOpen(Symbol(),PERIOD_M1,0),4);
double H3=NormalizeDouble(iHigh(Symbol(),PERIOD_M1,0),4);
double L3=NormalizeDouble(iLow(Symbol(),PERIOD_M1,0),4);
double C3=NormalizeDouble(iClose(Symbol(),PERIOD_M1,0),4);

double ref=1.07690;
int refhit=0;
//-----------------------------------------

int start()
 {
 //---- Reference check
 if(O2 < ref && C3>=ref)
  {
   refhit=1;
   return;
  } 
 //--- Pattern 1 - bullish 
 if(refhit==1 && C1 >= O1 && L1 < O1 && ((O1-L1)>(C1-O1)) && C2 >= O2 && C2 > H1 && L2 > L1 && C1 > ref && C2 > ref)
  { 
   OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-10*Point,Bid+100*Point);
   return;
  }
 //--- Pattern 2 - bullish
 if(refhit==1 && C1 < O1 && C2 > O2 && ((O1-C1)>(H1-O1)) && ((O1-C1)>(C1-L1)) && ((C2-O2)>(H2-C2)) && ((C2-O2)>(O2-L2)) && O2 <= C1 && O2 >= L1 && C2 >= O1 && C2 <= H1 && C1 > ref && C2 > ref)
  { 
   OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-10*Point,Bid+100*Point);
   return;
  }
 //--- Pattern 3 - bullish
 if(refhit==1 && C1 > O1 && ((C2-O2)>=(H2-C2)) && C2 > O2 && C2 > C1 && C1 > ref && C2 > ref)
  { 
   OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-10*Point,Bid+100*Point);
   return;
  }
 //---
return;
}

Fig. 17. EURUSD reversal

Abb. 17. EURUSD Umkehr


Fig. 18. EURUSD entry

Abb. 18. EURUSD Einstieg


Fig. 19. EURUSD exit

Abb. 19. EURUSD Ausstieg

Alle Code-Abschnitte für die bullischen Muster verlangen, dass der Markt den Kurs von 1,07690 erreicht und beide Candlesticks (1 und 2) darüber schließen.

Auch die Take Profit Level aus den vorherigen Beispielen wurden verdoppelt. Abb. 17 zeigt, dass der Markt nach unten gedreht hat und das Niveau von 1,07690 gerade noch erreicht hat. Ein Kurs von 1,07670 wurde erreicht, bevor der Markt wieder nach oben gedreht hat. Dies hat verursacht, dass sich der Wert von refhit auf 1 geändert hat.

Kurz nachdem sich der Markt wieder nach oben gedreht hat, hat sich ein bullisches Muster 3 gebildet. Dies ist, wo eine KAUF-Marktorder platziert und eine Position bei 1,07740 eröffnet wurde (wie in Abb. 18 ersichtlich). Das Kaufgebot war bei 1,07720, aber aufgrund der erlaubten Slippage von 5 wurde die Order bei 1,07740 ausgeführt. Ab diesem Zeitpunkt startete der Markt einen Aufwärtstrend, der in Abb. 19 zu sehen ist. Das Stop Loss Niveau wurde nie erreicht und die Position wurde mit einem Take Profit bei 1,08740 geschlossen.


Fazit

Wie durch die hier gezeigten Beispiele zu sehen ist, kann die Verwendung der Kursbewegung in Kombination mit der Überwachung von Unterstützungs- und Widerstandspunkten extrem effektiv sein, um Trade-Setups zu bestimmen.

Der MQL4-Code, der angeführt und erläutert wurde, ist nur ergänzend und stellt an und für sich keinen EA dar. Diese Codebeispiele dienen zur Verwendung als Bausteine für einen kompletten Expert Advisor. Das primäre Ziel war es, die Konzepte hinter der Handelsmethode zu veranschaulichen. Weitere Kursbewegungsmuster können sowohl für den Markteinstieg als auch Ausstieg codiert werden. Viel Glück bei Ihren Bemühungen für einen erfolgreichen Handel.