- Datenstruktur
- Struktur der Eingabeparameter des Anzeigers
- Struktur der historischen Daten
- DOM Struktur
- Struktur der Handelsanforderung
- Struktur der Ergebnisse der Prüfung der Handelsanforderung
- Struktur des Ergebnisses der Handelsanfoderung
- Struktur der Handelstransaktion
- Struktur fuer Erfassung der laufenden Preise
- Struktur des Wirtschaftskalenders
Struktur des Ergebnisses der Handelsanforderung (MqlTradeResult)
Als Antwort auf Handelsanforderung, gibt das Handelsserver Daten über Bearbeitungsergebnis der Handelsanforderung als eine vorbestimmte Sonderstruktur MqlTradeResult zurück.
struct MqlTradeResult
{
uint retcode; // Kode des Operationsergebnisses
ulong deal; // Ticket des Deals, wenn es abgeschlossen ist
ulong order; // Ticket der Order, wenn sie gestellt ist
double volume; // Dealvolumen, bestaetigt vom Broker
double price; // Dealpreis, bestaetigt vom Broker
double bid; // Laufender Bidpreis (Requote Preis)
double ask; // Laufender Askpreis (Requote Preis)
string comment; // Kommentar des Brokers zur Opearion (als Default durch Beschreibung ausgefuellt Rückkehrcode des Handels Servers)
uint request_id; // Identifikator der Anforderung, der vom Terminal beim Senden eingesetzt wird
int retcode_external; // Return Code eines externen Handelssystems
};
Beschreibung der Felder
Feld |
Beschreibung |
---|---|
retcode |
Rückkehrkode des Handelsservers |
deal |
Ticket von Deal, wenn es abgeschlossen ist. Zugänglich bei der Handelsoperation TRADE_ACTION_DEAL |
order |
Ticket der Order, wenn sie gestellt ist. Gemeldet bei der Handelsoperation TRADE_ACTION_PENDING |
volume |
Dealvolumen, bestätigt vom Broker. Hängt vom Typ der Orderausfuellung |
price |
Preis im Deal, bestätigt vom Broker. Hängt vom Feld deviation in der Handelsanforderung und/oder vom Typ der Handelsoperation ab |
bid |
Laufender Bidpreis (Requote Preis) |
ask |
Laufender Askpreis (Requote Preis) |
comment |
Kommentar des Brokers zur Operation (als Default durch Beschreibung ausgefüllt Rückkehrcode des Handels Servers) |
request_id |
Identifikator der Anforderung, der vom Terminal beim Senden eingesetzt wird |
retcode_external |
Der Code des Fehlers, den ein externes Handelssystem zurückgegeben hat. Das Hinzufügen und die Typen dieser Fehler hängen mit dem Broker und dem externen Handelssystem zusammen, an das Transaktionen gesendet werden |
Ergebnis der Handelsoperation kehrt zur Variable des Typs MqlTradeResult zurück, die vom zweiten Parameter in die Funktion OrderSend() für Durchführung der Handelsoperationen übertragen wird .
Das Terminal schreibt den Identifikator der Anforderung in das Feld request_id, wenn er an den Handel-Server durch Funktionen OrdersSend() und OrderSendAsync() gesendet wird. Vom Handel-Server erhält das Terminal Nachrichten über die ausgeführten Handelstransaktionen und übergibt sie für Bearbeitung in die OnTradeTransaction () Funktion, die als die Parameter enthält:
- Beschreibung der Handelstransaktion in der Struktur MqlTradeTransaction;
- Beschreibung der Handelsanforderung, der aus der Funktion OrderSend() oder OrdersSendAsync() gesendet ist. Identifikator der Anforderung wird vom Terminal an den Handle-Server gesendet, und die Anforderung und seinen request_id werden im Terminalspeicher aufbewahrt;
- das Ergebnis der Ausführung der Handelsanforderung als die Struktur MqlTradeResult, in dem das Feld request_id den Identifikator dieser Anforderung enthält.
Funktion OnTradeTransaction() bekommt drei Eingabeparameter, aber die beiden letzten Parameter sollten nur für die Handelstransaktionen mit dem Typ TRADE_TRANSACTION_REQUEST analysiert werden. In allen anderen Fällen werden die Daten über die Handelsanforderung und das Ergebnis seiner Ausführung nicht ausgefüllt. Das Beispiel der Analyse der Parameter ist im Abschnitt Struktur der Handelstransaktion gegeben.
Die Einstellung des Identifikators request_id vom Terminal für die Handelsanforderung dient zur Arbeit mit der asynchronen Funktion OrderSendAsync() beim Senden an den Server. Dieser Identifikator erlaubt die ausgeführte Aktion (Aufruf der Funktion OrderSend oder OrderSendAsync) mit dem in die OnTradeTransaction() übergebenen Ergebnis dieser Aktion zu verbinden.
Beispiel:
//+------------------------------------------------------------------+ |