AUFTRAG_POSITION_ID

 

Guten Tag!

Verwendet jemand

 if ( OrderSelect( ticket ) )
 {
  long pos_id = long( OrderGetInteger( ORDER_POSITION_ID ) );

  if ( pos_id > 0 )
  {
  }
}

Me, wenn ein Auftrag teilweise ausgeführt wird pos_id immer = 0

Warum?

Aus der MQ-Hilfe:

AUFTRAG_POSITION_ID

Die Positionskennung, die bei der Ausführung des Auftrags angegeben wird. Jeder ausgeführte Auftrag erzeugt einen Handel, der eine neue Position eröffnet oder eine bestehende Position verändert. Die Kennung dieser Position wird zu diesem Zeitpunkt auf den ausgeführten Auftrag gesetzt.

 
Weiß das denn niemand?
 
Ich benutze :) wie von Zauberhand, wenn Sie Aufträge mit einer Position verknüpfen müssen.
 
Yurich:
Ich benutze es :) Wie von Zauberhand, wenn es notwendig ist, einen Auftrag mit einer Position zu verknüpfen.

Warum habe ich dann 0?

Denn wenn es in der Hilfe gestanden hätte, hätte es geheißen:

Positions-ID, die bei der Ausführung des Auftrags mit angegeben wird.

Dann sollte es vielleicht Null sein.

Aber es heißt:

Jeder ausgeführte Auftrag erzeugteinen Handel, der eine neuePosition eröffnet oder eine bestehendePosition verändert. Die Kennung dieser Position wird auf den zu diesem Zeitpunkt ausgeführten Auftrag gesetzt.

Und auch ein teilweise ausgeführter Auftrag führt zu einem Geschäft.

Wie meinen Sie das?

 
Mikalas:

Warum habe ich dann 0?

Es ist in servicedesk.

Ich habe auf die Frage"Verwendet jemand" geantwortetund war ungenau, ich verwende diePositions-ID.

 
Yurich:

Es ist in servicedesk.

Ich habe auf die Frage"Verwendet jemand" geantwortetund war ungenau, ich verwende diePositions-ID.

Ich verstehe, danke.

Aber es ist der Positionsbezeichner, aber nur bei der Bestellung.

 
Mikalas:

Bei mir ist, wenn ein Auftrag teilweise ausgeführt wird, pos_id immer = 0

Und warum?

Ich verwende pos_id nicht, wahrscheinlich, weil ich nicht verstehe, wozu sie da ist.

Ich frage mich, welche ID ein Auftrag haben sollte, wenn er eine vorherige Position schließt und eine neue eröffnet (flip)?

p.s. Die Idee ist, dass es nur eine zivile Handelsposition geben sollte (egal wie: kaufen, verkaufen, hedgen). Wenn es keine Position zu geben scheint, ist sie vorübergehend).

 
Serj_Che:

Ich verwende pos_id nicht, wahrscheinlich, weil ich nicht verstehe, wozu sie da ist.

Ich frage mich, welche ID ein Auftrag haben sollte, wenn er eine vorherige Position schließt und eine neue eröffnet (flip)?

p.s. Die Idee ist, dass es nur eine zivile Handelsposition geben sollte (egal wie: kaufen, verkaufen, hedgen). Wenn es keine Position zu geben scheint, ist sie vorübergehend).

Der Grund dafür ist, dass die Referenz eine mehrdeutige Beschreibung enthält,

die unterschiedlich interpretiert werden können. Da ein teilweise ausgeführter Auftrag auch eine

Daher muss dem Auftrag eine ORDER_POSITION_ID zugewiesen werden

 
Mikalas:

Guten Tag!

Verwendet jemand

Ich habe immer pos_id = 0, wenn ein Auftrag teilweise ausgeführt wird.

Warum?

Vielleicht, weil ORDER_POSITION_ID direkt nach der Ausführung des Auftrags angefordert wird, wenn der Handelsserver noch keine Zeit hatte, Informationen über die Transaktion zu senden.

Lesen Sie den Artikel Handelsereignisse in MetaTrader 5


 
Rosh:

Dies kann daran liegen, dass ORDER_POSITION_ID unmittelbar nach der Ausführung des Auftrags angefordert wird, wenn der Handelsserver noch keine Zeit hatte, Informationen über die Transaktion zu senden.

Lesen Sie den Artikel Handelsereignisse in MetaTrader 5


Sie sind sich bei Ihrer Antwort nicht sicher?
 
Rosh:

Vielleicht, weil ORDER_POSITION_ID unmittelbar nach der Ausführung des Auftrags angefordert wird, wenn der Handelsserver noch keine Zeit hatte, Informationen über die Transaktion zu senden.

Artikel lesen Handelsereignisse in MetaTrader 5


Das ist nicht klar. Wenn es ein Ticket gibt, wird die Transaktion ausgeführt, und wir haben eine Antwort vom Server erhalten.

Was meinen Sie damit: Wir haben ein Ticket, aber der Server hat die Antwort nicht erhalten?