Nietypowa aktywność opcyjna ostatniej sesji
Analiza wolumenu opcji na rynku USA. Sprawdź instrumenty bazowe, których obrót znacznie przekroczył średnią z 20 sesji oraz podział na kontrakty call i put.
Nietypowa aktywność opcyjna oznacza, że instrument bazowy osiągnął w danej sesji znacznie wyższy wolumen kontraktów opcyjnych niż w okresach normalnego obrotu. Niniejsze zestawienie klasyfikuje tę aktywność dla ostatniej zakończonej sesji opcyjnej, Jul 22: całkowita liczba obróconych kontraktów w stosunku do średniej dla tego samego instrumentu bazowego z poprzednich 20 sesji. Dane opcyjne pojawiają się z opóźnieniem względem danych giełdowych, dlatego wskazana sesja jest najnowszą kompletną sesją w naszych danych, a nie sesją bieżącą.
Przed zapoznaniem się z tabelą należy wyjaśnić jedną kwestię: jest to filtr wolumenu. Większość publikowanych alertów o nietypowej aktywności opcyjnej porównuje dzienny wolumen z otwartą pozycją (open interest), czyli liczbą kontraktów pozostających w obrocie po zamknięciu sesji. Przechowywane przez nas dane opcyjne zawierają transakcje, a nie pozycje, i nie posiadają pola dotyczącego otwartej pozycji. Każdy poniższy wskaźnik porównuje wolumen instrumentu bazowego z jego własną historią wolumenu. Wolumen opcji a otwarta pozycja wyjaśnia, na jakie pytania odpowiada każde z tych pomiarów.
Nietypowa aktywność opcji: ostatnia zakończona sesja
Dokładny kod SQL dla każdej liczby
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 10Zestawienie zawiera trzy kolumny danych. Wskaźnik mówi, o ile powyżej średniej handlowano instrumentem bazowym. Wartość bazowa określa poziom normalny; wysoki mnożnik przy niskim wolumenie oznacza mniejsze zdarzenie niż umiarkowany mnożnik przy wysokim wolumenie. Wartość z ostatnich 20 sesji wskazuje, czy sesja przebiła rekordy z poprzedniego miesiąca. Ostatnie trzy kolumny stanowią ścieżkę audytową: sesję, na której oparto zestawienie (podaną jako etykietę i liczbę), oraz liczbę sesji kwalifikujących się do bazy, która musi wynosić 20, aby strona mogła opublikować dane.
CVS zajmuje pierwsze miejsce z wynikiem 7.2x średniej: 138.2 tysięcy kontraktów przy bazie wynoszącej 19.3 tysięcy, przy wcześniejszym rekordzie z 20 sesji na poziomie 59.3 tysięcy.
- INFY przy 4.2x: 29.5 tysięcy kontraktów przy bazie wynoszącej 7 tysięcy.
- GM przy 3.6x, 67.1 tysięcy kontraktów przy bazie wynoszącej 18.6 tysięcy.
- SMCI przy 3.6x, 737 tysięcy kontraktów przy rekordzie z 20 sesji wynoszącym 361.8 tysięcy.
- WDAY przy 3.6x na poziomie 28 tysięcy kontraktów.
Ostatni wiersz zestawienia, NUAI, nadal handlowano na poziomie 3x średniej. Mnożnik i wielkość to oddzielne wskaźniki, dlatego oba znajdują się w zestawieniu. Odpowiednik tych danych dla rynku akcji znajduje się w akcje o nietypowym wolumenie w tym tygodniu, natomiast sam mechanizm obliczeń opisano w wolumen relatywny.
Call czy put: analiza wolumenu
Rozdział między wolumenem opcji call a put stanowi istotę analizowanych alertów. Te same dane z sesji, uporządkowane według udziału opcji call:
Dokładny kod SQL dla każdej liczby
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 ASCW przypadku przewagi opcji call, CVS przekształcił 95% swoich kontraktów w opcje call: 130.7 tysięcy opcji call przeciwko 7.5 tysiącom opcji put. Na drugim końcu tej samej tabeli, WDAY wygenerował 30% opcji call, 8.3 tysięcy przeciwko 19.7 tysiącom opcji put.
Ten podział wymaga analizy, ale łatwo go błędnie zinterpretować. Każdy zarejestrowany kontrakt ma kupującego i sprzedającego, a dane nie wskazują, która strona zainicjowała transakcję. Wysoki wolumen opcji call może oznaczać otwartą pozycję długą lub sprzedaż opcji typu covered call przeciwko akcjom, które sprzedający już posiada. Kupno i sprzedaż opcji call wyjaśnia ryzyko, jakie podejmuje każda ze stron tej transakcji. Gdy aktywność na rynku opcji jest duża, ceny opcji zazwyczaj również wykazują wysoką zmienność, co przedstawia zestawienie akcji o najwyższej zmienności implikowanej .
Struktura kontraktów sesyjnych
Dokładny kod SQL dla każdej liczby
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 ASCKontrakty wygasające tego samego dnia stanowiły 36.3% całkowitej liczby kontraktów sesji, czyli 20.1 milionów. Kolejne 27.1% wygasło w ciągu tygodnia. Pozostałe 1.2% stanowiły kontrakty z terminem ważności przekraczającym rok.
Taka struktura wpływa na interpretację nagłówków dotyczących nietypowej aktywności. Większość wolumenu na tego typu zestawieniach to instrumenty krótkoterminowe, a kontrakty typu same-day są rozliczane wraz z zamknięciem sesji, a nie przenoszone na kolejny dzień. Opcje 0DTE obejmują ten segment rynku.
Czy była to sesja wygasania?
Wolumen opcji rośnie na całym rynku podczas miesięcznego wygasania, kiedy największy blok notowanych kontraktów jest jednocześnie usuwany z rynku. Analiza wskaźnika ratio w dniu wygasania wskazuje połowę rynku, dlatego poniższa tabela klasyfikuje każdą sesję w danym oknie czasowym.
Dokładny kod SQL dla każdej liczby
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 ASCNajnowsza sesja w tej tabeli to sesja raportowana przez system; data jest identyczna w obu tabelach, a jej oznaczenie to ordinary. Odnotowano 55.4 milionów kontraktów na całym rynku USA. Ostatnie miesięczne wygasanie w tym samym oknie wyniosło 76.8 milionów. Dwudziestosesyjna podstawa każdego wskaźnika ratio w tabeli zazwyczaj zawiera dokładnie jedno miesięczne wygasanie, zatem mianownik zachowuje tę samą wartość od sesji do sesji.
Czy nietypowa aktywność na opcjach wyprzedza kurs akcji?
Kluczowe pytanie dotyczy tego, czy po sesji o wysokim wolumenie na opcjach następuje silny ruch instrumentu bazowego. Dane obejmują ostatnie 200 dni: każda sesja przekraczająca określone progi wolumenu została pogrupowana według stosunku wolumenu do średniej i zestawiona ze zmianą kursu zamknięcia instrumentu bazowego na kolejnej sesji. Kolumna odniesienia stanowi mediana dziennych zmian dla danej spółki w badanym okresie, co pozwala na porównanie każdej grupy z jej własną średnią.
Dokładny kod SQL dla każdej liczby
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 ASCPo sesji, w której wolumen wyniósł pięciokrotność średniej, mediana bezwzględnej zmiany na kolejnej sesji wynosiła 2.52%, podczas gdy dla tych samych spółek w dni o zwykłym wolumenie wynosiła 1.92%. Różnica wynosi 0.6 punktów procentowych. W dolnej części zestawienia obie wartości wynoszą odpowiednio 1.87% oraz 2.09%, co daje różnicę -0.22 punktów.
Wynik wskazuje na niewielką korelację, która dotyczy wielkości ruchu, a nie jego kierunku. Sesje o większym wolumenie na opcjach wiążą się z nieznacznie większymi zmianami bezwzględnymi, jednak różnica w medianie wynosi ułamek punktu procentowego. Mediana zmiany kierunkowej po dniu o pięciokrotnie wyższym wolumenie wynosiła -0.34%, natomiast po dniu o wolumenie poniżej średniej wynosiła -0.05%. Żaden z tych wyników nie stanowi tak silnego sygnału, jak sugerują nagłówki. Należy również uwzględnić rzadkość występowania takich zdarzeń: w badanym okresie 652 sesji przekroczyło pięciokrotność własnej średniej, podczas gdy 11781 sesji odnotowało wolumen poniżej średniej.
Sposób pomiaru tego zestawienia
Zestawienie oparte na ukrytych regułach interpretuje dane, które w rzeczywistości są opiniami, dlatego każda reguła została tutaj uwzględniona.
- Źródło. Pełny rejestr transakcji na opcjach w USA w interwałach minutowych. Instrument bazowy jest wyodrębniany z symbolu OCC każdego kontraktu, dzięki czemu uwzględnione są zarówno opcje indeksowe i te z terminem wygaśnięcia w tym samym dniu, jak i standardowe łańcuchy akcji oraz funduszy.
- Wskaźnik. Całkowity wolumen kontraktów z ostatniej zakończonej sesji podzielony przez średnią dla tego samego instrumentu bazowego z 20 poprzednich kwalifikujących się sesji. Co najmniej 18 z tych 20 sesji musi posiadać wolumen. Okres obliczeniowy jest wyświetlany w osobnej kolumnie; jeśli okres jest krótszy niż 20 sesji, dane nie są publikowane pod etykietą 20 sesji, lecz pozostają w fazie oczekiwania.
- Progi. 25 000 kontraktów w sesji oraz baza wynosząca 5 000 kontraktów. Bez tych progów zestawienie byłoby wypełnione łańcuchami, w których pojedyncze zlecenie generowałoby dziesięciokrotny wzrost wskaźnika.
- Kwalifikowalność sesji. Każdy panel na tej stronie odczytuje sesje z 45-dniowego okna tego samego rejestru, zgodnie z jedną regułą: sesja jest liczona, gdy wolumen na całym rynku osiągnie 75% mediany starszych sesji z tego okna. Najnowszy dzień nie jest wliczany do mediany, którą musi przekroczyć, dzięki czemu dzień o niepełnych danych nie może obniżyć własnej mediany. Dane spływają etapami, a dzień o wolumenie mniejszym niż trzy czwarte standardowej sesji nie pojawia się w zestawieniu do czasu uzupełnienia danych. Każdy panel wskazuje sesję, na której się zakończył, co umożliwia porównanie wszystkich czterech paneli między sobą.
- Wykluczenia. Fundusze lewarowane i odwrócone są usuwane na podstawie nazw: łańcuch produktu z mnożnikiem 3x przesuwałby się wraz ze swoim mnożnikiem, co co tydzień powodowałoby nadmiar danych na liście. Wykluczono również jeden powtarzający się symbol ticker, ponieważ historia dostawcy łączy pod nim dwie spółki.
- Brak otwartego zainteresowania. Baza danych nie zawiera pola otwartego zainteresowania (open interest), więc nic na tej stronie nie porównuje wolumenu z otwartymi pozycjami. Podczas gdy zestawienia konkurencji wskazują, że wolumen przewyższył otwarte zainteresowanie, nasze zestawienie wskazuje, że wolumen przewyższył własną średnią z 20 sesji.
- Dni wygaśnięcia. Miesięczne wygaśnięcia zwiększają wolumen opcji na całym rynku. Panel sesji oznacza ten stan, a zestawienie zbudowane na sesji wygaśnięcia powinno być porównywane z innymi sesjami wygaśnięcia.
Badanie kontynuacji (follow-through study) wykorzystuje drugą tabelę, plik dziennych greckich współczynników opcyjnych, który zawiera czysty symbol instrumentu bazowego oraz jego cenę zamknięcia. Wyklucza on opcje z terminem wygaśnięcia w tym samym dniu oraz opcje indeksowe i jest aktualizowany kilka sesji później niż rejestr minutowy, zatem jego zakres jest węższy niż zestawienia głównego. Nazwy spółek, które dokonały splitu akcji w oknie badania, są usuwane, ponieważ split sztucznie generuje gwałtowny ruch cenowy.
FAQ
Czym jest nietypowa aktywność opcji?
Polega ona na handlu większą liczbą kontraktów opcyjnych w jednej sesji niż wynosi średnia dla danego instrumentu bazowego z ostatnich okresów. Na tej stronie próg ustalono metodą arytmetyczną, a nie redakcyjną: jest to wolumen kontraktów z danej sesji podzielony przez średnią dla tego samego instrumentu z 20 poprzednich sesji, przy założeniu minimum 25 000 kontraktów w sesji oraz 5 000 jako podstawy.
Czy nietypowa aktywność opcji pozwala przewidzieć ruchy akcji?
W słabym stopniu i bez określenia kierunku. W ciągu ostatnich 200 dni analizy danych, sesje, w których wolumen opcji był pięciokrotnie wyższy od podstawy dla danego instrumentu, skutkowały medianą bezwzględnego ruchu na poziomie 2.52%, podczas gdy dla tych samych nazwisk w zwykły dzień wynosiła ona 1.92%. Mediana zmiany o znaku określonym wynosiła -0.34% w następnej sesji, co oznacza, że wolumen informował o skali ruchu akcji, ale dostarczał bardzo mało informacji na temat jego kierunku.
Kiedy aktualizowane są dane dotyczące wolumenu opcji?
Wolumen kontraktów jest rejestrowany w czasie rzeczywistym na skonsolidowanym taśmie opcyjnej podczas trwania sesji. Dane przechowywane w bazie pod tą stroną są aktualizowane z opóźnieniem, dlatego zestawienie raportuje ostatnią pełną sesję, a nie sesję w toku, i zawiera datę. Żadne z tych danych nie stanowi transmisji w czasie rzeczywistym.
Dlaczego ten skaner nietypowej aktywności opcji nie uwzględnia otwartego zainteresowania?
Otwarte zainteresowanie (open interest) jest publikowane przez izbę rozliczeniową po zamknięciu rynku, a w posiadanych przez nas danych brakuje pola dotyczącego otwartego zainteresowania. Porównanie wolumenu z danej sesji z historią wolumenu tego samego instrumentu bazowego jest możliwe do bezpośredniego zmierzenia na podstawie taśmy i odpowiada na podobne pytanie: czy dany łańcuch jest bardziej aktywny niż zwykle.
Każda powyższa liczba pochodzi z zapytania o określonej wersji. Aby zweryfikować pomiar, należy otworzyć kod SQL pod dowolnym panelem lub uruchomić ten sam filtr dla dowolnego przedziału czasowego na terminalu Strasmore.