English Русский 中文 Español 日本語 Português
preview
Automatisierter Grid-Handel mit Limit-Orders an der Moskauer Börse (MOEX)

Automatisierter Grid-Handel mit Limit-Orders an der Moskauer Börse (MOEX)

MetaTrader 5Handel | 29 Juli 2022, 10:25
492 0
Roman Shiredchenko
Roman Shiredchenko

Einführung

Der Artikel beschreibt ausführlich die Verwendung des Ansatzes eines Grid-Handels (grid trading) bei der Entwicklung des EA in MQL5 Sprache der Handelsstrategien. Der EA soll eine Grid-Strategie beim Handel auf MOEX mit dem MetaTrader 5 Terminal verfolgen. Der EA schließt Positionen durch Stop-Loss und Take-Profit und entfernt schwebende Aufträge im Falle bestimmter Marktbedingungen.


1. Grid-Handel

Der Artikel befasst sich mit der Anwendung des Grid EA für die Automatisierung des Handels mit Futures-Kontrakten an der MOEX. Der EA ermöglicht die Platzierung von Aufträgen in bestimmten Intervallen innerhalb einer bestimmten Preisspanne.

Beim Grid-Handel werden Aufträge über und unter einem bestimmten Preis platziert, so dass ein Raster (grid) von Aufträgen mit progressiv höheren und niedrigeren Preisen entsteht.

Sie können zum Beispiel Kaufaufträge für jeweils 100 RUB unter dem Marktpreis eines Futures-Kontrakts für Stammaktien der VTB Bank (PJSC) — VTBR-6.22 (VBM 2) erteilen, sowie Verkaufsaufträge für jeweils 100 RUB über dem Marktpreis. So kann man unter verschiedenen Bedingungen vom Handel profitieren.

Das Grid-Trading eignet sich hervorragend für volatile und "flache" Märkte, wenn die Preise innerhalb einer vorher festgelegten Spanne schwanken. Diese Art des Handels ermöglicht es, bereits bei kleinen Preisänderungen Gewinne zu erzielen. Je häufiger die Grid-Stufen, desto häufiger werden Transaktionen durchgeführt. Dies führt jedoch zu höheren Kosten, da der Gewinn der einzelnen Aufträge geringer wird.

Es muss also ein Kompromiss gefunden werden zwischen einem kleinen Gewinn bei einer großen Anzahl von Transaktionen und einer Strategie mit weniger Aufträgen, aber einem größeren Gewinn für jeden einzelnen.

Sie können die Grid-Einstellungen anpassen, indem Sie die oberen/unteren Grenzen und die Rasterfrequenz festlegen. Nach der Erstellung des Grid (Rasters) platziert der EA automatisch Kauf- und Verkaufsaufträge zu vorberechneten Preisen.

Mal sehen, wie es funktioniert. Angenommen, Sie erwarten, dass der Preis des VBM 2 Futures-Kontrakts in den nächsten 7 Tagen zwischen 1.600 und 2.800 RUB schwanken wird. In diesem Fall können Sie den Rasterhandel (grid trading) so einrichten, dass Sie innerhalb der vorhergesagten Spanne handeln.

Im Grid-Trading-Panel können Sie die Strategie-Parameter festlegen, einschließlich der Parameter für den Handel:

  • Ober- und Untergrenze der Preisspanne;

  • Anzahl der zu erteilenden Aufträge innerhalb der angegebenen Preisspanne;

  • Schritt zwischen jedem Kauf- und Verkaufs-Limitauftrag.


Abb. 1.  Auftragserteilung

In diesem Fall, wenn der Preis des VBM 2 Futures auf RUB 1.600 fällt, wird der Grid EA Positionen zu einem niedrigeren Preis als dem Marktpreis akkumulieren. Wenn sich der Preis wieder erholt, wird der EA zu einem höheren Preis als dem Marktpreis verkaufen. Mit dieser Strategie wird versucht, von einer Kursumkehr zu profitieren.


