Bedingung: PositionsTotal() mit Ausnahme

 

Hallo,


ich habe schon lang gegrübelt, aber komme zu keiner Lösung.
Ich habe in meiner Bedingung vor einer Buy-Order, dass PositionsTotal()==0 sein muss, so dass stets nur eine Position offen ist ( && OrdersTotal()==0 ).
Nun mache ich aber ab einem definierten aktuellen negativen PositionProfit eine Hedging-Position auf.
Dadurch wird dann keine weitere Buy-Position aufgemacht, weil nun PositionsTotal()==0 nicht mehr stimmt. 
Wie kann ich die Hedging-Position in der Bedingung ausschließen? Ich bin sehr gespannt auf Eure Ideen.

Kann ich aus einem EA einen anderen triggern? Dann könnte ich auf einem Netting-Account einen weiteren EA auf einem weiteren Chart für die Hedging-Position anwerfen.

VIelen Dank & Grüße,
Christian

 
Wenn es um eine weitere hedging Position geht würde ich OrdersTotal()<2 machen und dann if(OP()==1) else if (OP==1) else ...
 
Carl Schreiber #:
Wenn es um eine weitere hedging Position geht würde ich OrdersTotal()<2 machen und dann if(OP()==1) else if (OP==1) else ...

Nein, keine weitere hedging Position, die soll parallel laufen, bis ich ihr den Close sende.
Es sollen aber in dieser unbestimmten Zeit weitere (zusätzliche) Positionen geöffnet werden können, aber halt nur eine zusätzliche. 
Wenn ich nach dem Öffnen der Hedge Position eine Variable "hedge-opened" setze und die mit in die Bedingung einbaue (als "Kaufe nur, if != hedge-opened), werden ja fortwährend neue eröffnet.

 
Christian Linden #:

Nein, keine weitere hedging Position, die soll parallel laufen, bis ich ihr den Close sende.
Es sollen aber in dieser unbestimmten Zeit weitere (zusätzliche) Positionen geöffnet werden können, aber halt nur eine zusätzliche. 
Wenn ich nach dem Öffnen der Hedge Position eine Variable "hedge-opened" setze und die mit in die Bedingung einbaue (als "Kaufe nur, if != hedge-opened), werden ja fortwährend neue eröffnet.

Zeichne Die einen Entscheidungsbaum (https://de.wikipedia.org/wiki/Entscheidungsbaum), dann weißt Du auch, wie Du Deine Idee programmieren musst.
 
Carl Schreiber #:
Zeichne Die einen Entscheidungsbaum (https://de.wikipedia.org/wiki/Entscheidungsbaum), dann weißt Du auch, wie Du Deine Idee programmieren musst.

ist schon klar =P
Ein EA von einem anderen steuern klappt nicht?

 
Christian Linden #:

ist schon klar =P
Ein EA von einem anderen steuern klappt nicht?

Über Dateien oder globale Variablen, Sockets, Shared memory.

Schau, was die Suche von Data Exchange liefert: ~490 Seiten mit jeweils 10 Links.

Einfach ist das aber nicht, da die EA parallel laufen und das erfordert genaue Koordinierung.

Documentation on MQL5: Global Variables of the Terminal
Documentation on MQL5: Global Variables of the Terminal
  • www.mql5.com
Global Variables of the Terminal - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Carl Schreiber #:

Über Dateien oder globale Variablen, Sockets, Shared memory.

Schau, was die Suche von Data Exchange liefert: ~490 Seiten mit jeweils 10 Links.

Einfach ist das aber nicht, da die EA parallel laufen und das erfordert genaue Koordinierung.

cool, danke!

 
Naja, mir fällt noch folgendes ein.

Solange PositionTotal () eine ungerade Zahl zurück gibt, ist keine HedgingPosition gegeben.

Sowie die Zahl aber gerade ist, schon.

Also wäre die Bedingung nicht PositionsTotal() == 0

Sondern
PositionsTotal()%2 == 0


Und
PositionsTotal() >0 && PositionsTotal()%2 != 0
-> keine Hedging Position vorhanden.


Als Idee.
 
Dominik Christian Egert #:
Naja, mir fällt noch folgendes ein.

Solange PositionTotal () eine ungerade Zahl zurück gibt, ist keine HedgingPosition gegeben.

Sowie die Zahl aber gerade ist, schon.

Also wäre die Bedingung nicht PositionsTotal() == 0

Sondern
PositionsTotal()%2 == 0


Und
PositionsTotal() >0 && PositionsTotal()%2 != 0
-> keine Hedging Position vorhanden.


Als Idee.

Interessant, Du meinst, das ist so, weil die Hedge immer als Reaktion auf eine bereits bestehende Position eröffnet wird? 
Das ist eine gute Idee. Geht aber natürlich daneben, wenn genau bei oder kurz nach Eröffnung des Hedge, vor der Abfrage der Bedigungung die andere Position geschlossen wird (SL).
Aber trotzdem testenswert, danke!

 
Ich ging davon aus, dass der Hedge deinen SL ersetzt.

Naja, du kannst natürlich auch eine etwas intelligentere Funktion bauen, welche alle offenen Positionen durchgeht und auf Basis von Buy/Sell und Volumen Pärchen pro Symbol bildet. Dann weißt du genau, welche Positionen schon im Hedge sind, und welche noch nicht.


 

Habe da mal eine Frage an die User, die auf demselben Symbol Hedgen.


Wo ist der Vorteil?


Hedgen auf demselben Symbol ist nichts anderes als den aktuellen G/V einzufrieren.

Genauso könntet ihr doch die Position auflösen und dann, wenn ihr den Hedge auflösen würden, die Position neu aufnehmen.


Ich verstehe es nicht.

Grund der Beschwerde: