19.1 Una orden expresa una intención
Una orden es una instrucción para comprar o vender un instrumento bajo condiciones declaradas. Como mínimo identifica cuenta, instrumento, lado, cantidad, tipo y vigencia; según el tipo también incluye precios.
No es una operación consumada. Primero debe ser validada y aceptada; después puede quedar activa, activarse por una condición o interactuar con el mercado.
Idea central: ningún tipo elimina la incertidumbre. Cada uno elige qué riesgo controlar: posibilidad de operar, límite de precio o momento de activación.
19.2 Campos comunes
- Instrumento y mercado: determinan el activo y sus reglas.
- Lado: compra o venta.
- Cantidad: unidades solicitadas, compatibles con el lote.
- Tipo: comportamiento elegido para la orden.
- Vigencia: período durante el cual puede permanecer activa.
- Identificador del cliente: permite evitar duplicados y rastrear la instrucción.
El precio límite y el precio de activación no son campos universales: solo tienen sentido para tipos que los utilizan.
19.3 Comprar y vender cambian la interpretación
Compra
El precio límite expresa el máximo que se acepta pagar.
Venta
El precio límite expresa el mínimo que se acepta recibir.
Activación
El lado determina qué comparación suele disparar la condición.
El mismo número cumple funciones distintas según el lado y el tipo. Por eso conviene modelar campos explícitos y no un único atributo ambiguo llamado precio.
19.4 Orden de mercado
Una orden de mercado solicita comprar o vender al mejor precio disponible cuando llega al mecanismo de negociación. No declara un precio límite.
Prioriza la posibilidad de una interacción inmediata, pero no garantiza precio ni ejecución. Si no existe contraparte, el mercado está cerrado o la orden incumple otra regla, puede no concretarse.
19.5 Riesgo de precio en una orden de mercado
La punta visible puede cambiar entre la observación y el procesamiento. Además, su cantidad puede ser insuficiente para cubrir toda la orden. Por eso el precio finalmente obtenido puede diferir de la última cotización vista.
Advertencia: «de mercado» no significa «al último precio», «al precio medio» ni «a la mejor punta observada en pantalla». Significa sin límite explícito de precio, dentro de las protecciones que aplique el mercado.
19.6 Orden limitada
Una orden limitada agrega un límite de precio:
- Una compra limitada puede ejecutarse al precio límite o a uno menor.
- Una venta limitada puede ejecutarse al precio límite o a uno mayor.
El límite protege el precio, pero no garantiza que exista una contraparte compatible durante la vigencia.
19.7 Una orden limitada puede ser negociable
Si la mejor venta es $100,20, una compra limitada a $100,30 admite precios de hasta $100,30 y puede interactuar con esa punta. Una compra limitada a $100,00 no alcanza la mejor venta y normalmente queda esperando.
Para una venta ocurre lo inverso: su límite alcanza la mejor compra cuando es menor o igual que ella.
venta negociable si límite ≤ mejor compra
Estas comparaciones solo indican compatibilidad de precios en una fotografía. No aseguran el resultado final.
19.8 Mercado y límite: decisiones diferentes
| Dimensión | De mercado | Limitada |
|---|---|---|
| Precio límite | No tiene. | Es obligatorio. |
| Prioridad de la intención | Buscar operar. | No superar o no bajar de un precio. |
| Riesgo principal | Precio incierto. | No obtener ejecución. |
| Garantía de ejecución | No. | No. |
| Validación | Debe rechazar un límite sobrante. | Debe exigir un límite válido. |
19.9 Orden con condición de activación
Una orden condicionada por precio permanece separada del libro activo hasta que una referencia cumple el disparador definido. Al activarse, genera o libera una orden de mercado o una orden limitada, según la variante.
Activar no es ejecutar. La nueva orden todavía debe atravesar las reglas del mercado y encontrar condiciones compatibles.
19.10 Precio de activación
El precio de activación, disparo o stop se compara con una referencia definida por la plaza o el intermediario: último precio operado, mejor punta u otra medida permitida.
Una convención frecuente activa una compra cuando la referencia alcanza o supera el disparador y una venta cuando la referencia alcanza o cae por debajo. La regla concreta debe almacenarse, no suponerse.
venta: referencia ≤ activación
19.11 Stop de mercado
Al cumplirse la condición, un stop de mercado libera una orden sin límite. Antes del disparo controla el momento de activación; después asume el riesgo de precio propio de una orden de mercado.
El precio de activación es un umbral, no el precio garantizado de la operación.
19.12 Stop limitado
Un stop limitado contiene dos precios: activación y límite. Cuando se dispara, libera una orden limitada con la protección indicada.
Esto limita el precio admisible, pero crea la posibilidad de que la orden quede activa sin ejecutarse si el mercado atraviesa rápidamente el rango compatible.
19.13 Comparar las cuatro variantes
| Tipo | Activación | Límite | Estado inicial |
|---|---|---|---|
| Mercado | No | No | Lista para enviarse. |
| Limitada | No | Sí | Lista para enviarse. |
| Stop de mercado | Sí | No | Condicionada. |
| Stop limitada | Sí | Sí | Condicionada. |
19.14 Validar sin completar por el usuario
Si falta el límite de una orden limitada, el sistema debe señalarlo. Convertirla silenciosamente en una orden de mercado cambia materialmente la instrucción. Del mismo modo, un campo de activación sobrante puede revelar que el usuario eligió el tipo equivocado.
Las validaciones de tick, lote, horario y permisos estudiadas anteriormente siguen aplicando. El tipo de orden agrega reglas; no reemplaza las existentes.
19.15 Laboratorio: construir y evaluar una orden
Elegí lado y tipo, y modificá la referencia. El laboratorio habilita solo los campos necesarios, valida la instrucción y muestra si una condición didáctica ya se disparó. No simula una ejecución.
Constructor de órdenes · MIF
Instrumento ficticio ABC, precios en ARS y cantidad expresada en unidades.
La orden de mercado no fija un precio máximo de compra.
19.16 Modelar tipos sin campos ambiguos
Una función constructora puede incluir únicamente los precios requeridos por cada variante y rechazar combinaciones incompletas.
function crearOrden({ instrumento, lado, cantidad, tipo, limite, activacion }) {
if (!Number.isInteger(cantidad) || cantidad <= 0) {
throw new Error("La cantidad debe ser un entero positivo");
}
const usaLimite = tipo === "LIMIT" || tipo === "STOP_LIMIT";
const usaActivacion = tipo === "STOP_MARKET" || tipo === "STOP_LIMIT";
if (usaLimite && !(limite > 0)) throw new Error("Falta el límite");
if (usaActivacion && !(activacion > 0)) throw new Error("Falta la activación");
return {
instrumento, lado, cantidad, tipo,
limite: usaLimite ? limite : null,
activacion: usaActivacion ? activacion : null
};
}
console.log(crearOrden({
instrumento: "ABC", lado: "BUY", cantidad: 100,
tipo: "LIMIT", limite: 100.25
}));
19.17 Evaluar una condición de activación
function debeActivarse(lado, referencia, disparador) {
if (lado === "BUY") return referencia >= disparador;
if (lado === "SELL") return referencia <= disparador;
throw new Error("Lado no reconocido");
}
console.log(debeActivarse("BUY", 101.00, 100.50));
console.log(debeActivarse("SELL", 98.90, 99.00));
console.log(debeActivarse("BUY", 100.10, 100.50));
En producción también se debe conocer qué referencia activa la orden, quién mantiene la condición y qué ocurre ante saltos o datos faltantes.
19.18 Errores frecuentes
- Enviar un precio límite junto con una orden de mercado.
- Interpretar el límite de compra como precio mínimo.
- Confundir precio de activación con precio de ejecución.
- Tratar una orden activada como si ya estuviera ejecutada.
- Evaluar el disparador con una referencia distinta de la acordada.
- Cambiar silenciosamente el tipo cuando falta un campo.
19.19 Ejercicio integrador
Con mejor compra de $74,80, mejor venta de $75,00 y referencia de $74,90, clasificá: una compra limitada a $75,10; una venta limitada a $75,20; un stop de compra en $76,00; y un stop limitado de venta con activación en $74,50 y límite en $74,30.
Ver una solución posible
const mercado = { bid: 74.80, ask: 75.00, referencia: 74.90 };
const resultados = {
compraLimitadaNegociable: 75.10 >= mercado.ask,
ventaLimitadaNegociable: 75.20 <= mercado.bid,
stopCompraActivado: mercado.referencia >= 76.00,
stopVentaActivado: mercado.referencia <= 74.50
};
console.log(resultados);
Solo la compra limitada es negociable por precio en esa fotografía. Las dos órdenes stop siguen condicionadas. El límite de $74,30 de la última recién se vuelve operativo si su condición se activa.
19.20 Ideas para recordar
- Una orden es una instrucción, no una operación terminada.
- La orden de mercado no posee límite y asume incertidumbre de precio.
- El límite de compra es un máximo; el de venta, un mínimo.
- Una orden condicionada permanece inactiva hasta cumplir su disparador.
- El precio de activación no garantiza el precio de ejecución.
- Una stop limitada necesita precio de activación y precio límite.
En el próximo tema estudiaremos la prioridad, ejecución total o parcial, modificación y cancelación.