Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

איך לקרוא את דוח ה-COT: הסבר על העמודות

מדריך מקיף לקריאת דוח ה-COT: הסבר על העמודות בטבלאות Legacy, Disaggregated ו-TFF, חישוב פוזיציה נטו והגבלות הדיווח החשובות שכל סוחר חייב להכיר בשוק החוזים.

הבנת דוח ה-COT

לימוד קריאת דוח ה-COT מתחיל במבנה שלו: דוח ה-Commitments of Traders הוא ספירה שבועית של פוזיציות פתוחות בחוזים עתידיים, הממוינות לפי סוג הסוחר המחזיק בהן, ומפורסמות על ידי ה-Commodity Futures Trading Commission. כל תא בדוח מייצג מספר חוזים, לעולם לא מחיר ולעולם לא תחזית. דף זה מניח שאתם מכירים את לוח הזמנים, המפורט ב-מועדי פרסום דוח ה-COT, ועוסק בפירוט העמודות, בחישוב הפוזיציה נטו, ובשתי מגבלות שראוי לציין במפורש.

מה באמת נספר בדוח ה-COT

כל נתון הוא ספירה של חוזים, המורכבת מדוחות פוזיציות שחברי סליקה ובורסות מגישים ל-CFTC. חשבון נכנס לדוח רק מעל רף דיווח מסוים, שנקבע בנפרד לכל שוק, וכל מה שמתחת לרף זה נכנס לסל שיורי אחד. שלושה מנגנונים גורמים לרוב הבלבול:

  • פוזיציות Long ו-Short מדווחות בנפרד, ושתיהן ברוטו. פירמה המחזיקה ארבעת אלפים חוזי Long ושלושת אלפים חוזי Short מופיעה בשתי העמודות, ולא כנטו של אלף.
  • Spreading מהווה עמודה נפרדת עבור קטגוריות הספקולנטים: פוזיציות Long ו-Short שוות ומקזזות באותו שוק, הנספרות פעם אחת.
  • Open interest הוא סך החוזים הפתוחים באותו תאריך. סכום ה-Long בכל הקטגוריות שווה לנתון זה, וכך גם סכום ה-Short.

דוח ה-Legacy: מסחריים, לא-מסחריים, ולא-מדווחים

זהו הפורמט הוותיק ביותר, ועדיין המצוטט ביותר. הוא ממיין סוחרים החייבים בדיווח לשתי קטגוריות ומרכז את כל היתר בקטגוריה שלישית.

  • מסחריים (Commercial): חשבון שהצהיר בפני ה-CFTC כי הוא משתמש בשוק כדי לגדר חשיפה עסקית בסיסית. דוגמאות לכך הן ממגורת תבואות, בית זיקוק, או בנק המגדר ספר עסקאות Swap.
  • לא-מסחריים (Non-commercial): חשבון החייב בדיווח ללא הצהרת גידור כזו. כאן נכללים ספקולנטים גדולים ותוכניות של מנהלי חוזים עתידיים.
  • לא-מדווחים (Non-reportable): כל מי שמתחת לסף הדיווח. נתון זה נגזר כשארית של סך ה-open interest פחות סך הלונג והשורט המדווחים, ולא נאסף ישירות.

הסיווג מוצהר על ידי הגוף המדווח בטופס ייעודי, וחברה המחזיקה הן דסק גידור והן דסק ספקולטיבי מסווגת לפי הפעילות הדומיננטית שלה.

הדו"ח המפורק: ארבע קטגוריות במקום שתיים

