Wirklich verstehen tu ich den Sinn nicht. Du kauft zum Ask zB 105 und verkaufst zum bid dann 95. Wenn jetzt beide sofort geschlossen werden hast dem Broker 2* den Spread bezahlt, da eine Kauf zum Bid =>95-105=-10 und eine Verkauf zum Ask, auch -10 verkauft wird.
Das ist auch so wenn der Preis um 200 Pips (Du meinst wahrscheinlich _Points) steigt. Nimm Dir mal ein Excel-Tabelle und simuliere Deine Idee.
trade.Buy (0.01 Lot, _Symbol, Ask, TP+500 Punkte, SL -200 Punkte,"EA");
// Hedge Trade
trade.Sell (0.01 Lot, _Symbol, Bid, 0, -200 Punkte),"Hedge");
trade.BuyStop (1.0 Lot , Ask + (200 * _Point), _Symbol, +30 Punkte, 0, ORDER_TIME_GTC, 0, "HedgeHedge");
Wieso so umständlich? Dein Buy endet bei SL=-200 mit Verlust und dann wird ein Sell dort eröffnet ohne TP ohne SL???
Such mal in ...\MQL5\Include\Trade\Trade.mqh nach den Funktionen:
bool PositionCloseBy(const ulong ticket,const ulong ticket_by); bool PositionClosePartial(const string symbol,const double volume,const ulong deviation=ULONG_MAX); bool PositionClosePartial(const ulong ticket,const double volume,const ulong deviation=ULONG_MAX);
und schau Dir an, was geht mit welchen Daten und bilde Deine Handelsidee danach, also nach dem was geht.
Vergiss Kommentare! der Server kann sie jederzeit ändern! Das Einzige, in dem Du Infos zu Position speichern kannst sind Magic-Nummern.
Zwei gegenläufige Positionen können (nur) mit PositionCloseBy geschlossen werden - oder einzeln.
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo Zusammen.
Ich programmiere gerade einen eigentlich einfachen MQL5 Code zum hedgen einer Buy/Sell Position (je Symbol), welche ich oder ein EA erzeugt hat.
Wenn der EA z.B. eine BuyPosition eröffnet hat wird gleichzeitig eine SellPosition eröffnet. Diese beiden Positionen werden gleichzeitig geschlossen, wenn -200 Pips erreicht sind (wäre gleichzusetzen mit einem Fehlausbruch an einer Widerstandslinie, Verlust wegen Spreadabstand - ca.- 0,20€ ist vertretbar).
Falls meine EA-Position in die richtige Richtung läuft und <-200 bleibt, soll bei +200 Pips eine größere Lot-"HedgeHedge"-Position eröffnet werden, mit der ich die vorherige "Hedge"-Position auflösen möchte - mit Profit >= 0,00€ .
Übrig bleibt die erste EA-Position, die ich einst eröffnet habe, welche ins plus gelaufen ist. Das Schließen dieser Position ist vorerst noch nicht wichtig. Könnte einen Pending TP erhalten.
Der Code funktioniert soweit gut bis auf den Punkt, dass wenn die -200 Pips erreicht sind die Positionen nicht geschlossen werden (inkl. BuyStopp Pending).
Ich habe Versucht es über Filter zu Lösen. Vielleicht müsste man das Programm anders aufbauen um mehr Kontrolle zu bekommen. Da bin ich zu unwissend ob es einen besseren Weg gibt als meine Zeilen. Manchmal werden auch mehrere Stopppendings erzeugt, obwohl der Filter es eigentlich nicht zulassen dürfte.
Den Code habe ich mit der Hand geschrieben. Gibt es bessere Möglichkeiten sowas zu lösen? Einen Builder vielleicht? Ein passendes Hedge Programm habe ich noch nicht gefunden.
Einige EAs schwingen sich stark auf und belasten zu sehr die Margin. Kurz gesagt, soll mein Hedge EA minimalistischer arbeiten und sich mehr um meine eigentliche Position kümmern als um die Automatisch erzeugten Hedgepositionen.