Einfaches Unterstützung-Widerstand-Handelssystem-Tutorial für EA Wizard

In diesem Artikel zeigen wir Ihnen, wie Sie ein einfaches halbautomatisches Handelssystem auf der Grundlage von Unterstützungs- und Widerstandsniveaus (S/R-Niveaus) aufbauen können. Das System wird folgende Eigenschaften haben:

  • Die Preise für die S/R-Levels werden vom Benutzer mit Hilfe von Eingabeparametern definiert. Wenn nicht, platziert der EA sie automatisch auf dem Chart über und unter dem aktuellen Marktpreis
  • Sobald das Tief des letzten Balkens das S-Niveau überschreitet und über dem Eröffnungspreis des Balkens schließt, eröffnet der EA eine Long-Position
  • Sobald das Hoch des letzten Balkens unter dem definierten R-Level liegt und der Balken unter seiner Eröffnung schließt, eröffnet der EA eine Short-Position
  • Sie können die Anzahl der für jedes S/R-Level geöffneten Geschäfte sowie die Größe von Stop-Loss und Gewinnzielen begrenzen.
  • der EA wird feste % des Kontos Eigenkapital Geld-Management-Regeln verwenden
  • der EA zeichnet auch Linien, die den definierten S/R-Levels entsprechen, so dass Sie diese direkt in den Charts ändern können

Grundlagen einrichten

Zuerst müssen wir unseren EA-Namen und die Regeln für die Geldverwaltung einrichten. Hier ist, wie es zu tun:

Einrichten von EA-Eingängen

Das meiste, was in diesem Schritt getan wird, ist offensichtlich, aber lassen Sie uns für einen Moment die Variablen betrachten. Wir werden sie durchgehen und dabei ihre Bedeutung erklären:

lastSupport - Dies ist der Preis, der für das S-Level eingegeben wird. Er wird beim Start des EA automatisch gesetzt und kann dann durch Ändern des Parameters oder durch Ändern der Unterstützungslinie direkt im Chart geändert werden
letzterWiderstand - Dies ist der Preis, der für das R-Niveau eingegeben wird. Er wird beim Start des EA automatisch gesetzt und kann dann durch Ändern des Parameters oder durch Ändern der Widerstandslinie direkt im Chart geändert werden
tradesLongCounter - diese Variable wird verwendet, um die Anzahl der Long-Trades zu speichern, die mit dem zuletzt eingestellten S/R-Level realisiert wurden
tradesShortCounter - diese Variable wird verwendet, um die Anzahl der Short Trades zu speichern, die mit dem zuletzt eingestellten S/R Level realisiert wurden

HINWEIS: Wir setzen diese "Handelszähler" ein, um die maximale Anzahl der ausgeführten Geschäfte pro definierter Ebene zu begrenzen. Dies ist notwendig, um ein Over-Trading zu verhindern, da wir nicht mehr als 3 Trades auf jedem S- oder R-Level erwarten. Außerdem müssen wir diese Zähler zurücksetzen, sobald wir entweder das S- oder das R-Level auf einen neuen Preis ändern, damit der EA von vorne beginnen kann.

maxTradesPerSR - die maximale Anzahl von Geschäften, die für jede S/R-Stufe zulässig sind
PT, SL - dies sind die Abstände der Stop-Loss- und Gewinnziel-Aufträge, ausgedrückt in Anzahl der Pips

Für die Regeln des Money-Managements beabsichtigen wir, nicht mehr als 3% unseres Kontos pro Handel mit der maximal möglichen Größe von 5 Lots zu riskieren.

Außerdem müssen wir sicherstellen, dass die globalen Money-Management-Regeln mit den von uns definierten PT- und SL-Größen richtig funktionieren, also wechseln wir auf die Registerkarte SL/PT:

Einrichten von globalen MM-Regeln

Einstellen der S/R-Pegel

Sobald wir alle erforderlichen Eingaben definiert haben, können wir zur nächsten Aufgabe übergehen - der Erstellung von Regeln und Logik für EA selbst.

Wir brauchen unseren EA, um editierbare S/R-Preise (als Eingaben) zu haben, aber wir brauchen den EA immer noch, um intelligent zu arbeiten, d.h. um horizontale Linien zu zeichnen, auch ohne die Eingabe von spezifischen Preiswerten, sobald wir unseren EA laden. Hier ist, wie man das macht:

Festlegung von Verkaufspreisen

wenn LastSupport = 0 ODER lastResistance = 0 - Falls wir beim Laden des EA keinen bestimmten Preis festgelegt haben, kann der EA ihn selbst festlegen:

