16.1 El nombre visible no alcanza
Una empresa puede tener varias clases de acciones, instrumentos de deuda, recibos y cotizaciones en distintos mercados. Guardar solamente su nombre o un ticker puede asociar una orden con el instrumento equivocado.
La identidad completa combina referencias estables con datos propios del mercado: emisor, clase, identificador, símbolo, ámbito, moneda y reglas de negociación.
Idea central: un símbolo sirve para operar dentro de un contexto; un identificador sirve para reconocer una entidad o instrumento. Ninguno debe interpretarse sin indicar su sistema y ámbito.
16.2 Tres niveles de identidad
Emisor
Organización que creó la obligación o participación.
Instrumento
Clase y conjunto específico de derechos y condiciones.
Línea negociable
Manifestación del instrumento en un mercado, moneda y segmento.
Una misma acción puede aparecer en más de una línea negociable. Las líneas pueden usar símbolos o monedas diferentes sin que por ello existan dos emisores.
16.3 Símbolo o ticker
El símbolo es un código corto utilizado por un mercado o proveedor para mostrar y enrutar operaciones. Está pensado para personas y pantallas, no necesariamente para ser único en todo el mundo.
El mismo símbolo podría identificar instrumentos distintos en dos mercados. También puede cambiar después de una reorganización o decisión del emisor.
16.4 Identificadores de instrumentos
Los identificadores más estables permiten reconocer un instrumento entre sistemas. Pueden provenir de estándares internacionales, agencias nacionales, mercados o proveedores de datos.
El código debe almacenarse junto con su esquema. El valor «ABC123» es ambiguo si no sabemos qué autoridad lo asignó. Un instrumento puede tener varios identificadores válidos y cada uno cumple un propósito.
16.5 Identificador no es símbolo
| Dimensión | Símbolo | Identificador |
|---|---|---|
| Uso principal | Visualización y negociación local. | Reconocimiento e intercambio de datos. |
| Ámbito | Mercado, segmento o proveedor. | Esquema definido por una autoridad. |
| Unicidad | No suele ser global. | Se busca unicidad dentro del esquema. |
| Cambios | Puede cambiar por razones operativas. | Tiende a ser más estable, según sus reglas. |
| Lectura humana | Corto y reconocible. | Puede ser largo o poco memorable. |
16.6 Mercado, segmento y tablero
Dentro de un mismo mercado pueden existir segmentos con horarios, participantes y reglas diferentes. Una acción podría negociarse en el tablero principal, en un segmento de cantidades pequeñas o bajo un mecanismo especial.
La línea negociable debe apuntar al conjunto exacto de reglas. Enrutar una orden al mercado correcto pero al segmento equivocado puede generar rechazo o una ejecución inesperada.
16.7 Monedas que deben distinguirse
Un instrumento puede involucrar varias monedas:
- Moneda de denominación: unidad contractual del principal o patrimonio.
- Moneda de pagos: unidad en que se efectúan distribuciones o cobros.
- Moneda de negociación: unidad en que se expresa el precio.
- Moneda de liquidación: unidad de efectivo entregada al completar la operación.
- Moneda de reporte: unidad utilizada por la aplicación para resumir posiciones.
No deben consolidarse importes de monedas diferentes sin una conversión identificada por fuente y momento.
16.8 Unidad de cotización
El precio puede expresarse por acción, por cuotaparte, por unidad nominal, por cien unidades nominales, por tonelada o por otra medida. La unidad determina cómo se calcula el importe.
Aplicar siempre cantidad * precio solo funciona cuando cantidad y precio ya utilizan unidades compatibles y el multiplicador es uno.
16.9 Tamaño de lote
El lote es la cantidad mínima o el múltiplo normal de negociación. Si el lote es 100, una orden de 300 unidades contiene tres lotes completos. Una de 350 contiene tres lotes y un remanente de 50.
remanente = cantidad módulo tamaño de lote
Algunos mercados admiten remanentes en un segmento de lotes irregulares; otros los rechazan. La aplicación no debe redondear la cantidad sin instrucción del usuario.
16.10 Incremento mínimo de precio
El tick es el incremento mínimo permitido entre precios. Con tick de $0,05, precios como $10,00, $10,05 y $10,10 son válidos; $10,03 no lo es.
El tick puede variar por rango de precios, instrumento o segmento. Por eso debe tratarse como una regla versionada y efectiva desde una fecha, no como una constante global.
16.11 Precisión decimal
Los números binarios de JavaScript no representan exactamente muchos decimales. Una validación directa con el operador módulo puede fallar por pequeñas diferencias internas.
Una estrategia consiste en expresar precio y tick en unidades enteras mínimas, o comparar contra el múltiplo más cercano utilizando una tolerancia controlada.
precio válido si |precio − múltiplo × tick| < tolerancia
16.12 Cantidad mínima e importe mínimo
Además del lote pueden existir cantidad mínima, importe mínimo y cantidad máxima por orden. Son reglas distintas:
- una orden puede respetar el lote y aun no alcanzar el importe mínimo;
- una cantidad puede superar el mínimo pero no ser múltiplo del lote;
- los límites pueden depender del tipo de participante o sesión;
- una modificación debe volver a validar todas las reglas afectadas.
16.13 Cambios de símbolos y continuidad histórica
Los símbolos pueden cambiar por fusiones, cambios de denominación, migraciones o decisiones del mercado. Sobrescribir el símbolo anterior rompe la trazabilidad de órdenes y precios históricos.
Conviene conservar una relación con fecha de vigencia entre el identificador estable y cada símbolo utilizado.
16.14 Maestro de instrumentos
Un maestro de instrumentos centraliza identidades y atributos compartidos para que órdenes, posiciones, riesgos y reportes utilicen las mismas definiciones.
Debe permitir conocer la fuente, fecha de vigencia y versión de cada atributo. Los datos históricos no deben reinterpretarse automáticamente con reglas actuales.
Buena separación: el maestro describe qué puede negociarse; la cotización dice a qué precio; la orden expresa una intención; la operación confirma una ejecución.
16.15 Laboratorio: validar cantidad y precio
El instrumento ficticio EMPA-A negocia en ARS, con lote de 100 y tick de $0,05. Modificá cantidad y precio para observar validaciones independientes.
Validador de reglas de mercado
El laboratorio informa alternativas cercanas, pero nunca modifica la orden.
- La cantidad contiene lotes completos.
- El precio respeta el incremento mínimo.
La orden respeta las dos reglas del laboratorio.
Modelo parcial: una orden válida para lote y tick todavía puede fallar por horario, saldo, permisos, límites u otras reglas.
16.16 Validar una orden con JavaScript
function validarReglas(cantidad, precio, lote, tick) {
if (![cantidad, lote].every(Number.isInteger) ||
cantidad < 0 || lote <= 0 || precio < 0 || tick <= 0) {
throw new RangeError("Los parámetros no son válidos");
}
const lotesCompletos = Math.floor(cantidad / lote);
const remanente = cantidad % lote;
const pasos = Math.round(precio / tick);
const precioSobreTick = pasos * tick;
const tolerancia = Math.max(1, Math.abs(precio)) * 1e-10;
return {
lotesCompletos,
remanente,
cantidadValida: remanente === 0,
precioValido: Math.abs(precio - precioSobreTick) < tolerancia,
precioSobreTick
};
}
console.log(validarReglas(300, 1200.15, 100, 0.05));
El precio cercano solo sirve para explicar la validación. Cambiarlo requeriría una nueva decisión del usuario.
16.17 Modelar el maestro con JavaScript
const instrumento = {
idInterno: "instrumento-1042",
emisorId: "empresa-a",
claseId: "ordinaria-a",
identificadores: [
{ esquema: "proveedor-x", valor: "ID-8821" }
],
lineas: [
{
mercado: "MERCADO-X",
segmento: "principal",
simbolo: "EMPA-A",
monedaNegociacion: "ARS",
unidadCotizacion: "por-accion",
lote: 100,
tick: 0.05,
vigenteDesde: "2026-01-01"
}
]
};
const linea = instrumento.lineas.find(item =>
item.mercado === "MERCADO-X" && item.simbolo === "EMPA-A"
);
console.log(linea);
16.18 Errores frecuentes
- Usar el ticker como clave global: puede repetirse entre mercados.
- Omitir el esquema del identificador: el código queda ambiguo.
- Confundir moneda del emisor con moneda de negociación: pueden diferir.
- Ignorar la unidad de cotización: produce importes incorrectos.
- Redondear cantidad o precio automáticamente: cambia la intención del usuario.
- Aplicar reglas actuales a datos históricos: lote, tick o símbolo pudieron cambiar.
16.19 Ejercicio propuesto
Un instrumento negocia con lote de 25 unidades y tick de $0,10. Se intenta enviar una orden por 240 unidades a $87,36.
- Calculá los lotes completos y el remanente.
- Determiná si la cantidad es válida para lotes completos.
- Determiná si el precio respeta el tick.
- Indicá cantidades y precios válidos inmediatamente inferiores y superiores.
- Explicá por qué el sistema no debe elegir automáticamente una alternativa.
Ver solución y código
La cantidad contiene 9 lotes completos y un remanente de 15; no es múltiplo de 25. Los valores cercanos son 225 y 250 unidades. $87,36 no respeta el tick; los precios cercanos son $87,30 y $87,40.
const cantidad = 240;
const lote = 25;
const precio = 87.36;
const tick = 0.10;
const lotes = Math.floor(cantidad / lote);
const remanente = cantidad % lote;
const cantidadInferior = lotes * lote;
const cantidadSuperior = (lotes + 1) * lote;
const pasosInferiores = Math.floor((precio + 1e-10) / tick);
const precioInferior = pasosInferiores * tick;
const precioSuperior = (pasosInferiores + 1) * tick;
console.log({
lotes,
remanente,
cantidadInferior,
cantidadSuperior,
precioInferior: precioInferior.toFixed(2),
precioSuperior: precioSuperior.toFixed(2)
});
Subir cantidad o precio aumenta el compromiso; bajarlos reduce la intención original. Ambas decisiones pertenecen al usuario, no al validador.
16.20 Ideas para recordar
- Emisor, instrumento y línea negociable son niveles diferentes.
- Un símbolo solo es único dentro de su ámbito.
- Todo identificador debe acompañarse con su esquema.
- Moneda, unidad y multiplicador determinan el importe.
- Lote y tick validan cantidad y precio por separado.
- Las reglas necesitan fuente, versión y fechas de vigencia.
En el próximo tema estudiaremos ruedas, horarios, subastas y negociación continua.