Pending Orders im MetaTrader 4: Effizientes Trading mit EAs

Mike 2016.03.18 01:07 22 0 0
Anhang

Ein Pending Order ist eine Order, die ausgeführt wird, sobald der Preis einen von uns festgelegten Punkt erreicht. Das bedeutet, dass wir eine Position zu einem bestimmten Preisniveau eröffnen, und wenn der Preis dieses vorher festgelegte Niveau erreicht, wird die Trading-Position automatisch eröffnet.

Im MetaTrader 4 gibt es insgesamt sechs Arten von Aufträgen:

  1. Typ 0 = Kauf
  2. Typ 1 = Verkauf
  3. Typ 2 = Buy Limit
  4. Typ 3 = Sell Limit
  5. Typ 4 = Buy Stop
  6. Typ 5 = Sell Stop

Von diesen sechs Auftragsarten sind vier verschiedene Arten von Pending Orders verfügbar. Lass uns die verschiedenen Arten von Pending Orders nacheinander durchgehen und anschließend gleich die Implementierung in einem Expert Advisor (EA) betrachten.

1. Buy Limit

Eine Buy Limit Order ist ein Auftrag, der unter dem aktuellen Preis ausgeführt wird. Diese Art von Order wird genutzt, wenn wir erwarten, dass der Preis sinkt und dann wieder steigt.

Der Code für eine Buy Limit Order sieht folgendermaßen aus:

OrderSend(Symbol(), 2, start_lot, Ask - D * Point, 3, Ask - D * Point - SL * Point, Ask - D * Point + TP * Point, "", Magic, 0, Blue);

Es ist wichtig, dass du den Abstand zwischen dem aktuellen Preis und dem Buchungspreis für Pending Orders berücksichtigst.

Ask - D * Point

2. Sell Limit

Sell Limit Orders sind Aufträge, die über dem aktuellen Preis ausgeführt werden. Hier ist der Code für eine Sell Limit Order:

OrderSend(Symbol(), 3, start_lot, Bid + D * Point, 3, Bid + D * Point + SL * Point, Bid + D * Point - TP * Point, "", Magic, 0, Red);

3. Buy Stop

Buy Stop Orders werden über dem aktuellen Preis ausgeführt. Der Code sieht wie folgt aus:

OrderSend(Symbol(), 4, start_lot, Ask + D * Point, 3, Ask + D * Point - SL * Point, Ask + D * Point + TP * Point, "", Magic, 0, Blue);

4. Sell Stop

Eine Sell Stop Order ist ein Auftrag, der unter dem aktuellen Preis ausgeführt wird. Hier ist der Code:

OrderSend(Symbol(), 5, start_lot, Bid - D * Point, 3, Bid - D * Point + SL * Point, Bid - D * Point - TP * Point, "", Magic, 0, Red);

Wie versprochen, werden wir im Folgenden einen EA erstellen, der alle vier Arten von Pending Orders nutzt. Damit dies funktioniert, müssen wir eine Funktion integrieren, um die Anzahl der bereits existierenden Aufträge zu überprüfen.

int totalorder(int m) {
    int total = 0;
    for (int i = 0; i < OrdersTotal(); i++) {
        if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
        if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic || OrderType() != m) continue;
        total++;
    }
    return total;
}

Wie du siehst, können wir die verschiedenen Ordertypen einfach verwalten und zusätzliche Logik implementieren, um sicherzustellen, dass wir nicht mehr als einen Auftrag pro Typ offen haben.

Hier siehst du eine Darstellung, wie der EA arbeitet:

pendingorder

Ich hoffe, das war hilfreich! Lass uns wissen, was du denkst.

Viel Erfolg und einen schönen Tag!

Liste
Kommentar 0