Códigos de retorno del servidor comercial

Todas las órdenes respecto a la ejecución de las operaciones comerciales se mandan en forma de una estructura de solicitudes comerciales MqlTradeRequest a través de la función OrderSend(). El resultado de ejecución de esta función se coloca en la estructura MqlTradeResult, su campo retcode contiene el código de retorno del servidor comercial.

Código

Identificador

Descripción

10004

TRADE_RETCODE_REQUOTE

Recuota

10006

TRADE_RETCODE_REJECT

Solicitud rechazada

10007

TRADE_RETCODE_CANCEL

Solicitud cancelada por el agente

10008

TRADE_RETCODE_PLACED

Orden colocada

10009

TRADE_RETCODE_DONE

Solicitud ejecutada

10010

TRADE_RETCODE_DONE_PARTIAL

Solicitud ejecutada parcialmente

10011

TRADE_RETCODE_ERROR

Error al procesar la solicitud

10012

TRADE_RETCODE_TIMEOUT

Solicitud cancelada al expirar el plazo

10013

TRADE_RETCODE_INVALID

Solicitud no válida

10014

TRADE_RETCODE_INVALID_VOLUME

Volumen en la solicitud no válido

10015

TRADE_RETCODE_INVALID_PRICE

Precio en la solicitud no válido

10016

TRADE_RETCODE_INVALID_STOPS

Stops en la solicitud no válido

10017

TRADE_RETCODE_TRADE_DISABLED

Transacciones comerciales están prohibidas

10018

TRADE_RETCODE_MARKET_CLOSED

Mercado está cerrado

10019

TRADE_RETCODE_NO_MONEY

Falta de medios monetarios para cumplir la solicitud

10020

TRADE_RETCODE_PRICE_CHANGED

Precios se han cambiado

10021

TRADE_RETCODE_PRICE_OFF

Faltan las cotizaciones para procesar la solicitud

10022

TRADE_RETCODE_INVALID_EXPIRATION

Fecha de expiración no válida de la orden en la solicitud

10023

TRADE_RETCODE_ORDER_CHANGED

Estado de la orden se ha cambiado

10024

TRADE_RETCODE_TOO_MANY_REQUESTS

Solicitudes muy frecuentes

10025

TRADE_RETCODE_NO_CHANGES

Sin cambios en la solicitud

10026

TRADE_RETCODE_SERVER_DISABLES_AT

Autotrading está prohibido por el servidor

10027

TRADE_RETCODE_CLIENT_DISABLES_AT

Autotrading está prohibido por el terminal de cliente

10028

TRADE_RETCODE_LOCKED

Solicitud está bloqueada para procesar

10029

TRADE_RETCODE_FROZEN

Orden o posición están congeladas

10030

TRADE_RETCODE_INVALID_FILL

Está especificado el tipo de ejecución de orden no válido

10031

TRADE_RETCODE_CONNECTION

No hay conexión con el servidor de comercio

10032

TRADE_RETCODE_ONLY_REAL

Operación permitida únicamente para las cuentas reales

10033

TRADE_RETCODE_LIMIT_ORDERS

Alcanzado el límite del número de órdenes pendientes

10034

TRADE_RETCODE_LIMIT_VOLUME

Alcanzado el límite del volumen de órdenes y posiciones para este símbolo

10035

TRADE_RETCODE_INVALID_ORDER

Tipo de orden inválido o prohibido

10036

TRADE_RETCODE_POSITION_CLOSED

Posición con el POSITION_IDENTIFIER especificado ya está cerrada

10038

TRADE_RETCODE_INVALID_CLOSE_VOLUME

El volumen cerrado supera el volumen actual de la posición

10039

TRADE_RETCODE_CLOSE_ORDER_EXIST

Para la posición indicada ya existe una orden de cierre. Puede surgir al trabajar en el sistema de cobertura:

  • al intentar cerrar una posición con una opuesta, si ya existe una orden de cierre de esta posición
  • al intentar realizar un cierre total o parcial, si el volumen sumado de las órdenes de cierre ya existentes y la orden colocada de nuevo supera el volumen actual de la posición

10040

TRADE_RETCODE_LIMIT_POSITIONS

El número de posiciones abiertas que puede existir en la cuenta de forma simultánea puede verse limitado por los ajustes del servidor. Una vez alcanzado el límite, el servidor retornará el error TRADE_RETCODE_LIMIT_POSITIONS como respuesta a la colocación de una orden. Esta restricción actúa de forma diferente, dependiendo del tipo de registro de posición usado en la cuenta:

  • Sistema de compensación – tiene en cuenta el número de posiciones abiertas. Al alcanzar el límite, la plataforma no permite establecer nuevas órdenes cuya ejecución pueda provocar el aumento de posiciones abiertas. De hecho, la plataforma permite colocar órdenes solo de aquellos símbolos de los que ya existen posiciones abiertas. En el sistema de compensación, al comprobar el límite, no se tienen en cuenta las órdenes pendientes actuales, puesto que su ejecución puede causar cambios en las posiciones actuales, pero no el aumento de su número.
  • Sistema de cobertura – aparte de las posiciones abiertas, se tienen en consideración las órdenes pendientes colocadas, puesto que su activación siempre conduce a la apertura de una nueva posición. Al alcanzar el límite, la plataforma no permite colocar órdenes de mercado para la apertura de posiciones, así como órdenes pendientes.

10041

TRADE_RETCODE_REJECT_CANCEL

La solicitud de activación de la orden pendiente ha sido rechazada, la orden ha sido cancelada

10042

TRADE_RETCODE_LONG_ONLY

La solicitud ha sido rechazada, ya que para el símbolo se ha establecido la regla "Solo se permiten posiciones largas"  (POSITION_TYPE_BUY)

10043

TRADE_RETCODE_SHORT_ONLY

La solicitud ha sido rechazada, ya que para el símbolo se ha establecido la regla "Solo se permiten posiciones cortas" (POSITION_TYPE_SELL)

10044

TRADE_RETCODE_CLOSE_ONLY

La solicitud ha sido rechazada, ya que para el símbolo se ha establecido la regla "Solo se permite cerrar las posiciones existentes"

10045

TRADE_RETCODE_FIFO_CLOSE

La solicitud ha sido rechazada, ya que para el símbolo se ha establecido la regla "Solo se permite cerrar las posiciones existentes según el principio FIFO" (ACCOUNT_FIFO_CLOSE=true)

10046

TRADE_RETCODE_HEDGE_PROHIBITED

La solicitud ha sido rechazada, ya que para la cuenta comercial se ha establecido la regla "Prohibido cerrar posiciones opuestas de un mismo símbolo". Por ejemplo, si en la cuenta tenemos una posición Buy, el usuario no podrá abrir una posición Sell o colocar una orden pendiente de venta. La regla se aplica solo en las cuentas con sistema de cobertura de registro de posiciones (ACCOUNT_MARGIN_MODE=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING).