راهنمای کامل خواندن گزارش COT و تحلیل ستونها
در این مقاله نحوه تفسیر گزارش COT و تحلیل ستونهای جداول Legacy، Disaggregated و TFF را بررسی میکنیم. همچنین محاسبات موقعیت خالص و دو محدودیت کلیدی این گزارش را توضیح میدهیم.
یادگیری نحوه خواندن گزارش COT با درک ساختار آن آغاز میشود: گزارش Commitments of Traders، شمارش هفتگی موقعیتهای باز آتی است که بر اساس نوع معاملهگر دستهبندی شده و توسط کمیسیون معاملات آتی کالا (CFTC) منتشر میشود. هر سلول در این گزارش نشاندهنده تعداد قراردادهاست، نه قیمت و نه پیشبینی. این صفحه فرض را بر این میگذارد که شما با زمانبندی انتشار گزارش که در زمان انتشار گزارش COT به آن پرداخته شده، آشنا هستید و به بررسی ستونها، محاسبات موقعیت خالص و دو محدودیتی میپردازد که ارزش بیان کردن دارند.
گزارش COT دقیقاً چه چیزی را محاسبه میکند
هر رقم، نشاندهنده تعداد قراردادهاست که از گزارشهای موقعیت معاملاتی ارائهشده توسط اعضای اتاق پایاپای و بورسها به CFTC گردآوری میشود. یک حساب تنها زمانی وارد گزارش میشود که از سطح قابلگزارشدهی تعیینشده برای هر بازار فراتر رود و تمامی موارد زیر این سطح، در یک دسته باقیمانده قرار میگیرند. سه سازوکار اصلی بیشترین سردرگمی را ایجاد میکنند:
- موقعیتهای خرید (Long) و فروش (Short) بهصورت جداگانه گزارش میشوند و هر دو ناخالص هستند. شرکتی که 4000 موقعیت خرید و 3000 موقعیت فروش دارد، در هر دو ستون ظاهر میشود، نه بهعنوان یک موقعیت خالص 1000 واحدی.
- موقعیتهای اسپرد (Spreading) برای دستههای سفتهبازانه ستون مستقلی دارند: این موقعیتها شامل پوزیشنهای خرید و فروش برابر و خنثیکننده در یک بازار واحد هستند که تنها یکبار شمارش میشوند.
- سود باز (Open Interest) مجموع قراردادهای معوق در آن تاریخ است. مجموع موقعیتهای خرید در تمامی دستهها و همچنین مجموع موقعیتهای فروش، با این رقم برابر است.
گزارش سنتی: تجاری، غیرتجاری و غیرقابلگزارش
این قدیمیترین قالب گزارشدهی است که همچنان بیشترین ارجاع را دارد. در این دستهبندی، معاملهگران مشمول گزارش به دو گروه تقسیم شده و مابقی در گروه سوم قرار میگیرند.
- تجاری: حسابی که به CFTC اعلام کرده است از بازار برای پوشش ریسک (Hedging) یک فعالیت تجاری پایه استفاده میکند. مانند یک انبار غله، یک پالایشگاه یا بانکی که کتاب سوآپ خود را پوشش میدهد.
- غیرتجاری: حسابی مشمول گزارش که چنین ادعای پوشش ریسکی ندارد. سفتهبازان بزرگ و برنامههای آتی مدیریتشده در این دسته قرار میگیرند.
- غیرقابلگزارش: تمام معاملهگرانی که زیر حد نصاب قرار دارند. این رقم بهجای جمعآوری مستقیم، از طریق کسر مجموع موقعیتهای خرید و فروشِ مشمول گزارش از کل سود باز (Open Interest) محاسبه میشود.
این طبقهبندی بر اساس خوداظهاری در فرمهای ارسالی انجام میشود و شرکتی که هم دارای میز پوشش ریسک و هم میز سفتهبازی باشد، بر اساس فعالیت غالب خود در یکی از این دستهها طبقهبندی میشود.
گزارش تفکیکشده: چهار دستهبندی بهجای دو دسته
برای کالاهای فیزیکی، CFTC نسخه تفکیکشدهای نیز منتشر میکند که در آن، دستهبندی قدیمی «تجاری» به دو بخش و دستهبندی قدیمی «غیرتجاری» نیز به دو بخش تقسیم شده است:
- تولیدکننده، تاجر، پردازشگر، مصرفکننده: فعالان بازار فیزیکی که موجودی یا تولید خود را پوشش ریسک (hedging) میکنند.
- معاملهگر سوآپ (Swap dealer): معاملهگری که موقعیتهای آتی او، سوآپهای منعقدشده با مشتریان را خنثی میکند؛ مشتریانی که ممکن است خود پوششدهنده ریسک یا سفتهباز باشند، بنابراین این ردیف جریانی ترکیبی است که از یک طرف حساب عبور میکند.
- پول مدیریتشده (Managed money): مشاوران معاملات کالا، گردانندگان صندوقهای سرمایهگذاری و صندوقهای پوشش ریسک که برای مشتریان معامله میکنند؛ این ردیف نزدیکترین مورد در گزارش به جریانهای پیرو روند (trend-follower) است.
- سایر گزارششدنیها: حسابهای بزرگی که در هیچیک از دستههای فوق قرار نمیگیرند.
گزارش TFF: دستهبندیهای آتی مالی
برای اوراق خزانهداری، شاخصهای سهام و ارزها، گزارش «معاملهگران در بازارهای آتی مالی» (Traders in Financial Futures) از واژگان چهارگانهای استفاده میکند:
- معاملهگر/واسطه (Dealer/intermediary): سمت فروش، بانکها و معاملهگرانی که معمولاً بهجای ابراز دیدگاه شخصی، طرف دیگر جریان سفارشهای مشتریان را میگیرند.
- مدیر دارایی/نهادی (Asset manager/institutional): صندوقهای بازنشستگی، شرکتهای بیمه، صندوقهای سرمایهگذاری مشترک و موقوفات.
- صندوقهای اهرمی (Leveraged funds): صندوقهای پوشش ریسک و مشاوران معاملات کالا (CTA)؛ این همان ردیفی است که اکثر افراد هنگام گفتن «صندوقها موقعیت فروش (Short) دارند» به آن اشاره میکنند.
- سایر موارد قابلگزارش (Other reportables): حسابهای بزرگ قابلگزارش که در سه دسته اول جای نمیگیرند.
گزارش TFF تقسیمبندی متفاوتی از همان سود باز (Open Interest) است و نه یک نظر ثانویه نسبت به جدول سنتی؛ بنابراین ردیفهای آن نگاشت یکبهیک با دستهبندیهای تجاری و غیرتجاری نخواهند داشت.
نحوه محاسبه موقعیت خالص از گزارش COT
محاسبه خالص موقعیت ساده است: موقعیتهای خرید (Long) منهای موقعیتهای فروش (Short) در یک دستهبندی مشخص. موقعیتهای اسپرد (Spreading) بهدلیل ماهیت ساختاریشان خارج از هر دو سمت قرار میگیرند و در کل گزارش، مجموع خالص دستهبندیها برابر با صفر است، زیرا در برابر هر قرارداد خرید، یک قرارداد فروش وجود دارد.
اشتباه در خوانش دادهها معمولاً در بخش خالص خام رخ میدهد. عدد خالص 200,000 قرارداد در برابر 800,000 قرارداد سود باز (Open Interest) یک معنا دارد و در برابر 4 میلیون قرارداد، معنای متفاوتی خواهد داشت. راه اصلاح این است: تقسیم خالص بر سود باز؛ این کار سهم آن دستهبندی را مشخص میکند که در طول زمان و برای قراردادهای مختلف قابل مقایسه است.
موقعیتهای معاملاتی CFTC در پنلهای اینجا لحاظ نشدهاند، بنابراین همان محاسبات در ادامه روی دادههایی اعمال شده که خودتان میتوانید استخراج کنید. این بلوک تعداد قراردادهای اختیار خرید (Call) و اختیار فروش (Put) شرکت AAPL را در هر ماه میشمارد و سپس تفاوت آنها را دو بار بیان میکند: یکبار بهصورت خالص خام و بار دیگر بهعنوان سهمی از حجم کل ماه؛ حرکتی که پشت نحوه محاسبه نسبت Put/Call قرار دارد.
در Jan 2024، خالص موقعیت برابر با 3294 هزار قرارداد یا 18.9% از حجم کل آن ماه اندازهگیری شد. تا Jun 2026، خالص موقعیت به 4671 هزار قرارداد رسید که معادل 27.7% بود. در طول تمامی 30 ماه، خالص خام با میزان فعالیت بازار افزایش و کاهش مییابد، در حالی که محاسبه سهم، این اثر فعالیت را حذف میکند؛ دقیقاً همانطور که خالص COT در برابر سود باز عمل میکند.
چرا صدک از عدد خالص صادقانهتر است
هنگامی که موقعیت خالص به سهم تبدیل شد، گام دوم بررسی تاریخچه است. دستهای که 12 درصد از سود باز (open interest) را در اختیار دارد، تنها در مقایسه با سوابق همان بازار بالاست یا پایین. چارچوب استاندارد، استفاده از صدک در یک بازه زمانی چندساله است: کسری از مشاهدات گذشته که در سطح یا پایینتر از مقدار فعلی قرار دارند.
سهام ایالات متحده نوار موقعیتیابی (positioning tape) خاص خود را دارند. دادههای سود کوتاه FINRA تعداد سهام فروختهشده به صورت استقراضی را دو بار در ماه گزارش میکند و «روزهای لازم برای پوشش» (days to cover)، آن تعداد را بر میانگین حجم روزانه تقسیم میکند؛ همان اقدام نرمالسازی که نسبت خالص به سود باز انجام میدهد. پنل زیر شش نام تجاری شناختهشده را با آخرین دادههایشان مشخص کرده و سپس هر کدام را در بازه پنجساله خود رتبهبندی میکند.
کد دقیق SQL پشت هر عدد
WITH history AS
(
SELECT
ticker,
settlement_date,
max(toFloat64(days_to_cover)) AS dtc,
max(toFloat64(short_interest)) AS si
FROM global_markets.stocks_short_interest
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'KO', 'XOM', 'JNJ')
AND settlement_date >= today() - 1825
AND days_to_cover > 0
GROUP BY ticker, settlement_date
),
latest AS
(
SELECT
ticker,
argMax(dtc, settlement_date) AS latest_dtc,
argMax(si, settlement_date) AS latest_si,
toString(max(settlement_date)) AS snapshot_label
FROM history
GROUP BY ticker
)
SELECT
l.ticker AS symbol,
l.snapshot_label AS snapshot_label,
round(l.latest_si / 1e6, 1) AS short_interest_millions,
round(l.latest_dtc, 2) AS days_to_cover_ratio,
round(100 * countIf(h.dtc <= l.latest_dtc) / count(), 0) AS percentile_5y_pct
FROM history AS h
INNER JOIN latest AS l ON h.ticker = l.ticker
GROUP BY l.ticker, l.snapshot_label, l.latest_si, l.latest_dtc
ORDER BY percentile_5y_pct DESCبالاترین مقدار در میان این شش مورد، NVDA، در صدک 100 از بازه پنجساله خود با 2.47 روز برای پوشش قرار دارد. پایینترین آنها، XOM، در صدک 76 جای گرفته است. ستون سهام فروختهشده به صورت استقراضی (خالص) اعداد 324.1 میلیون در برابر 42.7 میلیون را نشان میدهد؛ این ستون بیش از آنکه موقعیتیابی را نشان دهد، اندازه شرکت را منعکس میکند و به همین دلیل نمیتوان آن را بین نامهای مختلف مقایسه کرد. موقعیت خالص COT نیز در قراردادهای مختلف قابل مقایسه نیست.
صدک حتی با وجود عدد خالص ثابت نیز تغییر میکند و برعکس. ردیابی یک نام در طول سه سال این موضوع را آشکار میسازد.
کد دقیق SQL پشت هر عدد
WITH history AS
(
SELECT
settlement_date AS d,
max(toFloat64(days_to_cover)) AS dtc
FROM global_markets.stocks_short_interest
WHERE ticker = 'AAPL'
AND settlement_date >= '2023-07-01'
AND settlement_date < '2026-07-01'
AND days_to_cover > 0
GROUP BY settlement_date
)
SELECT
toString(a.d) AS settlement_date,
formatDateTime(a.d, '%b %e, %Y') AS as_of_label,
round(a.dtc, 2) AS days_to_cover_ratio,
round(100 * countIf(b.dtc <= a.dtc) / count(), 0) AS window_percentile_pct
FROM history AS a
CROSS JOIN history AS b
GROUP BY a.d, a.dtc
ORDER BY a.dدر طول 72 گزارش دو بار در ماه، این نسبت در یک محدوده باریک باقی میماند، در حالی که خط صدک بیشتر بازه صفر تا 100 را پوشش میدهد. آخرین گزارش در تاریخ Jun 30, 2026، عدد 1.73 روز برای پوشش را ثبت کرد که معادل صدک 17 در این بازه زمانی است.
دو محدودیت، به زبان ساده
تصویر وضعیت مربوط به سهشنبه است و جمعه به دست شما میرسد
موقعیتها بر اساس قیمت بسته شدن روز سهشنبه هستند و گزارش در بعدازظهر جمعه منتشر میشود؛ بنابراین، آنچه گزارش توصیف میکند در زمان دریافت، سه جلسه معاملاتی قدمت دارد و دستهای که در روز چهارشنبه تغییر جهت داده است، تصویر قدیمی را نشان میدهد. جدول زیر میزان حرکت SPY از هر قیمت بسته شدن سهشنبه تا قیمت بسته شدن جمعه پس از آن را اندازهگیری میکند.
کد دقیق SQL پشت هر عدد
WITH spy AS
(
SELECT
date,
toFloat64(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2016-01-01'
AND date < '2026-07-01'
)
SELECT
toString(toYear(tue.date)) AS year,
count() AS session_pair_count,
round(quantileDeterministic(0.5)(abs(fri.close_px / tue.close_px - 1) * 100,
toUInt64(toUnixTimestamp(tue.date))), 2) AS median_gap_move_pct,
round(quantileDeterministic(0.9)(abs(fri.close_px / tue.close_px - 1) * 100,
toUInt64(toUnixTimestamp(tue.date))), 2) AS p90_gap_move_pct
FROM spy AS tue
INNER JOIN spy AS fri ON fri.date = tue.date + 3
WHERE toDayOfWeek(tue.date) = 2
GROUP BY year
ORDER BY yearدر 2016، در میان 51 جفتروزهای سهشنبه تا جمعه، میانه حرکت مطلق برابر با 0.88% بوده و ده درصد بدترین شکافها حداقل 2.2% را پوشش دادهاند. در 2026، میانه برابر با 1.26% اندازهگیری شد. معاملات آتی شاخصهای سهام این روند را بهدقت دنبال میکنند، بنابراین خوانش COT روز جمعه بازاری را توصیف میکند که پیشتر حرکت خود را انجام داده است. دادههای موقعیتیابی، سهشنبه گذشته را توصیف میکنند، نه اکنون را.
«تجاریها همیشه حق دارند» یک باور عامیانه است
در بسیاری از بازارهای فیزیکی، دسته تجاری (Commercials) بهطور ساختاری در موقعیت فروش (Short) قرار دارد، زیرا تولیدکنندگان محصولی را که هماکنون در اختیار دارند، پوشش ریسک میکنند. منفی بودن خالص موقعیت در تقریباً تمام هفتههای یک دهه، ویژگی این طبقهبندی است، نه یک سابقه عملکرد. تبدیل هر دسته COT به یک ادعای معاملاتی مستلزم تعیین افق زمانی، تعیین حد آستانه، نمونهای شامل دورههایی که در آن شکست رخ داده و شمارش صادقانه تعداد آستانههایی است که پیش از آن آزموده شدهاند. همین انضباط برای هر شاخص موقعیتیابی جمعی صدق میکند، از جمله موردی که در آیا نسبت بالای put/call صعودی است بررسی شده است.
مطالعه مستقیم فایلهای خام CFTC
برای استفاده از این دادهها نیازی به خرید اندیکاتورهای واگرایی نیست. سازمان CFTC گزارشهای هفتگی خود را در صفحه Commitments of Traders منتشر میکند. این گزارشها در قالبهای کوتاه و بلند، در دو نوع «فقط آتی» و «ترکیبی آتی و اختیار معامله» و بهصورت متنهای جداشده با کاما (CSV) به همراه آرشیو تاریخی از سال 1986 در دسترس هستند. دو عادت برای حفظ دقت در تحلیلهای صفحهگسترده ضروری است: نخست، یک نوع گزارش را انتخاب کرده و به آن پایبند بمانید، زیرا ارقام «فقط آتی» و «ترکیبی» برای یک هفته واحد با هم تفاوت دارند؛ دوم، بهجای استفاده از ارقام خالص خام، درصدک (percentile) سهم را محاسبه کنید.
پرسشهای متداول
منظور از معاملهگران تجاری و غیرتجاری در گزارش COT چیست؟
معاملهگران تجاری به CFTC اعلام کردهاند که از بازار برای پوشش ریسک (hedging) فعالیتهای تجاری خود استفاده میکنند؛ برای نمونه، تولیدکنندهای که خروجی خود را پوشش میدهد یا بانکی که سبد سوآپ خود را مدیریت میکند. معاملهگران غیرتجاری، حسابهای قابلگزارشدهی هستند که ادعای پوشش ریسک ندارند و عمدتاً شامل سفتهبازان بزرگ و برنامههای آتی مدیریتشده میشوند. این برچسبها بر اساس خوداظهاری تعیین میشوند.
آیا گزارش COT با تأخیر منتشر میشود؟
بله. موقعیتهای معاملاتی در پایان روز سهشنبه ثبت و در بعدازظهر جمعه منتشر میشوند؛ بنابراین، دادهها هنگام دسترسی شما سه جلسه معاملاتی قدیمی هستند.
آیا گزارش COT برای سهام نیز وجود دارد؟
برای تکسهمها خیر. نزدیکترین معادلها، گزارشهای سود کوتاهمدت است که دو بار در ماه منتشر میشود و آمار بدهی مارجین FINRA که بهصورت ماهانه ارائه میگردد. هر دو گزارش با تأخیر منتشر میشوند و تفسیر آنها بهصورت درصدی (percentile) نسبت به مجموع خالص، کارآمدتر است.
هر پنل در اینجا به همراه کد SQL تولیدکننده آن ارائه شده است. یکی را باز کنید، تیکر (ticker) را تغییر دهید تا همان محاسبات برای هر نماد دلخواه در پایانه Strasmore اجرا شود.