Oczekiwany ruch na podstawie zmienności implikowanej
Oczekiwany ruch to kurs × IV × √(dni/365). Sprawdzono wzór, skrót straddle oraz zgodność z historycznymi ruchami, aby ocenić wycenę opcji.
Oczekiwany ruch to przedział, jaki rynek opcji wycenia dla akcji w określonym horyzoncie czasowym. Wyznacza go zmienność implikowana zgodnie ze wzorem: kurs akcji pomnożony przez zmienność implikowaną i pierwiastek kwadratowy z liczby dni podzielonej przez 365. W przypadku akcji wycenianych na 100 USD, przy zmienności implikowanej wynoszącej 30% i horyzoncie 30 dni, oczekiwany ruch wynosi około 8,60 USD, czyli 8,6%, ponieważ 0,30 pomnożone przez pierwiastek kwadratowy z 30 podzielonego przez 365 daje 0,086. Jest to przedział odpowiadający jednemu odchyleniu standardowemu, a nie prognoza kierunku ruchu ani poziom, którego kurs nie może przekroczyć.
Jak obliczyć oczekiwany zakres ruchu na podstawie zmienności implikowanej
Zmienność implikowana to annualizowane odchylenie standardowe stóp zwrotu, wynikające z ceny opcji. Jest zawsze wyrażana w ujęciu rocznym. Odczyt na poziomie 30% opisuje więc zakres dla jednego roku, a każdy krótszy okres trzeba odpowiednio przeskalować. Zmienność skaluje się przez pierwiastek kwadratowy z czasu. Dlatego liczba dni znajduje się pod znakiem pierwiastka, zamiast być dzielona bezpośrednio.
Oczekiwany zakres ruchu = cena × IV × √(dni ÷ 365)
O tym, czy wynik będzie zgodny z wartością prezentowaną przez brokera, decydują dwie konwencje. Standardem detalicznym jest stosowanie liczby dni kalendarzowych podzielonej przez 365. Niektóre trading deski stosują natomiast liczbę dni sesyjnych podzieloną przez 252. Dla tej samej wartości IV daje to nieco szerszy zakres. Wynik oznacza jedno odchylenie standardowe, czyli przedział obejmujący około 68% wyników przy założeniu rozkładu normalnego. Podwojenie wyniku daje przedział obejmujący dwa odchylenia standardowe, czyli około 95% wyników.
To, czy użyta wartość IV jest wysoka, stanowi odrębne zagadnienie opisane na osobnej stronie: czy IV na poziomie 30% jest wysoka zestawia pojedynczy odczyt z rozkładem właściwym dla danego rynku.
Dlaczego przedział rośnie wraz z pierwiastkiem kwadratowym z liczby dni
Należy utrzymać jedną akcję i jedną sesję, a zmieniać wyłącznie horyzont. Wtedy kształt wzoru wynika bezpośrednio z danych. Kontrakty Apple at-the-money z połowy lipca 2026 roku, pogrupowane według czasu pozostałego do wygaśnięcia:
Dokładny kod SQL dla każdej liczby
SELECT multiIf(days_to_expiry <= 7, '1 week',
days_to_expiry <= 14, '2 weeks',
days_to_expiry <= 45, '1 month',
days_to_expiry <= 120, '3 months',
days_to_expiry <= 240, '6 months',
'1 year') AS horizon,
round(avg(days_to_expiry), 0) AS avg_days,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(avg(toFloat64(underlying_close)) * avg(toFloat64(implied_volatility))
* sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_usd,
round(avg(toFloat64(underlying_close)), 2) AS underlying_price,
formatDateTime(max(date), '%b %e, %Y') AS as_of
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = (SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= toDate('2026-07-15'))
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 1 AND 400
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY horizon
HAVING count() >= 3
ORDER BY avg_daysNa dzień Jul 15, 2026 koszyk 1 week obejmował średnio 5 dni do wygaśnięcia i 28% implikowanej zmienności. Oznaczało to oczekiwany ruch na poziomie 3.17%, czyli $10.41 przy cenie akcji wynoszącej $327.8. Koszyk 1 year obejmował średnio 292 dni i 28.4% IV, co przekładało się na oczekiwany ruch w wysokości 25.44%, czyli $83.39.
Znaczenie mają proporcje, a nie same wartości. Czterokrotne wydłużenie liczby dni podwaja oczekiwany ruch, niezależnie od akcji i poziomu IV, ponieważ pierwiastek kwadratowy z 4 wynosi 2. Annualizowanie miesięcznego przedziału przez pomnożenie go przez 12 zawyża roczny zakres około 3,5-krotnie. Prawidłowym mnożnikiem jest pierwiastek kwadratowy z 12, który wynosi 3,46.
Skrót oparty na straddle i dlaczego wskazuje wartość niższą o około 20%
Istnieje szybszy sposób na wyznaczenie oczekiwanego ruchu implikowanego przez rynek. Nie wymaga on obliczeń. Wystarczy sprawdzić straddle at-the-money, czyli opcję call i opcję put z tą samą ceną wykonania oraz terminem wygaśnięcia, a następnie zsumować obie premie. Wiele zespołów tradingowych podaje tę sumę jako oczekiwany ruch.
Obie metody nie dają tej samej wartości, a różnica nie oznacza błędu żadnej z nich. Straddle wypłaca bezwzględną odległość ceny akcji na koniec okresu od ceny wykonania. Jego cena odzwierciedla więc oczekiwany średni ruch. Wzór zwraca natomiast jedno odchylenie standardowe. Dla rozkładu normalnego średnie odchylenie bezwzględne wynosi 0,798 odchylenia standardowego. Dlatego wartość straddle jest o około 20% niższa od wyniku wzoru. Pomnożenie wartości straddle przez 1,25, czyli 1 podzielone przez 0,798, zbliża oba wyniki do siebie.
Zastosujmy tę metodę do hipotetycznej akcji wycenianej na 100 USD z początku tekstu. Wzór daje 8,60 USD. Straddle at-the-money dla tej akcji byłby wyceniany na około 6,86 USD, ponieważ 0,798 × 8,60 = 6,86. Pomnożenie 6,86 USD przez 1,25 daje ponownie 8,58 USD. Dwie metody prowadzą do jednej wartości, jeśli wiadomo, jaką statystykę przedstawia każda z nich. Odczytywanie łańcucha opcji pokazuje, gdzie znajdują się obie premie.
Czego nie oznacza oczekiwany zakres ruchu
- Nie wskazuje kierunku. Przedział jest symetryczny względem dzisiejszej ceny, a rynek opcji wycenia jego szerokość, nie kierunek.
- Nie jest obietnicą. Wartość 68% wynika z rozkładu normalnego, natomiast rzeczywiste stopy zwrotu mają grubsze ogony rozkładu. Odległe wyniki występują więc częściej, niż zakłada model.
- Nie stanowi bariery. Zgodnie z modelem około jedna na trzy sesje kończy się poza przedziałem obejmującym jedno odchylenie standardowe. Zamknięcie poza tym przedziałem jest typowym zdarzeniem.
- Nie jest stały. Zmienność implikowana jest wyceniana ponownie podczas każdej sesji, dlatego oczekiwany zakres ruchu dla danego terminu wygaśnięcia jest codziennie aktualizowany.
Co dzieje się po publikacji wyników
Zaplanowany termin publikacji wyników jest najbardziej wyraźnym przykładem wcześniejszego wzrostu implikowanej zmienności i jej spadku podczas sesji następującej po upublicznieniu informacji. Zjawisko to określa się jako spadek IV. Oczekiwany ruch kursu załamuje się zgodnie z tym samym harmonogramem. Raport NVDA z końca maja 2023 roku został opublikowany po zamknięciu pierwszej sesji przedstawionej na poniższym panelu.
Dokładny kod SQL dla każdej liczby
WITH
(SELECT avg(toFloat64(implied_volatility))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS iv_report_day,
(SELECT avg(toFloat64(underlying_close))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS px_report_day
SELECT date,
formatDateTime(date, '%b %e') AS session_label,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(100 * avg(toFloat64(implied_volatility)) / iv_report_day, 1) AS iv_pct_of_report_day,
round(100 * (avg(toFloat64(underlying_close)) / px_report_day - 1), 2) AS move_from_report_day_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date BETWEEN toDate('2023-05-24') AND toDate('2023-06-09')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY date
HAVING count() >= 3
ORDER BY dateImplikowana zmienność opcji near-the-money wynosiła 115.1% w dniu May 24, czyli podczas sesji, na której opublikowano raport. Implikowany ruch kursu do wygaśnięcia wynosił 30.54%. Podczas kolejnej sesji ten sam pomiar wyniósł 42.9% tej wartości. Do Jun 9 implikowana zmienność wynosiła 39.2%, a kurs akcji znajdował się 1.71% od zamknięcia z dnia publikacji wyników.
To połączenie wyjaśnia częstą uwagę inwestorów. Trader może prawidłowo przewidzieć kierunek ruchu kursu po publikacji wyników, a mimo to ponieść stratę na długiej pozycji w opcji. Parametr zmienności, na podstawie którego wyceniono kontrakt, zostaje obniżony natychmiast po usunięciu niepewności. Jak wyniki wpływają na greki omawia dalszy wpływ tego zjawiska na pozycję.
Czy oczekiwany ruch znajduje potwierdzenie w zrealizowanych zmianach?
Tezę można zweryfikować, dlatego przedstawiono poniższy test. W każdą środę w okresie dwóch lat do połowy czerwca 2026 r., dla sześciu płynnych walorów, pobierano implikowaną zmienność opcji near-the-money z terminem wygaśnięcia za 25–40 dni. Następnie przeliczano ją na oczekiwany ruch w kolejnych dniach i mierzono, jak daleko kurs akcji faktycznie się zmienił do pierwszej sesji przypadającej co najmniej 30 dni kalendarzowych później.
Dokładny kod SQL dla każdej liczby
WITH obs AS (
SELECT underlying_symbol AS ticker,
date AS obs_date,
avg(toFloat64(implied_volatility)) AS iv,
avg(toFloat64(underlying_close)) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-06-17')
AND toDayOfWeek(date) = 3
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 25 AND 40
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY ticker, obs_date
HAVING count() >= 4 AND avg(toFloat64(implied_volatility)) > 0.01
),
px AS (
SELECT underlying_symbol AS ticker,
date AS px_date,
avg(toFloat64(underlying_close)) AS close_px
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-07-25')
AND days_to_expiry BETWEEN 5 AND 60
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02
GROUP BY ticker, px_date
),
moves AS (
SELECT obs.ticker AS ticker,
obs.obs_date AS obs_date,
any(obs.iv) AS iv,
any(obs.spot) AS spot,
argMin(px.close_px, px.px_date) AS end_px,
min(dateDiff('day', obs.obs_date, px.px_date)) AS elapsed_days
FROM obs
INNER JOIN px ON obs.ticker = px.ticker
WHERE px.px_date >= addDays(obs.obs_date, 30)
AND px.px_date <= addDays(obs.obs_date, 36)
GROUP BY ticker, obs_date
)
SELECT ticker,
count() AS windows_tested,
round(quantileDeterministic(0.5)(100 * iv * sqrt(elapsed_days / 365), cityHash64(obs_date)), 2) AS implied_move_pct,
round(quantileDeterministic(0.5)(100 * abs(end_px / spot - 1), cityHash64(obs_date)), 2) AS realized_move_pct,
round(100 * countIf(abs(end_px / spot - 1) > iv * sqrt(elapsed_days / 365)) / count(), 1) AS realized_over_implied_pct
FROM moves
GROUP BY ticker
ORDER BY implied_move_pct DESCNVDA wyceniał najszerszy przedział spośród sześciu walorów: mediana implikowanego ruchu wyniosła 13.3%, a mediana zrealizowanego ruchu 6.77% w 103 oknach. Po spokojniejszej stronie SPY wyceniał 4.37% wobec 2.68% zrealizowanego ruchu.
Ostatnia kolumna przedstawia właściwy punkt odniesienia. Przedział odpowiadający jednemu odchyleniu standardowemu powinien zostać przekroczony w około 32% przypadków. To właśnie z tym wynikiem należy go porównywać, a nie z zerem. Poza przedział wyceniony przez opcje wyszło 23.3% z NVDA okien, a w przypadku 24.3% było to SPY okien. Porównanie obu median dla każdego waloru oraz różnicy między nimi, niezależnie od jej kierunku, stanowi sedno oceny, czy opcje wyceniały większy ruch, niż faktycznie nastąpił. Wyszukanie walorów z najszerszymi implikowanymi przedziałami to odrębne zadanie, a ranking akcji o najwyższej implikowanej zmienności przedstawia ich zestawienie.
Uwagi dotyczące danych i definicje
- Określenie near-the-money oznacza cenę wykonania mieszczącą się w przedziale 5% od kursu zamknięcia instrumentu bazowego na danej sesji. Uwzględniano kontrakty ze zbieżną implikowaną zmiennością i niezerowym wolumenem.
- Oczekiwany ruch obliczano z wykorzystaniem dni kalendarzowych i podstawy 365 dni. Zrealizowany ruch oznaczał procentową odległość między kursem zamknięcia w dniu obserwacji a kursem zamknięcia na pierwszej sesji przypadającej co najmniej 30 dni kalendarzowych później, bez uwzględniania znaku.
- Obserwacje były tygodniowe, natomiast okna terminowe obejmowały 30 dni. W związku z tym sąsiednie okna nakładały się na siebie, a poszczególne liczności nie stanowią niezależnych obserwacji.
FAQ dotyczące oczekiwanego ruchu
Jak oblicza się oczekiwany ruch na podstawie zmienności implikowanej?
Należy pomnożyć kurs akcji przez zmienność implikowaną wyrażoną dziesiętnie, a następnie przez pierwiastek kwadratowy z liczby dni podzielonej przez 365. Dla akcji kosztujących 50 USD, przy zmienności implikowanej na poziomie 40% i okresie 45 dni: 50 × 0,40 × √(45 ÷ 365) = 7,02 USD, czyli przedział wynoszący około 14%.
Czy cena strategii at-the-money straddle jest taka sama jak oczekiwany ruch?
W przybliżeniu, ale nie jest identyczna. Cena straddle odzwierciedla oczekiwany średni ruch, który odpowiada około 0,798 odchylenia standardowego. Pomnożenie premii za straddle przez 1,25 pozwala odtworzyć wartość jednego odchylenia standardowego wynikającą ze wzoru.
Czy kurs akcji pozostaje w przedziale oczekiwanego ruchu?
Zwykle tak, a model zakłada, że przedział zostanie przekroczony w około 32% przypadków. W analizowanych wyżej tygodniowych oknach 23.3% z NVDA okien zakończyło się poza implikowanym przedziałem, a 24.3% z SPY okien nie.
Dlaczego oczekiwany ruch zmniejsza się bezpośrednio po publikacji wyników?
Oczekiwany ruch jest bezpośrednią funkcją zmienności implikowanej. Zmienność implikowana rośnie przed zaplanowaną publikacją raportu, a po jej przeprowadzeniu spada. W powyższym zestawieniu sesja po publikacji raportu NVDA odpowiadała 42.9% odczytu z dnia publikacji raportu.
Czy szerszy oczekiwany ruch oznacza lepszą okazję?
Oznacza wyłącznie szerszy przedział. Większy oczekiwany ruch wskazuje, że rynek opcji wycenia wyższą niepewność, a kontrakty uwzględniające tę niepewność są proporcjonalnie droższe. Szerokość przedziału nie mówi nic o tym, czy jego cena jest godziwa.
Każdy panel jest tutaj zapisanym zapytaniem z dołączonym kodem SQL. Należy otworzyć wybrane zapytanie, zmienić ticker i uruchomić ten sam test zmienności implikowanej względem zrealizowanej w terminalu Strasmore.