Hedge

 

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.

Dateien:
 

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.

 
Ja, da hast du Recht. Im Grunde geht es nur um Verlustbegrenzung mit den Hedge Positionen.

Der Unterschied ist, wenn ich eine Buy Position eröffnet und diese bei -200 Pips in den SL laufen lasse, habe ich 100% Verlust.

Wenn ich die Buy Position aber mit einer Sell absichere, dann sind es nur paar Cent Verlust bei SL -200.

Falls der Kurs ins Plus laufen sollte, würde ich gern mit einer weiteren Hedge Position (ich nenne diese HedgeHedge) bei +200 Pips z.B. mit einem BuyStopp die erste Hedge auflösen, da diese Sell Position bei steigenden Kurs ins minus läuft. Ziel ist es Hedge + HedgeHedge >= 0€.

Am Ende bleibt die Buy EA Position übrig und läuft weiter ins Plus. Den TP des EA Trades mit 100 oder der gleichen absichern. So dass man nach dem Prozedere, mit dem auflösen der Hedge Positionen, im Plus landet.

Die Codezeilen Zeigen dir es etwas teutlicher was ich meine.
// EA Trade - alles wird zeitgleich ausgeführt (Buy, Sell BuyStop)
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.

 

Oder anders gefragt. Wie kann ich Positionen schließen die zwei unterschiedliche Kommentare tragen.

Ok ich schau es mir mal an...

Wenn der Kurs steigt soll die untere Sell aufgelöst werden.

 

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.