Historyczne dane zmienności implikowanej źródła
Analiza źródeł historycznych danych zmienności implikowanej. Wyjaśnienie rozbieżności w seriach trzydziestodniowych oraz zestawienie dostępnych bezpłatnych i płatnych narzędzi.
24.9%
Historyczna zmienność implikowana
Historyczna zmienność implikowana (IV) jest wartością wyliczaną, a nie rejestrowaną, co wyjaśnia, dlaczego trudniej o nią niż o historię cen. IV to wynik uzyskiwany poprzez wprowadzenie rynkowej ceny opcji do modelu wyceny i obliczenie wartości wstecznej, aż wynik modelu zrówna się z ceną widoczną na ekranie. Żadna giełda nie publikuje tego parametru w komunikatach transakcyjnych, dlatego każda publikowana historia IV opiera się na określonych założeniach dotyczących modelu, kwotowań, doboru kontraktów oraz interpolacji. Wybory te stanowią o różnicach między dwoma zestawami danych, które rzekomo mierzą to samo zjawisko.
Jeśli poszukują Państwo definicji, czym jest zmienność implikowana oraz jak obliczana jest zmienność implikowana wyjaśniają mechanikę tego procesu. Poniżej przedstawiono źródła danych historycznych oraz sposób rozróżniania poszczególnych wersji tych wskaźników.
Dlaczego historyczne dane o zmienności implikowanej są trudniej dostępne niż dane cenowe?
Dzienne zamknięcie jest faktem obserwowalnym: transakcja została wykonana, a wszyscy dostawcy danych raportują tę samą wartość. Poziom zmienności implikowanej (IV) jest natomiast wynikiem obliczeń, a cztery zmienne wejściowe dla tego procesu różnią się w zależności od źródła.
- Model: wycena europejska Blacka-Scholesa, amerykańskie drzewo dwumianowe z uwzględnieniem dywidend dyskretnych lub autorski wariant dostawcy, uwzględniający własne założenia dotyczące stóp procentowych i kosztów pożyczki papierów.
- Cena wejściowa: kurs kupna (bid), kurs sprzedaży (ask), średnia (mid), ostatnia transakcja lub cena rozliczeniowa giełdy.
- Wybór kontraktów: jeden strike typu at-the-money, przedział moneyness, filtr wolumenu lub otwartych pozycji (open interest).
- Sposób wyznaczania stałego terminu zapadalności: interpolacja między dwiema seriami wygasającymi po obu stronach okresu trzydziestodniowego lub uśrednianie wszystkich kontraktów w danym oknie czasowym do wygaśnięcia.
Zmiana jednego parametru wejściowego powoduje przesunięcie poziomu zmienności. Zmiana wszystkich czterech sprawia, że dwa rzetelne źródła mogą wskazywać wartości różniące się o kilka punktów procentowych w tej samej sesji, przy czym żadne z nich nie popełnia błędu.
Rozbieżność pojawia się już w obrębie jednego instrumentu. Poniższy panel przedstawia dane dla AAPL z czerwca 2026 roku, uwzględniając wyłącznie kontrakty o cenie wykonania w przedziale pięciu procent od kursu spot, z podziałem na czas pozostały do wygaśnięcia.
Dokładny kod SQL dla każdej liczby
SELECT
dte_band,
round(100 * quantileDeterministic(0.25)(iv, contract_hash), 1) AS iv_p25_pct,
round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS iv_median_pct,
round(100 * quantileDeterministic(0.75)(iv, contract_hash), 1) AS iv_p75_pct,
count() AS contract_day_count
FROM
(
SELECT
multiIf(days_to_expiry <= 7, '01-07d',
days_to_expiry <= 21, '08-21d',
days_to_expiry <= 45, '22-45d',
days_to_expiry <= 90, '46-90d',
days_to_expiry <= 180, '91-180d',
'181d+') AS dte_band,
toFloat64(implied_volatility) AS iv,
cityHash64(ticker) AS contract_hash,
days_to_expiry AS dte
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date >= '2026-06-01'
AND date < '2026-07-01'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry > 0
AND underlying_close > 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY dte_band
ORDER BY min(dte)Ten sam instrument bazowy, ten sam miesiąc, wyłącznie kontrakty bliskie cenie wykonania (near-the-money). Najkrótszy widoczny przedział, 01-07d, charakteryzował się medianą IV na poziomie 29.6%. Najdłuższy, 181d+, wynosił 28.1%. W samym tylko pierwszym przedziale dwudziesty piąty i siedemdziesiąty piąty percentyl wyniosły odpowiednio 24.9% oraz 35.8%. Kształt zmienności wzdłuż terminów wygaśnięcia to struktura terminowa, a jej odpowiednik wzdłuż cen wykonania to krzywizna zmienności. Nie istnieje jedna wartość IV. Istnieje powierzchnia zmienności, a każda publikowana liczba dotycząca IV dla AAPL jest jedynie jej podsumowaniem, co śledzi nasza strona zmienność implikowana AAPL.
Dlaczego dwa wykresy 30-dniowej zmienności implikowanej (IV) wskazują różne wartości?
Należy wziąć jeden płynny instrument bazowy, dane z roku sesji i wyliczyć 30-dniową zmienność implikowaną na trzy sposoby, korzystając z tych samych danych źródłowych. Pierwsza kolumna uwzględnia ceny wykonania w przedziale jednego procenta od kursu bieżącego oraz terminy wygaśnięcia od dwudziestu pięciu do trzydziestu pięciu dni, co stanowi najbardziej precyzyjny dostępny odczyt. Druga kolumna rozszerza zakres do pięciu procent od kursu bieżącego oraz od dwudziestu do czterdziestu pięciu dni, co jest praktycznym standardem w sytuacjach, gdy każda sesja musi zostać uwzględniona. Trzecia kolumna waży ten szerszy zbiór wolumenem kontraktów, przesuwając średnią w stronę cen wykonania, dla których faktycznie odnotowano transakcje.
Dokładny kod SQL dla każdej liczby
WITH
near_money AS
(
SELECT
toMonday(date) AS week_start,
toFloat64(implied_volatility) AS iv,
days_to_expiry AS dte,
volume AS vol,
abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= '2025-08-01'
AND date < '2026-08-01'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
),
weekly AS
(
SELECT
week_start,
avgIf(iv, dte BETWEEN 25 AND 35 AND moneyness < 0.01) AS tight_atm,
avg(iv) AS wide_atm,
sum(iv * vol) / sum(vol) AS volume_weighted
FROM near_money
GROUP BY week_start
HAVING countIf(dte BETWEEN 25 AND 35 AND moneyness < 0.01) > 0
)
SELECT
toString(week_start) AS week,
concat(monthName(week_start), ' ', toString(toDayOfMonth(week_start)), ', ', toString(toYear(week_start))) AS week_label,
round(100 * tight_atm, 1) AS tight_atm_pct,
round(100 * wide_atm, 1) AS wide_atm_pct,
round(100 * volume_weighted, 1) AS volume_weighted_pct,
round(100 * (greatest(tight_atm, wide_atm, volume_weighted)
- least(tight_atm, wide_atm, volume_weighted)), 1) AS spread_pp
FROM weekly
ORDER BY week_startW pierwszym tygodniu okresu obserwacji, July 28, 2025, trzy metody wyliczeń wskazały wartości 16.6%, 16.4% oraz 16.7%. Różnica między najwyższym a najniższym odczytem wyniosła 0.2 punktu procentowego, a kolumna spreadu śledzi tę rozpiętość przez wszystkie 53 tygodni. Żaden z tych trzech wskaźników nie stanowi jedynej prawdziwej wartości 30-dniowej zmienności implikowanej dla funduszu. Każdy z nich odpowiada na nieco inne pytanie, a wykres dostarczony przez dostawcę danych jest jednym z nich, przy czym metodologia obliczeń nie została uwzględniona w opisie.
Jak daleko wstecz sięga historia zmienności implikowanej dla poszczególnych kontraktów?
Zbiór danych stojący za tymi panelami to global_markets.options_greeks: jeden wiersz na kontrakt na dzień sesyjny, zawierający zmienność implikowaną obok delty, gammy, vegi, tety i rho, a także cenę wykonania, datę wygaśnięcia, liczbę dni do wygaśnięcia, symbol instrumentu bazowego oraz jego kurs zamknięcia. Są to dane na koniec dnia, a nie migawka notowań w czasie rzeczywistym. Poniższy panel zlicza, ile odrębnych instrumentów bazowych posiada co najmniej jeden wiersz ze zbieżną zmiennością implikowaną w każdym kwartale.
Dokładny kod SQL dla każdej liczby
SELECT
concat(toString(toYear(date)), '-Q', toString(toQuarter(date))) AS quarter,
uniqExact(underlying_symbol) AS underlyings_covered
FROM global_markets.options_greeks
WHERE iv_converged = 1
AND volume > 0
AND underlying_symbol NOT IN ('SPCX')
AND date < '2026-07-01'
GROUP BY quarter
ORDER BY min(date)Zakres danych obejmuje okres od 2014-Q2 do 2026-Q2, łącznie 49 kwartałów, przy czym 5799 instrumentów bazowych posiadało zbieżną dzienną zmienność implikowaną w ostatnim pełnym przedstawionym kwartale.
Podczas odpytywania takiego zbioru danych większość pracy wykonują cztery filtry.
- Zachowaj
iv_converged = 1. Algorytm nie zawsze znajduje rozwiązanie, a niezbieżny wiersz oznacza nieudane dopasowanie, a nie niski odczyt. - Zachowaj
volume > 0. Kontrakt, który nigdy nie był przedmiotem obrotu, posiada zmienność implikowaną wyliczoną na podstawie nieaktualnej kwotowania. - Grupuj według
underlying_symbol. Kolumnatickerzawiera kod kontraktu OCC, więc grupowanie według niej zwraca jeden wiersz na cenę wykonania i datę wygaśnięcia, zamiast jednego wiersza na spółkę. - Wybieraj kontrakty celowo, w okolicach ceny instrumentu bazowego (near the money) oraz w określonym przedziale dni do wygaśnięcia. Pominięcie tego kroku powoduje uśrednienie krzywej zmienności (skew) oraz struktury terminowej do jednej wartości.
Czy istnieje darmowe API do implikowanej zmienności?
Dostępne są darmowe źródła, z których każde posiada określone ograniczenia.
- Platformy brokerskie obliczają IV na podstawie własnych łańcuchów opcji i prezentują ją w czasie rzeczywistym. Historia danych do pobrania jest krótka lub nie istnieje, a podana wartość wynika z modelu danego brokera, a nie ze standardu rynkowego.
- Publikowane przez giełdy indeksy zmienności mają wieloletnią historię i są bezpłatne. Każdy z nich stanowi jedną zagregowaną wartość dla całego koszyka aktywów, co pozwala ocenić sytuację na całym rynku, a nie dla konkretnej spółki.
- Ogólne API z danymi rynkowymi zazwyczaj ograniczają się do cen. Greki dla poszczególnych kontraktów są niemal wszędzie oferowane jako oddzielny produkt, a darmowe plany zazwyczaj udostępniają jedynie bieżący odczyt bez archiwum. Nasze zestawienie darmowych API z danymi giełdowymi szczegółowo opisuje, co faktycznie oferują darmowe pakiety.
- Historyczne dane dla poszczególnych kontraktów, oferowane przez dostawców komercyjnych, zawierają długie archiwa dla konkretnych spółek. Są one sprzedawane jako pliki z danymi na koniec dnia w ujęciu miesięcznym lub rocznym, przy czym dostęp do łańcuchów w czasie rzeczywistym jest znacznie droższy niż do zbiorów historycznych. Artykuł Ile kosztują dane rynkowe w czasie rzeczywistym przedstawia strukturę tych cenników.
Rozróżnienie między migawką danych a danymi na koniec dnia jest równie istotne co cena. Migawka wykonana o godzinie 16:00 czasu ET wykorzystuje kwotowania dostępne w tym konkretnym momencie. Plik stworzony na podstawie cen rozliczeniowych wykorzystuje zupełnie inne dane wejściowe, a rozbieżności między nimi są największe w dniach o wysokiej zmienności.
Zmienność indeksowa i zmienność dla pojedynczych spółek nie są zamienne. Opcja na indeks wycenia ruch całego koszyka, w którym wzajemnie znoszące się zmiany poszczególnych składników wygładzają wynik końcowy. Opcja na pojedynczą spółkę wycenia ścieżkę cenową konkretnego podmiotu. Poniższa tabela zestawia znane spółki w okresie jednego miesiąca przy zastosowaniu identycznych filtrów.
Dokładny kod SQL dla każdej liczby
SELECT
underlying_symbol AS symbol,
round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS median_iv_pct,
count() AS contract_day_count
FROM
(
SELECT
underlying_symbol,
toFloat64(implied_volatility) AS iv,
cityHash64(ticker) AS contract_hash
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'XOM', 'TLT')
AND date >= '2026-06-01'
AND date < '2026-07-01'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY symbol
ORDER BY median_iv_pct DESCW czerwcu 2026 roku mediana IV dla opcji typu near-the-money w oknie od dwudziestu do czterdziestu pięciu dni wynosiła od 38.5% dla NVDA do 10.4% dla TLT, w grupie 8 spółek. To samo okno, te same filtry, ta sama metoda obliczeń. Taki ranking jest miarodajny tylko wtedy, gdy metodologia pozostaje niezmienna dla każdej spółki w zestawieniu.
Czy źródło danych ma znaczenie dla IV rank i IV percentile?
Decyduje ono o wyniku. IV rank mierzy dzisiejszą wartość IV w odniesieniu do najwyższych i najniższych wartości z okresu retrospekcji, zazwyczaj jednego roku, natomiast IV percentile określa, jaki odsetek dni w tym okresie charakteryzował się niższą zmiennością niż dzisiejsza. Oba wskaźniki analizują szereg danych od początku do końca, zatem zmiana w samym szeregu wpływa na wynik, nawet przy braku zmian na rynku. Połączenie IV opartej na średniej cenie kwotowanej u brokera z danymi archiwalnymi dostawcy opartymi na kursach rozliczeniowych tworzy trwały uskok w środku okresu retrospekcji, a każdy wyliczony na tej podstawie wskaźnik dziedziczy ten błąd. IV rank a IV percentile szczegółowo omawia oba sposoby obliczeń. Ten sam wymóg dotyczy porównywania zmienności implikowanej z realizowaną: zmienność historyczna a zmienność implikowana opisuje to zestawienie.
Standardem operacyjnym jest zasada spójności pochodzenia danych. Należy wybrać jedno źródło, jeden model, jedną metodę doboru kontraktów oraz jedną konwencję zapadalności, a następnie utrzymać wszystkie cztery parametry niezmienne przez cały okres retrospekcji. Szereg danych, który jest wewnętrznie spójny, a jednocześnie nieznacznie różni się od innych, jest bardziej wartościowy niż szereg „zszywany”, który jedynie fragmentarycznie zgadza się z danymi poszczególnych dostawców.
Najczęściej zadawane pytania
Gdzie można uzyskać historyczne dane dotyczące zmienności implikowanej?
Długie szeregi czasowe dla pojedynczych instrumentów pochodzą od dostawców danych opcyjnych, którzy oferują wyceny greckich parametrów na koniec dnia dla każdego kontraktu, zazwyczaj w formie plików miesięcznych lub rocznych. Giełdy publikują bezpłatne zestawienia historycznej zmienności dla indeksów. Platformy brokerskie prezentują bieżącą zmienność implikowaną w łańcuchach opcji, oferując przy tym ograniczoną możliwość pobierania danych historycznych. Prezentowane powyżej panele bazują na codziennym zbiorze danych dla każdego notowanego kontraktu, z uwzględnieniem dopasowania modelu.
Czy istnieje bezpłatne API z danymi o zmienności implikowanej?
Bezpłatne pakiety obejmujące greckie parametry dla poszczególnych kontraktów są rzadkością, a istniejące rozwiązania zazwyczaj udostępniają bieżący odczyt zamiast archiwum. Historyczne dane o zmienności indeksów są głównym, rzeczywiście bezpłatnym, długim szeregiem danych. Szczegółowa historia dla pojedynczych akcji jest zazwyczaj produktem płatnym.
Dlaczego dwa źródła wskazują różną zmienność implikowaną dla tej samej spółki?
Wynika to z zastosowania odmiennych modeli wyceny, różnych kwotowań wejściowych, odmiennego doboru kontraktów oraz różnic w interpolacji zapadalności. Powyższy panel generuje trzy trzydziestodniowe szeregi z jednego zestawu danych, które już w pierwszym tygodniu różnią się o 0.2 punktów procentowych, dlatego rozbieżność między dwoma dostawcami jest zjawiskiem oczekiwanym, a nie błędem.
Jak daleko wstecz sięgają dane o zmienności implikowanej?
Zależy to od źródła, przy czym archiwa dla poszczególnych kontraktów są wszędzie krótsze niż archiwa cenowe. Zbiór danych wykorzystany na tej stronie rozpoczyna się od 2014-Q2 i zawiera dzienne odczyty dla każdego kontraktu, dla którego uzyskano zbieżność modelu.
Każdy panel zawiera kod SQL, który posłużył do wygenerowania danych; należy go rozwinąć, aby sprawdzić, które dokładnie kontrakty zostały uwzględnione w obliczeniach. Aby zbudować analogiczny szereg dla innego instrumentu, w innym oknie czasowym lub według innej metodologii, należy zgłosić takie zapytanie w języku angielskim w terminalu Strasmore.