- Evento principal de Asesores Expertos: OnTick
- Principios y conceptos básicos: orden, transacción y posición
- Tipos de operaciones de trading
- Tipos de órdenes
- Modos de ejecución de órdenes por precio y volumen
- Fechas de vencimiento de órdenes pendientes
- Cálculo del margen para una orden futura: OrderCalcMargin
- Estimación del beneficio de una operación de trading: OrderCalcProfit
- Estructura MqlTradeRequest
- Estructura MqlTradeCheckResult
- Solicitar validación: OrderCheck
- Solicitar resultado del envío: estructura MqlTradeResult
- Enviar una solicitud de trading: OrderSend y OrderSendAsync
- Operaciones de compraventa
- Modificar los niveles de Stop Loss y/o Take Profit de una posición
- Trailing stop
- Cierre de una posición: total y parcial
- Cierre de posiciones opuestas: total y parcial
- Colocar una orden pendiente
- Modificar una orden pendiente
- Borrar una orden pendiente
- Obtener una lista de órdenes activas
- Propiedades de una orden (activas e históricas)
- Funciones para leer las propiedades de órdenes activas
- Seleccionar órdenes por propiedades
- Obtener la lista de posiciones
- Propiedades de posiciones
- Funciones de lectura de propiedades de posición
- Propiedades de transacción
- Seleccionar órdenes y transacciones del historial
- Funciones para leer propiedades de órdenes del historial
- Funciones para leer propiedades de transacciones del historial
- Tipos de transacciones de trading
- Evento OnTradeTransaction
- Peticiones síncronas y asíncronas
- Evento OnTrade
- Seguimiento de los cambios en el entorno de trading
- Crear Asesores Expertos multisímbolo
- Limitaciones y ventajas de los Asesores Expertos
- Crear Asesores Expertos en el Asistente MQL
Estructura MqlTradeCheckResult
Antes de enviar una solicitud de operación de trading al servidor se recomienda comprobar que la misma se ha completado sin errores formales. El control lo realiza la función OrderCheck, a la que pasamos la solicitud en la estructura MqlTradeRequest y la variable receptora del tipo de estructura MqlTradeCheckResult.
Además de la corrección de la solicitud, la estructura permite evaluar el estado de la cuenta tras la ejecución de una operación de trading; en concreto, el saldo, los fondos y el margen.
struct MqlTradeCheckResult
|
En la siguiente tabla se describen los campos:
Campo |
Descripción |
---|---|
retcode |
Código de retorno asumido |
balance |
El valor del saldo, que se observará tras la ejecución de la operación de trading. |
equity |
El valor de los fondos propios, que se observará tras la ejecución de la operación de trading. |
profit |
El valor del beneficio flotante, que se observará tras la ejecución de la operación de trading. |
margin |
Margen total bloqueado tras una operación |
margin_free |
El volumen de fondos propios libres que quedarán tras la ejecución de la operación de trading |
margin_level |
El nivel de margen que se fijará tras la ejecución de una operación de trading. |
comment |
Comentario sobre el código de respuesta, descripción del error |
En la estructura que se rellena llamando a OrderCheck, el campo retcode contendrá un código de resultado de entre los que admite la plataforma para procesar las solicitudes de operaciones reales y pone en un campo retcode similar de la estructura MqlTradeResult después de llamar a las funciones de trading OrderSend y OrderSendAsync.
Las constantes de código de retorno se presentan en Documentación MQL5. Para su salida más visual al registro cuando se depuran Asesores Expertos, la enumeración aplicada TRADE_RETCODE se definió en el archivo TradeRetcode.mqh. Todos sus elementos tienen identificadores que coinciden con las constantes integradas, pero sin el prefijo común «TRADE_RETCODE_». Por ejemplo:
enum TRADE_RETCODE
|
Así, el uso de TRCSTR(r.retcode), donde r es una estructura, proporcionará una descripción mínima del código numérico.
Consideraremos un ejemplo de aplicación de una macro y de análisis de una estructura en la sección siguiente acerca de la función OrderCheck.