غیر معمولی Options Activity: گزشتہ سیشن
مکمل US options tape کی درجہ بندی: وہ underlyings جن کی تجارت گزشتہ بیس سیشنز کی اوسط سے کہیں زیادہ رہی اور calls اور puts کی تقسیم کا تجزیہ۔
غیر معمولی آپشنز سرگرمی (unusual options activity) کا مطلب یہ ہے کہ ایک underlying کے لیے ایک سیشن میں معمول کے مقابلے میں کہیں زیادہ option contracts کی تجارت کی گئی ہو۔ یہ بورڈ گزشتہ مکمل شدہ آپشنز سیشن، Jul 22 کے لیے اس کی درجہ بندی کرتا ہے: جس میں اسی underlying کے گزشتہ بیس سیشنز کی اوسط کے مقابلے میں تجارت کیے گئے کل contracts کا موازنہ کیا گیا ہے۔ آپشنز ٹیپ، ایکویٹی ٹیپ کے بعد سیٹل ہوتی ہے، اس لیے یہاں ذکر کردہ سیشن ہمارے ڈیٹا میں موجود تازہ ترین مکمل سیشن ہے نہ کہ آج کا سیشن۔
ٹیبل سے پہلے ایک بات واضح کرنا ضروری ہے: یہ ایک والیم اسکرین ہے۔ شائع ہونے والے زیادہ تر غیر معمولی آپشنز الرٹس ایک دن کے والیم کا موازنہ open interest سے کرتے ہیں، جو کہ کلوزنگ کے بعد باقی رہ جانے والے contracts کی تعداد ہوتی ہے۔ ہم جو آپشنز ٹیپ اسٹور کرتے ہیں وہ trades کو ظاہر کرتی ہے، positions کو نہیں، اور اس میں کہیں بھی open-interest کا فیلڈ موجود نہیں ہے۔ نیچے دیا گیا ہر تناسب ایک underlying کے والیم کا موازنہ اس کی اپنی والیم ہسٹری سے کرتا ہے۔ آپشنز والیم بمقابلہ اوپن انٹرسٹ میں بتایا گیا ہے کہ ہر پیمائش کس سوال کا جواب دیتی ہے۔
آپشنز کی غیر معمولی سرگرمی: آخری مکمل سیشن
ہر عدد کے پیچھے موجود درست 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) یہ بتاتا ہے کہ انڈرلائنگ (underlying) اپنی معمول کی حد سے کتنا اوپر ٹریڈ ہوا۔ بیس لائن (baseline) بتاتی ہے کہ معمول کی حد کیا تھی؛ ایک کم فعال چین پر زیادہ ملٹی پل کا مطلب ایک چھوٹا واقعہ ہے، جبکہ ایک فعال چین پر مناسب ملٹی پل زیادہ اہم ہوتا ہے۔ 20-سیشن ہائی یہ بتاتا ہے کہ آیا موجودہ سیشن نے گزشتہ مہینے کے کسی بھی سیشن کو پیچھے چھوڑا یا نہیں۔ آخری تین کالمز آڈٹ ٹریل ہیں: وہ سیشن جس سے بورڈ تیار کیا گیا ہے (لیبل اور سادہ نمبر کی صورت میں)، اور ان اہل سیشنز کی تعداد جو بیس لائن کے پیچھے ہیں، جس کی تعداد صفحہ شائع ہونے کے لیے بیس ہونا ضروری ہے۔
CVS بورڈ میں سب سے اوپر ہے اور اپنی اوسط سے 7.2 گنا زیادہ ہے: 138.2 ہزار کانٹریکٹس بمقابلہ 19.3 ہزار کی بیس لائن، جبکہ گزشتہ 20-سیشن ہائی 59.3 ہزار تھا۔
- INFY جو کہ 4.2 گنا ہے: 29.5 ہزار کانٹریکٹس بمقابلہ 7 ہزار کی بیس لائن۔
- GM جو کہ 3.6 گنا ہے، 67.1 ہزار کانٹریکٹس 18.6 ہزار کی بیس لائن پر۔
- SMCI جو کہ 3.6 گنا ہے، 737 ہزار کانٹریکٹس بمقابلہ 20-سیشن ہائی 361.8 ہزار۔
- WDAY جو کہ 3.6 گنا ہے، 28 ہزار کانٹریکٹس پر۔
بورڈ کی آخری لائن، NUAI، اب بھی اپنی اوسط سے 3 گنا زیادہ ٹریڈ ہوئی۔ ملٹی پل اور سائز الگ الگ ریڈنگز ہیں، اسی لیے دونوں بورڈ پر موجود ہیں۔ اسی تصور کا شیئر مارکیٹ ورژن اس ہفتے کے غیر معمولی والیم والے اسٹاکس میں موجود ہے، اور اس کی حسابی تفصیلات ریلیٹیو والیم میں واضح کی گئی ہیں۔
کالز یا پٹس: ٹیپ کی سمت
کال اور پٹ والیم کے درمیان تقسیم وہ بنیادی چیز ہے جس کی طرف ایک الرٹ اشارہ کرتا ہے۔ ایک ہی بورڈ، ایک ہی سیشن، کال شیئر کے لحاظ سے ترتیب دیا گیا:
ہر عدد کے پیچھے موجود درست 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 ASCکالز کی بھاری مقدار والے سرے پر، CVS نے اپنے 95% کنٹریکٹس کالز میں ڈالے: 130.7 ہزار کالز بمقابلہ 7.5 ہزار پٹس۔ اسی ٹیبل کے دوسرے سرے پر، WDAY نے 30% کالز چلائیں، 8.3 ہزار بمقابلہ 19.7 ہزار پٹس۔
اس تقسیم کو پڑھنا ضروری ہے لیکن اس کی غلط تشریح بھی آسان ہے۔ ہر پرنٹ شدہ کنٹریکٹ کا ایک خریدار اور ایک فروخت کنندہ ہوتا ہے، اور ٹیپ یہ ریکارڈ نہیں کرتا کہ کس طرف سے آغاز کیا گیا۔ کال والیم کی زیادتی ایک مکمل long پوزیشن ہو سکتی ہے یا ایک covered call جو اس اسٹاک کے عوض لکھی گئی ہو جو فروخت کنندہ کے پاس پہلے سے موجود ہے۔ کال آپشنز کی خرید و فروخت اس بات کی وضاحت کرتا ہے کہ اس ٹریڈ کی ہر سائیڈ کیا ذمہ داری لیتی ہے۔ جہاں ٹیپ زیادہ فعال ہوتا ہے، وہاں آپشن قیمتیں بھی عام طور پر زیادہ ہوتی ہیں، جو کہ اعلیٰ implied volatility والے اسٹاکس بورڈ کا موضوع ہے۔
سیشن کے کنٹریکٹس کی تفصیلات
ہر عدد کے پیچھے موجود درست 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سیشن کے کل حجم میں سے 36.3% حصہ اسی دن ختم ہونے والی ایکسپائریز (expiries) کا تھا، جو کہ 20.1 ملین کنٹریکٹس بنتے ہیں۔ مزید 27.1% کنٹریکٹس ایک ہفتے کے اندر ختم ہو گئے۔ دوسری جانب، ایک سال سے زائد مدت والے کنٹریکٹس کا حصہ 1.2% رہا۔
یہ ملاپ اس بات پر اثر انداز ہوتا ہے کہ غیر معمولی سرگرمی (unusual-activity) کی سرخیوں کو کیسے پڑھا جائے۔ اس طرح کے کسی بھی بورڈ کے پیچھے زیادہ تر والیم شارٹ-ڈیٹڈ (short-dated) ہوتا ہے، اور اسی دن ختم ہونے والا کنٹریکٹ آگے لے جانے کے بجائے کلوزنگ بیل تک سیٹل ہو جاتا ہے۔ 0DTE آپشنز اس سلسلے کے اس حصے کی وضاحت کرتے ہیں۔
کیا یہ ایکسپائریشن سیشن تھا؟
ماہانہ ایکسپائریشن کے موقع پر پوری مارکیٹ میں Options والیم بڑھ جاتا ہے، کیونکہ لسٹڈ کنٹریکٹس کا سب سے بڑا بلاک ایک ساتھ ختم ہوتا ہے۔ ایکسپائریشن کے دن رن کیا گیا ریشو اسکرین مارکیٹ کے نصف حصے کو فلیگ کر دیتا ہے، اس لیے نیچے موجود پینل ونڈو کے ہر سیشن کو لیبل کرتا ہے۔
ہر عدد کے پیچھے موجود درست 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 ٹیپ پر 55.4 ملین کنٹریکٹس پرنٹ کیے۔ اسی ونڈو کے اندر حالیہ ماہانہ ایکسپائریشن نے 76.8 ملین پرنٹ کیے۔ بورڈ پر موجود ہر ریشو کے پیچھے بیس لائن کے بیس 20 سیشنز میں عام طور پر ٹھیک ایک ماہانہ ایکسپائریشن شامل ہوتی ہے، اس لیے ڈینومینیٹر ہر سیشن میں ایک ہی لمپ لے کر چلتا ہے۔
کیا آپشنز کی غیر معمولی سرگرمی اسٹاک کی سمت کا تعین کرتی ہے؟
اصل سوال یہ ہے کہ کیا آپشنز کے بھاری سیشن کے بعد انڈرلائنگ (underlying) میں بڑی نقل و حرکت دیکھی جاتی ہے۔ گزشتہ 200 دنوں کے ڈیٹا کے مطابق: ہر اس نام-سیشن کا جائزہ لیا گیا جس نے والیم کی مقررہ حد کو عبور کیا، اسے اس کے تناسب کے لحاظ سے گروپ کیا گیا، اور پھر اگلے سیشن میں انڈرلائنگ کی کلوزنگ میں ہونے والی مطلق تبدیلی (absolute 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اپنی بنیادی حد (baseline) سے پانچ گنا یا اس سے زیادہ والیم والے سیشن کے بعد، اگلے سیشن میں میڈین ایبسولیوٹ چینج (median absolute change) 2.52% تھا، جبکہ انہی ناموں کے لیے ایک عام دن میں یہ 1.92% تھا، جس کا فرق 0.6 پرسنٹیج پوائنٹس بنتا ہے۔ ٹیبل کے خاموش حصے میں دونوں کالم 1.87% اور 2.09% ہیں، جن کے درمیان -0.22 پوائنٹس کا فرق ہے۔
سچی حقیقت یہ ہے کہ یہ فرق بہت کم ہے، اور یہ سمت کے بجائے سائز کے بارے میں ہے۔ آپشنز کے بھاری سیشنز کے بعد مطلق الفاظ میں تھوڑی بڑی نقل و حرکت ہوتی ہے، اور میڈین پر یہ فرق ایک پرسنٹیج پوائنٹ کا جزو ہے۔ پانچ گنا زیادہ والیم والے دن کے بعد اگلے سیشن میں میڈین سائنڈ چینج (median signed change) -0.34% تھا، اور بیس لائن سے کم والے دن کے بعد -0.05% تھا۔ ان میں سے کوئی بھی ایسی حرکت نہیں ہے جیسا کہ کسی خبر کی سرخی سے لگتا ہے۔ اس کی ندرت کو بھی مدنظر رکھنا ضروری ہے: اسٹڈی ونڈو کے دوران صرف 652 نام-سیشنز نے اپنی بیس لائن سے پانچ گنا زیادہ والیم عبور کیا، جبکہ 11781 سیشنز اس سے نیچے رہے۔
اس اسکرین کی پیمائش کیسے کی جاتی ہے
ایک ایسی اسکرین جس کے قواعد پوشیدہ ہوں وہ ڈیٹا کے طور پر پڑھی جاتی ہے لیکن درحقیقت وہ ایک رائے ہوتی ہے، اس لیے یہاں ہر قاعدہ درج ہے۔
- ذریعہ (Source)۔ مکمل US options منٹ ٹیپ۔ ہر کنٹریکٹ کے OCC سمبل سے underlying کو الگ کیا جاتا ہے، لہذا index option roots اور same-day expiries دونوں کو عام اسٹاک اور فنڈ چینز کے ساتھ شامل کیا گیا ہے۔
- تناسب (The ratio)۔ گزشتہ مکمل سیشن کے کل کنٹریکٹ والیم کو اسی underlying کے گزشتہ 20 اہل سیشنز کے اوسط سے تقسیم کیا جاتا ہے۔ ان 20 میں سے کم از کم 18 سیشنز میں والیم کا ہونا ضروری ہے۔ بورڈ ایک الگ کالم میں ونڈو کی لمبائی ظاہر کرتا ہے، اور ایسی ونڈو جو 20 سے کم ہو وہ 20 سیشن لیبل کے تحت مختصر اوسط شائع کرنے کے بجائے پیج کو روک لیتی ہے۔
- کم سے کم حد (Floors)۔ سیشن میں 25,000 کنٹریکٹس اور 5,000 کنٹریکٹس کی بیس لائن۔ ان کے بغیر بورڈ ایسی چینز سے بھر جائے گا جہاں ایک ہی آرڈر 10x ریڈنگ دکھا سکتا ہے۔
- سیشن کی اہلیت (Session eligibility)۔ اس صفحے کا ہر پینل اسی ٹیپ کی ایک 45 روزہ ونڈو سے اپنے سیشنز لیتا ہے، جس کا ایک ہی قاعدہ ہے: ایک سیشن تب شمار ہوتا ہے جب اس کا مارکیٹ وائیڈ والیم اس ونڈو کے پرانے سیشنز کے median کے 75% تک پہنچ جاتا ہے۔ تازہ ترین دن کو اس median سے باہر رکھا جاتا ہے جسے اسے عبور کرنا ہوتا ہے، تاکہ جزوی طور پر لوڈ ہونے والا دن اپنی بار کو خود نیچے کھینچ کر اسے پورا نہ کر سکے۔ ٹیپ ٹکڑوں میں سامنے آتی ہے، اور وہ دن جس میں ایک نارمل سیشن کے تین چوتھائی سے کم والیم ہو، وہ مکمل ہونے تک بورڈ سے باہر رہتا ہے۔ ہر پینل اس سیشن کو پرنٹ کرتا ہے جس پر وہ لینڈ ہوا، تاکہ چاروں کا آپس میں موازنہ کیا جا سکے۔
- استثنیٰ (Exclusions)۔ Leveraged اور inverse فنڈز کو نام کے ذریعے ہٹا دیا جاتا ہے: ایک 3x پروڈکٹ کی چین اپنے ملٹی پلائر کے ساتھ حرکت کرتی ہے اور ہر ہفتے لسٹ میں جگہ گھیر لے گی۔ ایک دوبارہ استعمال شدہ ticker سمبل کو بھی خارج کیا گیا ہے، کیونکہ وینڈر ہسٹری اس کے تحت دو کمپنیوں کو جوڑتی ہے۔
- اوپن انٹرسٹ کا فقدان (No open interest)۔ ویئر ہاؤس میں open-interest کا کوئی فیلڈ نہیں ہے، اس لیے اس صفحے پر کوئی بھی چیز والیم کا موازنہ outstanding positions سے نہیں کرتی۔ جہاں کسی حریف کی اسکرین یہ کہتی ہے کہ والیم نے open interest کو پیچھے چھوڑ دیا، ہماری اسکرین کہتی ہے کہ والیم نے اپنے 20 سیشن کے اوسط کو پیچھے چھوڑ دیا۔
- ایکسپائریشن کے دن (Expiration days)۔ ماہانہ expiration مارکیٹ وائیڈ options والیم کو بڑھا دیتی ہے۔ سیشن پینل اس حالت کو لیبل کرتا ہے، اور ایک ایکسپائریشن سیشن پر مبنی بورڈ کو دوسرے ایکسپائریشن سیشنز کے مقابلے میں پڑھا جانا چاہیے۔
فالو تھرو اسٹڈی ایک دوسری ٹیبل، یعنی daily options greeks فائل کا استعمال کرتی ہے، جس میں ایک صاف underlying سمبل اور underlying کی close قیمت ہوتی ہے۔ یہ same-day expiries اور index options کو خارج کرتی ہے اور منٹ ٹیپ کے مقابلے میں چند سیشنز بعد سیٹل ہوتی ہے، اس لیے اس کا کائنات (universe) بورڈ کے مقابلے میں محدود ہے۔ وہ نام جن کا اسٹڈی ونڈو کے اندر اسٹاک اسپلٹ (stock split) ہوا ہو انہیں ہٹا دیا جاتا ہے، کیونکہ اسپلٹ ایک بڑی موومنٹ کا جھوٹا تاثر دیتا ہے۔
اکثر پوچھے گئے سوالات (FAQ)
غیر معمولی آپشنز سرگرمی (unusual options activity) کیا ہے؟
جب کسی underlying کی ٹریڈنگ ایک سیشن میں اس کی حالیہ اوسط کے مقابلے میں کہیں زیادہ آپشن کنٹریکٹس میں ہو۔ اس صفحے پر حد کا تعین ادارتی بجائے حسابی بنیادوں پر کیا گیا ہے: سیشن کے کنٹریکٹ والیم کو اسی underlying کے گزشتہ 20 سیشنز کے اوسط والیم سے تقسیم کیا جاتا ہے، بشرطیکہ سیشن میں کم از کم 25,000 کنٹریکٹس اور بیس لائن پر 5,000 کنٹریکٹس ہوں۔
کیا غیر معمولی آپشنز سرگرمی اسٹاک کی نقل و حرکت کی پیش گوئی کرتی ہے؟
بہت کم حد تک، اور کسی خاص سمت کی نشاندہی نہیں کرتی۔ ہمارے ڈیٹا کے گزشتہ 200 دنوں کے دوران، جن سیشنز میں underlying کا آپشنز والیم اپنی بیس لائن سے پانچ گنا زیادہ تھا، ان کے بعد میڈین ایبسولیوٹ موو (median absolute move) 2.52% رہی، جبکہ عام دنوں میں انہی اسٹاکس کے لیے یہ 1.92% تھی۔ اگلے سیشن میں میڈین سائنڈ چینج (median signed change) -0.34% تھا، لہذا والیم نے صرف یہ بتایا کہ اسٹاک کتنی دور تک گیا، لیکن اس کی سمت کے بارے میں بہت کم معلومات دیں۔
آپشنز والیم کا ڈیٹا کس وقت اپ ڈیٹ ہوتا ہے؟
کنٹریکٹ والیم سیشن کے دوران کنسولیڈیٹڈ آپشنز ٹیپ پر لائیو پرنٹ ہوتا ہے۔ اس صفحے کے پیچھے موجود اسٹورڈ ٹیپ میں کچھ تاخیر ہوتی ہے، اس لیے بورڈ جاری سیشن کے بجائے تازہ ترین مکمل سیشن کی رپورٹ کرتا ہے اور اس کی تاریخ درج کرتا ہے۔ یہاں کوئی بھی چیز ریئل ٹائم فیڈ نہیں ہے۔
یہ غیر معمولی آپشنز سرگرمی اسکینر open interest کا استعمال کیوں نہیں کرتا؟
Open interest مارکیٹ بند ہونے کے بعد کلیئرنگ ہاؤس کی جانب سے شائع کیا جاتا ہے، اور ہمارے پاس موجود ڈیٹا میں open-interest کا کوئی فیلڈ نہیں ہے۔ کسی سیشن کے والیم کا اسی underlying کی والیم ہسٹری سے موازنہ براہ راست ٹیپ سے کیا جا سکتا ہے، اور یہ اسی طرح کے سوال کا جواب دیتا ہے: کیا یہ چین معمول سے زیادہ مصروف ہے؟
اوپر دیا گیا ہر نمبر ایک اسٹورڈ، ورژن شدہ کوئری ہے۔ پیمائش کی جانچ کے لیے کسی بھی پینل کے نیچے موجود SQL کھولیں، یا Strasmore ٹرمینل پر اپنی پسند کے کسی بھی ونڈو پر یہی اسکرین چلائیں۔