Saltar al contenido
ALX Quant
← M0.1 · Qué es un mercado y qué hace un quant

Lección 118 min40 XPGratis

Qué es un mercado (y de dónde sale un precio)

Al terminar sabrás

  • Explicar qué es un precio sin usar la palabra "valor"
  • Leer un libro de órdenes simplificado y calcular el spread
  • Entender por qué el precio que ves no es el precio al que operas

Cuando abres un gráfico y ves "ES = 5.412,25", crees que estás viendo el precio del S&P 500. No es verdad. Estás viendo el último acuerdo entre dos desconocidos, y el siguiente acuerdo, el tuyo, será a otro precio. Entender esa diferencia te ahorra el primer error que comete todo el mundo al calcular cuánto gana una estrategia.

El problema

Un mercado no es un sitio donde las cosas "valen" algo. Es un sitio donde gente que quiere comprar y gente que quiere vender dejan escrito a qué precio estarían dispuestos, y cada vez que dos de esos precios se cruzan, hay una operación. El "precio" que sale en las noticias es solo la última de esas operaciones.

Tres capas

Intuición

Piensa en un mercadillo de segunda mano con una sola bici. Hay tres personas que quieren comprarla y cada una ha escrito en un papel lo máximo que pagaría: 99,75, 99,50 y 99,25. Hay otras tres que tienen bicis parecidas y han escrito lo mínimo por lo que la venderían: 100,00, 100,25 y 100,50.

Nadie está de acuerdo, así que no pasa nada. El "precio de la bici" ahora mismo no existe. Existe un hueco entre el comprador más generoso (99,75) y el vendedor más barato (100,00). Ese hueco es el spread.

Entonces llegas tú y dices "quiero una bici ya, al precio que sea". Te llevas la de 100,00. Ahora sí hay un precio: 100,00. Pero si querías dos bicis, la segunda te cuesta 100,25. Tu propia compra ha "subido el precio".

Ejemplo numérico

El mercadillo, en forma de tabla. Esto es un libro de órdenes: a la izquierda los que compran (bids), a la derecha los que venden (asks), ordenados de mejor a peor.

Compradores (bid)Vendedores (ask)
preciocantidadpreciocantidad
99,754100,003
99,5010100,258
99,2525100,5020
  • Mejor bid: 99,75. Mejor ask: 100,00. Spread: 0,25.
  • El "precio medio" (mid) es (99,75 + 100,00) / 2 = 99,875. Nadie ha operado a ese precio; es un invento útil.
  • Si mandas una orden de mercado de compra de 10 contratos: te llevas los 3 de 100,00 y 7 de los 8 de 100,25. Pagas 3 × 100,00 + 7 × 100,25 = 1.001,75. Tu precio medio real: 100,175. El precio que veías era 100,00.
  • El último precio negociado pasa a ser 100,25. En el gráfico parecerá que "el mercado subió". Fuiste tú.

Formal

Un mercado con libro de órdenes (limit order book) es un mecanismo de subasta continua doble. En cada instante tt existen:

  • el mejor precio de compra btb_t (best bid) y su profundidad qtbq^b_t,
  • el mejor precio de venta ata_t (best ask) y su profundidad qtaq^a_t,
  • el spread st=at−bt≥0s_t = a_t - b_t \geq 0, medido normalmente en ticks o en puntos básicos del mid mt=(at+bt)/2m_t = (a_t + b_t)/2.

Una orden límite añade liquidez: se coloca en el libro a un precio y espera. Una orden de mercado consume liquidez: cruza el spread y se ejecuta contra las órdenes límite existentes, escalón a escalón. El precio medio de ejecución de una orden de mercado de tamaño QQ es

pˉ(Q)=1Q∑kqk pkcon ∑kqk=Q,\bar{p}(Q) = \frac{1}{Q}\sum_{k} q_k \, p_k \quad \text{con } \sum_k q_k = Q,

donde pkp_k y qkq_k son los precios y cantidades de cada nivel consumido. La diferencia pˉ(Q)−mt\bar{p}(Q) - m_t es el coste de ejecución de esa orden, y crece con QQ. Ese coste, sumado a la comisión, es lo que un backtest ingenuo ignora.

Matices que exige un profesional: (1) el "último precio" (last) puede estar a un lado u otro del mid según quién agredió; usar last para valorar una posición introduce ruido de spread. (2) La profundidad visible del libro no es toda la liquidez: hay órdenes ocultas y órdenes que se retiran cuando llega la tuya. (3) En futuros, el tick mínimo (0,25 puntos en ES) acota el spread por abajo; en mercados líquidos el spread suele ser exactamente un tick la mayor parte del tiempo.

