AUFTRAG_POSITION_ID - Seite 2

 
Sie benötigen mehr Kontext (Code). Woher kommt dieses Ticket und was bedeutet es, bevor dieser Code ausgeführt wird?
 
Rosh:

Möglicherweise liegt dies daran, 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


Ich habe einen Codeschnipsel als Beispiel angegeben, aber eigentlich sieht die Funktion zum Abrufen der ID wie folgt aus:

//+------------------------------------------------------------------+
//| Get order position ID function                                   |
//+------------------------------------------------------------------+
long GetOrderPosId( const ulong ticket )
{
  long pos_id = 0;
  
  if ( OrderSelect( ticket ) )
  {
    string pos_symbol = OrderGetString( ORDER_SYMBOL );
    
    if ( PositionSelect( pos_symbol ) )
    {
      return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );
    }
  }
  
  return( pos_id );
}

P/S Rosh, bitte schicken Sie mich nicht weg, um Artikel zu lesen.

Glauben Sie mir, ich habe viel gelesen, und die Tatsache, dass ich eine Menge Fragen stelle

Fragen, weil es in der Dokumentation viele Unklarheiten gibt.

 
marketeer:
Wir brauchen mehr Kontext (Code). Woher kommt dieses Ticket und was bedeutet es, bevor dieser Code ausgeführt wird?

Wenn die Bestellung ausgewählt ist, was glauben Sie, was das Ticket war?

Und das Ticket wurde aus dem Internet genommen als Antwort auf die Annahme der Bestellung durch den Handelsserver.

 
Mikalas:

Wenn die Bestellung ausgewählt ist, was glauben Sie, was das Ticket war?

Und das Ticket wurde aus dem Internet genommen als Antwort auf die Annahme der Bestellung durch den Handelsserver.

Und was glauben Sie, woher wir wissen, was und woher Sie es bekommen? Sie zeigen immer noch Code, der nichts über den Inhalt des Tickets oder darüber aussagt, wie die Anfrage ausgeführt wurde, und Sie verwenden z. B. kein Debug-Print oder andere Mittel, um zu überprüfen, dass die Variable keine linke Zahl enthält (für den Anfang: request.action ist dann gleich was?). Ein Fehler kann sich überall einschleichen.
 
marketeer:
Was glauben Sie, woher wir wissen, was Sie bekommen und woher es kommt? Sie zeigen immer noch Code, der nichts über den Inhalt des Tickets oder darüber aussagt, wie die Anfrage ausgeführt wurde, und Sie verwenden z. B. kein Debug-Print oder andere Mittel, um sicherzustellen, dass die Variable keine linke Zahl ist (für den Anfang: request.action ist dann gleich was?). Ein Fehler kann sich überall einschleichen.
Danke, ich verstehe, was Sie meinen.
 
Mikalas:
Ich danke Ihnen, ich verstehe Ihren Standpunkt.
Bitte sehr. Ich verstehe nicht, worauf Sie hinauswollen. Sie wurden bereits auf die asynchrone Ausführung der Anfrage und den Erhalt des Tickets hingewiesen. Solange Sie den Code nicht zeigen, wie und wann Sie diese Dinge verarbeiten, stellt sich die Frage als an Telepathen gerichtet heraus.
 
marketeer:
Bitte sehr. Und ich verstehe nicht, worauf Sie hinauswollen. Die asynchrone Ausführung der Anfrage und der Erhalt des Tickets wurden bereits angedeutet. Solange Sie nicht den Code zeigen, wie und wann Sie dieses Zeug verarbeiten, stellt sich die Frage als an Telepathen gerichtet heraus.

Lassen Sie mich das erklären.

Aus dem obigen Code ist alles ersichtlich.

Es spielt keine Rolle, welches Ticket (die Bestellung wird allein aufgegeben). Sehen Sie genau hin (Auftrag nach Ticket und Position nach Auftragssymbol, das durch diesen Auftrag teilweise ausgeführt wurde).

Neben dem Ausdruck gibt es auch eine Schritt-für-Schritt-Ausführung des Programms und

wenn ich zu

return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

Er gibt "0" zurück.

Die Frage ist nicht, ob ich in MQL5 programmieren kann oder nicht (und ob ich das Programm verfolgen kann), sondern

Die Frage ist, ob in der Dokumentation etwas anderes steht als in der Implementierung (Service Desk schweigt wie üblich).

Oder ich habe die Beschreibung in der Dokumentation zuORDER_POSITION_ID richtig interpretiert

(lesen Sie meine 3 Beiträge).

 
Mikalas:

Lassen Sie mich das erklären.

Aus dem obigen Code ist alles ersichtlich.

Es spielt keine Rolle, welches Ticket (die Bestellung wird allein aufgegeben). Sehen Sie genau hin (Auftrag nach Ticket und Position nach Auftragssymbol, das durch diesen Auftrag teilweise ausgeführt wurde).

Neben dem Ausdruck gibt es auch eine Schritt-für-Schritt-Ausführung des Programms und

wenn ich zu

Er gibt "0" zurück.

Die Frage ist nicht, ob ich in MQL5 programmieren kann oder nicht (sowie das Programm zu verfolgen), aber was ist in der

Die Frage ist, ob in der Dokumentation etwas anderes steht als in der Realität (der Service Desk schweigt wie üblich).

Oder ich habe die Beschreibung in der Dokumentation zuORDER_POSITION_ID richtig interpretiert

(Lesen Sie meine 3 Beiträge).

Wiederum 25. Es ist WICHTIG, welche Bestellung und wie Sie sie aufgeben. Vielleicht, zum Beispiel (hypothetisch, weil alles noch ein Rätsel ist), haben Sie ein Pendel, was kann dann die Position ID sein?

Der obige Code ergibt keinen Sinn.

 
marketeer:

25 wieder. Es ist WICHTIG, welche Bestellung und wie Sie sie aufgeben. Vielleicht haben Sie, zum Beispiel (hypothetisch, weil alles noch ein Rätsel ist), ein Pendel, was kann dann die Position ID sein?

Der obige Code ergibt keinen Sinn.

Tut mir leid, aber wir sprechen "unterschiedliche" Sprachen, oder Sie lesen über den Tellerrand hinaus.

Der schwebende Auftrag ist EIN und die Position wurde durch diesen noch gültigenAuftrag teilweise geöffnet,

Wenn ich das Programm verfolge, erhalte ichreturn( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

 
Mikalas:

Tut mir leid, aber wir beide sprechen eine "andere" Sprache, oder Sie lesen über den Tellerrand hinaus.

Der schwebende Auftrag ist EIN und die Position wurde durch diesenAuftrag, der immer noch in Kraft ist, teilweise geöffnet,

Wenn ich das Programm verfolge, erhalte ichreturn( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

Sie beobachten diesen teilweise ausgeführten Auftrag. Wo ist sie? In der Liste der Abschlüsse oder in den ausgeführten Aufträgen?