2. Arten von Kursbewegungen auf den Finanzmärkten, die für ein Handelssystem am besten geeignet sind

Der Einstiegspunkt in die Handelsstrategie ist an die Marktbewegung des Symbols gebunden. Das bedeutet, dass Sie das Raster jederzeit erweitern (eine Positionseröffnung vornehmen) können. Wie Sie vielleicht wissen, zeigen die Märkte die meiste Zeit über eine Seitwärtsbewegung. Dieser EA wurde speziell für solche Marktbedingungen entwickelt und hält sich an das sogenannte Paradigma - buy low, sell high.

Der bevorzugte Typ einer Seitwärtsbewegung für den Grid-Handel ist derjenige, bei dem sich der Preis in einer bestimmten Spanne ohne klar definierte Richtung bewegt. Die Durchbrechung der Grenzen bedeutet in der Regel das Ende des Seitwärtsbewegung und den Beginn eines neuen Trends.

Eine breite Seitwärtsbewegung bildet sich, wenn der Kurs zwischen starken Unterstützungs- und Widerstandsniveaus eingequetscht wird. Weder die Bullen noch die Bären sind stark genug, um zu gewinnen, sodass kein neuer Trend entsteht. Alle diese Definitionen sind streng individuell in Bezug auf die Symbole und werden im Zusammenhang mit den Bewegungen eines bestimmten Marktsymbols betrachtet.

Wenn wir diesen Handelsansatz allgemein betrachten, dann übersteigt im Falle des VBM 2-Futures-Kontrakts, der an der MOEX seit etwa einem Monat gehandelt wird, der Gesamtgewinn den allgemeinen Verlust, selbst bei einer unidirektionalen (allgemeinen endgültigen) Bewegung von der unteren Grenze von 1.600 bis zur oberen 2.800, sowie bei Preisschwankungen (Rollbacks von der Hauptbewegung) und, als Folge davon, Orderaktivierungen und Reset-Limit-Kauf- und Verkaufsorders.

Die Kursschwankungen eines gehandelten Symbols zwischen den Kursniveaus (innerhalb der Spanne) ermöglichen es uns, die Gewinne auf der Grundlage der mit diesem Rasteransatz erzielten Handelsergebnisse innerhalb des gewählten Zeitraums zu erhöhen.

Der Grid EA wendet den gleichen Wert für gehandelte Kontrakte/Lose in jeder Grid-Order an, sodass wir unser Geldmanagement auf der Grundlage dieses Handelsansatzes planen müssen.

Der Handel mit einem Rollback von den Grenzen einer Seitwärtsbewegung geht von einer anhaltenden Seitwärtsentwicklung aus. Bei dieser Handelsmethode ist es wichtig, das Ausbleiben wichtiger Nachrichten, die eine starke Bewegung auslösen könnten, zu berücksichtigen. Darüber hinaus sollten aus Sicherheitsgründen Stop-Losses außerhalb der Spanne gesetzt werden.


3. Merkmale und Vorteile des Grid-Handels

Nach dem Setzen des Rasters fügt der EA keine neuen externen Aufträge hinzu, bis das aktuelle Raster mit Gewinn oder Verlust geschlossen wird.

Empfehlungen auf der Grundlage des Handelssystems: Wählen Sie ein Symbol mit ausreichendem Volumen und klaren Bewegungen. Außerdem wäre es gut, Positionsumschichtungen auszuschließen, damit die Markttiefe nicht leer ist. Vermeiden Sie außerdem Presseaussendungen und unidirektionale Bewegungen ohne Rollback.

Dieses Handelssystem beinhaltet den Handel von Niveaus unter Verwendung von Mittelwertbildung (Nayman E. Master-Trading: Secret Materials, S. 134), wenn Sie die gleiche Operation wie die vorherige (Kauf bei einer Long-Position oder Verkauf bei einer Short-Position) zu einem besseren Preis durchführen.