עבור סחורות פיזיות, ה-CFTC מפרסמת גם גרסה מפורקת (disaggregated), המפצלת את קטגוריית ה-commercial הישנה לשתיים ואת קטגוריית ה-non-commercial הישנה לשתיים.

  • יצרן, סוחר, מעבד, משתמש: משתתפי השוק הפיזי המבצעים גידור למלאי או לייצור.
  • סוחר סוואפ (Swap dealer): סוחר שפוזיציית החוזים העתידיים שלו מקזזת עסקאות סוואפ שנכתבו מול לקוחות, שעשויים להיות גדרנים או ספקולנטים; לכן, שורה זו מהווה זרם מעורב העובר דרך צד נגדי אחד.
  • כסף מנוהל (Managed money): יועצי מסחר בסחורות, מפעילי קרנות וקרנות גידור הסוחרים עבור לקוחות; זהו המרכיב הקרוב ביותר בדו"ח לקטגוריה של עוקבי מגמה.
  • מדווחים אחרים: חשבונות גדולים שאינם מתאימים לאף אחת מהקטגוריות לעיל.

דו"ח ה-TFF: קטגוריות לחוזים עתידיים פיננסיים

עבור אג"ח ממשלתיות (Treasuries), מדדי מניות ומטבעות, דו"ח ה-Traders in Financial Futures משתמש באוצר מילים רביעי:

  • Dealer/intermediary: צד ההיצע (sell side), בנקים ודילרים שבדרך כלל לוקחים את הצד השני של זרם הפקודות מהלקוחות, במקום להביע דעה שוקית.
  • Asset manager/institutional: קרנות פנסיה, חברות ביטוח, קרנות נאמנות וקרנות הקדש.
  • Leveraged funds: קרנות גידור ו-CTAs; זו השורה שאליה מתכוונים רוב האנשים כשהם אומרים "הקרנות בפוזיציית שורט".
  • Other reportables: חשבונות גדולים החייבים בדיווח שאינם נכללים בשלוש הקטגוריות הראשונות.

ה-TFF הוא חלוקה שונה של אותו ה-open interest, ולא חוות דעת שנייה על הטבלה המסורתית (legacy table), לכן השורות בו לא יתאימו באופן של אחד-לאחד לקטגוריות ה-commercial וה-non-commercial.

כיצד לחשב פוזיציית נטו מדו"ח ה-COT

חישוב הנטו עצמו פשוט: לונג פחות שורט, בתוך קטגוריה אחת. אסטרטגיות spread נותרות מחוץ לשני הצדדים מעצם הגדרתן, ובדו"ח מלא סכומי הנטו של הקטגוריות מתאפסים, שכן לכל חוזה לונג יש חוזה שורט מנגד.

השימוש בנתון הנטו הגולמי הוא המקור לטעויות בקריאת הנתונים. נטו של מאתיים אלף חוזים משמעותו אחת מול ריבית פתוחה (open interest) של שמונה מאות אלף, ומשמעות אחרת מול ארבעה מיליון. התיקון מתבצע באמצעות חילוק: נטו חלקי ריבית פתוחה נותן את הנתח שמחזיקה אותה קטגוריה, נתון שניתן להשוות לאורך זמן ובין חוזים שונים.

מיצוב ה-CFTC אינו מופיע בלוחות כאן, לכן אותה אריתמטיקה מיושמת להלן על נתונים שניתן להפיק באופן עצמאי. הבלוק סופר את חוזי ה-Call וה-Put של AAPL בכל חודש, ולאחר מכן מציג את ההפרש פעמיים: פעם אחת כערך גולמי ופעם אחת כשיעור מתוך סך הנפח החודשי, המהלך שעומד מאחורי כיצד מחושב יחס ה-put/call.

שאילתההפרש חוזי Call ל-Put ב-AAPL, במספר חוזים גולמי וכאחוז מהיקף המסחר
ה-SQL המדויק מאחורי כל מספר
SELECT
    toString(month_start)                       AS month,
    formatDateTime(month_start, '%b %Y')        AS month_label,
    round(call_volume / 1000, 0)                AS call_contracts_thousands,
    round(put_volume / 1000, 0)                 AS put_contracts_thousands,
    round((call_volume - put_volume) / 1000, 0) AS net_contracts_thousands,
    round(100 * (call_volume - put_volume) / total_volume, 1) AS net_share_pct