Ejemplo trabajado con código

# numpy 2.4 · pandas 3.0 — Un libro de órdenes de juguete y cómo nace un precio
import pandas as pd
 
compras = pd.DataFrame({"precio": [99.75, 99.50, 99.25], "cantidad": [4, 10, 25]})   # bids, de mejor a peor
ventas  = pd.DataFrame({"precio": [100.00, 100.25, 100.50], "cantidad": [3, 8, 20]})  # asks, de mejor a peor
 
mejor_bid, mejor_ask = compras.precio.iloc[0], ventas.precio.iloc[0]
print(f"Mejor compra (bid): {mejor_bid:.2f} x {compras.cantidad.iloc[0]}")
print(f"Mejor venta  (ask): {mejor_ask:.2f} x {ventas.cantidad.iloc[0]}")
print(f"Spread: {mejor_ask - mejor_bid:.2f}  |  Precio medio: {(mejor_ask + mejor_bid)/2:.3f}")
 
# Llega una orden de MERCADO de compra de 10 contratos: se come el ask escalón a escalón
pendiente, pagado = 10, 0.0
for precio, cantidad in zip(ventas.precio, ventas.cantidad):
    tomo = min(pendiente, cantidad)
    pagado += tomo * precio
    print(f"  compro {tomo:2d} @ {precio:.2f}")
    pendiente -= tomo
    if pendiente == 0:
        break
print(f"Precio medio de fill: {pagado/10:.3f}  (el 'precio' que veías era {mejor_ask:.2f})")
print(f"Último precio negociado ahora: {precio:.2f}  -> el precio 'ha subido' {precio - mejor_ask:.2f} por tu orden")
Mejor compra (bid): 99.75 x 4
Mejor venta  (ask): 100.00 x 3
Spread: 0.25  |  Precio medio: 99.875
  compro  3 @ 100.00
  compro  7 @ 100.25
Precio medio de fill: 100.175  (el 'precio' que veías era 100.00)
Último precio negociado ahora: 100.25  -> el precio 'ha subido' 0.25 por tu orden

Figura

Libro de órdenes con tres niveles de bid a la izquierda en teal y tres de ask a la derecha en coral, el spread señalado en el centro, y una flecha que muestra una orden de mercado de 10 consumiendo los dos primeros niveles del ask
Lo que hay que ver: el precio no es un número, es un hueco entre dos columnas. Tu orden decide a qué lado del hueco caes y cuántos escalones consumes.

(Figura estática a dibujar en SVG a partir de la tabla de la capa azul; no requiere código.)

El error típico

Calcular el resultado de una estrategia con el precio de cierre de la barra, como si pudieras comprar y vender ahí. En realidad compras al ask y vendes al bid. En un instrumento con spread de 0,25 y 50 $ por punto (ES), cada operación completa (entrar y salir) te cuesta como mínimo 12,50 $ de spread más comisiones, antes de moverse nada. Una estrategia que hace 20 operaciones al día pierde 250 $ diarios solo por existir. La mayoría de "estrategias rentables" de internet mueren aquí.

Quiz

4 preguntas · se aprueba con 60 %

  1. 1.En el libro de la tabla, llega una orden de mercado de VENTA de 12 contratos. ¿A qué precio medio se ejecuta?

  2. 2.¿Qué es el spread?

  3. 3.Mandas una orden de mercado de compra grande y el precio sube. ¿Qué ha pasado?

  4. 4.¿Cuál de estas órdenes añade liquidez al libro?

0 de 4 respondidas

Ejercicio

Abre TradingView (o cualquier plataforma con DOM/libro) sobre el micro E-mini S&P (MES) en horario de sesión americana. Anota el mejor bid, el mejor ask, el spread en ticks y la cantidad en cada uno de los tres primeros niveles. Después calcula a mano, como en la tabla, el precio medio al que se ejecutaría una orden de mercado de compra de 15 contratos. Comprueba que el número es mayor que el mejor ask.

Resultado verificable: tu spread en MES debería ser casi siempre 1 tick (0,25) en sesión; si ves más, estás fuera de horario o en un vencimiento poco líquido. Anota la hora y el vencimiento junto al dato.

Qué te llevas

  1. Un precio es el último acuerdo, no un valor. El siguiente será distinto, y si la orden es tuya, será peor.
  2. El spread es el primer coste de toda estrategia y no aparece en el gráfico de cierres.
  3. Las órdenes de mercado consumen liquidez escalón a escalón; las límite la aportan y esperan.

Siguiente lección: Qué es un retorno (y por qué no es lo que crees). Si tu cuenta sube un 50 % y baja un 50 %, no estás igual. Estás un 25 % abajo.