Der größte Nachteil der Mittelung ist, dass wir nicht im Voraus wissen, wie stark der Markt gegen uns tendieren wird. Gleichzeitig erfordert das Mitteln die Investition zusätzlicher Margin-Mittel, was das Risiko für Ihre Position erhöht. Die meisten unerfahrenen Händler machen einen häufigen Fehler - in ihrem Streben nach hohen Gewinnen "überladen" sie ihr Konto, indem sie die Höhe der Hebelwirkung auf absolut fantastische Werte bringen und manchmal sogar ihr gesamtes verfügbares Kapital aussetzen (Nayman E. "Master-Trading: Secret Materials", p. 135).

Das Hauptmerkmal dieses Handelsansatzes ist die Möglichkeit, die Mindest- und Höchstwerte festzulegen, um den Handel mit Limit-Orders innerhalb der festgelegten Preisspanne eines gehandelten Symbols zu gewährleisten.

Durch das Setzen von Stop-Losses für das obere und untere Niveau können wir die Verluste auf dem Handelskonto begrenzen. 

Wenn ein Stop-Loss ausgelöst wird, informiert das Terminal über den Durchbruch des Kurses und seine mögliche Bewegung in Richtung des Durchbruchs. Infolgedessen kann es notwendig sein, neue Preisniveaus neu zu analysieren und ihre Werte in den externen Parametern des Grid Trading EA (siehe unten) festzulegen.


4. Umsetzung des Grid-Handels

4.1. Mechanismus des Grid-Handels

Handelsstufen des Rasters:

  1. Anfangsstruktur - der EA wird für ein ausgewähltes Handelssymbol gestartet.

  2. Eine Position wird eröffnet, wenn der erste Limit-Auftrag des von Ihnen platzierten Auftragsrasters ausgelöst wird.

  3. Das Raster wird aktualisiert, wenn nachfolgende Rasteraufträge (die entweder die ursprüngliche Marktposition erhöhen oder verringern) ausgelöst werden.

  4. Stop-Losses, Take-Profits, Handelszeitbeschränkungen der aktuellen Marktposition, Ausstieg bei %-Gewinn liegen in Ihrem Ermessen.

  5. Kontrolle über den Handel durch einen Grid EA - Schließen der aktuellen profitablen Grid-Handelssitzung, Zurücksetzen auf die neuen relevanten Höchst- und Tiefstwerte des gehandelten Symbols.

Diese Grid-Strategie beginnt ohne eine anfängliche Marktposition. Die anfängliche Position wird aktiviert, wenn der Markt nach dem anfänglichen Start über den nächstgelegenen Kurs der ausstehenden Order hinausgeht.

Beispiel

Angenommen, Sie stellen Ihre Strategieparameter für den 04.01.2022 wie folgt ein:

  • Vertrag: Futures VBM 2
  • Untere Preisgrenze: 1.600 RUB
  • Obere Preisgrenze: 2.800 RUB
  • Anzahl der Elemente im Raster: 10
  • Modus: Äquidistant

Nehmen wir an, wir haben unsere Strategieparameter wie folgt festgelegt:

Die ersten neutralen Grid-Aufträge werden unter dem aktuellen Marktpreis platziert. In der Zwischenzeit werden die Verkaufsaufträge über dem aktuellen Marktpreis platziert. Nach dem Auslösen der nächsten Kauf- oder Verkaufs-Limit-Order findet der sogenannte Prozess statt - nennen wir ihn die Aktivierung des Handels-Grid. 9 Aufträge werden bereits im weiteren Verlauf des Handels verwendet.

Die Preise verteilen sich wie folgt auf die einzelnen Auftragsarten:

  • Buy-Limit: RUB 1.600, RUB 1.733, RUB 1.866, RUB 1.999  
  • Sell-Limit: RUB 2.135, RUB 2.268, RUB 2.401, RUB 2.534, RUB 2.667, RUB 2.800