FROM
(
    SELECT
        toStartOfMonth(date)                        AS month_start,
        sumIf(volume, option_type IN ('call', 'C')) AS call_volume,
        sumIf(volume, option_type IN ('put', 'P'))  AS put_volume,
        sum(volume)                                 AS total_volume
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2024-01-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
    GROUP BY month_start
)
ORDER BY month_start
Run this yourself

ב-Jan 2024 עמד הנטו על 3294 אלף חוזים, או 18.9% מסך הנפח של אותו חודש. עד Jun 2026 עמד הנטו על 4671 אלף, בשיעור של 27.7%. לאורך כל 30 החודשים, הנטו הגולמי עולה ויורד בהתאם לרמת הפעילות בשוק, בעוד שהשיעור מנטרל את הפעילות הזו, בדיוק כפי שנטו בדו"ח COT מחושב מול הריבית הפתוחה.

מדוע אחוזון הוא מדד מהימן יותר מנתון נטו גולמי

ברגע שהנטו הופך למניה, השלב השני הוא היסטוריה. קטגוריה המחזיקה ב-12% מה-open interest נחשבת גבוהה או נמוכה רק בהשוואה להיסטוריה של אותו שוק. המסגור המקובל הוא אחוזון על פני טווח זמן של מספר שנים: שיעור התצפיות בעבר שהיו שוות או נמוכות מהקריאה הנוכחית.

למניות בארה"ב יש את "סרט המיצוב" שלהן. נתוני ה-short interest של FINRA מדווחים על מניות שנמכרו בחסר פעמיים בחודש, והמדד days to cover מחלק את הכמות הזו בממוצע הווליום היומי – אותה פעולת נרמול שמבצע הנטו ביחס ל-open interest. הפאנל להלן מצמיד שישה שמות מוכרים לקריאה האחרונה שלהם, ומדרג כל אחד מהם בתוך חמש השנים האחרונות שלו.

שאילתהימי כיסוי נוכחיים ומיקומם ההיסטורי בטווח של חמש שנים
ה-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
Run this yourself

הגבוה מבין השישה, NVDA, נמצא באחוזון ה-100 של טווח חמש השנים שלו, עם 2.47 ימי כיסוי (days to cover). הנמוך ביותר, XOM, נמצא באחוזון ה-76. עמודת המניות שנמכרו בחסר (raw shares-short) מציגה 324.1 מיליון מול 42.7 מיליון, ועמודה זו עוקבת אחרי גודל החברה יותר מאשר אחרי המיצוב; זו הסיבה שלא ניתן להשוות אותה בין שמות שונים. כך גם לגבי נתוני נטו ב-COT בין חוזים שונים.

האחוזון יכול להשתנות גם תחת מספר גולמי קבוע, ולהיפך. מעקב אחר שם אחד לאורך שלוש שנים ממחיש זאת.

שאילתהימי כיסוי ב-AAPL ודירוגם בטווח של שלוש שנים
ה-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
Run this yourself

לאורך 72 קריאות דו-חודשיות, היחס נשאר בתוך טווח צר, בעוד שקו האחוזון מכסה את רוב הטווח שבין אפס למאה. הקריאה האחרונה, ב-Jun 30, 2026, מדדה 1.73 ימי כיסוי, שהם האחוזון ה-17 של התקופה.

שתי המגבלות, מוצגות בבהירות

תמונת המצב היא של יום שלישי ומגיעה אליכם ביום שישי

הפוזיציות משקפות את מצב השוק בנעילת יום שלישי, והדו"ח מופץ ביום שישי אחר הצהריים. לכן, המידע המתואר בן שלושה ימי מסחר בעת הגעתו, וקטגוריה ששינתה כיוון ביום רביעי תציג את התמונה הישנה. הלוח להלן מודד את המרחק שגמא ה-SPY מכל נעילה של יום שלישי ועד לנעילת יום שישי שלאחריו.

