POST /api/v1/orders/market requiere permiso de trading, cuenta verificada y
Idempotency-Key. Envía side: "buy" o side: "sell".
Solicitud recomendada
volume sigue en unidades MT5: 100 = 0.01 lotes, 1000 = 0.10 lotes y
10000 = 1 lote. No envíes 0.01 en volume. No hay conversión desde lotes
ni un campo volume_lots en este contrato.
Precio y decimales automáticos
Omiteprice y digits. El backend consulta los datos de la cuenta y la
configuración efectiva del símbolo, valida volumen y permisos de apertura y
obtiene la cotización correspondiente. Usa Ask para compra y Bid para venta.
Los decimales proceden del símbolo. Esta información interna no se devuelve.
Aunque el partner no envía precio, la solicitud Dealer sí incluye PriceOrder
y Digits. No se garantiza que el precio final ejecutado sea idéntico a la cotización.
El modo automático exige una cotización con antigüedad máxima de 60 segundos por
defecto, configurable por el operador; vuelve a comprobar su vigencia antes del envío.
Cotizaciones ausentes o inválidas producen 502; vencidas, 503.
Las aperturas a mercado y los cierres seleccionan automáticamente la política de
llenado según el símbolo efectivo para el grupo de la cuenta. Se prefiere FOK;
si no está disponible, se utiliza IOC cuando esté permitido. Request/Instant
permiten FOK independientemente de los flags. Market/Exchange respetan los flags
FOK/IOC del símbolo; si ninguno está permitido, se devuelve 422 antes del envío.
FOK ejecuta todo el volumen o cancela. IOC puede ejecutar un volumen menor y
cancela el resto. Una solicitud aceptada no confirma una ejecución completa:
consulta el resultado de ejecución y las posiciones para conocer el volumen real.
Un cierre puede dejar parte de la posición abierta. La API no reenvía el volumen
restante ni reintenta con otra política. La misma clave de idempotencia devuelve
la respuesta original del envío. La política elegida queda en los logs de auditoría.
También se aplica cuando se envían los campos antiguos price y digits.
Las órdenes pendientes mantienen RETURN, según las reglas de MT5.
Compatibilidad
Las integraciones anteriores pueden seguir enviando ambos camposprice y
digits, marcados como obsoletos. Conservan el comportamiento explícito anterior:
la API utiliza esos valores y no consulta automáticamente la cotización. Sí consulta
el símbolo efectivo para seleccionar FOK/IOC.
Enviar solo uno produce 422. Para adoptar el modo automático, omite ambos.
Los cierres aceptan solo login y volumen/comentario opcionales; el servidor calcula los demás parámetros.
Envío y resultado
Guarda el cuerpo enapertura.json y conserva una clave única por intención.
answer.id o answer.ID y consulta el resultado.
retcode: "0 Done" confirma recepción, no ejecución. Un reintento con la misma
clave y cuerpo devuelve el resultado guardado sin volver a cotizar ni operar;
un cambio en el cuerpo produce 409. Ante un error después de reservar la clave,
consulta idempotencia y recuperación.
Para limit, stop y stop-limit utiliza órdenes pendientes.