(Sie können auch empirisch die optimale Option der Anordnung von Aufträgen in Grids in Abhängigkeit vom Prozentsatz des ATR-Indikators auf D1 in Betracht ziehen, um den optimalen Gewinn mit einem moderaten Risiko zu erzielen).

Die Zusammenfassung aller ausgeführten Aufträge.

Jede Transaktion besteht aus einem Paar entsprechender Kauf- und Verkaufsaufträge, Transaktionsart – FILO („first in, last out“ oder „zuerst rein, zuletzt raus“). Der Gewinn kann auf der Grundlage jedes Paares von übereinstimmenden Kauf- und Verkaufsaufträgen berechnet werden.

Der Bereich von der unteren Grenze (LOW_PRICE_BuyLim) bis zur oberen Grenze (HIGH_PRICE_SellLim) wird in gleichen Abständen durch die angegebene Anzahl der Aufträge (Number_of_elements_in_the_grid) geteilt. Es ist ratsam, den Bereich und die Anzahl der Aufträge im Raster (ab 3) unabhängig voneinander zu betrachten und auszuwählen, sodass die Gesamtbreite zwischen den Aufträgen höher ist als die Spanne des Symbols und die Preiswerte der Grenzen außerhalb des aktuellen Preises liegen.

Außerdem sollte die obere Grenze der Preisspanne HIGH_PRICE_SellLim die untere Grenze der Preisspanne LOW_PRICE_BuyLim überschreiten.

4.2. Aktualisierung des Grids

Das Raster wird jedes Mal aktualisiert, wenn eines der Preisniveaus erreicht wird, d.h. wenn ein Limitauftrag ausgeführt wird. Der zuletzt ausgeführte Auftrag bleibt immer leer, Kauf- und Verkaufs-Limitaufträge werden dann zu festgelegten Preisen ausgeführt, wie im folgenden Beispiel dargestellt.

In diesem Fall wird zum Beispiel nach der Aktivierung der Grid-Strategie durch die erste Limit-Order zum Verkauf und der anschließenden Aufwärtsbewegung des VBM2-Futures-Kontrakts sowie nach der Aktivierung der nächsten Limit-Order zum Verkauf der untere Teil des Grids (Anzahl der Buy-Limit-Orders) um eine BuyLimit-Order erhöht, die 1 Stufe höher (näher am Preis) als die vorherige BuyLimit-Order des Grids platziert wird.

Insbesondere nach der Aktivierung des Grid-Trading, der Preisbewegung nach oben und der Aktivierung der ersten Verkaufs-Limit-Order seit der Grid-Aktivierung werden die Limit-Preise für jede Grid-Ebene wie folgt sein:

Preis, RUB Auftrags/Position, Richtung und Typ
2,534 Verkauf mit einem Limitauftrag
2,401 Verkauf mit einem Limitauftrag
2201.5 Marktposition mit dem Volumen von zwei ersten Verkaufslimitaufträgen
2,132 Kauf mit einem Limitauftrag
1,999 Kauf mit einem Limitauftrag
1,866 Kauf mit einem Limitauftrag
1,733 Kauf mit einem Limitauftrag
1,600 Kauf mit einem Limitauftrag

Dies ist in der folgenden Abbildung dargestellt:


Abb. 2. Aktualisierung des Auftragsrasters nach dessen Aktivierung und Auslösung der nächsten Limitaufträge.

Die Aktualisierung der Grid-Aufträge geht also weiter.

Grid-Parameter:

//+------------------------------------------------------------------+
//|                          EXTERNAL GRID VARIABLES
//+------------------------------------------------------------------+
input int Volume = 1;                          //Contract/lot volume
input double HIGH_PRICE_SellLim = 2800.00;     //HIGH_PRICE_SellLim (the upper price of the last SellLim grid order)
input double LOW_PRICE_BuyLim  = 1600.00;      //LOW_PRICE_BuyLim   (the lower price of the last BuyLim grid order) for BuyLim
input double HIGH_PRICE_SL  = 100.00;          // HIGH_PRICE_SL: SL in points from HIGH_PRICE_SellLim (the upper stop loss price) for SellLim
input double LOW_PRICE_SL = 100.00;            // LOW_PRICE_SL:  SL in points from LOW_PRICE_BuyLim (lower stop loss price)  for BuyLim
input int Pending_order_period  = 12;          // Pending_order_period: limit order setting time in months
input int Number_of_elements_in_the_grid = 10; // Number of elements in the grid (number of limit orders)
input double TakeProfit  = 0;                  // TakeProfit from the setting price in order pips
input double Profit_percentage = 0;            // Profit_percentage - grid closure % in profit
                                               // works if > "0"
input  bool Continued_trading = false;         // Continued_trading - whether to continue trading after exiting by the grid closure % with profit   

input int    Time_to_restrict_trade  = 0;      // Time_to_restrict_trade - setting the expiration time (in days) for a position with profit
                                               // (exiting the market upon the period end in days)                                              

input int Magic       = 10;                    // Magic Number

Die Namen der externen Variablen und ihre Dekodierung werden so detailliert wie möglich angegeben, sodass sie keine zusätzlichen Kommentare erfordern.

Außerdem setzen wir die Variable:

HIGH_PRICE_SellLim 

nicht niedriger als die obere:

LOW_PRICE_BuyLim  

und nicht niedriger als die untere Grenze der von MOEX festgelegten (eingestellten) Werte: 

https://www.moex.com/en/contract.aspx?code=VTBR-6.22

Alle notwendigen Daten werden in den MOEX-Symbolparametern angezeigt (Abb. 3)


Abb. 3. Symbolparameter - Terminkontrakt auf Stammaktien der VTB Bank (PJSC) VTBR-6.22

Der Handelsansatz ist in Abb. 4.2 dargestellt.

Als Ergebnis sollten Sie nach dem Start des hier beschriebenen Grid-Handels-EAs detaillierte Informationen über den Handel des Roboters mit dem von Ihnen ausgewählten Symbol erhalten (Abb. 4.1 und 4.2):


Abb. 4.1. Verwendung des Grid EA auf VTBR-6.22 


Wenn Stop-Loss und Take-Profit andere Werte als Null haben, werden ihre Niveaus zusätzlich zu den aktiven Kauf- und Verkaufslimitaufträgen im Handelsterminal angezeigt:


Abb. 4.2. Verwendung des Grid EA auf VTBR-6.22 mit Stop-Loss- und Take-Profit-Werten ungleich Null

Daraus ergibt sich ein Raster von Limit-Aufträgen, die bei Aktivierungen innerhalb der Mindest- und Höchstpreisspanne neu gesetzt werden.

Bis sich der Preis des gehandelten Symbols innerhalb der Preisspanne befindet, akkumuliert der Grid EA Gewinn auf dem Handelskonto. Selbst wenn wir einen offensichtlichen Nachteil dieser Art von Grid-Handel in Betracht ziehen, nämlich eine starke Bewegung ohne Rollbacks in jede Richtung anstelle der erwarteten Preisbewegung in einer Spanne, kann ich Folgendes sagen:

  • erstens sind solche Bewegungen nicht "häufig",
  • zweitens wird zu dem Zeitpunkt, zu dem der Kurs die richtig gewählte Spanne und die Anzahl der Aufträge verlässt, bereits ein ausreichender Gewinn auf dem Konto sein, um den aktuellen Verlust auszugleichen,
  • drittens, bis der Preis zwischen dem Höchst- und Mindestwert der Preisspanne schwankt (sich bewegt) und sowohl Kauf- als auch Verkaufsgeschäfte tätigt, ist das Handelskonto im Gewinn.

Schlussfolgerung

Wie der gesamte Grid-basierte Handelsansatz erfordert auch der hier betrachtete Grid EA die Kontrolle darüber, ob sich der Preis innerhalb der vorgegebenen Spanne befindet. Wenn sich der Preis einer seiner Grenzen nähert, ist es möglich, den Grid-Handel mit Limit-Orders zu stoppen und ihn in einem neuen Bereich mit neuen Volumina zu beginnen.

