En respuesta a una solicitud de operación ejecutada por las funciones OrderSend u OrderSendAsync que veremos en la siguiente sección, el servidor devuelve los resultados del procesamiento de la solicitud. Para ello se utiliza una estructura especial MqlTradeResult predefinida.
struct MqlTradeResult
|
En la siguiente tabla se describen sus campos:
Campo |
Descripción |
|---|---|
retcode |
Código de retorno del servidor de trading |
deal |
Ticket de transacción si se realiza (durante la operación de trading TRADE_ACTION_DEAL) |
order |
Ticket de orden si se realiza (durante la operación de trading TRADE_ACTION_PENDING) |
volume |
Volumen de trading confirmado por el bróker (depende de los modos de ejecución de la orden) |
price |
El precio de la transacción confirmado por el bróker (depende del campo deviation de la solicitud de operación, modo de ejecución y la operación de trading) |
bid |
Precio de oferta actual del mercado |
ask |
Precio de demanda actual del mercado |
comment |
Comentario del bróker sobre la operación (por defecto, se rellena con la desencriptación del código de retorno del servidor de trading) |
request_id |
ID de la solicitud que establece el terminal al enviarla al servidor de trading. |
retcode_external |
Código de error devuelto por el sistema de trading externo |
Como veremos más adelante al realizar las operaciones de trading se pasa una variable de tipo MqlTradeResult como segundo parámetro por referencia en la función OrderSend u OrderSendAsync. Devuelve el resultado.
Al enviar una solicitud de operación al servidor, el terminal establece el identificador request_id en un valor único. Esto es necesario para el análisis de los eventos de trading posteriores, lo cual es necesario si se utiliza una función asíncrona OrderSendAsync. Este identificador permite asociar la solicitud enviada con el resultado de su procesamiento pasado al manejador de eventos OnTradeTransaction.
La presencia y los tipos de errores en el campo retcode_external dependen del bróker y del sistema de trading externo al que se envían las operaciones de trading.
Los resultados de las solicitudes se analizan de distintas maneras, en función de las operaciones de trading y de la forma en que se envían. Nos ocuparemos de ello en secciones posteriores sobre acciones específicas: compra y venta en el mercado, colocación y eliminación de órdenes pendientes, y modificación y cierre de posiciones.