שאילתהשינוי ב-SPY מסגירת יום שלישי לשישי, ועדכניות נתוני ה-COT
ה-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
Run this yourself

ב-2016, לאורך 51 זוגות של ימי שלישי עד שישי, התנועה המוחלטת החציונית נמדדה ב-0.88%, והעשירון הגרוע ביותר של הפערים כיסה לפחות 2.2%. ב-2026 החציון נמדד ב-1.26%. חוזים עתידיים על מדדי מניות עוקבים מקרוב אחר רצף זה, כך שקריאת COT של יום שישי מתארת שוק שכבר הספיק לזוז. נתוני הפוזיציות מתארים את יום שלישי האחרון, לא את המצב הנוכחי.

"המסחריים תמיד צודקים" הוא פולקלור

בשוקי סחורות פיזיים רבים, הקטגוריה המסחרית היא בפוזיציית שורט מבנית, שכן יצרנים מגדרים תפוקה שכבר נמצאת בבעלותם. נטו שלילי כמעט בכל שבוע לאורך עשור הוא מאפיין של הסיווג, לא תיעוד של הצלחה. הפיכת כל קטגוריית COT לטענה מחייבת הגדרת אופק זמן, סף מוגדר, מדגם הכולל את התקופות שבהן היא נכשלה, וספירה כנה של כמה ספים נוסו לפני כן. אותה משמעת חלה על כל מדד למיצוב קהל, כולל זה שנבחן ב-האם יחס Put/Call גבוה הוא שורי.

קריאת דוח ה-CFTC הגולמי באופן עצמאי

אין צורך במדד סטייה בתשלום כדי לבצע זאת. ה-CFTC מפרסמת את הדוח השבועי בעמוד ה-Commitments of Traders הייעודי שלה, בפורמט קצר וארוך, בגרסאות של חוזים עתידיים בלבד או שילוב של חוזים עתידיים ואופציות, כקובץ טקסט מופרד בפסיקים לצד ארכיוני היסטוריה המגיעים עד שנת אלף תשע מאות שמונים ושש. שני הרגלים שומרים על אמינות הגיליון האלקטרוני: בחרו גרסה אחת והתמידו בה, שכן המספרים עבור חוזים עתידיים בלבד ואלו המשולבים שונים עבור אותו שבוע, וחשבו את האחוזון על בסיס החלק היחסי ולא על בסיס הנטו הגולמי.

שאלות נפוצות

מה המשמעות של "מסחרי" ו"לא-מסחרי" בדוח ה-COT?

סוחרים מסחריים מצהירים בפני ה-CFTC כי הם משתמשים בשוק כדי לגדר חשיפה עסקית, כגון יצרן המגדר את תפוקתו או בנק המגדר ספר עסקאות Swap. סוחרים לא-מסחריים הם חשבונות החייבים בדיווח ללא טענת גידור כזו, ורובם ספקולנטים גדולים ותוכניות Managed Futures. הסיווג נקבע על פי הצהרה עצמית.

האם דוח ה-COT מתפרסם בעיכוב?

כן. הפוזיציות נרשמות בנעילת המסחר של יום שלישי ומתפרסמות ביום שישי אחר הצהריים, כך שהנתונים בני שלושה ימי מסחר בעת הגעתם אליך.

האם קיים דוח COT למניות?

לא עבור מניות בודדות. המקבילות הקרובות ביותר הן דיווחים על יתרות שורט המתפרסמים פעמיים בחודש ונתוני חוב המרג'ין של FINRA המתפרסמים מדי חודש; שניהם מגיעים בפיגור ושניהם מספקים תובנה טובה יותר כערך אחוזוני מאשר כסכום גולמי.


כל פאנל כאן מגיע עם ה-SQL שיצר אותו. פתח אחד, החלף את ה-ticker, ואותה אריתמטיקה תרוץ על כל שם בטרמינל Strasmore.