Das Raster kann erstellt werden, um von Trends (diese Option wird im nächsten Teil des Artikels vorgestellt) oder Spannen (im aktuellen Artikel beschrieben) zu profitieren. Der gridbasierte Handel sieht den Handel mit dem EA auf der Basis von ständig zurückgesetzten Limit-Orders vor, d.h. solange der Kurs seitwärts schwankt, werden sowohl Verkaufs- als auch Kauforders ausgeführt. 

Die Risiken einer unidirektionalen Kursbewegung werden durch die Festlegung von Stop-Loss-Niveaus für Limit-Orders kontrolliert. Infolgedessen ermöglicht es der hier vorgestellte EA, einen plötzlichen Marktrückgang (Wachstum) zu vermeiden, auf den in der Regel eine korrigierende Kursbewegung folgt. Mit anderen Worten: Wenn wir die Preisspanne, die Kontraktwerte, die Anzahl der Rasteraufträge sowie den Take-Profit und den Stop-Loss richtig wählen, können wir Drawdowns vermeiden, ohne den Markt ständig überwachen zu müssen.

Hinweis!

Die hier erörterte Grid-Strategie sollte nicht als Finanz- oder Anlageberatung angesehen werden. Nutzen Sie den Grid-Handel nach eigenem Ermessen und auf eigenes Risiko, was Kontrolle und eine vernünftige Herangehensweise an den Handel auf der Grundlage Ihrer eigenen finanziellen Möglichkeiten voraussetzt.

Referenzen:

Nayman, E., (2002). Master-Trading: Secret Materials. Moskau, Alpina Verlag (auf Russisch).

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/10672

Beigefügte Dateien |
GRID_TRADING_v.01.mq5 (112.73 KB)
Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 17): Zugang zu Daten im Internet (III) Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 17): Zugang zu Daten im Internet (III)
In diesem Artikel setzen wir die Überlegungen fort, wie man Daten aus dem Internet beziehen und in einem Expert Advisor verwenden kann. Dieses Mal werden wir ein alternatives System entwickeln.
Das Preisbewegungsmodell und seine wichtigsten Bestimmungen (Teil 1): Die einfachste Modellversion und ihre Anwendungen Das Preisbewegungsmodell und seine wichtigsten Bestimmungen (Teil 1): Die einfachste Modellversion und ihre Anwendungen
Der Artikel liefert die Grundlagen für eine mathematisch rigorose Theorie der Preisbewegungen und des Funktionierens des Marktes. Bis heute gibt es keine mathematisch strenge Theorie der Preisbewegung. Stattdessen haben wir es mit erfahrungsbasierten Annahmen zu tun, die besagen, dass sich der Preis nach einem bestimmten Muster in eine bestimmte Richtung bewegt. Natürlich wurden diese Annahmen weder durch Statistiken noch durch die Theorie gestützt.
Datenwissenschaft und maschinelles Lernen (Teil 06): Gradientenverfahren Datenwissenschaft und maschinelles Lernen (Teil 06): Gradientenverfahren
Der Gradientenverfahren spielt eine wichtige Rolle beim Training neuronaler Netze und vieler Algorithmen des maschinellen Lernens. Es handelt sich um einen schnellen und intelligenten Algorithmus, der trotz seiner beeindruckenden Arbeit von vielen Datenwissenschaftlern immer noch missverstanden wird - sehen wir uns an, worum es geht.
Neuronale Netze leicht gemacht (Teil 16): Praktische Anwendung des Clustering Neuronale Netze leicht gemacht (Teil 16): Praktische Anwendung des Clustering
Im vorigen Artikel haben wir eine Klasse für das Clustering von Daten erstellt. In diesem Artikel möchte ich Varianten für die mögliche Anwendung der gewonnenen Ergebnisse bei der Lösung praktischer Handelsaufgaben vorstellen.