Every week, the US Commodity Futures Trading Commission publishes a snapshot of how the world's largest market participants are positioned in currency futures markets. Released every Friday at 3:30 pm Eastern Time and covering data through the prior Tuesday, the Commitments of Traders (COT) report is one of the few windows into Siapa? memegang apa dan ke arah mana sebelum langkah besar berikutnya tiba.
Untuk pedagang FX, data COT bukan bola kristal. Ini adalah peta posisi. Dan peta posisi, dibaca dengan benar, mengungkapkan kondisi yang sering mendahului pembalikan tajam, tren berkelanjutan, dan saat-saat ketika konsensus menjadi risikonya sendiri.
Apa yang Akan Anda Pelajari
- Apa laporan CFTC COT, bagaimana strukturnya, dan angka apa yang penting
- Bagaimana menafsirkan posisi nonkomersial bersih sebagai indikator sentimen
- Mengapa posisi ekstrim menandakan titik balik potensial dalam pasangan FX
- Bagaimana mengakses dan menganalisis data COT melalui FXMacroData API
- Kerangka kerja praktis untuk menggabungkan sinyal COT dengan fundamental makro
Anatomi Laporan COT
CFTC mengumpulkan data posisi dari bursa berjangka, mengagregasinya dan menerbitkan tiga versi utama laporan COT. Laporan COT lama (Hanya untuk Futur), yang memecah posisi menjadi tiga kelompok:
- Pedagang komersial perusahaan, importir, eksportir, dan perusahaan multinasional yang menggunakan futures mata uang terutama untuk lindung nilai. Posisi mereka mencerminkan manajemen risiko mata uang tingkat bisnis daripada pandangan spekulatif tentang arah. Komersial sering bertentangan dengan sifat, meningkatkan eksposur pendek ketika harga naik (lindung nilai yang akan diterima) dan menurun saat harga turun.
- Pedagang non-komersial (spekulan besar) hedge fund, asset manager, dan CTA yang memperdagangkan futures mata uang untuk keuntungan spekulatif. Ini adalah kelompok yang paling diamati pedagang FX. Non-komersial posisi dengan keyakinan berdasarkan pandangan makro, sinyal tren, dan perbedaan suku bunga. Ketika mereka agresif panjang atau pendek mata uang, itu karena mereka memiliki tesis dan ketika tesis menjadi penuh sesak, risiko pembalikan tumbuh.
- Posisi yang tidak harus dilaporkan (spekulan kecil) pedagang ritel dan peserta kecil yang posisinya berada di bawah ambang batas pelaporan CFTC.
Konsep utama: Posisi bersih non-komersial
Posisi bersih non-komersial = Kontrak panjang non-kommersial − Kontrak pendek non-Komersial. Angka tunggal ini adalah apa yang dilacak sebagian besar pedagang FX minggu demi minggu. Peningkatan net long dalam EUR futures berarti spekulan besar meningkatkan eksposur bullish mereka terhadap euro. Net short yang berkelanjutan dalam JPY futures berarti komunitas hedge fund memiliki pandangan penurunan struktural terhadap yen.
Mengapa Data COT Penting bagi Pedagang FX
Pasar mata uang adalah pasar terbesar dan paling likuid di dunia, tetapi mereka tidak transparan. Anda tidak dapat melihat siapa yang membeli EUR/USD pada 1,1050 atau shorting JPY futures di Asia semalam. Laporan COT adalah salah satu dari sedikit sumber yang memberi Anda bacaan mingguan tentang keyakinan arah agregat dan itu membuatnya sangat berharga untuk tiga jenis analisis tertentu.
1. Mengidentifikasi Perdagangan yang Terisi
Ketika posisi non-komersial dalam mata uang mencapai tingkat ekstrem relatif terhadap kisaran historisnya, perdagangan penuh sesak. Perdagangan penuh sesar tidak secara inheren salah mereka seringkali merupakan hasil dari tesis makro yang bernalar baik.
Contoh kanonik adalah perdagangan pendek JPY. Selama sebagian besar tahun 2022 dan 2023, posisi pendek non-komersial dalam futures JPY mencapai ekstrem multi-dekade, mencerminkan perbedaan suku bunga yang luas dan gigih antara Bank of Japan dan setiap bank sentral utama lainnya. Yen melemah secara luas. Tapi setiap kejutan kebijakan Bank of Jepang dan ada beberapa memicu reli penutup pendek yang tajam dan cepat di JPY yang menangkap pemegang posisi pendek yang penuh sesak. Tesis mendasar benar untuk sebagian besar periode, namun posisinya secara berkala berbahaya untuk dipegang karena seberapa penuh sesaknya.
FXMacroData menampilkan posisi COT untuk delapan futures mata uang utama AUD, CAD, CHF, EUR, GBP, JPY, NZD, dan USD sehingga mudah untuk melacak perdagangan mana yang menuju ekstrem historis.
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
}
]
}
Posisi non-komersial bersih -169.735 kontrak dalam JPY adalah besar dengan ukuran historis apa pun. Merangkai seri ini dari waktu ke waktu segera mengungkapkan seberapa jauh posisi saat ini relatif terhadap ekstrem masa lalu dan apakah kerumunan memiliki ruang untuk memperluas lebih lanjut atau mendekati zona risiko pembalikan struktural.
2. Pelacakan Konfirmasi dan Perburukannya
Data COT bukanlah alat waktu perdagangan yang ramai dapat tetap ramai selama berbulan-bulan sebelum berbalik. Tapi ini adalah pengidentifikasi rezim yang sangat baik. Ketika posisi non-komersial secara konsisten sedang tren ke satu arah, ini mengkonfirmasi bahwa uang makro sejajar di belakang tren. Ketika tren itu mulai datar atau berbalik bahkan sementara harga terus ke arah yang sama, itu sering merupakan peringatan awal tentang keyakinan yang menurun.
Perbedaan antara harga dan posisi adalah salah satu sinyal berbasis COT yang paling dapat diandalkan dalam FX. Jika EUR/USD naik tetapi long net non-komersial dalam EUR futures menyusut minggu demi minggu, spekulan besar mengurangi eksposur menjadi kekuatan dan pola distribusi itu seringkali mendahului puncak.
Kerangka sinyal: Harga vs Divergensi Posisi
- Perbedaan bullish: Harga turun, tetapi net long non-komersial tetap stabil atau meningkat tekanan jual dipenuhi oleh keyakinan panjang baru.
- Perbedaan Bearish: Harga naik, tapi net non-komersial panjang menyusut spekulan mendistribusikan ke kekuatan.
- Konfirmasi tren: Baik harga dan posisi bersih bergerak ke arah yang sama jalur resistensi terkecil jelas.
3. Menghubungkan Pandangan Makro dengan Posisi Pasar
Data COT menjadi paling kuat ketika dikombinasikan dengan fundamental makro. Diferensial suku bunga dapat sangat mendukung satu mata uang tetapi jika tesis itu sudah dihargai ke posisi panjang bersih yang ekstrim, kenaikan tambahan mungkin terbatas. Sebaliknya, perdagangan mata uang terhadap fundamental makro dengan posisi pendek yang sangat padat adalah pengaturan yang patut diwaspadai dengan seksama: setiap kejutan fundamental yang menantang tesis beruang akan memaksa penutup pendek di skala.
Bayangkan melihat CHF. keputusan kebijakan Swiss National Bank datang melalui pada Nilai akhir dari suku bunga kebijakan CHFJika data makro menunjukkan perbandingan suku bunga positif CHF yang meluas tetapi posisi non-komersial CHF dalam futures masih sangat pendek, latar belakang posisi adalah konstruktif untuk reli mengejar ketinggalan ketika kasus mendasar akhirnya menjadi tidak dapat disangkal.
Membaca Laporan COT: Metrik Utama untuk Melacak
Jumlah kontrak mentah bersifat informatif, tetapi metrik turunan berikut mempertajam sinyal secara signifikan.
Posisi bersih sebagai persentase dari bunga terbuka
Normalisasi posisi non-komersial bersih terhadap total bunga terbuka memberikan ukuran bias arah yang terstandarisasi. panjang bersih 50.000 kontrak berarti sesuatu yang sangat berbeda dalam mata uang dengan 100.000 kontrak bunga terbuka versus satu dengan 500.000. membagi posisi bersih dengan bunga terbuka menghasilkan rasio antara -1 dan +1 yang secara langsung dapat dibandingkan di seluruh mata uang dan sepanjang waktu.
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
Z-Score dari Posisi Jaringan
Z-score mengukur berapa banyak standar deviasi posisi saat ini dari rata-rata historisnya. Z-scor di atas +2 atau di bawah -2 menandakan kondisi yang ekstrim secara statistik. Untuk FX, adalah praktik umum untuk menggunakan jendela 52 minggu yang bergulir sehingga tolok ukur mencerminkan struktur pasar saat ini daripada rezim posisi yang berusia satu dekade.
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)}")
Perubahan Posisi Netto Mingguan
Kecepatan perubahan posisi sering sama pentingnya dengan tingkat absolut. Mata uang yang bergerak dari +20.000 panjang bersih ke +80.000 panjang bersih selama empat minggu menandakan percepatan keyakinan. Mata wang yang terbalik dari +120.000 ke +60.000 selama periode yang sama menandakan distribusi aktif bahkan jika posisi bersih tetap positif.
Akses Data COT melalui FXMacroData
FXMacroData memberikan data CFTC COT mingguan untuk semua delapan kontrak berjangka mata uang utama melalui titik akhir REST yang bersih.
Mata uang yang didukung: AUD, CAD, CHF, EUR, GBP, JPY, NZD, USDAku tidak tahu.
# 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"
Tanggapan disortir berdasarkan tanggal dengan data terbaru terlebih dahulu dan menggunakan nama lapangan yang konsisten di semua mata uang, sehingga satu skrip analisis bekerja di semua delapan pasangan tanpa modifikasi.
Long Non-Komersial
Kontrak bullish spekulatif yang dipegang oleh hedge fund dan CTA.
Film Pendek Non-Komersial
Kontrak bearish spekulatif. meningkat minggu demi minggu: beruang menambahkan. tingkat ekstrem: risiko pendek memeras.
Jaringan Non-Komersial
Long minus short. nomor berita. di atas nol: komunitas spekulatif bersih bullish. melacak tren dan z-score.
Minat terbuka
Jumlah kontrak yang belum terjual.
Praktikal Multi-Valuta COT Scan
Salah satu aplikasi yang paling berguna dari data COT adalah scan lintas mata uang mingguan yang memberi peringkat semua mata uang utama berdasarkan posisi z-scored mereka. Ini segera menunjukkan mata uang mana yang paling panjang, yang paling pendek, dan yang berada di dekat netral dan memberikan dasar untuk mengidentifikasi pasangan di mana posisi satu sisi berada pada posisi ekstrem relatif terhadap yang lain.
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}")
Hasilnya memberikan gambaran seperti berikut (nilai ilustratif):
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
When EUR is at a 2-standard-deviation extreme long and JPY is at a 2-standard-deviation extreme short, the EUR/JPY pair is positioned with the crowd firmly on one side. Any macro shock that disrupts either the EUR bullish thesis or the JPY bearish thesis will force rapid, large-scale unwinding — and EUR/JPY can move 3–4% in a single session under those conditions.
Menggabungkan COT dengan Makro Fundamentals
Data COT menjawab pertanyaan: siapa yang berada di posisi, dan seberapa agresif? Data makro mendasar menjawab pertanyaan: berapa nilai mata uang berdasarkan tingkat, inflasi, dan pertumbuhan? Kerangka kerja FX yang paling kuat menggunakan keduanya.
Model empat kuadran sederhana membangun interaksi dengan jelas:
| Skenario | Sinyal Makro | Posisi COT | Implikasi |
|---|---|---|---|
| Keyakinan yang Kuat Lama | Bullish (tingkat kenaikan, data kuat) | Belum penuh; z-score < +1 | Trend mungkin memiliki ruang untuk memperluas. |
| Peringkat Akhir | Meningkat tapi melambat | Banyak orang; Z-score > +2 | Trend utuh tapi rapuh, kurangi ukuran posisi, kenakan stop. |
| Setup pembalikan | Berubah menjadi bearish (pengurangan kejutan, data lemah) | Ekstrem panjang; Z-score > +2,5 | Flush kemungkinan tinggi, penjualan kekuatan memperkuat gerakan, entri pendek asimetris terbaik. |
| Akumulasi Sinyal | Konsensus bearish | Sangat pendek; Z-score < −2 | Setiap kejutan positif memicu rally pendek yang berlebihan. |
Untuk mengoperasionalkan kolom makro, tarik riwayat suku bunga kebijakan dari titik akhir bank sentral yang relevan bersama dengan data COT. RBA kebijakan suku bunga Dan Inflasi Australia di samping posisi AUD COT memberikan gambaran lengkap tentang apakah komunitas spekulan sejajar dengan atau di depan cerita makro.
Batasan yang Harus Diperhatikan
Data COT kuat tetapi tidak dapat diandalkan. Lima keterbatasan layak diakui secara eksplisit sebelum membangun kerangka perdagangan berbasis COT.
- Pencetakan keterlambatan. CFTC mengukur posisi pada hari Selasa dan menerbitkan pada hari Jumat. Pada saat data menjadi publik, tiga sampai empat hari perdagangan telah terjadi. Perubahan posisi yang signifikan dapat terjadi antara pengukuran dan publikasi.
- Futures ≠ spot FX. Aliran FX institusional terjadi terutama di pasar spot dan berjangka OTC, yang jauh lebih besar dan sama sekali tidak diatur.
- Perdagangan yang ramai bisa tetap ramai. Z-score di atas +2 mengidentifikasi ekstremitas statistik, bukan pembalikan yang akan segera terjadi. perdagangan pendek JPY tetap ekstrem selama beberapa kuartal karena Bank of Japan mempertahankan kerangka kebijakan ultra longgarnya. Posisi ekstrim mempersempit risiko-balasan; tidak menjamin tanggal untuk giliran.
- Iklan bukanlah kontrarian yang tidak bisa salah. Hedger meningkatkan posisi pendek ketika mereka memiliki klaim untuk melindungi tidak harus karena mereka berpikir mata uang akan jatuh.
- Keuntungan terbuka dapat mendistorsi jumlah kontrak. Peningkatan besar dalam bunga terbuka di samping posisi bersih yang meningkat dapat menunjukkan masuknya uang baru, sementara bunga terbuka yang stabil atau menurun di samping kenaikan bersih mungkin hanya mencerminkan penutup sisi pendek.
Membangun Dashboard COT Mingguan
Dengan FXMacroData API, membangun dashboard pemantauan COT pribadi adalah proyek akhir pekan.
- Dapatkan data COT 52 minggu terakhir untuk semua tujuh masa depan mata uang G10
- Menghitung nilai-z posisi bersih pada jendela 52 minggu bergulir
- Peringkat mata uang dari yang paling ekstrim panjang ke yang paling ekstrem pendek
- Mengidentifikasi pasangan dimana ada ekstrim yang berlawanan (misalnya, EUR ekstrim panjang + JPY ekstrim pendek → EUR/JPY dalam fokus)
- Mengambil konteks makro perbedaan suku bunga kebijakan dari titik akhir tingkat yang relevan untuk menentukan apakah posisi selaras dengan atau menyimpang dari latar belakang dasar
- Tanda setiap minggu di mana posisi bergerak lebih dari satu standar deviasi repositioning cepat adalah sinyal sendiri
FXMacroData Halaman dashboard COT memberikan tampilan ini secara visual di semua mata uang yang didukung, diperbarui setiap minggu setelah setiap rilis CFTC. Untuk penggunaan kuantitatif atau programmatic, endpoint API mengembalikan data yang mendasari dalam bentuk yang memberi makan langsung ke Python, R, atau lingkungan analitis lainnya.
Referensi cepat: COT API Endpoints
- EUR:
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 - JPY:
https://fxmacrodata.com/api/v1/cot/jpy?api_key=YOUR_API_KEY - AUD:
https://fxmacrodata.com/api/v1/cot/aud?api_key=YOUR_API_KEY - CAD:
https://fxmacrodata.com/api/v1/cot/cad?api_key=YOUR_API_KEY - CHF:
https://fxmacrodata.com/api/v1/cot/chf?api_key=YOUR_API_KEY - Aku tidak tahu.
https://fxmacrodata.com/api/v1/cot/nzd?api_key=YOUR_API_KEY
Intinya
Laporan COT memberikan pedagang FX jendela yang hampir tidak ada yang lain menyediakan: mingguan, di audit ukuran bagaimana rekening spekulatif terbesar di dunia diposisikan dalam mata uang berjangka. Digunakan secara terpisah, informasi itu sugestif tetapi tidak lengkap. Dikombinasikan dengan fundamental makro suku bunga kebijakan bank sentral, pembacaan inflasi, dan kejutan ekonomi muncul melalui FXMacroData API menjadi keunggulan analitis yang asli.
Perdagangan FX yang paling berbahaya bukanlah yang mana kasus mendasarnya salah. Mereka adalah yang mana case mendasarinya benar tetapi perdagangan sangat ramai sehingga kejutan data tunggal memicu serangkaian keluar paksa. Data COT adalah sistem peringatan dini untuk kondisi tersebut.
Pelajari posisi di samping kalender makro, tahu kapan kerumunan bergelombang, dan ketika fundamental berubah, tahu arah keluarnya.