فعالیت غیرمعمول در بازار آپشن در آخرین جلسه
بررسی داراییهایی با حجم معاملات بسیار فراتر از میانگین 20 جلسه گذشته؛ تحلیل دقیق نسبت قراردادهای Call و Put برای شناسایی فرصتهای بازار در آخرین جلسه معاملاتی.
فعالیت غیرمعمول در بازار آپشن به معنای معامله قراردادهای آپشن در یک جلسه معاملاتی، بسیار فراتر از میانگین معمول آن دارایی پایه است. این جدول، وضعیت را برای آخرین جلسه معاملاتی تکمیلشده بر اساس Jul 22 رتبهبندی میکند: نسبت کل قراردادهای معامله شده به میانگین همان دارایی پایه در 20 جلسه معاملاتی گذشته. از آنجایی که دادههای بازار آپشن با تأخیر نسبت به بازار سهام ثبت میشوند، جلسه ذکر شده در اینجا جدیدترین جلسه تکمیلشده در دادههای ما است و نه معاملات امروز.
پیش از بررسی جدول، یک نکته باید روشن شود: این یک فیلتر حجم است. اکثر هشدارهای منتشر شده برای آپشنهای غیرمعمول، حجم معاملات روزانه را با Open Interest (تعداد قراردادهای باز پس از بسته شدن بازار) مقایسه میکنند. دادههای آپشن که ما ذخیره میکنیم شامل معاملات است، نه موقعیتهای باز؛ بنابراین هیچ فیلدی برای Open Interest در آن وجود ندارد. تمام نسبتهای زیر، حجم معاملات یک دارایی را با تاریخچه حجم معاملات همان دارایی مقایسه میکند. حجم آپشن در برابر 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) نشان میدهد که حجم معاملات دارایی پایه چقدر بالاتر از میانگین معمول خود بوده است. خط پایه (baseline) مقدار معمول را نشان میدهد؛ ضریب بزرگ بر روی یک زنجیره معاملات کم، نسبت به یک ضریب متوسط بر روی یک زنجیره معاملات پرحجم، رویداد کوچکتری محسوب میشود. بالاترین سطح در 20 جلسه گذشته نشان میدهد که آیا این جلسه از رکورد ماه گذشته فراتر رفته است یا خیر. سه ستون آخر نیز ردپای حسابرسی هستند: جلسه مبنایی که جدول بر اساس آن ساخته شده (هم به صورت برچسب و هم به صورت عدد ساده)، به همراه تعداد جلسات واجد شرایط که پشت خط پایه قرار دارند و مجموع آنها برای انتشار صفحه باید 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 برابر میانگین خود معامله شد. ضریب و حجم معاملات دو شاخص مجزا هستند که به همین دلیل هر دو در جدول قرار میگیرند. نسخه مربوط به بازار سهام از همین مفهوم در سهام با حجم غیرمعمول در این هفته موجود است و محاسبات ریاضی آن نیز در حجم نسبی بررسی میشود.
اختیار خرید یا اختیار فروش: جهت معاملات
تفاوت میان حجم معاملات اختیار خرید (call) و اختیار فروش (put) هسته اصلی یک هشدار است. دادههای مربوط به یک جلسه معاملاتی، بر اساس سهم اختیار خرید، به شرح زیر است:
کد دقیق 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در بخش با حجم بالای اختیار خرید، 95% درصد از قراردادهای CVS به اختیار خرید اختصاص یافته است: 130.7 هزار قرارداد اختیار خرید در مقابل 7.5 هزار قرارداد اختیار فروش. در نقطه دیگر از همین جدول، WDAY مقدار 30% قرارداد اختیار خرید داشت: 8.3 هزار در مقابل 19.7 هزار قرارداد اختیار فروش.
تحلیل این تفکیک اهمیت دارد اما تفسیر اشتباه آن نیز آسان است. هر قرارداد ثبتشده، دارای یک خریدار و یک فروشنده است و سجل معاملات (tape) مشخص نمیکند که کدام طرف معامله را آغاز کرده است. حجم بالای اختیار خرید میتواند نشاندهنده یک موقعیت خرید مستقیم (long) باشد یا فروش یک اختیار خرید پوششدار (covered 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)
)
),
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% از کل حجم جلسه، معادل 20.1 میلیون قرارداد را شامل شدند. 27.1% درصد دیگر از قراردادها ظرف یک هفته منقضی شدند. در نهایت، قراردادهایی با بیش از یک سال زمان باقیمانده، 1.2% از حجم را به خود اختصاص دادند.
این ترکیب، نحوه تفسیر تیترهای مربوط به فعالیتهای غیرمعمول را تغییر میدهد. بخش اعظم حجم معاملات در چنین تابلوهایی، مربوط به قراردادهای کوتاهمدت است و قراردادهای همان روز، به جای انتقال به دوره بعد، در زمان بسته شدن بازار تسویه میشوند. گزینههای 0DTE این بخش از زنجیره را پوشش میدهد.
آیا این یک جلسه انقضا بود؟
حجم معاملات اختیار معامله در کل بازار با رسیدن به انقضای ماهانه افزایش مییابد؛ زمانی که بزرگترین بلوک از قراردادهای لیستشده، همزمان از بازار خارج میشوند. بررسی نسبتها در روز انقضا، نیمی از بازار را علامتگذاری میکند، بنابراین پنل زیر هر جلسه در این بازه زمانی را برچسبگذاری میکند.
کد دقیق 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 است. حجم معاملات در کل بازار آمریکا در این جلسه 55.4 میلیون قرارداد بود. آخرین انقضای ماهانه در همین بازه زمانی، 76.8 میلیون قرارداد ثبت کرد. خط پایه 20 جلسهای که پشت هر نسبت در این پنل قرار دارد، معمولاً دقیقاً شامل یک انقضای ماهانه است، بنابراین مخرج کسر در هر جلسه، مقدار ثابتی را حمل میکند.
آیا فعالیت غیرمعمول در بازار آپشنها پیشگوی حرکت سهم است؟
پرسش مهم این است که آیا حجم بالای معاملات در بازار آپشن، با حرکت بزرگ در قیمت پایه سهم همراه میشود یا خیر. این موضوع در بازه 200 روز گذشته بررسی شده است: تمامی جلسات معاملاتی که از کف حجم مشخصی عبور کردهاند، بر اساس نسبت حجم معاملات، در برابر تغییر مطلق قیمت پایانی سهم در جلسه معاملاتی بعدی قرار گرفتهاند. ستون معمول، میانه تغییرات روزانه هر سهم در آن بازه زمانی است؛ بنابراین هر دسته با میانگین خود مقایسه میشود.
کد دقیق 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.52% بود، در حالی که این رقم برای همان سهام در روزهای عادی 1.92% بود که نشاندهنده اختلاف 0.6 واحد درصدی است. در بخش کمحجم جدول، دو ستون اعداد 1.87% و 2.09% را نشان میدهند که اختلاف آنها -0.22 واحد است.
پاسخ واقعی، کوچک است و بیشتر به میزان تغییر مربوط میشود تا جهت حرکت. جلسات پرحجم در بازار آپشن با حرکات کمی بزرگتر از نظر قدر مطلق همراه هستند و اختلاف در میانه تغییرات، تنها کسری از یک واحد درصدی است. میانه تغییرات علامتدار در جلسه پس از یک روز با حجم پنج برابر، -0.34% و پس از یک روز با حجم کمتر از خط پایه، -0.05% بود. هیچکدام از این مقادیر نشاندهنده حرکتی نیست که تیترهای خبری ادعا میکنند. ندرت این اتفاق نیز حائز اهمیت است: در طول دوره مطالعه، 652 جلسه معاملاتی حجم پنج برابر خط پایه خود را ثبت کردند، در حالی که 11781 جلسه معاملاتی حجم کمتر از آن را داشتند.
نحوه اندازهگیری این صفحه
یک صفحه با قوانین پنهان، در واقع به جای داده، نظرات را بازتاب میدهد؛ بنابراین تمام قوانین در اینجا آورده شده است.
- منبع. تمام دادههای لحظهای (minute tape) قراردادهای اختیار معامله در بازار آمریکا. دارایی پایه از نماد OCC هر قرارداد استخراج میشود؛ بنابراین ریشههای اختیار معامله شاخصها و قراردادهای با سررسید همان روز، در کنار زنجیرههای معمولی سهام و صندوقها قرار میگیرند.
- نسبت. حجم کل قراردادها در آخرین جلسه معاملاتی تقسیم بر میانگین همان دارایی پایه در 20 جلسه واجد شرایط قبلی. حداقل 18 مورد از آن 20 جلسه باید دارای حجم معاملاتی باشند. این جدول، طول بازه زمانی را در ستونی مجزا نمایش میدهد؛ اگر بازه زمانی کمتر از 20 جلسه باشد، به جای انتشار میانگین کوتاهتر تحت برچسب 20 جلسه، صفحه را نگه میدارد.
- حدود پایین (Floors). 25,000 قرارداد در هر جلسه و یک خط پایه 5,000 قراردادی. بدون این محدودیتها، صفحه با زنجیرههایی پر میشود که در آنها تنها یک سفارش میتواند عدد را 10 برابر بزرگتر نشان دهد.
- واجد شرایط بودن جلسه معاملاتی. هر پنل در این صفحه، جلسات خود را از یک بازه 45 روزه از همان دادههای لحظهای میخواند، با این قانون واحد: یک جلسه زمانی محاسبه میشود که حجم کل بازار آن به 75٪ میانه (median) جلسات قدیمیتر در آن بازه برسد. روز جدید از میانهای که باید از آن عبور کند مستثنی شده است، بنابراین یک روز با حجم نیمهکاره نمیتواند میانگین خود را برای رسیدن به آن کاهش دهد. دادهها به صورت قطعهقطعه به لبه جلویی میرسند و روزی که کمتر از سه چهارم یک جلسه عادی حجم دارد، تا زمانی که تکمیل نشود، در صفحه نمایش داده نمیشود. هر پنل جلسه مورد نظر را چاپ میکند تا بتوان هر چهار پنل را در مقایسه با یکدیگر بررسی کرد.
- استثنائات. صندوقهای اهرمی و معکوس بر اساس نام حذف میشوند: زنجیره یک محصول با ضریب 3 برابر، با همان ضریب حرکت میکند و هر هفته لیست را شلوغ میکند. همچنین یک نماد معاملاتی تکراری نیز حذف شده است، زیرا تاریخچه تامینکننده داده، دو شرکت را تحت آن ترکیب کرده است.
- عدم استفاده از موقعیتهای باز (Open Interest). در پایگاه داده ما فیلدی برای موقعیتهای باز وجود ندارد، بنابراین هیچ موردی در این صفحه حجم را با موقعیتهای باز مقایسه نمیکند. در حالی که صفحه رقیب میگوید حجم از موقعیتهای باز پیشی گرفته است، صفحه ما میگوید حجم از میانگین 20 جلسه خود پیشی گرفته است.
- روزهای سررسید. سررسید ماهانه، حجم اختیار معامله را در کل بازار افزایش میدهد. پنل جلسات، این وضعیت را برچسبگذاری میکند و صفحهای که بر اساس یک جلسه سررسید ساخته شده است، باید در مقایسه با سایر جلسات سررسید خوانده شود.
مطالعه پیگیری (follow-through study) از جدول دوم، یعنی فایل روزانه یونانیهای اختیار معامله (greeks) استفاده میکند که نماد پایه و قیمت بستهشدن دارایی پایه را دارد. این فایل قراردادهای با سررسید همان روز و اختیار معامله شاخصها را حذف میکند و با چند جلسه تأخیر نسبت به دادههای لحظهای، نهایی میشود؛ بنابراین محدوده دادههای آن نسبت به جدول اصلی محدودتر است. نامهایی که در بازه زمانی مطالعه دچار تقسیم سهام (stock split) شدهاند حذف میشوند، زیرا تقسیم سهام، یک حرکت قیمتی بزرگِ کاذب ایجاد میکند.
سوالات متداول
فعالیت غیرمعمول در بازار اختیار معامله (Unusual options activity) چیست؟
این وضعیت زمانی رخ میدهد که حجم معاملات قراردادهای اختیار معامله در یک جلسه معاملاتی، بسیار بیشتر از میانگین اخیر همان دارایی پایه باشد. در این صفحه، معیار تعیین این وضعیت بر اساس محاسبات ریاضی است و نه نظر کارشناسان: حجم قراردادهای آن جلسه تقسیم بر میانگین حجم همان دارایی در 20 جلسه گذشته انجام میشود؛ با این شرط که حجم معاملات جلسه جاری حداقل 25,000 قرارداد و میانگین پایه حداقل 5,000 قرارداد باشد.
آیا فعالیت غیرمعمول در بازار اختیار معامله، حرکت سهام را پیشبینی میکند؟
ارتباط ضعیفی وجود دارد و این پیشبینی جهت حرکت را مشخص نمیکند. در طول 200 روز اخیر از دادههای ما، جلساتی که حجم معاملات آنها پنج برابر میانگین پایه خود بود، با میانه تغییرات مطلق 2.52% همراه بود؛ در حالی که این رقم برای همان سهام در یک روز عادی، 1.92% بود. میانه تغییرات جهتدار در جلسه بعد -0.34% بود؛ بنابراین، حجم معاملات تنها درباره میزان نوسان سهام اطلاعاتی ارائه میدهد و درباره جهت حرکت آن بسیار کم اطلاعاتی دارد.
دادههای حجم معاملات اختیار معامله چه زمانی بهروزرسانی میشوند؟
حجم قراردادها در حین برگزاری جلسه معاملاتی، بهصورت زنده در تِپ (tape) یکپارچه اختیار معامله ثبت میشود. دادههای ذخیرهشده در پشت این صفحه با تأخیر نهایی میشوند؛ بنابراین، این bảng آخرین جلسه کاملشده را به جای جلسه در حال اجرا گزارش کرده و تاریخ آن را ثبت میکند. هیچکدام از دادههای اینجا از نوع زنده (real-time) نیستند.
چرا این اسکنر فعالیت غیرمعمول، از میزان پوزیشنهای باز (Open interest) استفاده نمیکند؟
میزان پوزیشنهای باز پس از بسته شدن بازار توسط اتاق پایاپای (clearinghouse) منتشر میشود و در دادههای ما فیلدی برای open interest وجود ندارد. مقایسه حجم یک جلسه با تاریخچه حجم همان دارایی، مستقیماً از طریق تِپ قابل اندازهگیری است و به سوال مشابهی پاسخ میدهد: آیا این زنجیره معاملات از حالت عادی پرجنبوجوشتر شده است یا خیر.
تمام اعداد بالا حاصل پرسوجوهای (query) ذخیرهشده و نسخهبندیشده هستند. برای بررسی محاسبات، کد SQL زیر هر پنل را باز کنید، یا همان فیلتر را در هر بازه زمانی که میخواهید در ترمینال Strasmore اجرا کنید.