असामान्य ऑप्शंस गतिविधि पिछले सत्र का विवरण
US options tape के अनुसार असामान्य ऑप्शंस गतिविधि का विश्लेषण। जानें कौन से assets का वॉल्यूम 20-session औसत से अधिक रहा और calls एवं puts का अनुपात क्या था।
असामान्य ऑप्शंस गतिविधि (unusual options activity) का अर्थ है कि किसी एक अंडरलाइंग एसेट के ऑप्शंस कॉन्ट्रैक्ट्स का ट्रेडिंग वॉल्यूम उसके हालिया सामान्य वॉल्यूम से काफी अधिक है। यह बोर्ड पिछले पूर्ण ऑप्शंस सत्र के लिए इसे रैंक करता है, Jul 21: उसी अंडरलाइंग के पिछले 20 सत्रों के औसत वॉल्यूम के मुकाबले कुल ट्रेड किए गए कॉन्ट्रैक्ट्स। ऑप्शंस डेटा इक्विटी डेटा के बाद अपडेट होता है, इसलिए यहाँ दिया गया सत्र आज का नहीं, बल्कि हमारे डेटा में उपलब्ध सबसे नया पूर्ण सत्र है।
तालिका देखने से पहले एक बात स्पष्ट कर लें: यह एक वॉल्यूम स्क्रीन है। अधिकांश प्रकाशित असामान्य-ऑप्शंस अलर्ट एक दिन के वॉल्यूम की तुलना ओपन इंटरेस्ट (open interest) से करते हैं, जो क्लोजिंग के बाद बकाया कॉन्ट्रैक्ट्स की संख्या होती है। हमारे पास मौजूद ऑप्शंस डेटा में केवल ट्रेड दर्ज होते हैं, पोजीशन नहीं, और इसमें कहीं भी ओपन-इंटरेस्ट फील्ड नहीं है। नीचे दिया गया प्रत्येक अनुपात एक अंडरलाइंग के वॉल्यूम की तुलना उसके स्वयं के वॉल्यूम इतिहास से करता है। ऑप्शंस वॉल्यूम बनाम ओपन इंटरेस्ट बताता है कि प्रत्येक माप क्या जानकारी देता है।
असामान्य ऑप्शंस गतिविधि: पिछला पूर्ण सत्र
हर आंकड़े के पीछे का पूरा SQL
WITH tape AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(volume)) AS vol
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
GROUP BY d
),
ranked AS (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
FROM tape
),
cal AS (
SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
FROM (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
FROM ranked
WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
)
),
day_root AS (
SELECT substring(ticker, 3, length(ticker) - 17) AS root,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(volume)) AS vol
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
GROUP BY root, d
),
scored AS (
SELECT r.root AS root,
sumIf(r.vol, c.rn = 1) AS last_vol,
avgIf(r.vol, c.rn BETWEEN 2 AND 21) AS base_vol,
maxIf(r.vol, c.rn BETWEEN 2 AND 21) AS prior_high,
countIf(c.rn BETWEEN 2 AND 21) AS root_sessions,
max(c.baseline_sessions) AS baseline_session_count,
maxIf(toYYYYMMDD(c.d), c.rn = 1) AS session_id,
maxIf(formatDateTime(c.d, '%b %e'), c.rn = 1) AS session_label
FROM day_root r INNER JOIN cal c ON r.d = c.d
WHERE c.rn <= 21
AND r.root NOT IN ('SPCX')
AND r.root NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
GROUP BY r.root
HAVING last_vol >= 25000 AND base_vol >= 5000 AND root_sessions >= 18
)
SELECT root AS ticker,
round(last_vol / base_vol, 1) AS vol_ratio,
round(last_vol / 1000, 1) AS session_volume_k,
round(base_vol / 1000, 1) AS baseline_volume_k,
round(prior_high / 1000, 1) AS prior_high_volume_k,
session_label,
session_id,
baseline_session_count
FROM scored
ORDER BY vol_ratio DESC, ticker ASC
LIMIT 10तीन कॉलम डेटा प्रदान करते हैं। अनुपात (ratio) यह बताता है कि अंडरलाइंग एसेट का ट्रेड अपने सामान्य स्तर से कितना ऊपर रहा। बेसलाइन सामान्य स्तर को दर्शाती है; कम वॉल्यूम वाले स्टॉक में बड़ा मल्टीपल एक छोटे इवेंट के समान है, जबकि अधिक वॉल्यूम वाले स्टॉक में मामूली मल्टीपल भी महत्वपूर्ण हो सकता है। 20-सेशन हाई यह बताता है कि क्या इस सत्र ने पिछले महीने के किसी स्तर को पार किया है। अंतिम तीन कॉलम ऑडिट ट्रेल हैं: बोर्ड किस सत्र पर आधारित है (लेबल और संख्या के रूप में), और बेसलाइन के पीछे पात्र सत्रों की संख्या, जो इस पेज के प्रकाशन के लिए 20 होनी चाहिए।
ASST2 अपने औसत के 6.7x पर शीर्ष पर है: 76 हजार कॉन्ट्रैक्ट्स, जबकि बेसलाइन 11.3 हजार है, और पिछला 20-सेशन हाई 201.1 हजार था।
- MMM 6.3x पर: 10.4 हजार बेसलाइन के मुकाबले 64.9 हजार कॉन्ट्रैक्ट्स।
- DHR 5.2x पर, 5.5 हजार बेसलाइन पर 28.6 हजार कॉन्ट्रैक्ट्स।
- GM 3.5x पर, 57.2 हजार के 20-सेशन हाई के मुकाबले 58.8 हजार कॉन्ट्रैक्ट्स।
- CVS 59.3 हजार कॉन्ट्रैक्ट्स पर 3.2x पर।
बोर्ड की अंतिम पंक्ति, HAL, अभी भी अपने औसत के 2.6x पर ट्रेड कर रहा है। मल्टीपल और साइज अलग-अलग रीडिंग हैं, इसलिए दोनों बोर्ड पर दिए गए हैं। इसी तरह का शेयर-मार्केट संस्करण इस सप्ताह के असामान्य वॉल्यूम वाले स्टॉक्स में उपलब्ध है, और इसकी गणना रिलेटिव वॉल्यूम में विस्तार से दी गई है।
Calls या puts: मार्केट का रुझान
Call और put वॉल्यूम के बीच का अंतर ही किसी अलर्ट का मुख्य संकेत होता है। एक ही सत्र के डेटा को call शेयर के आधार पर क्रमबद्ध किया गया है:
हर आंकड़े के पीछे का पूरा SQL
WITH tape AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(volume)) AS vol
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
GROUP BY d
),
ranked AS (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
FROM tape
),
cal AS (
SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
FROM (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
FROM ranked
WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
)
),
day_root AS (
SELECT substring(ticker, 3, length(ticker) - 17) AS root,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(volume)) AS vol,
sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') AS calls,
sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P') AS puts
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
GROUP BY root, d
),
scored AS (
SELECT r.root AS root,
round(sumIf(r.vol, c.rn = 1) / avgIf(r.vol, c.rn BETWEEN 2 AND 21), 1) AS vol_ratio,
sumIf(r.calls, c.rn = 1) AS calls,
sumIf(r.puts, c.rn = 1) AS puts,
maxIf(toYYYYMMDD(c.d), c.rn = 1) AS session_id
FROM day_root r INNER JOIN cal c ON r.d = c.d
WHERE c.rn <= 21
AND r.root NOT IN ('SPCX')
AND r.root NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
GROUP BY r.root
HAVING sumIf(r.vol, c.rn = 1) >= 25000
AND avgIf(r.vol, c.rn BETWEEN 2 AND 21) >= 5000
AND countIf(c.rn BETWEEN 2 AND 21) >= 18
),
board AS (
SELECT root, vol_ratio, calls, puts, session_id
FROM scored
ORDER BY vol_ratio DESC, root ASC
LIMIT 10
)
SELECT root AS ticker,
round(calls / 1000, 1) AS call_volume_k,
round(puts / 1000, 1) AS put_volume_k,
round(100.0 * calls / (calls + puts), 0) AS call_share_pct,
session_id
FROM board
WHERE calls + puts > 0
ORDER BY call_share_pct DESC, ticker ASCCall-heavy श्रेणी में, ASST2 ने अपने 100% कॉन्ट्रैक्ट्स calls में डाले: 76 हजार calls के मुकाबले 0 हजार puts। इसी टेबल के दूसरे छोर पर, WBD ने 25% calls ट्रेड किए, जिसमें 78.6 हजार calls के मुकाबले 239.7 thousand puts थे।
इस विभाजन का विश्लेषण करना महत्वपूर्ण है, लेकिन इसे गलत समझना भी आसान है। प्रत्येक ट्रेड किए गए कॉन्ट्रैक्ट में एक खरीदार और एक विक्रेता होता है, और मार्केट डेटा यह रिकॉर्ड नहीं करता कि ट्रेड किस पक्ष द्वारा शुरू किया गया था। भारी call वॉल्यूम एक सीधी long पोजीशन हो सकती है, या यह विक्रेता द्वारा पहले से मौजूद स्टॉक के खिलाफ लिखा गया एक covered call भी हो सकता है। Call options की खरीद और बिक्री में बताया गया है कि इस ट्रेड के प्रत्येक पक्ष की क्या भूमिका होती है। जहाँ वॉल्यूम अधिक होता है, वहाँ विकल्प (option) की कीमतें भी आमतौर पर अधिक होती हैं, जो highest implied volatility stocks बोर्ड का विषय है।
सत्र के कॉन्ट्रैक्ट्स का विवरण
हर आंकड़े के पीछे का पूरा SQL
WITH tape AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(volume)) AS vol
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
GROUP BY d
),
ranked AS (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
FROM tape
),
cal AS (
SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
FROM (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
FROM ranked
WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
)
),
bars AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(volume) AS v,
toDate(concat('20', substring(ticker, length(ticker) - 14, 2), '-',
substring(ticker, length(ticker) - 12, 2), '-',
substring(ticker, length(ticker) - 10, 2))) AS expiry
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime(today() - 12, 'America/New_York')
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM cal WHERE rn = 1)
),
scored AS (
SELECT multiIf(expiry - d <= 0, 1, expiry - d <= 7, 2, expiry - d <= 30, 3,
expiry - d <= 90, 4, expiry - d <= 365, 5, 6) AS bk,
v, d
FROM bars
)
SELECT arrayElement(['same day', '1 to 7 days', '8 to 30 days', '31 to 90 days', '91 to 365 days', 'over a year'], bk) AS dte_bucket,
round(sum(v) / 1e6, 2) AS contracts_m,
round(100.0 * sum(v) / sum(sum(v)) OVER (), 1) AS pct_of_volume,
toYYYYMMDD(max(d)) AS session_id
FROM scored
GROUP BY bk
ORDER BY bk ASCउसी दिन समाप्त होने वाले (same-day expiries) कॉन्ट्रैक्ट्स का हिस्सा 29.7% था, जो 16.85 मिलियन कॉन्ट्रैक्ट्स के बराबर है। अन्य 30.8% कॉन्ट्रैक्ट्स एक सप्ताह के भीतर समाप्त हो गए। सबसे कम हिस्से में, एक वर्ष से अधिक की अवधि वाले कॉन्ट्रैक्ट्स का हिस्सा 2.1% था।
इस मिश्रण के कारण असामान्य गतिविधि (unusual-activity) वाली हेडलाइन का अर्थ बदल जाता है। इस तरह के बोर्ड में अधिकांश वॉल्यूम कम अवधि वाले कॉन्ट्रैक्ट्स का होता है, और उसी दिन समाप्त होने वाले कॉन्ट्रैक्ट्स को कैरी करने के बजाय क्लोजिंग बेल तक सेटल कर दिया जाता है। 0DTE options इस श्रेणी को कवर करता है।
क्या यह एक एक्सपायरी सत्र था?
मासिक एक्सपायरी के दौरान पूरे बाजार में ऑप्शंस वॉल्यूम बढ़ जाता है, क्योंकि इस समय लिस्टेड कॉन्ट्रैक्ट्स का सबसे बड़ा हिस्सा एक साथ समाप्त हो जाता है। एक्सपायरी के दिन रेशियो स्क्रीन (ratio screen) बाजार के आधे हिस्से को चिह्नित करती है, इसलिए नीचे दिया गया पैनल इस विंडो के प्रत्येक सत्र को लेबल करता है।
हर आंकड़े के पीछे का पूरा SQL
WITH tape AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(volume)) AS vol
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
GROUP BY d
),
ranked AS (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
FROM tape
),
cal AS (
SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
FROM (
SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
FROM ranked
WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
)
),
w AS (
SELECT d, vol,
toStartOfMonth(d) + toIntervalDay(((5 - toDayOfWeek(toStartOfMonth(d)) + 7) % 7) + 14) AS third_friday
FROM cal
WHERE rn <= 25
),
marked AS (
SELECT d, vol,
(d = max(if(d <= third_friday, d, toDate('1970-01-01'))) OVER (PARTITION BY toStartOfMonth(d)))
AND (third_friday <= max(d) OVER ()) AS is_expiry
FROM w
),
latest AS (
SELECT d, vol, is_expiry,
max(if(is_expiry, d, toDate('1970-01-01'))) OVER () AS last_expiry_d
FROM marked
)
SELECT formatDateTime(d, '%b %e') AS session,
round(vol / 1e6, 1) AS contracts_m,
multiIf(is_expiry, 'monthly expiration', 'ordinary') AS session_type,
round(max(if(d = last_expiry_d, vol, 0)) OVER () / 1e6, 1) AS monthly_expiry_m,
toYYYYMMDD(d) AS session_id
FROM latest
ORDER BY d ASCइस पैनल में सबसे नया सत्र वह है जिसे बोर्ड रिपोर्ट करता है, दोनों तालिकाओं में एक ही तारीख है, और इसका लेबल ordinary है। पूरे US मार्केट में 56.8 मिलियन कॉन्ट्रैक्ट्स ट्रेड हुए। इसी विंडो के भीतर सबसे हालिया मासिक एक्सपायरी में 76.8 मिलियन ट्रेड हुए। बोर्ड पर प्रत्येक रेशियो के पीछे का 20-सत्र का बेसलाइन में आमतौर पर ठीक एक मासिक एक्सपायरी शामिल होती है, इसलिए हर सत्र में डिनोमिनेटर (denominator) में समान राशि रहती है।
क्या असामान्य ऑप्शंस गतिविधि स्टॉक का नेतृत्व करती है?
महत्वपूर्ण प्रश्न यह है कि क्या भारी ऑप्शंस सत्र के बाद अंडरलाइंग स्टॉक में बड़ी हलचल होती है। पिछले 200 दिनों के डेटा के आधार पर: प्रत्येक नाम-सत्र (name-session) ने अपने वॉल्यूम फ्लोर को पार किया, जिसे अनुपात के आधार पर वर्गीकृत किया गया और अगले सत्र में अंडरलाइंग के क्लोजिंग प्राइस में हुए पूर्ण परिवर्तन (absolute change) के साथ तुलना की गई। प्रत्येक कॉलम उस नाम के उस अवधि के दौरान औसत दैनिक परिवर्तन (median daily change) को दर्शाता है, जिससे प्रत्येक बकेट की तुलना स्वयं से की जाती है।
हर आंकड़े के पीछे का पूरा SQL
WITH daily AS (
SELECT underlying_symbol AS sym,
date AS d,
sum(volume) AS vol,
max(underlying_close) AS px
FROM global_markets.options_greeks
WHERE date >= today() - 200
AND underlying_close > 0
AND underlying_symbol NOT IN ('SPCX')
AND underlying_symbol NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND underlying_symbol NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 230 AND today())
GROUP BY sym, d
),
seq AS (
SELECT sym, d, vol, px,
avg(vol) OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS base,
count() OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS base_n,
any(px) OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) AS next_px,
any(px) OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM daily
),
moves AS (
SELECT sym, vol, base, base_n,
if(next_px > 0, 100 * abs(next_px / px - 1), -1) AS next_abs,
if(next_px > 0, 100 * (next_px / px - 1), -999) AS next_signed,
if(prev_px > 0, 100 * abs(px / prev_px - 1), -1) AS own_abs
FROM seq
),
typical AS (
SELECT sym, quantileExact(0.5)(own_abs) AS typ
FROM moves
WHERE own_abs >= 0
GROUP BY sym
)
SELECT arrayElement(['5x or more', '3x to 5x', '2x to 3x', '1x to 2x', 'below 1x'], bk) AS rvol_bucket,
count() AS event_count,
round(quantileExact(0.5)(next_abs), 2) AS median_next_move_pct,
round(quantileExact(0.5)(typ), 2) AS median_typical_move_pct,
round(quantileExact(0.5)(next_abs) - quantileExact(0.5)(typ), 2) AS gap_pp,
round(quantileExact(0.5)(next_signed), 2) AS median_next_signed_pct
FROM (
SELECT m.sym AS sym,
multiIf(m.vol / m.base >= 5, 1, m.vol / m.base >= 3, 2, m.vol / m.base >= 2, 3,
m.vol / m.base >= 1, 4, 5) AS bk,
m.next_abs AS next_abs,
m.next_signed AS next_signed,
t.typ AS typ
FROM moves m INNER JOIN typical t ON m.sym = t.sym
WHERE m.base_n = 20 AND m.base >= 5000 AND m.vol >= 25000 AND m.next_abs >= 0
)
GROUP BY bk
ORDER BY bk ASCअपने बेसलाइन से पांच गुना या उससे अधिक के सत्र के बाद, अगले सत्र में औसत पूर्ण परिवर्तन 2.61% था, जबकि सामान्य दिन पर उन्हीं नामों के लिए यह 1.98% था, जो 0.63 प्रतिशत अंकों का अंतर है। तालिका के सबसे शांत हिस्से में, दोनों कॉलम 1.89% और 2.11% हैं, जिनके बीच -0.22 अंकों का अंतर है।
इसका सटीक उत्तर यह है कि यह अंतर छोटा है, और यह दिशा के बजाय आकार (size) से संबंधित है। भारी ऑप्शंस सत्रों के बाद पूर्ण रूप (absolute terms) में थोड़ी बड़ी हलचल देखी जाती है, और मीडियन (median) पर यह अंतर एक प्रतिशत बिंदु का अंश मात्र है। पांच गुना वाले दिन के बाद सत्र का मीडियन साइन्ड चेंज (signed change) -0.35% था, और बेसलाइन से नीचे वाले दिन -0.06% था। इनमें से कोई भी हलचल वैसी नहीं है जैसी सुर्खियाँ संकेत देती हैं। दुर्लभता पर भी ध्यान देना आवश्यक है: अध्ययन अवधि के दौरान 638 नाम-सत्रों ने अपने बेसलाइन से पांच गुना अधिक वॉल्यूम पार किया, जबकि 11466 ने इससे कम ट्रेड किया।
इस स्क्रीन को कैसे मापा जाता है
छिपे हुए नियमों वाली स्क्रीन डेटा के रूप में पढ़ी जाती है, जो वास्तव में एक राय है, इसलिए यहाँ हर नियम दिया गया है।
- स्रोत (Source)। पूर्ण US options minute tape। प्रत्येक अनुबंध के OCC symbol से underlying को अलग किया जाता है, इसलिए index option roots और same-day expiries को भी साधारण stock और fund chains के साथ शामिल किया जाता है।
- अनुपात (The ratio)। पिछले पूर्ण सत्र का कुल contract volume, उसी underlying के पिछले 20 पात्र सत्रों के औसत से विभाजित। उन 20 में से कम से कम 18 में volume होना चाहिए। बोर्ड एक अलग कॉलम में window length दिखाता है। यदि window 20 से कम है, तो यह 20-session लेबल के तहत छोटा औसत प्रकाशित करने के बजाय डेटा को रोक देता है।
- फ्लोर (Floors)। सत्र में 25,000 contracts और 5,000-contract का baseline। इनके बिना, बोर्ड ऐसी chains से भर जाएगा जहाँ एक order भी 10x रीडिंग दे सकता है।
- सत्र पात्रता (Session eligibility)। इस पृष्ठ का प्रत्येक पैनल उसी tape के 45-दिवसीय window से अपने सत्र पढ़ता है। इसके लिए एक नियम है: एक सत्र तब गिना जाता है जब बाजार-व्यापी volume उस window के पुराने सत्रों के median के 75% तक पहुँच जाता है। नवीनतम दिन को उस median से बाहर रखा जाता है जिसे उसे पार करना है, ताकि आंशिक रूप से लोड हुआ दिन अपने स्वयं के bar को कम न कर सके। Tape टुकड़ों में सामने आता है, और एक दिन जिसमें सामान्य सत्र के तीन-चौथाई से कम volume होता है, वह पूरा होने तक बोर्ड से बाहर रहता है। प्रत्येक पैनल उस सत्र को प्रिंट करता है जिस पर वह समाप्त हुआ है, ताकि चारों की तुलना की जा सके।
- अपवर्जन (Exclusions)। Leveraged और inverse funds को नाम से हटा दिया जाता है: एक 3x product की chain अपने multiplier के साथ चलती है और हर सप्ताह सूची को भर देगी। एक पुन: उपयोग किया गया ticker symbol भी बाहर रखा गया है, क्योंकि vendor history उसके तहत दो कंपनियों को जोड़ती है।
- कोई open interest नहीं। warehouse में कोई open-interest field नहीं है, इसलिए इस पृष्ठ पर कुछ भी volume की तुलना outstanding positions से नहीं करता है। जहाँ किसी प्रतिस्पर्धी की screen कहती है कि volume ने open interest को पीछे छोड़ दिया है, हमारा डेटा कहता है कि volume ने अपने स्वयं के 20-session औसत को पीछे छोड़ दिया है।
- समाप्ति के दिन (Expiration days)। मासिक समाप्ति (Monthly expiration) पूरे बाजार में options volume बढ़ा देती है। सत्र पैनल इस स्थिति को लेबल करता है। समाप्ति सत्र पर बने बोर्ड को अन्य समाप्ति सत्रों के विरुद्ध पढ़ा जाना चाहिए।
Follow-through study एक दूसरी तालिका, daily options greeks file का उपयोग करता है, जिसमें एक साफ underlying symbol और underlying का close होता है। यह same-day expiries और index options को बाहर रखता है और minute tape की तुलना में कुछ सत्र बाद settle होता है, इसलिए इसका universe बोर्ड की तुलना में संकीर्ण है। अध्ययन window के भीतर stock split वाले नामों को हटा दिया जाता है, क्योंकि split एक बड़ी हलचल का आभास कराता है।
FAQ
Unusual options activity क्या है?
जब किसी underlying asset का एक सत्र (session) में होने वाला option contracts का व्यापार उसके हालिया औसत से कहीं अधिक होता है, तो उसे unusual options activity कहा जाता है। इस पेज पर threshold संपादकीय (editorial) के बजाय गणितीय है: सत्र का contract volume, उस underlying के पिछले 20 सत्रों के औसत volume से विभाजित किया जाता है। इसके लिए सत्र में न्यूनतम 25,000 contracts और आधार (baseline) पर 5,000 contracts का floor निर्धारित है।
क्या unusual options activity स्टॉक की चाल का पूर्वानुमान लगाती है?
यह बहुत कम और बिना किसी निश्चित दिशा के करती है। हमारे पिछले 200 दिनों के डेटा के अनुसार, जब किसी underlying का volume उसके अपने baseline से पांच गुना अधिक था, तो उसके अगले सत्र में median absolute move 2.61% था, जबकि सामान्य दिनों में यह 1.98% था। अगले सत्र में median signed change -0.35% था, जिसका अर्थ है कि volume ने स्टॉक के उतार-चढ़ाव की सीमा के बारे में तो संकेत दिया, लेकिन दिशा के बारे में बहुत कम जानकारी दी।
Options volume डेटा कब अपडेट किया जाता है?
सत्र के दौरान contract volume live consolidated options tape पर दिखाई देता है। इस पेज के पीछे का stored tape कुछ देरी (lag) के साथ settle होता है, इसलिए यह बोर्ड वर्तमान में चल रहे सत्र के बजाय नवीनतम पूर्ण सत्र की रिपोर्ट करता है और उसकी तारीख अंकित करता है। यहाँ दी गई कोई भी जानकारी real-time feed नहीं है।
यह unusual options activity scanner open interest का उपयोग क्यों नहीं करता है?
Open interest बाजार बंद होने के बाद clearinghouse द्वारा प्रकाशित किया जाता है, और हमारे पास मौजूद डेटा में open-interest का कोई field नहीं है। किसी सत्र के volume की तुलना उसी underlying के volume history से करना tape से सीधे मापा जा सकता है, और यह एक समान प्रश्न का उत्तर देता है: क्या यह chain सामान्य से अधिक व्यस्त है।
ऊपर दिए गए सभी नंबर एक stored, versioned query हैं। माप (measurement) की जांच करने के लिए किसी भी पैनल के नीचे SQL खोलें, या Strasmore terminal पर अपनी पसंद की किसी भी window पर यही screen चलाएं।