Cada semana, la Comisión de Comercio de Futuros de Productos Básicos de EE.UU. publica una instantánea de cómo los participantes más grandes del mercado del mundo se posicionan en los mercados de futuros de divisas. ¿Quién es? está sosteniendo qué y en qué dirección antes de que llegue el próximo gran movimiento.
Para los operadores de divisas, los datos de COT no son una bola de cristal. Es un mapa de posicionamiento. Y los mapas de posicionar, leídos correctamente, revelan las condiciones que a menudo preceden a las reversiones bruscas, tendencias sostenidas y los momentos en que el consenso se convierte en su propio riesgo.
Lo que aprenderá
- Qué es el informe de la CFTC COT, cómo está estructurado, y qué números importan
- Cómo interpretar el posicionamiento neto no comercial como indicador de sentimiento
- Por qué el posicionamiento extremo señala puntos de inflexión potenciales en los pares de divisas
- Cómo acceder y analizar los datos de COT a través de la API FXMacroData
- Marco práctico para combinar señales de COT con los fundamentos macro
La anatomía de un informe de la COT
La CFTC recopila datos de posiciones de los mercados de futuros, los agrega y publica tres versiones principales del informe COT. El informe de la COT anterior (sólo futuros), que divide las posiciones en tres grupos:
- Comercio de productos empresas, importadores, exportadores y multinacionales que utilizan futuros de divisas principalmente para la cobertura. Sus posiciones reflejan la gestión del riesgo de divisa a nivel empresarial en lugar de puntos de vista especulativos sobre la dirección.
- Los operadores no comerciales (grandes especuladores) fondos de cobertura, gestores de activos y CTA que negocian futuros de divisas para obtener ganancias especulativas. Este es el grupo que los operadores de divis as observan más de cerca. Los no comerciales se posicionan con convicción basados en puntos de vista macro, señales de tendencia y diferencias de tasa. Cuando son agresivamente largos o cortos de una moneda, es porque tienen una tesis y cuando esa tesis se vuelve abarrotada, el riesgo de reversión crece.
- Posiciones no sujetas a información (pequeños especuladores) los operadores minoristas y los pequeños participantes cuyas posiciones caen por debajo del umbral de información de la CFTC.
Concepto clave: Posición neta no comercial
Posición neta no comercial = Contratos largos no comerciales − Contratos cortos no comerciales. Esta cifra es la que la mayoría de los operadores de divisas rastrean semana tras semana. Un aumento del largo neto en los futuros del EUR significa que los grandes especuladores están aumentando su exposición alcista al euro. Un corto neto sostenido en los futures del JPY significa que la comunidad de fondos de cobertura tiene una visión bajista estructural sobre el yen.
Por qué los datos de COT son importantes para los operadores de divisas
Los mercados de divisas son los mercados más grandes y más líquidos del mundo, pero no son transparentes. No puedes ver quién está comprando EUR/USD a 1.1050 o a corto plazo JPY futuros en Asia durante la noche. El informe COT es una de las pocas fuentes que te da una lectura semanal sobre la convicción direccional agregada y que lo hace de manera única valioso para tres tipos específicos de análisis.
1. Identificar las empresas concurridas
Cuando el posicionamiento no comercial en una moneda alcanza niveles extremos en relación con su rango histórico, el comercio está lleno. Los intercambios llenos no son inherentemente incorrectos a menudo son el resultado de una tesis macro bien razonada. Pero conllevan un riesgo asimétrico: cuanto más lleno es un comercio, más violento es el movimiento cuando los participantes necesitan salir simultáneamente.
El ejemplo canónico es el comercio corto del JPY. A lo largo de gran parte de 2022 y 2023, el posicionamiento corto no comercial en futuros del JP Y alcanzó extremos de varias décadas, lo que refleja el amplio y persistente diferencial de tasas entre el Banco de Japón y todos los demás bancos centrales importantes. El yen se debilitó ampliamente. Pero cada sorpresa de la política del Banco de Japon y hubo varios provocaron rápidos y rápidos altibajos de cobertura corta en el JPY que atraparon a los titulares de posiciones cortas abarrotadas en un aprieto. La tesis fundamental fue correcta durante gran parte del período, sin embargo, la posición era periódicamente peligrosa de mantener debido a lo abarrutada que se había vuelto.
FXMacroData presenta posicionamiento COT para ocho futuros de divisas principales AUD, CAD, CHF, EUR, GBP, JPY, NZD y USD , lo que facilita el seguimiento de qué operaciones se están construyendo hacia extremos históricos.
curl "https://fxmacrodata.com/api/v1/cot/jpy?api_key=YOUR_API_KEY&start=2022-01-01"
{
"data": [
{
"date": "2024-04-02",
"noncommercial_long": 28341,
"noncommercial_short": 198076,
"noncommercial_net": -169735,
"commercial_long": 213540,
"commercial_short": 47832,
"open_interest": 287450
}
]
}
Una posición neta no comercial de −169.735 contratos en JPY es grande por cualquier medida histórica. Trazar esta serie a lo largo del tiempo revela inmediatamente qué tan lejos se encuentra el posicionamiento actual en relación con los extremos pasados y si la multitud tiene espacio para extenderse aún más o se está acercando a una zona de riesgo de reversión estructural.
2. Seguimiento de la tendencia de confirmación y deterioro
Los datos de COT no son una herramienta de tiempo un comercio lleno de gente puede permanecer lleno durante meses antes de revertir. Pero es un excelente identificador de régimen. Cuando el posicionamiento no comercial está tendencia consistentemente en una dirección, confirma que el dinero macro está alineado detrás de una tendencia. Cuando esa tendencia comienza a estabilizarse o revertirse incluso mientras el precio continúa en la misma dirección, a menudo es una alerta temprana de la disminución de la convicción.
La diferencia entre precio y posicionamiento es una de las señales más fiables basadas en el COT en divisas. Si el EUR/USD está subiendo pero los compros netos no comerciales en futuros de EUR se reducen semana tras semana, los grandes especuladores están reduciendo la exposición a fuerza y ese patrón de distribución a menudo precede a un máximo.
Marco de señales: precio frente a la divergencia de posicionamiento
- Divergencia alcista: El precio cae, pero los compras largas netas no comerciales se mantienen estables o aumentan la presión de venta se ve afectada por una nueva convicción de compras.
- Divergencia bajista: El precio sube, pero los compras netas no comerciales se contraen los especuladores se están distribuyendo en fuerza.
- Confirmación de tendencia: Tanto el precio como el posicionamiento neto se mueven en la misma dirección el camino de menor resistencia está claro.
3. Anclaje de las Macro Vistas con el Posicionamiento del Mercado
Los datos de COT se vuelven más poderosos cuando se combinan con los fundamentales macro. Un diferencial de tasa puede favorecer fuertemente a una moneda pero si esa tesis ya está valorada en una posición larga neta extrema, el aumento incremental puede ser limitado. Por el contrario, una negociación de divisas contra los fundamentale macro con una posición corta muy concurrida es una configuración que vale la pena observar de cerca: cualquier sorpresa fundamental que desafíe la tesis de los bajistas forzará la cobertura corta a escala.
Imagínese ver el CHF. Las decisiones de política del Banco Nacional Suizo se hacen en el Punto de referencia de las tasas de interés de las divisasSi los datos macro muestran un aumento del diferencial de tasas CHF-positivo, pero el posicionamiento no comercial de CHF en futuros sigue siendo muy corto, el contexto de posicionamientos es constructivo para un repunte cuando el caso fundamental finalmente se vuelve innegable.
Lectura del informe COT: métricas clave para el seguimiento
Los números de contratos en bruto son informativos, pero las siguientes métricas derivadas agudizan la señal considerablemente.
Posición neta en porcentaje de intereses abiertos
La normalización de las posiciones netas no comerciales frente al interés abierto total da una medida estandarizada de la inclinación direccional. Un largo neto de 50.000 contratos significa algo muy diferente en una moneda con 100.000 contratos de interés abiertos frente a uno con 500.000. Dividir la posición neta por interés abierta produce una relación entre -1 y +1 que es directamente comparable entre monedas y en el tiempo.
import requests
BASE = "https://fxmacrodata.com/api/v1"
KEY = "YOUR_API_KEY"
def cot_series(currency: str, start: str = "2020-01-01") -> list[dict]:
r = requests.get(
f"{BASE}/cot/{currency}",
params={"api_key": KEY, "start": start}
)
r.raise_for_status()
return r.json()["data"]
def net_oi_ratio(record: dict) -> float:
"""Net non-commercial position as fraction of open interest."""
if record.get("open_interest", 0) == 0:
return 0.0
return record["noncommercial_net"] / record["open_interest"]
eur_cot = cot_series("eur")
ratios = [(r["date"], net_oi_ratio(r)) for r in eur_cot]
print(ratios[-5:]) # most recent five weeks
Puntuación Z de la posición de la red
El z-score mide cuántas desviaciones estándar se sitúa el posicionamiento actual de su media histórica. Un z-scor por encima de +2 o por debajo de -2 señala condiciones estadísticamente extremas.
import statistics
def rolling_zscore(series: list[dict], window: int = 52) -> list[dict]:
"""Compute z-score of net non-commercial positioning on a rolling window."""
results = []
values = [r["noncommercial_net"] for r in series]
for i, record in enumerate(series):
start_i = max(0, i - window + 1)
window_vals = values[start_i : i + 1]
if len(window_vals) < 4:
results.append({**record, "zscore": None})
continue
mu = statistics.mean(window_vals)
sig = statistics.stdev(window_vals)
z = (record["noncommercial_net"] - mu) / sig if sig > 0 else 0.0
results.append({**record, "zscore": round(z, 2)})
return results
gbp_cot = cot_series("gbp", start="2018-01-01")
gbp_scored = rolling_zscore(gbp_cot)
extremes = [r for r in gbp_scored if r["zscore"] is not None and abs(r["zscore"]) > 2.0]
print(f"Extreme positioning weeks in GBP: {len(extremes)}")
Cambio semanal de la posición neta
La velocidad de cambio de posicionamiento es a menudo tan importante como el nivel absoluto. Una moneda que se mueve de +20.000 longs netos a +80.000 longs nets en cuatro semanas indica una aceleración de la convicción. Una divisa que se invierte de +120.000 a +60.000 en el mismo período indica una distribución activa incluso si el posicionamento neto sigue siendo cómodo positivo.
Acceso a los datos de COT a través de FXMacroData
FXMacroData proporciona datos semanales de COT de CFTC para los ocho principales contratos de futuros de divisas a través de un punto final REST limpio.
Monedas admitidas: Las operaciones de las entidades de crédito se considerarán financiadas por el Banco Central Europeo.- ¿ Qué ?
# EUR net positioning since 2023
curl "https://fxmacrodata.com/api/v1/cot/eur?api_key=YOUR_API_KEY&start=2023-01-01"
# GBP full history
curl "https://fxmacrodata.com/api/v1/cot/gbp?api_key=YOUR_API_KEY"
# AUD recent 12 months
curl "https://fxmacrodata.com/api/v1/cot/aud?api_key=YOUR_API_KEY&start=2024-01-01"
La respuesta se ordena por fecha con los datos más recientes primero y utiliza nombres de campos consistentes en todas las monedas, por lo que un solo script de análisis funciona en los ocho pares sin modificaciones.
Long no comercial
Los contratos de los fondos de cobertura y los CTA aumentan semana tras semana.
Corto no comercial
Los contratos especulativos bajistas. Aumento semana tras semana: los bajistas están aumentando. Niveles extremos: riesgo de recorte.
Red no comercial
Longs menos shorts. El número de titular. Por encima de cero: la comunidad especulativa es alcista neta. Seguimiento de tendencia y puntuación z.
Interés abierto
El aumento del interés abierto junto con un aumento del largo neto confirma una fuerte participación en la tendencia.
Escaneo práctico de COT en varias monedas
Una de las aplicaciones más útiles de los datos de COT es un escaneo semanal de divisas cruzadas que clasifica todas las principales monedas por su posicionamiento con puntuación z. Esto inmediatamente muestra qué monedas son más extendidas largas, cuáles son más cortas y cuálas están cerca de la posición neutral y proporciona una base para identificar pares donde el posicionamento de un lado está en un extremo relativo al otro.
import requests, statistics
from datetime import datetime, timedelta
BASE = "https://fxmacrodata.com/api/v1"
KEY = "YOUR_API_KEY"
CURRENCIES = ["aud", "cad", "chf", "eur", "gbp", "jpy", "nzd"]
def cot_series(ccy: str) -> list[dict]:
r = requests.get(f"{BASE}/cot/{ccy}", params={"api_key": KEY, "start": "2019-01-01"})
r.raise_for_status()
return r.json()["data"]
def zscore_latest(records: list[dict], window: int = 52) -> dict:
vals = [r["noncommercial_net"] for r in records]
latest = vals[0]
sample = vals[:window]
mu = statistics.mean(sample)
sig = statistics.stdev(sample) if len(sample) > 1 else 1.0
z = (latest - mu) / sig if sig > 0 else 0.0
return {
"net" : latest,
"zscore" : round(z, 2),
"oi_ratio" : round(latest / records[0]["open_interest"], 3) if records[0].get("open_interest") else None,
"date" : records[0]["date"],
}
results = {}
for ccy in CURRENCIES:
data = cot_series(ccy)
results[ccy.upper()] = zscore_latest(data)
# Rank by z-score
ranked = sorted(results.items(), key=lambda x: x[1]["zscore"], reverse=True)
print(f"{'CCY':<6} {'Net':>12} {'Z-Score':>9} {'OI Ratio':>10} {'Date'}")
print("-" * 56)
for ccy, r in ranked:
flag = " ← EXTREME" if abs(r["zscore"]) > 2.0 else ""
print(f"{ccy:<6} {r['net']:>12,} {r['zscore']:>9.2f} {str(r['oi_ratio']):>10} {r['date']}{flag}")
La salida da una instantánea como la siguiente (valores ilustrativos):
CCY Net Z-Score OI Ratio Date
--------------------------------------------------------
EUR +94,320 +2.31 +0.31 2024-04-02 ← EXTREME
GBP +38,150 +1.45 +0.22 2024-04-02
AUD -4,200 -0.18 -0.03 2024-04-02
NZD -8,900 -0.62 -0.15 2024-04-02
CAD -21,300 -1.08 -0.18 2024-04-02
CHF -44,100 -1.95 -0.38 2024-04-02
JPY -172,400 -2.64 -0.60 2024-04-02 ← EXTREME
Cuando el EUR está en un extremo largo de 2 desviaciones estándar y el JPY está en extremo corto de 2 de desviación estándar, el par EUR/JPY se posiciona con la multitud firmemente a un lado.
Combinar el COT con los fundamentos macro
Los datos de COT responden a la pregunta: ¿Quién está posicionado, y con qué agresividad? Los datos fundamentales macro responden a la pregunta: ¿Cuánto debería valer la moneda basándose en las tasas, la inflación y el crecimiento? Los marcos de cambio más poderosos utilizan ambos.
Un modelo simple de cuatro cuadrantes estructura la interacción claramente:
| Escenario | Señales de macro | Posicionamiento del COT | Implicación |
|---|---|---|---|
| Convicción fuerte durante mucho tiempo | Alza (aumento de las tasas, datos sólidos) | No está lleno todavía; puntuación z < +1 | Tendencia probablemente tiene espacio para extenderse. |
| Largo en etapa tardía | Alza pero desacelera | Con frecuencia de trabajo; puntuación z > +2 | Tendencia intacta pero frágil, reducción del tamaño de la posición, paradas más fuertes. |
| Configuración de la inversión | El cambio hacia el bajista (corte sorpresa, datos débiles) | Extremo largo; puntuación z > +2,5 | La venta de fuerza amplifica el movimiento, mejor entrada corta asimétrica. |
| Acumulación sigilosa | Consenso bajista | Extremadamente corto; puntuación z < −2 | Cualquier sorpresa positiva desencadena un repunte de compresión corta. |
Para poner en funcionamiento la columna macro, extraer el historial de tipos de interés de los bancos centrales correspondientes junto con los datos de COT. Tasa de interés de la RBA ¿ Qué ? Inflación australiana La posición de los mercados de divisas, junto con el posicionamiento del AUD COT, da una imagen completa de si la comunidad de especuladores está alineada con la historia macro o por delante.
Limitaciones a tener en cuenta
Los datos de la COT son poderosos pero no infalibles.
- El retraso de publicación. La CFTC mide las posiciones a partir del cierre del martes y las publica el viernes. Para cuando los datos son públicos, han ocurrido tres o cuatro días de negociación.
- Los futuros ≠ el tipo de cambio al contado. El flujo de divisas institucional se produce principalmente en los mercados spot y a plazo OTC, que son mucho más grandes y no están regulados.
- Los comercios llenos pueden permanecer llenos. Un puntaje z por encima de +2 identifica la extrema estadística, no una reversión inminente. El comercio corto del JPY se mantuvo extremo durante varios trimestres ya que el Banco de Japón mantuvo su marco de política ultra flexible.
- Los anuncios no son contrarios infalibles. Los hedgers aumentan las posiciones cortas cuando tienen créditos a proteger no necesariamente porque piensen que la moneda caerá.
- El interés abierto puede distorsionar el conteo de contratos. Un gran aumento en el interés abierto junto con una posición neta en alza puede indicar la entrada de nuevo dinero, mientras que un interés abierta estable o decreciente junto con un aumento neto puede simplemente reflejar la cobertura del lado corto.
Construir un tablero de control semanal de COT
Con la API FXMacroData, construir un panel de control de monitoreo personal de COT es un proyecto de fin de semana.
- Obtener los últimos 52 días de datos de COT para los siete futuros de divisas del G10
- Calcular los puntajes z de posicionamiento neto en una ventana de 52 semanas
- Clasificar las monedas desde el más largo extremo al más corto extremo
- Identificar los pares en los que existan extremos opuestos (por ejemplo, EUR extremo largo + JPY extremo corto → EUR/JPY en foco)
- Extraer el contexto macro diferenciales de tasas de interés de las puntos finales de las tasas pertinentes determinar si el posicionamiento está alineado o se desvía del contexto fundamental
- Marcar todas las semanas en las que el posicionamiento se mueva en más de una desviación estándar el reposicionamiento rápido es una señal en sí misma
El FXMacroData Página del panel de control de COT Para uso cuantitativo o programático, el punto final de la API devuelve los datos subyacentes en una forma que se alimenta directamente en Python, R o cualquier entorno analítico.
Referencia rápida: Puntos finales de la API de COT
- En euros:
https://fxmacrodata.com/api/v1/cot/eur?api_key=YOUR_API_KEY - GBP:
https://fxmacrodata.com/api/v1/cot/gbp?api_key=YOUR_API_KEY - ¿ Qué es eso ?
https://fxmacrodata.com/api/v1/cot/jpy?api_key=YOUR_API_KEY - ¿ Qué es eso ?
https://fxmacrodata.com/api/v1/cot/aud?api_key=YOUR_API_KEY - ¿ Qué es eso ?
https://fxmacrodata.com/api/v1/cot/cad?api_key=YOUR_API_KEY - ¿ Qué pasa ?
https://fxmacrodata.com/api/v1/cot/chf?api_key=YOUR_API_KEY - ¿ Qué es ?
https://fxmacrodata.com/api/v1/cot/nzd?api_key=YOUR_API_KEY
El resultado final
Los informes de COT dan a los operadores de divisas una ventana que casi nada más proporciona: una medida semanal y auditada de cómo las cuentas especulativas más grandes del mundo se posicionan en futuros de divis as. Usada de forma aislada, esa información es sugerente pero incompleta. Combinada con los fundamentos macro tasas de política del banco central, lecturas de inflación y sorpresas económicas surgidas a través de la API FXMacroData se convierte en una auténtica ventaja analítica.
Los intercambios de divisas más peligrosos no son los que tienen el caso fundamental equivocado, sino los que están en lo correcto, pero el comercio está tan lleno que una sola sorpresa de datos desencadena una cascada de salidas forzadas.
Seguir el posicionamiento junto al calendario macro, saber cuándo la multitud está estirada y cuando los fundamentos cambian, saber en qué dirección apuntan las salidas.