---
title: "1.2.6 Cripto: spot, perpetuos y funding rate"
description: "Spot, futuros y perpetuos en cripto: cómo funciona el funding, cuánto cuesta un largo apalancado, dónde se liquida y qué riesgo tiene la custodia."
url: "https://pythonparatrading.com/curso-python-trading/nivel-1/cripto-spot-perpetuos-y-funding/"
lang: "es"
image: "https://pythonparatrading.com/og/curso-python-trading/nivel-1/cripto-spot-perpetuos-y-funding.png"
---

# 1.2.6 · Cripto: spot, perpetuos, funding y custodia

> En cripto el producto más negociado no es el spot sino un futuro que nunca vence, sujeto a su precio por un pago cada ocho horas. La lección lo desmonta con dos años de datos horarios de un token ficticio, XSN: la prima del perpetuo, el funding que cobra o paga, el precio de liquidación de un largo apalancado y los riesgos de dejar los fondos en un exchange.

- Curso: [Nivel 1: Datos financieros, mercados y análisis](https://pythonparatrading.com/curso-python-trading/nivel-1/)
- Módulo: 1.2 · Clases de activos
- Duración: 60 min
- Requisitos: [1.1.5 · Costes, liquidación, apalancamiento y margen](https://pythonparatrading.com/curso-python-trading/nivel-1/costes-liquidacion-apalancamiento-y-margen/), [1.2.3 · Futuros: especificaciones, margen, roll y contango](https://pythonparatrading.com/curso-python-trading/nivel-1/futuros-especificaciones-margen-y-roll/)

## Al terminar esta lección

- Distinguir spot, futuro con vencimiento y perpetuo, y el papel del índice compuesto en el funding y en la liquidación.
- Reconstruir con pandas el funding rate de un perpetuo a partir de su prima frente al índice.
- Calcular cuánto funding paga en un año un largo apalancado y en qué precio se liquida una posición con margen aislado.
- Explicar las diferencias de custodia entre un exchange centralizado (CEX) y uno descentralizado (DEX), y qué es y qué riesgos tiene una stablecoin.

## Tres formas de exponerse a un token

En los mercados de cripto conviven tres productos sobre el mismo activo, y los datos de cada uno cuentan cosas
distintas:

| Producto | Qué se compra | Vencimiento | Cómo se ata al spot | Apalancamiento |
|---|---|---|---|---|
| Spot | El token, con entrega | No tiene | Es el spot | No (salvo margen del exchange) |
| Futuro con vencimiento | Un contrato que liquida en una fecha | Trimestral, mensual… | Converge al vencer, como en la lección 1.2.3 | Sí, con margen |
| Perpetuo | Un contrato sin fecha de vencimiento | No tiene | Pagos periódicos de **funding** | Sí, con margen |

El **perpetuo** es el producto característico de cripto. Es un futuro que nunca vence: no hay convergencia al vencer
que lo ate al precio del token, así que la ata otra cosa, un pago periódico entre largos y cortos. Si el perpetuo cotiza
por encima del precio de referencia, los largos pagan a los cortos; si cotiza por debajo, al revés. El pago encarece
la posición del lado que empuja el precio fuera de su sitio y premia al que lo devuelve.

El precio de referencia no es el spot de un exchange concreto, sino un **índice** compuesto de los precios spot de
varios exchanges. Con ese índice se calcula el funding y, sobre todo, se decide cuándo se liquida una posición: si
dependiera del último precio de un solo libro, bastaría barrerlo un instante para liquidar posiciones ajenas.

```mermaid
flowchart TB
  P[Prima positiva] --> F[Funding positivo]
  F --> L[Largos pagan]
  L --> A[Arbitraje]
  A --> V[Vende perpetuo]
  A --> C[Compra spot]
  V --> I[Prima se cierra]
  C --> I
```

El diagrama es el mecanismo de vuelta: cuando la prima sube, un arbitrajista vende el perpetuo y compra el token
(posición sin riesgo de dirección) y cobra el funding. Su venta empuja el perpetuo hacia abajo y su compra el spot
hacia arriba. A esa estrategia se la llama *cash and carry* o *basis trade*.

## Dos años de XSN, hora a hora

Los datos son de **XSN**, un token ficticio, cada hora de 2024 y 2025: el `spot` en un exchange, el `perpetuo` lineal
(liquidado en USD) y el `indice` compuesto que usa el exchange para el funding y la liquidación. Son sintéticos,
con volatilidad de cripto (en torno al 75 % anual), colas gruesas y una caída brusca a principios de octubre de 2025.

```python
import numpy as np
import pandas as pd

xsn = pd.read_parquet("xsn_1h.parquet").set_index("ts")
print(len(xsn), "horas;", xsn.index.min(), "→", xsn.index.max())
horas_por_dia = xsn.groupby(xsn.index.date).size()
print("horas por día:", horas_por_dia.unique())
xsn.head(3)
```
```output
17544 horas; 2024-01-01 00:00:00+00:00 → 2025-12-31 23:00:00+00:00
horas por día: [24]
                              spot  perpetuo   indice
ts
2024-01-01 00:00:00+00:00  24.0855   24.0727  24.0727
2024-01-01 01:00:00+00:00  24.0662   24.0609  24.0635
2024-01-01 02:00:00+00:00  24.0721   24.0629  24.0622
```

24 horas cada uno de los 731 días, fines de semana incluidos: en cripto no hay sesiones, festivos ni subastas, y las
marcas de tiempo vienen en UTC. Lo primero que se pierde al pasar de acciones a cripto es el calendario (lección
1.1.2); lo segundo, la idea de «precio de cierre», que aquí es una convención (a menudo, la vela diaria que empieza a las 00:00 UTC).

Los tres precios casi coinciden. La diferencia relativa entre el perpetuo y el índice es la **prima** del perpetuo;
la del spot de un exchange frente al índice, la **base** de ese exchange. Medidas en puntos básicos (0,01 %):

```python
xsn["prima_pb"] = 1e4 * (xsn["perpetuo"] / xsn["indice"] - 1)
xsn["base_spot_pb"] = 1e4 * (xsn["spot"] / xsn["indice"] - 1)
xsn[["prima_pb", "base_spot_pb"]].describe().round(2)
```
```output
       prima_pb  base_spot_pb
count  17544.00      17544.00
mean       1.01         -0.07
std        5.54          4.00
min      -17.98        -15.62
25%       -2.72         -2.77
50%        0.99         -0.07
75%        4.75          2.57
max       19.64         14.80
```

El spot del exchange se mueve alrededor del índice con media casi nula y una desviación de 4 puntos básicos: lo sigue
de cerca. La prima del perpetuo es positiva de media, un punto básico, y oscila más, con extremos
de unos ±20 puntos básicos. ¿De qué depende? De la presión de los apalancados: cuando el mercado sube, se abren largos
en el perpetuo y su precio se adelanta al spot; cuando cae, al revés.

```python
xsn["ret_30d"] = xsn["indice"].pct_change(30 * 24)
tramo = pd.qcut(xsn["ret_30d"], 5, labels=["caída fuerte", "caída",
                                           "plano", "subida",
                                           "subida fuerte"])
xsn.groupby(tramo, observed=True)["prima_pb"].mean().round(2)
```
```output
ret_30d
caída fuerte    -1.54
caída           -1.19
plano            1.85
subida           2.09
subida fuerte    3.27
Name: prima_pb, dtype: float64
```

En el quinto de horas con la tendencia de 30 días más alcista, la prima media es de 3,27 puntos básicos; en el de la
más bajista, de −1,54. Hora a hora la relación es débil, pero en el horizonte de semanas es clara: el perpetuo
recoge el sentimiento de los apalancados, y el funding se encarga de cobrárselo a quien empuja.

## El funding, pago a pago

El funding de XSN se liquida cada ocho horas, a las 00:00, 08:00 y 16:00 UTC, como en el perpetuo estándar de Binance,
cuya fórmula sigue[^1]. El tipo de cada periodo se calcula con la prima media de las ocho horas anteriores, $P$, más un
término de interés de 0,01 % por periodo recortado a ±0,05 %:

$$
F = P + \operatorname{clamp}(0{,}01\,\% - P,\ -0{,}05\,\%,\ 0{,}05\,\%)
$$

con un tope adicional de ±0,75 % por periodo en estos datos. Si $F$ es positivo, cada largo paga $F$ por el **valor
nocional** de su posición (cantidad por precio del índice) a los cortos; si es negativo, cobra.

[^1]: Binance, «Introduction to Binance Futures Funding Rates»: intervalo por defecto de ocho horas a las 00:00, 08:00
y 16:00 UTC, tipo de interés de 0,01 % por periodo y la fórmula con el `clamp` de ±0,05 % (enlace en los recursos).
Otros exchanges usan intervalos y topes distintos.

```python
funding = pd.read_csv("xsn_funding_8h.csv",
                      parse_dates=["ts"]).set_index("ts")
tasa = funding["tasa_funding"]
print(len(tasa), "periodos de 8 h")
print(f"Exactamente 0,01 %: {(tasa.round(6) == 0.0001).mean():.1%}")
print(f"Negativos (cortos pagan): {(tasa < 0).mean():.1%}")
print(f"Máximo: {tasa.max():.4%}  mínimo: {tasa.min():.4%}")
por_año = tasa.groupby(tasa.index.year).sum()
print("Suma por año:", (100 * por_año).round(2).to_dict())
```
```output
2192 periodos de 8 h
Exactamente 0,01 %: 64.2%
Negativos (cortos pagan): 12.9%
Máximo: 0.1240%  mínimo: -0.1104%
Suma por año: {2024: 11.4, 2025: 10.67}
```

El 64 % de los periodos el funding es exactamente el 0,01 %: mientras la prima media está entre −0,04 % y +0,06 %, el
`clamp` no recorta y $P + (0{,}01\,\% - P)$ es justo 0,01 %. Ese tipo base, tres veces al día, equivale a un 0,03 %
diario y a casi un 11 % al año: es lo que paga un largo en un mercado tranquilo. En los periodos de euforia el
funding se multiplica por más de diez, y en un 13 % de los periodos es negativo y cobran los largos.

La regla se puede comprobar: con la prima horaria se reconstruye cada tipo publicado. Es el tipo de verificación que
conviene hacer con datos reales antes de usarlos en un backtest, porque el instante exacto de cálculo (qué horas entran
en la media) cambia el resultado.

```python
prima = xsn["perpetuo"] / xsn["indice"] - 1
# media de las 8 horas ANTERIORES: [t-8h, t), etiquetada en t
p_media = prima.resample("8h", closed="left", label="left").mean()
p_media.index = p_media.index + pd.Timedelta("8h")
calc = (p_media + (0.0001 - p_media).clip(-0.0005, 0.0005)
        ).clip(-0.0075, 0.0075)
comp = pd.concat([tasa, calc.rename("calculada")], axis=1,
                 join="inner")
dif = (comp["tasa_funding"] - comp["calculada"]).abs()
print(f"{len(comp)} periodos; diferencia máxima: {dif.max():.1e}")
```
```output
2192 periodos; diferencia máxima: 5.0e-07
```

Los 2.192 tipos coinciden con la reconstrucción salvo por el redondeo a seis decimales del fichero. Si se usa la
ventana equivocada (por ejemplo, la media de las ocho horas que **siguen** a la marca de tiempo) la reconstrucción ya
no coincide, y un backtest que usara esa media para anticipar el funding estaría mirando el futuro.

*Fig. — Prima media del perpetuo de XSN frente al índice en cada periodo de 8 horas (arriba) y funding resultante (abajo), de septiembre a noviembre de 2025, en puntos básicos.* Dos paneles con la misma escala de tiempo. Arriba, la prima media oscila entre −10,94 y 14,84 puntos básicos, con dos líneas que marcan la banda de −4 a +6 en la que el funding no se recorta. Abajo, el funding se queda en 1 punto básico casi todo el tiempo y solo se mueve cuando la prima sale de la banda; el mínimo, destacado, es de −5,94 puntos básicos.

La figura muestra la relación en los tres meses alrededor de la caída de octubre de 2025: arriba, la prima media de
cada periodo de ocho horas; abajo, el funding que sale de ella. Las dos líneas de puntos del panel de arriba marcan la banda de −4 a +6
puntos básicos en la que el `clamp` no recorta: mientras la prima media está dentro, el funding queda clavado en 1
punto básico. Cuando sale, el funding la sigue: hasta 9,84 puntos básicos el 11 de septiembre, en plena subida, y
por debajo de cero varias veces desde la caída de octubre, con un mínimo de −5,94 el 24 de octubre.

## Lo que cuesta un largo apalancado

El funding se paga sobre el nocional, no sobre el margen. Con apalancamiento, un tipo que parece pequeño se convierte
en una parte grande del capital puesto. Un largo de 10.000 USD de XSN abierto el primer día de 2025 y mantenido todo el
año, con la misma cantidad de tokens:

```python
t25 = tasa.loc["2025"]
precio_funding = xsn["indice"].reindex(t25.index)
cantidad = 10_000 / xsn["indice"].loc["2025-01-01 00:00"]
pagos = cantidad * precio_funding * t25  # > 0: el largo paga
acumulado = pagos.cumsum()
print(f"Cantidad: {cantidad:.2f} XSN; pagos: {len(pagos)}")
print(f"Funding pagado en 2025: {acumulado.iloc[-1]:,.2f} USD")
for apal in (1, 3, 5, 10):
    margen = 10_000 / apal
    print(f"  {apal:>2}x: margen {margen:>8,.0f} USD, funding = "
          f"{acumulado.iloc[-1] / margen:.1%} del margen")
```
```output
Cantidad: 158.81 XSN; pagos: 1095
Funding pagado en 2025: 1,060.01 USD
   1x: margen   10,000 USD, funding = 10.6% del margen
   3x: margen    3,333 USD, funding = 31.8% del margen
   5x: margen    2,000 USD, funding = 53.0% del margen
  10x: margen    1,000 USD, funding = 106.0% del margen
```

*Fig. — Funding acumulado que paga en 2025 un largo de 10.000 USD de nocional en el perpetuo de XSN con apalancamiento 3x, en porcentaje de su margen (3.333 USD).* Línea del funding acumulado en 2025: apenas se mueve de enero a marzo, con tramos negativos en los que cobra el largo; sube deprisa de abril a septiembre, con el mercado al alza, y se aplana en el último trimestre hasta el 31,8 % del margen el 31 de diciembre, destacado. Una recta discontinua marca lo que se pagaría solo con el tipo base de 0,01 % cada 8 horas, que acaba en un valor parecido.

El funding no se paga a ritmo constante: de enero a marzo, con XSN cayendo de 63 a 39, la cuenta apenas se mueve
e incluso cobra; de abril a septiembre, con XSN al alza, se dispara. Al final del año, el total queda cerca de lo
que habría costado el tipo base solo (la recta discontinua). Sin apalancamiento, el funding de un año cuesta un 10,6 %
de lo invertido: más que un préstamo bancario. Con 3x, un
tercio del margen; con 10x, más del margen entero. Para comparar, comprar el token en spot no paga funding (aunque sí
cuesta la custodia y el capital inmovilizado). Por eso los largos apalancados en perpetuos son una mala forma de
mantener una posición durante meses, y por eso el *cash and carry* (comprar spot y vender perpetuo, cobrando el
funding) es una de las estrategias más populares del sector, con su propio riesgo: la caída del exchange donde está la
pata corta o la liquidación de esa pata en una subida violenta.

<aside class="callout" data-kind="aviso">

En un backtest de perpetuos, ignorar el funding es como ignorar los dividendos y los intereses en acciones: el
resultado de una estrategia de tendencia que mantiene largos en mercados alcistas puede cambiar de signo. La cuenta
correcta usa los tipos publicados en sus horas exactas y el nocional de la posición en cada pago.

</aside>

## Dónde se liquida una posición

Un perpetuo se opera con margen: el exchange exige un **margen inicial** (1/L del nocional con apalancamiento L) y un
**margen de mantenimiento** (un porcentaje menor, $m$). Si las pérdidas dejan el margen por debajo del de
mantenimiento, el motor de riesgo del exchange cierra la posición: la **liquidación**. Con margen aislado (solo responde
el margen de esa posición), sin comisiones ni funding, un largo abierto a $P_0$ se liquida cuando el índice llega a:

$$
P_{liq} = P_0 \left(1 - \frac{1}{L} + m\right)
$$

y un corto, en $P_0 (1 + 1/L - m)$. La fórmula es una simplificación: cada exchange aplica su escala de márgenes por
tamaño de posición, comisiones de liquidación y un fondo de seguro. Pero da el orden de magnitud: con 10x, una caída
de algo menos del 10 % se lleva todo el margen.

```python
def precio_liquidacion(entrada, apal, mant=0.005, lado="largo"):
    """Margen aislado, sin comisiones ni funding."""
    if lado == "largo":
        return entrada * (1 - 1 / apal + mant)
    return entrada * (1 + 1 / apal - mant)

camino = xsn.loc["2025-10-05":"2025-10-15", "indice"]
entrada = camino.iloc[0]
print(f"Entrada: {entrada:.4f} el {camino.index[0]:%Y-%m-%d %H:%M} UTC")
filas = []
for apal in (2, 3, 5, 7, 10, 20):
    p_liq = precio_liquidacion(entrada, apal)
    tocado = camino[camino <= p_liq]
    filas.append({"apal": apal, "p_liq": round(p_liq, 2),
                  "caida_pct": round(100 * (p_liq / entrada - 1), 1),
                  "liquidado": (tocado.index[0].strftime("%m-%d %H:%M")
                                if len(tocado) else "no")})
pd.DataFrame(filas).set_index("apal")
```
```output
Entrada: 85.4608 el 2025-10-05 00:00 UTC
      p_liq  caida_pct    liquidado
apal
2     43.16      -49.5           no
3     57.40      -32.8           no
5     68.80      -19.5           no
7     73.68      -13.8  10-10 22:00
10    77.34       -9.5  10-07 10:00
20    81.62       -4.5  10-05 17:00
```

La figura de la cabecera dibuja el mismo episodio: el índice de XSN del 1 al 15 de octubre de 2025 y el precio de
liquidación de cada apalancamiento para un largo abierto el día 5 a las 00:00. El índice cae casi un 15 % en seis días, hasta 72,86 el
11 de octubre. El largo de 20x dura 17 horas; el de 10x, algo más de dos días; el de 7x, casi seis. Los de 5x, 3x y 2x
sobreviven, y el 13 de octubre el índice ya ha recuperado buena parte de la caída. La lección es la habitual del apalancamiento (lecciones 0.1.2 y
1.1.5), con un matiz propio de cripto: el mercado no cierra nunca, así que la liquidación puede llegar un domingo a las
cuatro de la mañana.

```python
salida = camino.iloc[-1]
for apal in (2, 3, 5):
    margen = 1 / apal  # por unidad de nocional
    pnl = salida / entrada - 1
    print(f"{apal}x: margen {pnl / margen:+.1%} "
          f"(el índice {pnl:+.1%})")
```
```output
2x: margen -14.9% (el índice -7.4%)
3x: margen -22.3% (el índice -7.4%)
5x: margen -37.1% (el índice -7.4%)
```

Las posiciones que sobreviven terminan el periodo con una pérdida que es su apalancamiento multiplicado por la caída
del índice. Y las que se liquidaron no recuperan nada aunque el precio vuelva: la liquidación cristaliza la pérdida en
el peor momento. En un backtest, una estrategia apalancada en cripto tiene que simular la liquidación contra el
índice hora a hora (o minuto a minuto); usar solo cierres diarios esconde los mínimos intradía que liquidan posiciones.

## Futuros con vencimiento y base

Los exchanges de cripto también listan **futuros con vencimiento** (mensuales o trimestrales), que funcionan como los
de la lección 1.2.3: no pagan funding y su precio converge al índice el día del vencimiento. La diferencia con el spot,
la **base**, recoge lo que el mercado espera pagar de funding hasta esa fecha. Anualizada:

$$
\text{base anualizada} = \left(\frac{F}{S}\right)^{365/d} - 1
$$

con $d$ los días hasta el vencimiento. Un futuro trimestral de XSN que descontara el funding medio de 2025 cotizaría
con una base anualizada en torno al 11 %. Comprar spot y vender ese futuro fija la base al abrir la operación, sin
depender de cómo evolucione el funding: es el *cash and carry* con fecha.

```python
funding_anual = t25.mean() * 3 * 365
S0 = xsn.loc["2025-12-31 23:00", "indice"]
d = 90
F_teorico = S0 * (1 + funding_anual) ** (d / 365)
print(f"Funding medio de 2025, anualizado: {funding_anual:.2%}")
print(f"Spot {S0:.2f} → futuro a {d} días {F_teorico:.2f} "
      f"(base {100 * (F_teorico / S0 - 1):.2f} % en el periodo)")
```
```output
Funding medio de 2025, anualizado: 10.67%
Spot 48.26 → futuro a 90 días 49.49 (base 2.53 % en el periodo)
```

## Custodia: CEX, DEX y stablecoins

En acciones, los títulos están en un depositario central y el bróker los registra a nombre del cliente (lección 1.1.1).
En cripto, la custodia depende de dónde se opere:

```mermaid
flowchart TB
  U[Usuario] -- deposita --> X[Exchange CEX]
  X --> CX[Custodia del CEX]
  X --> LI[Libro interno]
  U -- firma --> W[Wallet propia]
  W --> SC[Contrato del DEX]
  SC --> PL[Pool de liquidez]
```

- **Exchange centralizado (CEX).** El usuario deposita sus tokens o dólares y el exchange los custodia en sus propias
  wallets. Las operaciones se cruzan en un libro de órdenes interno, como en una bolsa, y solo se apuntan en su
  contabilidad: no pasan por la cadena. Es rápido y barato, pero el saldo del usuario es un crédito contra el exchange.
  Si el exchange quiebra, sufre un robo o congela las retiradas, el usuario es un acreedor más.
- **Exchange descentralizado (DEX).** El usuario opera desde su propia wallet, firmando cada transacción, contra un
  contrato inteligente. En los más comunes no hay libro, sino un **pool de liquidez** que fija el precio con una
  fórmula. No hay custodio intermediario, pero hay otros riesgos: errores en el contrato, comisiones de la red,
  operaciones de terceros que se adelantan a la propia y, sobre todo, la custodia de las claves: quien las pierde,
  pierde los fondos.

Una **stablecoin** es un token diseñado para mantener un precio fijo frente a una moneda, casi siempre el dólar. Las
más usadas están respaldadas por reservas (efectivo, letras del Tesoro) que custodia su emisor, y son la «moneda» de
casi todos los pares de cripto: XSN/USDT o XSN/USDC, no XSN/USD. Su riesgo es el de su emisor y sus reservas: si el
mercado duda de que pueda reembolsar, la stablecoin cotiza por debajo de 1 (pierde la paridad o *depeg*), y todos los
precios expresados en ella quedan distorsionados.

<aside class="callout" data-kind="nota">

En la UE, el Reglamento de mercados de criptoactivos (MiCA) entró en vigor en junio de 2023 y se aplica plenamente
desde el 30 de diciembre de 2024. Regula a los proveedores de servicios de criptoactivos (CASP) y a los emisores de
stablecoins (fichas referenciadas a activos y fichas de dinero electrónico). Los proveedores que ya operaban con la
ley nacional pueden seguir haciéndolo, según el país, hasta el 1 de julio de 2026 o hasta obtener o ver denegada la
autorización. ESMA publica un registro de proveedores autorizados y otro de entidades que operan sin autorización. El
detalle regulatorio y fiscal está en las lecciones 3.7.5 y 7.4.4.

</aside>

## Datos de cripto: lo que hay que vigilar

- **Cada exchange tiene su precio.** El spot de XSN en un exchange se separa del índice unos puntos básicos de media,
  y en momentos de estrés mucho más. Un backtest con los precios de un exchange y una ejecución en otro mezcla dos
  activos ligeramente distintos.
- **Precio de marca, índice y último precio.** Para el funding y la liquidación cuenta el índice o el precio de marca
  (*mark price*), no el último precio del perpetuo. Muchas APIs devuelven por defecto el último precio.
- **24/7 y UTC.** Velas diarias a las 00:00 UTC, fines de semana con poca liquidez y pagos de funding a horas fijas.
  Un remuestreo con la zona horaria local desplaza todo (lección 0.4.4).
- **Volumen declarado.** Algunos exchanges inflan el volumen con operaciones contra sí mismos. Para comparar liquidez,
  la profundidad del libro y la horquilla dicen más que el volumen (lecciones 1.1.3 y 1.3.5).
- **Símbolos y contratos.** En ccxt, el spot es `XSN/USDT` y el perpetuo lineal `XSN/USDT:USDT`; un perpetuo inverso
  (liquidado en el propio token) tiene otra fórmula de P&L. Hay que saber cuál se descarga.

Con ccxt, la misma API sirve para casi cualquier exchange. Este código descarga velas y el histórico de funding de un
perpetuo real; no se ejecuta aquí porque necesita red (la descarga con paginación y reintentos es la lección 1.4.1):

```python skip
import ccxt

ex = ccxt.binanceusdm()          # futuros de margen en USDT
simbolo = "BTC/USDT:USDT"        # perpetuo lineal
velas = ex.fetch_ohlcv(simbolo, timeframe="1h", limit=500)
historial = ex.fetch_funding_rate_history(simbolo, limit=500)
funding_real = pd.DataFrame(historial)[["datetime",
                                        "fundingRate"]]
```

`fetch_ohlcv` devuelve una lista de velas `[ms, apertura, máximo, mínimo, cierre, volumen]` (el mismo formato que
`xsn_ccxt_ohlcv.json`, el ejemplo de los datos del nivel) y `fetch_funding_rate_history`, una lista de diccionarios con
la marca de tiempo y el tipo de cada periodo.

## Ejercicios

1. Calcula el resultado de un *cash and carry* con XSN en 2025: comprar 10.000 USD de spot el 1 de enero y vender la
   misma cantidad de tokens en el perpetuo, cobrando el funding. ¿Cuánto gana la posición por funding y cuánto por
   precio? (Ignora comisiones y supón que las dos patas se cierran el 31 de diciembre a las 23:00.)

**Solución.**

```python
ini, fin = "2025-01-01 00:00", "2025-12-31 23:00"
spot_pnl = cantidad * (xsn.loc[fin, "spot"] - xsn.loc[ini, "spot"])
perp_pnl = -cantidad * (xsn.loc[fin, "perpetuo"]
                        - xsn.loc[ini, "perpetuo"])
cobrado = pagos.sum()  # el corto cobra lo que pagan los largos
print(f"Precio, spot: {spot_pnl:+,.2f}  perpetuo: {perp_pnl:+,.2f}")
print(f"Funding cobrado: {cobrado:+,.2f} USD")
total = spot_pnl + perp_pnl + cobrado
print(f"Total: {total:+,.2f} USD ({total / 10_000:+.2%})")
```
```output
Precio, spot: -2,333.66  perpetuo: +2,337.33
Funding cobrado: +1,060.01 USD
Total: +1,063.68 USD (+10.64%)
```

Las dos patas de precio casi se anulan: −2.333,66 USD en el spot y +2.337,33 en el perpetuo, un neto de 3,67 USD que
sale de la pequeña diferencia entre los dos precios al abrir y al cerrar. Del resultado, +1.063,68 USD (un 10,64 %),
casi todo es funding cobrado. Es un rendimiento sin
riesgo de dirección, pero no sin riesgo: el capital está en un exchange (riesgo de contraparte) y la pata corta puede
liquidarse en una subida brusca si no se mantiene margen suficiente.

2. Repite la tabla de liquidaciones para **cortos** abiertos a las 00:00 del 11 de octubre de 2025, cerca del mínimo
   de la caída, y comprueba cuáles se liquidan antes del 15 de octubre.

**Solución.**

```python
tramo = xsn.loc["2025-10-11":"2025-10-15", "indice"]
p0 = tramo.iloc[0]
print(f"Entrada del corto: {p0:.4f}")
for apal in (3, 5, 10, 20):
    p_liq = precio_liquidacion(p0, apal, lado="corto")
    toca = tramo[tramo >= p_liq]
    cuando = (toca.index[0].strftime("%m-%d %H:%M") if len(toca)
              else "no")
    print(f"{apal:>2}x: liquidación en {p_liq:.2f} → {cuando}")
```
```output
Entrada del corto: 72.8819
 3x: liquidación en 96.81 → no
 5x: liquidación en 87.09 → 10-13 12:00
10x: liquidación en 79.81 → 10-12 02:00
20x: liquidación en 76.16 → 10-11 16:00
```

Un corto abierto tras la caída sufre el rebote: el índice sube desde 72,88 hasta por encima de 87 en poco más de dos días, y los
cortos de 5x o más se liquidan en la subida; el de 20x, a las 16 horas de abrirse. El riesgo de liquidación es simétrico: la volatilidad de cripto castiga
el apalancamiento en las dos direcciones.

3. Un amigo guarda sus stablecoins en un CEX porque «una stablecoin no puede bajar». Enumera los riesgos que asume.

**Solución.**

Dos capas de riesgo. La de la stablecoin: su precio depende de que el emisor tenga reservas suficientes y líquidas y
pueda reembolsarlas; si el mercado lo duda, pierde la paridad, y en la UE conviene comprobar si el emisor está
autorizado con MiCA. La del exchange: el saldo es un crédito contra el CEX, que puede quebrar, sufrir un robo o
congelar las retiradas; y si el exchange no está autorizado para operar en su país, la protección es menor. Repartir
entre emisores y exchanges, o custodiar en una wallet propia (con el riesgo de perder las claves), reduce el riesgo,
pero no lo elimina.

## Autoevaluación

1. El funding rate de un perpetuo es +0,03 % en un periodo de ocho horas. ¿Qué ocurre al liquidarse?

   - A. Los cortos pagan a los largos el 0,03 % de su posición
   - B. Los largos pagan a los cortos el 0,03 % del valor nocional de su posición
   - C. El exchange cobra un 0,03 % a todos
   - D. Nada: el funding solo se aplica al cerrar la posición

   *Respuesta B: Los largos pagan a los cortos el 0,03 % del valor nocional de su posición.* Funding positivo significa que el perpetuo cotiza por encima del índice y los largos pagan a los cortos, en proporción al valor nocional de la posición, no al margen. El pago va de una parte a la otra; el exchange solo lo intermedia.

2. ¿Por qué el funding de XSN es exactamente 0,01 % en el 64 % de los periodos?

   - A. Porque la regla suma a la prima un término `clamp(0,01 % − P, ±0,05 %)`: mientras la prima media esté entre −0,04 % y +0,06 %, el resultado es justo 0,01 %
   - B. Porque el exchange lo fija a mano
   - C. Porque la prima del perpetuo es siempre 0,01 %
   - D. Por casualidad

   *Respuesta A: Porque la regla suma a la prima un término `clamp(0,01 % − P, ±0,05 %)`: mientras la prima media esté entre −0,04 % y +0,06 %, el resultado es justo 0,01 %.* Con `P` entre −0,04 % y +0,06 %, el término `clamp(0,01 % − P, …)` vale `0,01 % − P` sin recortar, y `P + (0,01 % − P) = 0,01 %`. Solo cuando la prima sale de esa banda el funding se separa del tipo base.

3. Un largo de 10x en un perpetuo, con margen aislado y un margen de mantenimiento del 0,5 %, entra a 100. ¿Dónde se liquida, aproximadamente?

   - A. En 90
   - B. En 99,5
   - C. En 90,5
   - D. En 50

   *Respuesta C: En 90,5.* La liquidación llega cuando la pérdida deja el margen en el de mantenimiento: `100 × (1 − 1/10 + 0,005) = 90,5`. Una caída del 9,5 % se lleva el margen de una posición de 10x; con comisiones y el fondo de seguro, algo antes.

4. ¿Qué diferencia de custodia hay entre un CEX y un DEX?

   - A. Ninguna: en los dos el usuario controla sus claves
   - B. En un DEX el exchange custodia los fondos en una cámara
   - C. En un CEX las operaciones se liquidan en la cadena una a una
   - D. En un CEX el exchange custodia los fondos y el usuario tiene un saldo frente a él; en un DEX el usuario opera desde su propia wallet contra un contrato inteligente

   *Respuesta D: En un CEX el exchange custodia los fondos y el usuario tiene un saldo frente a él; en un DEX el usuario opera desde su propia wallet contra un contrato inteligente.* Depositar en un CEX es prestar los activos al exchange: lo que el usuario ve es un apunte en su contabilidad interna. Si el exchange quiebra o congela las retiradas, ese saldo es un crédito contra él. En un DEX no hay intermediario custodio, pero el riesgo pasa al contrato y a la gestión de las propias claves.

5. ¿Por qué el índice que usa un exchange para el funding y la liquidación es un precio compuesto de varios mercados?

   - A. Para que sea más volátil
   - B. Para que una operación aislada o un libro poco profundo en un solo mercado no dispare liquidaciones ni funding extremos
   - C. Porque así lo exige MiCA
   - D. Porque el spot no existe en cripto

   *Respuesta B: Para que una operación aislada o un libro poco profundo en un solo mercado no dispare liquidaciones ni funding extremos.* Si la liquidación dependiera del último precio del propio perpetuo, bastaría con barrer su libro un instante para liquidar posiciones ajenas. Un índice de varios exchanges es más difícil de mover. Por eso, al hacer un backtest, la liquidación se comprueba contra el índice (o el precio de marca), no contra el último precio.

## Ideas clave

- Spot es comprar el token; un futuro con vencimiento converge al spot en una fecha; un perpetuo no vence y se mantiene cerca del índice con pagos periódicos de funding.
- Funding positivo: el perpetuo cotiza con prima y los largos pagan a los cortos. Se calcula sobre el nocional, así que con apalancamiento pesa mucho sobre el margen.
- En XSN, el funding de 2025 suma un 10,7 % del nocional: un largo de 3x mantenido todo el año paga en funding cerca de un tercio de su margen.
- Con margen aislado, un largo de L veces se liquida tras una caída de algo menos de 1/L. En la caída de octubre de 2025, los largos de 7x a 20x abiertos el día 5 quedaron liquidados; los de 5x y menos, no.
- En un CEX el exchange custodia los fondos; en un DEX los custodia el usuario y el riesgo pasa al contrato inteligente y a sus claves. Una stablecoin solo vale lo que valgan sus reservas y su emisor.
- Los datos cripto son 24/7 y en UTC, cada exchange tiene su propio precio y el volumen declarado no siempre es fiable: el índice y la fuente importan.

## Recursos

### Research

- [Procesos Estocásticos - Paseos Aleatorios](https://pythonparatrading.com/procesos-estocasticos/) · Research-0005 · 12 min

### Documentación

- [Binance: introducción al funding rate de los futuros perpetuos (fórmula, horarios y tipo base)](https://www.binance.com/en/support/faq/introduction-to-binance-futures-funding-rates-360033525031) · binance.com
- [ESMA: Reglamento de mercados de criptoactivos (MiCA), medidas de desarrollo y registro](https://www.esma.europa.eu/esmas-activities/digital-finance-and-innovation/markets-crypto-assets-regulation-mica) · esma.europa.eu
- [ccxt: manual de la API unificada de exchanges de cripto](https://docs.ccxt.com/) · docs.ccxt.com

### Datos

- [Datos del nivel 1: XSN por horas, 2024-2025 (Parquet)](https://pythonparatrading.com/curso/datos/nivel-1/xsn_1h.parquet) · Descarga · xsn_1h.parquet
- [Datos del nivel 1: funding de XSN cada 8 horas (CSV)](https://pythonparatrading.com/curso/datos/nivel-1/xsn_funding_8h.csv) · Descarga · xsn_funding_8h.csv

Lección anterior: [1.2.5 · Opciones: call, put, valor intrínseco y valor temporal](https://pythonparatrading.com/curso-python-trading/nivel-1/opciones-call-put-y-valor-temporal/)

Lección siguiente: [1.2.7 · Renta fija y tipos de interés; CFDs y productos apalancados](https://pythonparatrading.com/curso-python-trading/nivel-1/renta-fija-tipos-y-productos-apalancados/)
