Órdenes de mercado vs órdenes pendientes en una API de MT5
Una orden de mercado opera ahora; una pendiente espera tu precio en el broker. Cómo se comporta cada una en una API de MT5, con un ejemplo y una tabla.
En esta página
Toda operación en MetaTrader 5 empieza como uno de dos tipos de orden. Una orden de mercado dice «ahora». Una orden pendiente dice «cuando el precio llegue aquí». Devuelven resultados distintos, y el código que las trata igual termina diciéndole a alguien que está en una operación en la que no está.
Un escenario
El EUR/USD cotiza en 1.1000. Quieres comprar.
- Comprar ahora. Envía una orden de mercado. Se ejecuta a alrededor de 1.1000, el precio disponible cuando llega al broker.
- Comprar si baja a 1.0950. Envía una buy limit pendiente en 1.0950. Espera en el broker y se ejecuta solo si el precio baja hasta ahí.
- Comprar si rompe por encima de 1.1050. Envía una buy stop pendiente en 1.1050. Espera y se ejecuta solo si el precio sube hasta ahí.
Lado a lado
| Aspect | Orden de mercado | Orden pendiente |
|---|---|---|
| Cuándo se ejecuta | De inmediato | Cuando el precio llega a tu nivel |
| El precio | El del mercado, ahora | Tu nivel (una stop puede pasarse de él en un mercado rápido) |
| Resultado de colocarla | filled: existe una posición | working: todavía no hay posición |
| Se puede cancelar | No; cierra la posición en su lugar | Sí, hasta que se active |
| Dónde espera | En ningún lado; se ejecuta | En el servidor de trading del broker |
| Endpoint de fxapis | POST /v1/accounts/{id}/orders/market | POST /v1/accounts/{id}/orders/pending |
Los tres tipos de pendiente
| Tipo | Una compra espera | Una venta espera | Úsala para |
|---|---|---|---|
limit | Por debajo del mercado | Por encima del mercado | Conseguir un precio mejor |
stop | Por encima del mercado | Por debajo del mercado | Operar una ruptura |
stop_limit | Se activa una stop, que coloca una limit | Igual | Operar una ruptura con un precio tope |
El lado es el error habitual: una buy limit por encima del mercado no es una limit. fxapis rechaza el lado equivocado antes de enviar nada, con un mensaje que nombra la orden que probablemente querías.
En la API
Una orden de mercado no necesita precio:
curl -X POST https://api.fxapis.com/v1/accounts/$ACCOUNT_ID/orders/market \
-H "Authorization: Bearer $FXAPIS_KEY" -H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "symbol": "EURUSD", "side": "buy", "volume": "0.10" }'
Una orden pendiente indica su tipo y su precio:
curl -X POST https://api.fxapis.com/v1/accounts/$ACCOUNT_ID/orders/pending \
-H "Authorization: Bearer $FXAPIS_KEY" -H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "symbol": "EURUSD", "side": "buy", "kind": "limit", "volume": "0.10", "price": "1.0950" }'
Las dos aceptan stop loss y take profit como precios absolutos, y las dos deberían llevar una clave de idempotencia.
Working no es filled
Una orden pendiente colocada vuelve como working. Eso significa que está esperando en el broker: no existe ninguna posición. Algunos brokers responden a una orden pendiente con el mismo código de retorno que a una ejecución; fxapis la lee como working, no como filled, para que tu código no informe una operación que no ha ocurrido.
Cuando se activa, aparece una posición en GET /v1/accounts/{id}/positions. Para anularla antes, POST /v1/orders/{id}/cancel. Si ya se activó, la cancelación se rechaza: ahora hay una posición, y lo que quieres es cerrarla.
Cuál usar
- Las señales y el copy trading suelen querer órdenes de mercado: la idea es actuar sobre la señal ahora, en cada cuenta.
- Las entradas en un nivel (un retroceso, una ruptura) quieren órdenes pendientes, que esperan en el broker aunque tus propios sistemas estén apagados.
Las órdenes pendientes están incluidas en todos los planes de fxapis (Personal, Production, Business y Enterprise) y en la prueba gratuita de 14 días de Personal, Production y Business. Mira precios.
Próximos pasos
- Órdenes pendientes en la guía de trading: cada tipo, sus estados y cómo cancelarlas.
- Por qué una operación en MT5 puede fallar: qué te dice un rechazo.