lastResistance = (Hoch[1] + ConvertToRealPips(100)) und
lastSupport = (Tief[1] - ConvertToRealPips(100))

Wenn Sie beim Laden des EA keinen bestimmten Preis für das S- oder R-Level festlegen, wird der EA dies automatisch tun, indem er sie 100 Pips über dem aktuellen Hoch (für das R-Level) und 100 Pips unter dem aktuellen Tief (für das S-Level) platziert. Wir verwenden die ConvertToRealPips(pips) Funktion, um eine Preisspanne von 100 Pips zu addieren und zu subtrahieren (die Pips müssen zu diesem Zweck in eine Preisdifferenz umgewandelt werden).

Zeichnen von S/R-Levels in einem Diagramm

Hier kommt die wahre Stärke von EA Wizard ins Spiel. Wenn Sie eine bestimmte Funktion, die Sie benötigen, nicht im EA-Assistenten zur Verfügung haben, können Sie sie einfach durch Verwendung von benutzerdefiniertem MQL4-Code hinzufügen.

Wir müssen eine Bedingung hinzufügen, die überprüft, ob eine dieser horizontalen Linien (R OR S) sind bereits im Diagramm vorhanden. Wir können eine praktische Funktion namens ObjectFind("Objektname") zu verwenden (beachten Sie die Anführungszeichen, die hier verwendet werden müssen). Wenn die Linien im Diagramm nicht vorhanden sind (die Funktion ObjectFind liefert eine Zahl kleiner als Null), können wir sie im nächsten Schritt zeichnen.

CustomFunction: ObjectFind("resistance1") < 0 OR
CustomFunction: ObjectFind("support1") < 0

Zeichnen der horizontalen Linien

Benutzerdefinierte Aktion: ObjectCreate("resistance1", OBJ_HLINE, 0, Time[0], lastResistance);
Benutzerdefinierte Aktion: ObjectCreate("support1", OBJ_HLINE, 0, Time[0], lastSupport);

Zum Zeichnen der Linien haben wir die ObjectCreate Funktion, wie sie in der MQL4-Sprachhandbuch um neue horizontale Linienobjekte zu erstellen.

Die Funktion erfordert mehrere Parameter:

"Unterstützung1", "Widerstand1" sind Namen, die wir für unsere Zeilen verwendet haben, da jedes Objekt im MetaTrader seinen eigenen Namen haben muss.

OBJ_HLINE definiert die Art des Objekts, das wir zeichnen wollen. In diesem Fall müssen wir eine horizontale Linie zeichnen

0 - Der Wert "Null" steht hier für den Fensterindex. 0 bedeutet das Hauptdiagramm, auf das wir zeichnen wollen

Zeit[0] - wir beziehen uns auf den Ziehungspunkt im allerletzten Takt

lastSupport und letzterWiderstand sind die Preise, zu denen unsere S/R-Zeilen angezeigt werden sollen

Beachten Sie auch, dass wir Zum Journal anmelden Funktion, damit wir das Verhalten von EA während seines Betriebs überwachen können. Dies ist eine sehr praktische Funktion, vor allem wenn Sie beobachten müssen, was mit bestimmten Variablenwerten passiert

Aktualisierung der Verkaufspreise

Wenn Sie das S- oder R-Niveau auf dem Chart ändern, muss Ihr EA diese Änderung registrieren. Um das zu erreichen, müssen wir die aktuellen Preise für beide Linien lesen, unabhängig davon, ob sie mit lastSupport und letzterWiderstand Variablen. Sobald wir eine Veränderung feststellen, müssen wir diese Variablen aktualisieren.

Denken Sie daran, sobald wir die S/R-Preise aktualisieren, wollen wir auch den Handelszähler zurücksetzen, damit EA das neue Preisniveau bis zum vordefinierten Limit frei handeln kann. maxTradesPerSR.

Aktualisierung des Preises für das Widerstandsniveau

lastResistance = CustomFunction: ObjectGet("resistance1", OBRPROP_PRICE1);

Wir verwenden dafür eine andere MQL4-Funktion - ObjectGet(). Diese Funktion ermöglicht es, Informationen über eine bestimmte Objekteigenschaft zu erhalten, wie zum Beispiel die Preis zum Beispiel. Diese Funktion erfordert den Objektnamen und die korrekte Eigenschaftskonstante, die wir zu erhalten versuchen (in diesem Fall ist es der Hauptpreis - PREIS1).

Und das Gleiche gilt für die Stufe S:

Preisaktualisierung für die Unterstützungsebene

Handel mit S/R-Levels - Platzierung der Aufträge

Sobald wir alles Nötige vorbereitet haben, können wir mit der Festlegung von Handelsregeln für beide Richtungen beginnen.

Beginnen wir zunächst mit der langen Bedingung:

Handel auf der Long-Seite

Tief[1] kreuzt über lastSupport - für ein gültiges Long-Signal betrachten wir eine Situation, in der der niedrige Preis über dem definierten S-Level kreuzt
MarktPosition ist flach - es ist keine andere Position bereits eröffnet
IsBarOpen ist wahr - die Bedingung nur einmal pro Takt auswerten
tradesLongCounter < maxTradesPerSR - Handel nur, wenn das Handelslimit nicht erreicht wurde

Wenn die obige Bedingung erfüllt ist, können wir eine Long-Order mit der magischen Zahl 1000 platzieren. Wir müssen auch den Zählerwert für Long-Trades um 1 erhöhen (um den allerletzten Long-Trade zu zählen). Dies geschieht mit Hilfe der Funktion Variable zuweisen und die Zusatz Funktionen.

Vergessen Sie nicht, die PT- und SL-Größe auch mit der Lot-Größe für jeden Handel richtig einzustellen, wie im Screenshot gezeigt.

Festlegung eines globalen Gewinnziels
Festlegung der Losgröße

Nun müssen wir das Gleiche für die kurze Seite tun:

Aufstellung von Regeln für kurze Seiten

Der Hauptunterschied liegt hier in der Kreuzbedingung. Wir wollen einen Balken sehen Hoch[1] bis Kreuz unten unser definiertes R-Niveau. Für die kurzfristiger Marktauftrag müssen wir auch eine andere magische Zahl (in unserem Fall 2000), da im MetaTrader jeder Auftrag eine eindeutige magische Nummer zugewiesen bekommt.

An diesem Punkt ist unser EA komplett. Der allerletzte Schritt besteht darin, den Code in eine EA-Datei zu exportieren und den EA im MetaTrader4 mit dem Backtester oder dem simulierten Regime zu testen.

Exportieren des EA in MetaTrader4

Sobald der EA gespeichert ist, können wir den MT4 Backtester starten, um seine Funktion zu überprüfen.

Testen des EA
Abonnieren
Benachrichtigen Sie mich bei
5 Kommentare
Älteste
Neuestes Meistgewählt
Inline-Rückmeldungen
Alle Kommentare anzeigen
Ling
Ling
15. 12. 2017 7:40 Uhr

Ist der EA-Assistent in der Lage, eine bestimmte Anzahl von Kerzen zu bestimmten Stunden zu verwenden (wenn es sich um ein Stundenchart handelt), um die Unterstützungs- und Widerstandsniveaus zu ermitteln und auf der Grundlage dieser Niveaus Geschäfte zu eröffnen und zu schließen? Zeichnen Sie z. B. auf einem Stundenchart die Widerstands- und Unterstützungslinien auf der Grundlage des höchsten Hochs und des niedrigsten Tiefs der geschlossenen Kerzen um 3 Uhr, 4 Uhr und 5 Uhr.

krikri
krikri
25. 2. 2018 12:00 Uhr

Hallo Tomas262,

sehr gute Arbeit, wo kann ich die sqw-Datei dieses EA (Support Resistance Trading System) finden?

Grüße

Christian

Denis Mc Grath
Denis Mc Grath
22. 5. 2018 8:28 Uhr

Toller Artikel Tomas.

girija k
22. 6. 2018 11:52 Uhr

Ich werde mit Ihnen eine sehr einfache Strategie teilen, die auf einem starken und leicht erkennbaren Candlestick-Muster basiert. Sie nennen es "Lucky Spike". Jeder kann es lernen, anwenden und damit Geld verdienen. Es gibt Händler, die mit diesem Muster ihren Lebensunterhalt verdienen. Schauen Sie sich einfach dieses ebook an, das ich Ihnen kostenlos zur Verfügung stelle:==> http://www.forexmystery.com?hgd4h84gdh

girija k
22. 6. 2018 11:54 Uhr

Ich werde mit Ihnen eine sehr einfache Strategie teilen, die auf einem starken und leicht erkennbaren Candlestick-Muster basiert. Sie nennen es "Lucky Spike". Jeder kann es lernen, anwenden und damit Geld verdienen. Es gibt Händler, die mit diesem Muster ihren Lebensunterhalt verdienen. Schauen Sie sich einfach dieses ebook an, das ich Ihnen kostenlos zur Verfügung stelle:==> http://www.forexmystery.com?hgd4h84gdh

Lesen Sie weiter