COT Report कधी प्रसिद्ध केला जातो?
CFTCचा COT report दर शुक्रवारी Eastern timeनुसार दुपारी 3:30 वाजता प्रसिद्ध होतो. मंगळवारच्या closing positions, तीन दिवसांचा विलंब आणि report वाचण्याची पद्धत जाणून घ्या.
The Commitments of Traders अहवाल, म्हणजे COT report, U.S. Commodity Futures Trading Commissionकडून दर शुक्रवारी Eastern timeनुसार दुपारी 3:30 वाजता प्रसिद्ध केला जातो. या अहवालात त्याआधीच्या मंगळवारी कामकाज संपताना असलेल्या positionsची मोजणी केली जाते. मोजणी आणि प्रकाशन यांच्यामध्ये तीन दिवस असतात. हा विलंब आणि केवळ सर्वात मोठ्या tradersना समाविष्ट करणारी reporting threshold यांमुळे या मोफत साप्ताहिक fileमधून नेमकी कोणती माहिती मिळू शकते, हे ठरते.
COT report दर आठवड्याला कधी प्रसिद्ध केला जातो?
शुक्रवारी Eastern timeनुसार दुपारी 3:30 वाजता. प्रकाशन स्वतः regulatorकडून केले जाते. CFTCचे Commitments of Traders page files विनामूल्य उपलब्ध करून देते. त्या पाहता येणाऱ्या tablesच्या आणि download करता येणाऱ्या textच्या स्वरूपात असतात.
Calendarमधील दोन बाबी clock timeपेक्षा अधिक महत्त्वाच्या आहेत:
- Data date मंगळवार असते, शुक्रवार नाही. शुक्रवारच्या fileमधील प्रत्येक आकडा मंगळवारी कामकाज संपताना positions कुठे होत्या, हे दर्शवतो.
- Federal holidaysमुळे releaseची तारीख बदलते. Reporting weekमध्ये holiday असल्यास publication एक-दोन दिवसांनी पुढे ढकलले जाते. CFTC प्रत्येक आठवड्याची actual date असलेले release schedule प्रसिद्ध करते. सामान्य आठवड्यात शुक्रवारचा नियम लागू राहतो; federal holiday असलेल्या आठवड्यात त्यात बदल होतो.
त्याच मंगळवारची माहिती एकापेक्षा अधिक filesमध्ये येते: एक futures-only version आणि दुसरी options-and-futures-combined version. या दुसऱ्या versionमध्ये exchangesनी दिलेल्या delta factorsचा वापर करून option positions futures-equivalent basisवर रूपांतरित केल्या जातात. एकाच दिवशी त्याच marketसाठी दोन जण वेगवेगळे आकडे सांगत असतील, तर ते अनेकदा वेगवेगळ्या versions वाचत असतात.
COT report वाचताना तो तीन दिवस जुना का असतो?
Positioning data समजून घेण्यासाठी snapshot आणि release यांमधील अंतर सर्वात महत्त्वाचे आहे. बुधवारी, गुरुवारी किंवा शुक्रवारी सकाळी सर्वात मोठ्या tradersनी केलेले व्यवहार दुपारी 3:30 वाजता प्रसिद्ध होणाऱ्या fileमध्ये नसतात. हा blind spot किती मोठा आहे, हे मोजण्यासाठी येथे COTमध्ये समाविष्ट असलेल्या marketsचा मागोवा घेणारे exchange-traded funds मोजले आहेत: stocks, Treasuries, metals आणि energy. हे funds futures contracts नाहीत. मात्र तीन दिवसांत या marketsमध्ये किती हालचाल होते, यासाठी ते योग्य मोजपट्टी आहेत.
प्रत्येक आकड्यामागील अचूक SQL
WITH raw AS (
SELECT ticker,
toTimeZone(window_start, 'America/New_York') AS et,
close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'TLT', 'GLD', 'SLV', 'USO', 'UNG')
AND window_start >= toDateTime('2024-08-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
bars AS (
SELECT ticker,
toDate(et) AS session_date,
toDayOfWeek(et) AS day_of_week,
toHour(et) * 60 + toMinute(et) AS minute_of_day,
close
FROM raw
WHERE toDayOfWeek(et) IN (2, 5)
AND (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
),
tuesday_snapshot AS (
SELECT ticker,
toMonday(session_date) AS week_start,
argMax(close, minute_of_day) AS tuesday_close
FROM bars
WHERE day_of_week = 2
GROUP BY ticker, week_start
),
friday_release AS (
SELECT ticker,
toMonday(session_date) AS week_start,
argMax(close, minute_of_day) AS friday_1530
FROM bars
WHERE day_of_week = 5
AND minute_of_day BETWEEN 900 AND 930
GROUP BY ticker, week_start
)
SELECT t.ticker AS ticker,
count() AS weeks_counted,
round(quantileDeterministic(0.5)(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100,
cityHash64(toString(t.week_start))), 2) AS median_abs_move_pct,
round(quantileDeterministic(0.9)(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100,
cityHash64(toString(t.week_start))), 2) AS p90_abs_move_pct,
round(100 * countIf(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100 >= 2) / count(), 1) AS pct_weeks_over_2pct
FROM tuesday_snapshot AS t
INNER JOIN friday_release AS f
ON t.ticker = f.ticker AND t.week_start = f.week_start
GROUP BY t.ticker
ORDER BY median_abs_move_pct DESCदोन वर्षांच्या report weeksमध्ये मंगळवारच्या closeपासून शुक्रवारच्या दुपारी 3:30 वाजताच्या printपर्यंतचे median अंतर 2.97% ते 0.66% दरम्यान होते. हे 97 weeksवर मोजले गेले. UNGमध्ये हे अंतर TLTपेक्षा कमी होते. निम्म्या weeksमध्ये हालचाल या mediansपेक्षा कमी होती. मंगळवारचा snapshot stale का ठरतो, हे tail दाखवतो: दहा weeksपैकी एका weekमध्ये UNGमध्ये 8.68% किंवा त्याहून अधिक हालचाल झाली आणि 68% weeksमध्ये ती दोन टक्क्यांपेक्षा जास्त होती.
एका marketचा week-by-week आलेख हे अंतर किती असमान असते, ते दाखवतो.
प्रत्येक आकड्यामागील अचूक SQL
WITH raw AS (
SELECT toTimeZone(window_start, 'America/New_York') AS et,
close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2025-08-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
bars AS (
SELECT toDate(et) AS session_date,
toDayOfWeek(et) AS day_of_week,
toHour(et) * 60 + toMinute(et) AS minute_of_day,
close
FROM raw
WHERE toDayOfWeek(et) IN (2, 5)
AND (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
),
tuesday_snapshot AS (
SELECT toMonday(session_date) AS week_start,
argMax(close, minute_of_day) AS tuesday_close
FROM bars
WHERE day_of_week = 2
GROUP BY week_start
),
friday_release AS (
SELECT toMonday(session_date) AS week_start,
max(session_date) AS friday_date,
argMax(close, minute_of_day) AS friday_1530
FROM bars
WHERE day_of_week = 5
AND minute_of_day BETWEEN 900 AND 930
GROUP BY week_start
)
SELECT f.friday_date AS week,
formatDateTime(f.friday_date, '%b %e, %Y') AS friday_label,
round((toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100, 2) AS change_pct,
round(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100, 2) AS abs_change_pct
FROM tuesday_snapshot AS t
INNER JOIN friday_release AS f ON t.week_start = f.week_start
ORDER BY week31 जुलै 2026पर्यंतच्या वर्षातील 48 report weeksमध्ये पहिल्या chart केलेल्या weekमध्ये, जी Aug 8, 2025ला संपली, gap 1.45% होता. शेवटच्या weekमध्ये, जी Jul 31, 2026ला संपली, तो 0.86% होता. काही weeksमध्ये file जवळपास अद्ययावत असते. काही weeksमध्ये ती आधीच बदललेल्या marketचे चित्र देते. आपण कोणत्या प्रकारच्या weekमध्ये आहोत, हे fileमधील कोणतीही माहिती सांगत नाही. Short interestमध्येही अशीच समस्या अधिक मोठ्या कालावधीवर दिसते: short interest कधी प्रसिद्ध केले जाते या calendarचे स्पष्टीकरण देते, तर short interest दोन आठवडे जुने का असते हा विलंब स्पष्ट करते.
शुक्रवारी दुपारी 3:30 वाजता काय घडते?
ही file U.S. stock market बंद होण्याच्या, म्हणजे Eastern timeनुसार दुपारी 4:00 वाजण्याच्या, अर्धा तास आधी येते. पूर्ण शुक्रवारच्या sessionमध्ये trading volume clockनुसार पंधरा-मिनिटांच्या bucketsमध्ये कसा विभागला जातो, ते खाली दाखवले आहे.
प्रत्येक आकड्यामागील अचूक SQL
WITH raw AS (
SELECT toTimeZone(window_start, 'America/New_York') AS et,
volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2025-08-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
bars AS (
SELECT toDate(et) AS session_date,
toHour(et) * 60 + toMinute(et) AS minute_of_day,
intDiv((toHour(et) * 60 + toMinute(et)) - 570, 15) AS bucket,
volume AS shares
FROM raw
WHERE toDayOfWeek(et) = 5
AND (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
),
full_sessions AS (
SELECT session_date
FROM bars
GROUP BY session_date
HAVING sumIf(shares, minute_of_day >= 930) >= 0.05 * sum(shares)
)
SELECT formatDateTime(toDateTime(toDate('2026-01-02')) + (570 + b.bucket * 15) * 60, '%H:%i') AS et_time,
round(100 * sum(b.shares) / sum(sum(b.shares)) OVER (), 2) AS share_of_session_pct,
round(sum(b.shares) / uniqExact(b.session_date) / 1000000, 2) AS avg_volume_millions
FROM bars AS b
INNER JOIN full_sessions AS s ON b.session_date = s.session_date
GROUP BY b.bucket
ORDER BY b.bucketU.S. sessionमधील volumeचे स्वरूप smileसारखे असते. पहिल्या पंधरा मिनिटांत दिवसातील sharesपैकी 6.98% व्यवहार होतात. 12:00 bucketमध्ये हे प्रमाण 2.72%पर्यंत कमी होते. Continuous tradingच्या शेवटच्या पंधरा मिनिटांत ते 13.17% असते. Report ज्या 15:30 bucketमध्ये प्रसिद्ध होतो, त्यात 4.92% व्यवहार होतात. Trading weekच्या शेवटच्या दिवशी closing ramp सुरू असतानाच हा release येतो. ही calendarविषयक बाब आहे; fileमध्ये नोंदलेल्या tradesबद्दलचा दावा नाही.
Legacy, disaggregated किंवा TFF: कोणता COT report कोणता?
COT नावाचे चार reports आहेत. ते त्याच मंगळवारच्या open interestचे वेगवेगळे वर्गीकरण करतात.
- Legacy प्रत्येक marketला commercial, non-commercial आणि nonreportable positionsमध्ये विभागतो. हा सर्वात जुना format आहे आणि बहुतेक लोक "COT report" म्हणताना याचाच संदर्भ घेतात.
- Supplemental 13 agricultural commoditiesचा समावेश करतो आणि index tradersना स्वतंत्र categoryमध्ये दाखवतो.
- Disaggregated agriculture आणि petroleumपासून natural gas, electricity आणि metalsपर्यंतच्या physical commodity marketsचा समावेश करतो. यात चार categories असतात: producer/merchant/processor/user, swap dealers, managed money आणि other reportables.
- Traders in Financial Futures, म्हणजे TFF report, currencies, Treasury securities, stock indices आणि volatility यांसह financial contractsचा समावेश करतो. Sell sideवरील category dealer/intermediary असते. Buy sideवर asset manager/institutional, leveraged funds आणि other reportables असतात.
एखाद्या headlineमध्ये hedge fundsनी crude oilमधील अनेक वर्षांतील सर्वात मोठी short position घेतल्याचे म्हटले असेल, तर त्यामागील series साधारणतः disaggregated reportमधील managed money असते. S&P 500बाबत तेच वाक्य असल्यास त्याचा अर्थ TFFमधील leveraged funds असा होतो. हे labels परस्पर बदलून वापरता येत नाहीत.
COT reportमध्ये प्रत्यक्षात कोणाची मोजणी केली जाते?
मोठ्या tradersची. इतर कोणाचीही नाही. Clearing members, futures commission merchants आणि foreign brokers दररोज त्या प्रत्येक traderबद्दल reports दाखल करतात ज्याची position CFTCच्या regulationsनुसार ठरवलेल्या reporting levelइतकी किंवा त्याहून अधिक असते. एखाद्या marketमध्ये अशा levelsवर positions धारण करणारे किमान 20 traders असतील, तेव्हाच तो market COTमध्ये दिसतो. Reportable positionsमध्ये साधारणतः एखाद्या marketच्या open interestपैकी 70 ते 90 टक्के भाग येतो. उर्वरित भाग एका nonreportable lineमध्ये दाखवला जातो. त्याला category किंवा trader count जोडलेला नसतो.
Categories या घोषित occupations असतात; त्या strategies नसतात. Commercial किंवा producer/merchant/processor/user म्हणजे अशी firm जिच्या business activityचा futures positionद्वारे hedge केला जातो, अशी माहिती तिच्या CFTC Form 40मध्ये दिलेली असते. Managed money म्हणजे pooled speculative capital: advisors, pool operators आणि clientsच्या वतीने trading करणारे funds. एखादा grain elevator inventory hedge करू शकतो, तर एखादा fund price moveच्या अपेक्षेने position घेऊ शकतो. दोघांकडे विरुद्ध columnsमध्ये एकसारखे contracts असू शकतात. Reportमध्ये कोणाकडे position आहे, हे सांगितले जाते. ती position का घेतली, हे कधीही सांगितले जात नाही.
COT reportचा चुकीचा अर्थ लावण्याचे दोन मार्ग
Record net long हे timing tool नाही. Net position हा contractsमधील एक आकडा असतो. तो longsमधून shorts वजा करून, एका categoryमध्ये तयार केला जातो. Record reading म्हणजे मंगळवारपर्यंत त्या categoryचे exposure अत्यंत पातळीवर होते. ते exposure कधी किंवा उलटेल की नाही, याची माहिती त्यातून मिळत नाही. सर्व asset classesमधील crowd-position gaugesना हीच मर्यादा लागू होते: put/call ratio आणि FINRA short interest data दोन्ही आधीच घेतलेली market stance दर्शवतात.
Raw contract countsची productsमध्ये तुलना करता येत नाही. COT table contracts मोजते आणि contract म्हणजे एखाद्या वस्तूचे ठरावीक प्रमाण असते. COMEX gold contractमध्ये 100 troy ounces असतात. NYMEX crude contractमध्ये 1,000 barrels असतात. Contract countनुसार marketsची ranking केल्यास exchangesनी अनेक दशकांपूर्वी ठरवलेल्या unit definitionsनुसार ranking होते. Equitiesमध्येही हीच गणिती पद्धत लागू होते, जिथे share हे unit असते.
प्रत्येक आकड्यामागील अचूक SQL
WITH raw AS (
SELECT ticker,
toTimeZone(window_start, 'America/New_York') AS et,
close,
volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'TLT', 'GLD', 'SLV', 'USO', 'UNG')
AND window_start >= toDateTime('2026-07-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
rth AS (
SELECT ticker,
volume AS shares,
toFloat64(close) * volume AS dollars
FROM raw
WHERE (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
)
SELECT ticker,
round(sum(dollars) / sum(shares), 2) AS unit_size_usd,
round(100 * sum(shares) / sum(sum(shares)) OVER (), 2) AS share_of_units_pct,
round(100 * sum(dollars) / sum(sum(dollars)) OVER (), 2) AS share_of_dollars_pct
FROM rth
GROUP BY ticker
ORDER BY unit_size_usd DESCजुलै 2026मध्ये SPYचा एका unitचा सरासरी व्यवहार $744.99ला झाला. UNGच्या एका unitसाठी हा आकडा $10.52 होता. प्रत्येकाच्या 1,000 units म्हणजे समान रकमेचे व्यवहार नाहीत. सात fundsमध्ये SPYने traded unitsपैकी 31.75% आणि dollarsपैकी 50.07% हिस्सा घेतला. UNGने unitsपैकी 5.41% आणि dollarsपैकी 0.12% हिस्सा घेतला. प्रत्येक unitची किंमत समान असेल, तेव्हाच unitsमधील हिस्सा आणि dollarsमधील हिस्सा समान असतो. एका marketमधील positioningची कालानुसार तुलना करा किंवा कोणतीही ranking करण्यापूर्वी contractsचे notional valueमध्ये रूपांतर करा.
COT report FAQ
COT report किती वाजता प्रसिद्ध केला जातो?
शुक्रवारी Eastern timeनुसार दुपारी 3:30 वाजता, CFTCच्या websiteवर. Positionsची मोजणी त्याआधीच्या मंगळवारी कामकाज संपताना केली जाते. त्यामुळे publicationच्या वेळी file तीन दिवस जुनी असते. Reporting weekमध्ये federal holiday असल्यास release एक-दोन दिवसांनी उशिरा येतो.
COT report विनामूल्य आहे का?
होय. CFTC तो कोणतेही शुल्क न घेता प्रकाशित करते. तो पाहता येणाऱ्या tablesच्या आणि download करता येणाऱ्या filesच्या स्वरूपात उपलब्ध असतो. Commercial positioning products त्याच public dataचे charts आणि historyसह repackaging करतात.
Legacy आणि disaggregated COT reportsमध्ये काय फरक आहे?
Legacy marketला commercial, non-commercial आणि nonreportable positionsमध्ये विभागतो. Disaggregated physical commodity marketsना producer/merchant/processor/user, swap dealers, managed money आणि other reportablesमध्ये विभागतो. Financial marketsसाठी Traders in Financial Futures reportमध्ये याच पद्धतीची समांतर विभागणी केली जाते.
COT report प्रत्येक traderची position दाखवतो का?
नाही. तो CFTCच्या reporting levelsइतकी किंवा त्याहून अधिक position असलेल्या tradersची मोजणी करतो. यात साधारणतः marketच्या open interestपैकी 70 ते 90 टक्के भाग येतो. अशा levelsवर किमान 20 traders असतील, तेव्हाच market प्रकाशित केला जातो. Thresholdखालील सर्व tradersना एका anonymous nonreportable lineमध्ये एकत्र दाखवले जाते.
COT report price movesचा अंदाज लावू शकतो का?
तो तीन दिवसांच्या विलंबासह तयार केलेला position census आहे; forecast नाही. मंगळवारी मोठ्या tradersच्या positions कुठे होत्या, हे तो नोंदवतो. एखादी reading extreme असली तरी ती कधी संपेल, याची तारीख त्यातून मिळत नाही.
या pageवरील प्रत्येक आकडा minute-level price आणि volume historyवर आधारित stored queryमधून घेतलेला आहे. प्रत्येक panelखाली SQL खुले आहे. COT file पूर्वीप्रमाणेच दर शुक्रवारी Eastern timeनुसार दुपारी 3:30 वाजता विनामूल्य उपलब्ध राहते. Strasmore terminalवर तुम्ही follow करत असलेल्या marketsवर हीच panels चालवा.