프리미엄
예측대회
투자분석
아카데미
커뮤니티
로그인Valley AI 시작하기시작하기
Valley Space인기
[옵션] VIX의 구성요소와 시장참여자들의 심리
실력, 리스크 관리, 비효율성, 시간옵션 (Option)

[옵션] VIX의 구성요소와 시장참여자들의 심리

avatar
911GT3RS
2025.08.04조회수 360회
avatar
911GT3RS
구독자 1,988명구독중 107명
Hybrid Theory

0. 들어가며

image.png

먼저, CBOE에서 발간한 따끈따끈한 보고서를 소개해주신 Valley의 옵션장인 asymmetry님께 감사드립니다.

  • Cboe - VIX Index Decomposition

내용이 궁금해서, 제가 보려는 목적으로 번역본도 올려보았는데, 조금 복잡하긴 하지만 너무 흥미로워서 제가 이해한 것이 맞는지도 의견을 나눠볼 겸, 나름대로의 해석을 덧붙여 볼까 합니다. 저는 현업도, 옵션을 본격적으로 매매하는 전문 트레이더도 아니고, 그저 옵션을 공부하면서 정리하기 위해 쓴 글이니, 제가 틀리게 알고 있는 부분이 있으면 가감없는 댓글 부탁드립니다.


번역본을 먼저 한번 훑어보시고, 대략 이해가 가시면 이하 내용은 동어반복이라 굳이 읽어보실 필요가 없을 것 같습니다.


1. VIX 상승의 구성요소 분해

우리는 VIX를 단순히 공포지수 혹은 내재변동성 지수라고만 알고 있고, S&P500이 하락하면 VIX는 상승한다 정도로만 알고 있습니다. 조금 더 나아간다면, S&P500 옵션시장 참여자들이 생각하는 향후 30일간의 S&P500의 기대변동성의 연율화된 값이라고 설명할 수 있겠습니다. 그리고 실제로 S&P500과 VIX의 상관관계는 거의 -1에 육박한다고 알려져 있습니다.


따라서, 단순히 "시장이 떨어져서 VIX가 올랐다"라는 해석 정도로는 시장에 대한 특별한 인사이트를 읽을 수가 없습니다. 저 역시도 VIX에 대한 이해도가 부족해서 딱 그 정도 레벨에 머물러 있었고, 기껏해야 SPX와 VIX의 다이버전스를 통해 "추세 반전이 임박했다" 정도로만 해석하는 데에 그쳤을 뿐 그 이상의 인사이트를 뽑아내기에는 어려움이 있었습니다.

  • "당신은 몇차원 시장참여자인가?"라는 질문과 파생상품 시장


그런데 이번에 CBOE에서 8월 1일자로 발간한 VIX Index Decomposition, 즉 VIX 지수의 분해라는 보고서를 통해 그 실마리를 조금 잡을 것도 같다는 생각을 하게 되었습니다.


보고서의 요지는

VIX지수가 상승했을 때, 그 상승의 기여도를 여러가지 하위요소로 분해해서 바라보면 단순히 VIX 수치 이상의 인사이트를 얻을 수 있다.

라는 것입니다.


보고서에서 CBOE는 VIX 변화의 구성요소를 크게 아래와 같이 분해합니다.

  1. 행사가 변화에 의한 VIX 변화량 (ATM 구간)

  2. 스큐 곡선의 평행이동에 의한 VIX 변화량

  3. 시장의 심리에 의한 변화량 (지수와 VIX의 동반 움직임)

  4. 외가 콜옵션 및 풋옵션 기울기 변화에 의한 VIX 변화량 (15Δ ~ 45Δ 구간)

  5. 극외가 콜옵션 및 풋옵션 곡률 변화에 의한 VIX 변화량 (1Δ ~ 15Δ 구간)

즉, 내재변동성 커브(IV Curve)를 행사 가능성인 델타를 기준으로 나누어서 해석해보는 것입니다. 하나씩 살펴보겠습니다.


1-1. 행사가 변화에 의한 VIX 변화량 (ATM 구간)

VIX 변화의 첫번째 구성요소는 행사가 자체가 변화함에 따라 내재변동성(이하 IV) 역시 정해진 IV 커브(IV Curve) 위에서의 움직임이는 데에서 오는 변화입니다. 아래 차트를 보면, X축은 옵션의 행사가이고 Y축은 해당 행사가에서의 내재변동성(%)를 나타냅니다.

image.png

연한색은 앤캐리 청산 사태 폭락 전인 8월 2일의 IV커브, 진한색은 폭락 후인 8월 5일의 IV커브입니다. 여기서 곡선 자체가 위로 이동한것은 제외하고, 연한 곡선위에서 8월 2일자에서 8월 5일자로 이동한 것을 확인해보겠습니다.(빨간색 화살표)

X축이 옵션의 행사가라고 했는데, 폭락전인 8월 2일의 등가격은 5,346이었습니다. 그리고 8월 5일 폭락 후 등가격은 5,186이었습니다. 그럼 순수하게 S&P500이 5,346에서 5,186까지 떨어지면서, 즉 X축이 움직이면서 내재변동성이 상승한 변화량을 측정하려면, 이동전의 Y값과 이동후의 Y값의 차이를 구하면 됩니다.


따라서,

  • 연한색 곡선위에서 X축 행사가 5,346에 해당하는 Y값(IV)는 18.99

  • 연한색 곡선위에서 X축 행사가 5,186에 해당하는 Y값(IV)는 21.55

즉, IV곡선의 모양과 위치가 아무것도 변하지 않았다고 가정했을 때 순수하게 행사가의 변화 때문에 발생한 IV의 변화량은 21.55-18.99 = 2.57이라는 의미입니다. 이것이 고정 행사가(Sticky strike)당 예상 움직임이라고 보고서에서는 표현하고 있습니다.


IV 커브를 고정시킨 상태에서 순수 행사가의 움직임으로부터 기인한 IV변화인이 고정행사가 당 예상 움직임은 변동성이 낮은 체제(Regime)에서는 꽤나 예측가능성 있게 움직입니다. 따라서 IV 커브가 상하좌우로 요동치지 않는 안정된 변동성 체제하에서는 SPX가 하락하는 만큼 비례해서 정직하게 움직이기 때문에 예측가능한 VIX 체제를 만듭니다.


아래 표를 봐도, ① VIX레벨이 낮을수록, ② VIX 움직임의 폭이 작을 수록 고정행사가당 예상움직임의 설명력이 높은 것을 확인할 수 있습니다.

image.png

1-2. 스큐 곡선의 평행이동에 의한 VIX 변화량

1번에서는 스큐 곡선,...

회원가입만 해도
이 글을 무료로 읽을 수 있어요.

Basic 7일 무료 체험 시작하기
이미 계정이 있으신가요?로그인하기
댓글 6개
avatar
uyru
2025.08.04

좋은 글 감사드립니다. 이번 글에서 911GT3RS님의 성장이 또 보이는 것 같아서 참 대단하시다는 생각이 듭니다. 서술해주신 내재변동성 커브와 채권 금리가 비슷한 느낌이 든다는 생각에 공감이 되었습니다. 앞으로 옵션시장을 볼 때 아무리 못해도 내재변동성 커브의 변화를 읽는 것은 필요할 것 같다는 생각이 들었습니다. :)

(수정됨)
avatar
911GT3RS
작성자
2025.08.04

엡실론에 이런 것들이 탑재되면 넘모 즐거울 것 같습니다 ㅎㅎㅎ

avatar
투자로부자됨
2025.08.04

좋은글 정말 감사합니다. 이해하는데 세시간 걸렸네요... 한번 현재상황에 맞게 활용해보고싶은데 혹시 그림.10번같은 일정기간의 행사가에 대한 내재변동성 그래프는 어디서 확인하거나 그려볼 수 있을까요?

avatar
911GT3RS
작성자
2025.08.04

아, 현재는 과거 데이터와 현재 데이터를 비교하는 곳은 대부분 유료인것 같고 아직 만기가 도래하지 않은 미래 옵션들의 IV커브는 트레이딩뷰에서 확인 가능하십니다. (Valley AI내의 트레이딩뷰 차트에서는 아직 지원하지 않음) 트레이딩뷰에서 종목차트를 띄우신 다음에 화면 제일 오른쪽 세로 탭에 점 9개짜리 버튼 누르시면 맨 아래에 옵션이라고 있습니다. 그걸 누르고 들어가셔서 '변동성' 탭에 가시면 만기별 IV 커브를 선택해서 비교해 보실 수 있습니다.

(수정됨)
avatar
투자로부자됨
2025.08.05

댓글까지 감사합니다. 잘배울게요.

avatar
asymmetry
2025.08.09

와우! 감사합니다. 너무 깔끔하고 정성스런 정리네요. 요새 CME 실시간 데이터 받아서 이리 저리 해보고 있는데 나중에 도움이 될만한 내용 있으면 공유 해보겠습니다.

옵션 (Option) 카테고리의 다른글

[옵션] 상승하는 주식시장과 의심하는 옵션시장

1. VIX [S&P500과 VIX(파란색, 상하반전)] 주식시장은 전고점을 넘겨 상승했지만, 옵션시장(VIX, 상하반전)은 전고점을 회복하지 못함. 즉, 상하반전된 차트이므로 주가가 상승하는 것에 비해 내재변동성은 더이상 하락하지 못하고 바닥이 Sticky한 상태라고 해석할 수 있음 7월 9일 상호관세 유예 마감일을 의식한 것일까? 이런 경우는 당연한 소리일 수도 있지만 둘 중 한가지로 귀결됨. 옵션시장 참여자들이 틀렸다는 것이 밝혀져서 불확실성 해소에 따라 VIX가 급격히 하락하여 주가와 상관관계를 다시 회복하거나 주식시장 참여자들이 틀렸다는 것이 밝혀져서 VIX의 방향으로 주가가 수렴하여 하락하거나 2. VVIX [S&P500과 VIX(파란색, 상하반전), ...
옵션 (Option)
2025. 07. 03
37
16
591
[옵션] 상승하는 주식시장과 의심하는 옵션시장

[옵션] 만기별 옵션의 내재확률 시각화하기 (Feat. Asymmetry님)

Asymmetry님의 [Repository] #002 옵션내재확률 구하기글을 참조하여, 만기별 옵션 내재확률분포를 시각화하고, 인터랙티브 차트로 구성하는 코드를 작성해봄 만기를 세개까지 동시에 비교할 수 있도록 하고, 현물 가격을 세로선으로 표시하도록 수정 굳이 인터랙티브 차트를 추가 구성해 본 이유는 마우스를 갖다대면 내재확률(PDF)와 누적확률(CDF)가 나오기 때문에 만기에 특정 행사가 내에서 마감할 확률의 구간 추정에 용이하기 때문일 것 같아서임. spx_quotedata 받아서 어떻게든 혼자 해보려고 Cursor 고문하다가 포기하려던 무렵, Asymmetry님이 옛날에 올려주셨던 코드를 발견해서 마개조함. (감사합니다 비대칭좌...) 이제 이를 어떻게 해석해서 실전적인 마켓뷰로 반영할 수 있는지 연구해보자. 코드전문 import pandas as pd import numpy as np from scipy.interpolate import interp1d, UnivariateSpline from scipy.ndimage import gaussian_filter1d from scipy.stats import norm, skew, kurtosis import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatter from scipy.optimize import brentq from scipy.integrate import cumulative_trapezoid import datetime from datetime import datetime import plotly.graph_objects as go from plotly.subplots import make_subplots def is_third_friday(date): return date.weekday() == 4 and 15 <= date.day <= 21 # Time difference calculation: seconds -> minutes -> years def calculate_time_to_expiry(expiration_datetime): current_datetime = datetime.now() time_difference = (expiration_datetime - current_datetime).total_seconds() / 60 # Convert seconds to minutes time_in_years = time_difference / 525600 # Convert minutes to years return time_in_years # Modified function to handle expiration filtering and time delta calculation def process_expiration_data(option_data, target_dates): results = {} spotPrice = get_spot_price(file_path) for target_date in target_dates: print(f"\nProcessing data for expiration date: {target_date}") # Filter for expiration date and identify if it's the third Friday data_date = option_data[option_data['Expiration Date'] == target_date].copy() if is_third_friday(target_date): # Print a message confirming that we are excluding SPXW print(f"Third Friday identified for {target_date}, only taking SPX (excluding SPXW).") data_date = data_date[~data_date['Calls'].str.contains('SPXW')] # Exclude SPXW if third Friday else: print(f"Not the third Friday. Both SPX and SPXW are included for {target_date}.") # Apply expiration datetime and calculate time to expiry in years data_date['Expiration DateTime'] = data_date.apply(assign_expiration_datetime, axis=1) expiration_datetime = data_date['Expiration DateTime'].iloc[0] T = calculate_time_to_expiry(expiration_datetime) # Time to expiration in years print(f"Time to Expiration: {T} years") # Clean and filter valid data data_date = data_date.dropna(subset=['Bid', 'Ask', 'Bid.1', 'Ask.1']) data_date = data_date[(data_date['Bid'] > 0) & (data_date['Ask'] > 0) & (data_date['Bid.1'] > 0) & (data_date['Ask.1'] > 0)] # Continue with further steps such as calculating mid prices, implied volatility, etc. # ... # Store results for plotting and comparison later results[target_date] = { 'spot_price': spotPrice, 'time_to_expiry': T, # Other results you compute... } return results def assign_expiration_datetime(row): exp_date = row['Expiration Date'] if 'SPXW' in row['Calls']: # PM-settled SPXW (weekly options expire at 4:00 PM) return datetime(exp_date.year, exp_date.month, exp_date.day, 16, 0) else: # AM-settled SPX (standard options expire at 9:30 AM) return datetime(exp_date.year, exp_date.month, exp_date.day, 9, 30) def implied_volatility(option_price, S, K, T, r, option_type='call'): def bs_price(sigma): if sigma <= 0: return np.nan d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T)) d2 = d1 - sigma * np.sqrt(T) if option_type == 'call': price = S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2) else: price = K * np.exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1) return price def objective_function(sigma): return bs_price(sigma) - option_price try: implied_vol = brentq(objective_function, 1e-6, 5, maxiter=1000) except (ValueError, RuntimeError): implied_vol = np.nan return implied_vol def bs_price(S, K, T, r, sigma, option_type='call'): sigma = max(sigma, 1e-6) d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T)) d2 = d1 - sigma * np.sqrt(T) if option_type == 'call': price = S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2) else: price = K * np.exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1) return price def calculate_implied_pdf(prices, strikes): interp_func = interp1d(strikes, prices, kind='cubic', fill_value='extrapolate') fine_strikes = np.linspace(min(strikes), max(strikes), 500) prices_fine = interp_func(fine_strikes) price_d2 = np.gradient(np.gradient(prices_fine, fine_strikes), fine_strikes) return price_d2, fine_strikes def normalize_pdf(pdf, strikes): pdf = np.maximum(pdf, 0) total_prob_before = np.trapezoid(pdf, strikes) if total_prob_before == 0: total_prob_before = 1e-6 pdf_normalized = pdf / total_prob_before cdf = cumulative_trapezoid(pdf_normalized, strikes, initial=0) cdf_normalized = cdf / cdf[-1] return pdf_normalized, cdf_normalized def normalize_pdf_within_zoomed_range(pdf, strikes, total_prob_zoomed): pdf_normalized = pdf / total_prob_zoomed cdf_zoomed = cumulative_trapezoid(pdf_normalized, strikes, initial=0) cdf_zoomed_normalized = cdf_zoomed / cdf_zoomed[-1] return pdf_normalized, cdf_zoomed_normalized def get_spot_price(filename): with open(filename, 'r', encoding='utf-8') as optionsFile: optionsFileData = optionsFile.readlines() spotLine = optionsFileData[1] spotPrice_str = spotLine.split('Last:')[1].split('Change:')[0].strip() spotPrice = float(spotPrice_str.replace(',', '')) return spotPrice def find_percentile(strikes, cdf, percentile): idx = np.abs(cdf - percentile / 100).argmin() return strikes[idx] # Load the data file_path = r'spx_quotedata.csv' option_data = pd.read_csv(file_path, skiprows=3) # Parse and filter by expiration date option_data['Expiration Date'] = pd.to_datetime(option_data['Expiration Date']).dt.date # Define the three target dates target_dates = [pd.Timestamp('2025-06-27').date(), pd.Timestamp('2025-07-18').date(), pd.Timestamp('2025-08-15').date()] results = process_expiration_data(option_data, target_dates) # Get spot ...

[옵션] 옵션 시장 대시보드 만드는 중

옵션 관련 플랫폼은 하나같이 더럽게 비싸다. 5만원 이하는 거의 없다고 봐야하고, 기본이 10만원 가까이 하면서도 옵션 매도를 할만한 자본금이 되지 않기 때문에 옵션의 꽃인 합성 포지션을 구축할 수가 없어서 그 기능을 전부 누리지도 못한다. 데이나 HFT를 할 게 아니고, 그냥 일~주단위로 주식시장에 어떤 영향을 미칠 지 정도를 알아보고 싶다면, 그냥 CBOE 사이트에서 SPX Delayed Quotes를 받아서 파이썬으로 돌리는 것 만으로도 마켓감마나 기간 구조등은 충분히 확인할 수 있는 것 같다는 생각이 들어서, 옵션 플랫폼 구독을 해지하고 직접 만들기로 했다. 물론, 투자은행들처럼 정교한 모델을 만들 수는 없지만, 대략적으로 참조만 할 목적 + 공부 정도로는 충분하지 않을까 싶다. 현재 생각중인 것들은 아래와 같은데, ...
옵션 (Option)
2025. 06. 16
35
12
406

[옵션] 조정일 것인가, 폭락일 것인가?

0. 들어가며 시장참여자들이 '하락'을 우려한다는 것 자체가 생각보다 여러가지 의미를 내포하는 것 같습니다. 그래서 우리는 하락을 두가지의 관점에서 나눠서 생각해볼 필요가 있다고 생각합니다. 시장이 하락 우려를 얼마나 하고 있는지? 하락한다면 얼마나 하락할지? 위 두가지 질문을 엮어서 2×2=4가지의 구체적인 케이스로 나누어보면, 하락우려는 높지만, 그 정도가 심하지 않을 것으로 예상되는 경우 (단순 조정) 하락우려도 높고, 그 정도도 심할 것으로 예상되는 경우 (무차별적 폭락) 하락우려는 낮지만, 하락한다면 폭락이 나올 가능성이 존재하는 경우 (폭풍 전 고요) 하락우려도 낮고, 폭락할 가능성도 낮은 경우 (평화) 하락우려를 이 네가지로 구분해서 생각해본다면, 단순히 "시장이 하락할 것 같아"라는 말보다 더 나은 확률적 우위를 가질 수 있지 않을까?라는 의미에서 이 고민을 시작하게 되었습니다. 특히, 요즘처럼 시장이 공포에 휩싸여 있을 때에는 시장이 똑같이 하락하더라도 1번과 2번을 구분하는 것의 효용은 생각보다 크게 다가올 수도 있다고 생각합니다. 단순 조정이라서 용기있게 주울 시점이냐? 옵션시장 참여자들이 추가적인 폭락을 우려하고 있으니 일단 사려야 하는가? 옵션시장이 모든 것을 말해주거나 결과를 보장해줄 수는 없지만, 적어도 눈치싸움에는 도움이 될 수 있을 것 같습니다. 추가적으로 오늘 올라온 주인장님의 시황칼럼 113편에서, 주인장님은 추가적인 폭락에 대한 우려보다는 매수의 기회로 대응하고 계시는 것으로 보이는데, 만약 주인장님의 이번 롱베팅에 대한 주장을 수치적으로 뒷받침할 수 있다면 단순히 주인장님의 시황칼럼을 보고 리딩방 식으로 일희일비하는 것보다 나만의 근거를 바탕으로 매매를 완성해 갈 수 있지 않을까...하는 시도의 일환입니다. 목차 1. 시장은 하락우려를 얼마나 하고 있는가? 내재변동성 왜도 (IV Skew) 25 델타 리스크-리버설 (25D Risk Reversal) CME CVOL SKEW 2. 하락한다면 얼마나 하락할 것인가? VIX CBOE 스큐 인덱스(SKEW Index) 3. 한계 4. 결론 1. 시장은 하락우려를 얼마나 하고 있는가? 사실, 공부하면 할 수록, 하락우려라는 것 자체를 정의하는 것도 엄밀하게 하려면 쉬운 일이 아닌 것 같습니다. 다만 우리에게 주어진 정보는 '시장참여자들이 하락에 대한 걱정을 하기 시작하면 하는 행동들'을 관찰할 수 있을 뿐입니다. 비가 올 것 같으면 사람들은 우산을 찾습니다. 그럼 우리는 우산을 사는 주변 사람들의 행동들을 관찰하면서 '비가 올 수도 있겠다' 짐작할 뿐입니다. 하지만 사람들이 우산을 산다고 해서 반드시 비가 오는 것은 아니고, 비가 와도 사람들이 우산을 찾지 않을 수도 있습니다. 애초에 비가 오는 것 자체가 확률의 영역이고, 비가 온다고해서 꼭 우산으로 대비하라는 법은 없습니다. 우비도 있고, 모자를 쓸 수도 있고, 아예 집에서 안나올 수도 있겠죠. 이 비유가 주식시장과 꽤나 비슷한 것 같습니다. 시장참여자들은 시장이 하락할 것 같으면 풋옵션(우산)을 찾기 시작합니다. 하지만 풋옵션 수요가 늘었다고 해서 반드시 하락이 찾아오는 것은 아닙니다. 그리고 하락에 대한 대비를 반드시 풋옵션으로만 하라는 법은 없습니다. 주가지수 선물 숏, 아예 보유한 현물 주식을 팔아서 비중을 줄이는 것도 가능합니다. 그렇지만, 일단은 가장 관찰하기 용이한 것이 우산, 즉 풋옵션을 얼마나 사고 있는지 관찰하는 것이기 때문에 거기서부터 시작해보려 합니다. 1-1. 내재변동성 왜도(IV Skew) 통상적인 의미로 시장(Market)이라는 것은 S&P500과 같은 주가지수(Index)를 의미합니다. 따라서 우리는 옵션시장을 통해서 시장의 심리를 읽어보려 할 때에는 개별주식 옵션보다는 자연스레 주가지수 옵션시장을 들여다보게 됩니다. 그래서 우리는 사람들이 우산을 얼마나 사는지 염탐해보려고 S&P500 옵션시장을 둘러보기 시작했다고 가정해보겠습니다. 그런데, 이 주가지수 옵션시장이라는 곳에는 구조적인 문제가 있습니다. 바로 온갖 헷징수요가 전부다 주가지수로 몰려든다는 점입니다. S&P500 옵션시장은 세계에서 가장 큰 우산시장이라서, 전국에서 우산을 사려는 사람들이 모두 여기로 몰려들기 때문에 우산수요가 거의 항상 많습니다. 아니, 나는 사람들이 우산을 사는지 안사는지를 좀 보려고 왔더니만... 사방팔방에서 너도나도 우산을 미친듯이 사고있는 상황이라 날씨 예측에 전혀 도움이 안되는 상황인 것이죠. S&P500 옵션시장에서는 왜 이렇게 미친듯이 사람들이 풋옵션을 사느냐?에 대해서는 조금 엄밀하지 않을 수도 있지만 다음과 같은 비유가 가능합니다. 헤지펀드들 중에 가장 대표격인 에퀴티 롱숏(Equity Long-short)펀드라는 부류가 있습니다. 이들은 먼저 상승 가능성이 높거나 저평가된 개별주식을 발굴하여 매수합니다. 근데, 아시다시피 개별주식들은 90% 이상은 시장이 오르면 오르고, 시장이 내리면 내립니다. 그럼 포트폴리오 매니저 입장에서는 상당히 짜증이 날겁니다. 내가 분명히 저평가된 주식을 발굴했는데, 운이 없게도 시장이 내려서 내가 고른 주식도 같이 떨어지면 개별종목을 열심히 리서치한 보람도 없고 괜히 쩐주들한테 눈치는 보이고... 그래서 헤지펀드들은 개별주식을 매수하자마자 주가지수 선물이나 옵션시장으로 달려가서 내가 매수한 주식들의 명목가치×베타만큼을 고려해서 SPY 풋옵션을 매수하거나, SPY를 공매도하거나, S&P500선물 숏포지션을 잡습니다. 가령, 테슬라를 1천만원을 매수했고 테슬라의 베타는 2.5라고 가정하면, SPY를 2,500만원어치 공매도 하여 말그대로 자신의 포지션을 헷지(Hedge)하는 것입니다. 주인장님이 여러번 소개해주셔서 아시겠지만, 이렇게 시장움직임을 완전히 헷지하는 것을 시장중립, 즉 마켓 뉴트럴(Market Neutral)이라고 합니다. 이렇게까지 시장 움직임으로부터 존야를 써버리고 나면, 헤지펀드들은 오로지 내가 고른 종목이 저평가되었다가 다시 적정가치로 회귀하는 만큼을 본인들의 엣지로 가져갑니다. 내가 고른 종목이 몇퍼센트 올랐냐가 아니라, 시장움직임을 헷지했기 때문에 '시장 대비' 얼마나 올랐냐가 수익이 되는 것입니다. 한마디로, 순수 종목 선택에서만 엣지를 가져가겠다는, 실로 자신감 넘치는 전략이지 않을 수 없습니다. 주가지수 옵션시장에서는 이런 극단적인 헷지를 하는 마켓 뉴트럴 헤지펀드들 뿐만 아니라 연기금 등 주식을 주로 매매하는 기관들이 어마어마하게 많기 때문에 필연적으로 포트폴리오를 보호하려는 풋옵션(우산) 수요가 거의 항상 넘쳐납니다. 일반적으로는 거의 항상 콜옵션 수요보다 많습니다. 그리고 이러한 풋옵션 수요는 자연스럽게 풋옵션의 내재 변동성(IV, Implied Volatility)을 상승시킵니다. 내재변동성이란 지난 옵션 관련 글에서 설명드렸듯이 옵션가격을 통해 역으로 산출해낸, 옵션가격에 '내재된' 변동성입니다. 옵션가격을 계산하기 위한 대표적인 모델인 블랙숄즈 모형은 다음 다섯가지 요소를 필요로 합니다. 기초자산 가격 옵션 행사가 만기까지의 남은 시간 이자율 변동성 이 다섯가지 입력값을 블랙숄즈 모형에 넣으면 옵션의 이론적인 가격이 나오는 것입니다. 행사가, 기초자산 가격, 만기, 이자율, 변동성 → 블랙숄즈 모델 → 옵션의 이론가격 행사가, 기초자산 가격, 만기, 이자율, 변동성 → 블랙숄즈 모델 → 옵션의 이론가격 근데, 위 요소들을 자세히 보면, 변동성을 제외한 나머지 요소들은 전부 시장에서 관찰할 수 있는 것들 입니다. 그럼 반대로 변동성을 제외한 나머지 입력값들을 다 채워 넣으면 우리는 역으로 변동성이 얼마인지를 구할 수가 있습니다. 행사가, 기초자산 가격, 만기, 이자율, 옵션의 이론가격 → 블랙숄즈 모델 → 내재 변동성 행사가, 기초자산 가격, 만기, 이자율, 옵션의 이론가격 → 블랙숄즈 모델 → 내재 변동성 이렇게 역산해서...

[옵션] 0DTE 옵션이 주식시장에 미치는 영향에 대한 리서치 (Deep Research)

※ 본 내용은 ChatGPT o1 Pro - Deep Research 기능을 통해 조사하여 요약하였습니다. 0DTE 옵션의 S&P 500 및 미국 주식시장 영향 분석 최근 5년간 주식옵션 시장에서는 만기일까지 남은 기간이 0일(Zero Days to Expiration, 0DTE)인 초단기 옵션의 거래가 폭발적으로 증가했습니다. 특히 S&P 500 지수옵션과 주요 미국 개별종목 옵션에서 이러한 당일만기 옵션의 인기가 급증하여, 시장 움직임과 변동성, 유동성, 투자자 행동에 적지 않은 영향을 미치고 있습니다. 아래에서는 관련 연구를 1) 학술 연구 및 논문과 2) 주요 금융기관 보고 및 분석으로 나누어 살펴보고, 0DTE 옵션 확산이 시장에 가져온 영향들을 정리합니다. 1. 학술 연구 및 논문 동향 0DTE 옵션 거래 증가와 시장 변동성 영향 여러 학술 연구들은 0DTE 옵션 거래의 급증이 시장 변동성에 미치는 영향을 분석하고 있습니다. 2023년 발표된 한 연구는 0DTE 거래량이 급증할수록 S&P 500 지수의 장중(price) 변동성이 유의하게 높아진다는 증거를 제시했습니다​. 구체적으로, 0DTE 옵션 거래량이 표준편차 1만큼 증가할 때 S&P 500의 일중 변동성이 약 14% 상승하는 것으로 나타났습니다​. 이 연구는 S&P 500의 5분 단위 가격데이터를 분석하여, 당일만기 옵션 거래가 활발한 날에 지수의 분 단위 등락폭이 더욱 커진다는 점을 밝혔습니다​. 다시 말해, 0DTE 옵션이 없는 날에 비해 분초 단위의 흔들림이 커지고 일중 변동성이 확대된다는 것입니다​. 흥미롭게도 이러한 장중 변동성 증대는 종가 기준 일간 변동성과는 별개로 나타났습니다. 0DTE 거래가 활발하면 장중에 등락을 거듭하다가도 결국 그날 종가는 큰 변화가 없는, 일종의 평균회귀적(mean-reverting) 움직임이 관찰됐습니다​. 한 연구에서는 이를 두고 0DTE 옵션이 장중 움직임을 증폭시키면서도 종가 간 변동폭은 오히려 억제하는 패턴이라고 분석했습니다​. 실제로 J.P. Morgan 역시 초단기 옵션의 인기 때문에 최근 S&P 500 지수의 일일 변동폭이 줄어든 측면이 있다고 진단하면서도, 동시에 시장 추세가 장중에 자주 뒤집히는 특성(mean reversion)이 강해졌다고 지적했습니다​. 이는 옵션 시장조성자들이 장중에 적극적으로 헤지하면서 지수 상승 시 매도, 하락 시 매수를 반복하여 결과적으로 당일 큰 방향성 움직임을 제한한 때문으로 해석됩니다. 그러나 0DTE 거래의 장중 변동성 증폭 효과에 대해서는 학계의 견해가 나뉘어 있습니다. 브로그라드(Brogaard) 등(2023)의 연구는 초단기 옵션 거래가 지수의 미시적(volatility) 변동성을 높이고 가격 효율성을 낮춘다고 주장합니다​. 이들은 0DTE 옵션이 투기적 단기 트레이더들을 끌어들여 시장에 노이즈(noise)를 증가시키고, 가격이 기초 펀더멘털 정보를 덜 반영하게 될 우려가 있다고 지적했습니다​. 실제 해당 연구의 분산비율 테스트(variance ratio test) 결과, 0DTE 옵션 거래 활성화 이후 단기 주가 움직임의 무작위성이 커져 자산가격의 예측 가능성이 낮아진 것으로 나타났습니다​. 반면 다른 학술 분석은 0DTE 옵션이 시장에 구조적 위험을 키운다는 주장에 신중한 입장입니다. 딤(Dim) 등(2024)은 최근 급증한 0DTE 거래가 광범위한 시장 불안정을 초래한다는 견해에 이견을 제시하며, 실제로는 투자자들이 주로 FOMC 발표 등 특정 이벤트의 불확실성 해소에 베팅하기 위한 전략적 수단으로 0DTE를 활용하는 측면을 강조합니다​. 다시 말해, 0DTE 옵션이 무분별하게 시장을 흔든다기보다는 중요 이벤트 직전후의 단기 헤지∙투기 수단으로 사용되는 경향이 크다는 것입니다​. 이러한 분석은 예상치 못한 큰 충격이 없는 한 0DTE 자체만으로 시장이 폭락하는 등 “시스템 위협적”인 불안정에 빠질 가능성은 낮다고 시사합니다. 투자자 행동 변화: 기관 vs 개인 참여 학계에서는 0DTE 옵션의 부상과 함께 투자자 구성과 행동에도 뚜렷한 변화가 있었다고 지적합니다. 과거 초단기 옵션은 주로 고도의 전문성을 지닌 기관 투자자의 영역으로 여겨졌으나, 최근 연구들은 개인 투자자들도 0DTE 시장에 상당 부분 뛰어들고 있다고 밝힙니다​. 한 연구에 따르면 2023년 1분기 S&P 500 옵션을 거래한 개인 투자자 주문의 약 75%가 당일만기 옵션에 집중되어 있었으며, 이는 장기 옵션(주간월간)에서 개인 참여율(24%)보다 훨씬 높은 수치입니다​. 즉, 개인들은 상대적으로 0DTE에 더 큰 흥미를 보이고 있으며, 0DTE 옵션이 전체 옵션 시장에서 차지하는 개인 비중(약 6%)도 여전히 낮지만 기존보다 높아졌습니다​. 하지만 개인 투자자들의 이러한 “초단기 베팅” 성과는 대체로 부진한 것으로 나타납니다. Beckmeyer 등(2023)의 분석에 따르면 개인들이 선호하는 S&P 500 0DTE 옵션 매매의 약 75%가 손실로 귀결되었는데, 이는 과거 주간만기 옵션 투자에서도 관찰된 개인이 시스템적으로 손해를 보는 패턴과 맥을 같이 합니다​. 다른 연구(예: Vilkov 2023)에서도 0DTE 시장에서 유행하는 여러 단기 매매전략의 손익을 검증한 결과 대부분 상당한 변동성과 함께 음(-)의 기대수익을 보였다고 전하며, 충분한 이해 없이 뛰어드는 것을 경고하고 있습니다​. 요컨대 “복권과 같은” 속성을 지닌 0DTE 옵션에 개인들이 몰리고 있으나, 기대만큼 이익을 내지 못하고 대부분 손실과 높은 위험에 노출되고 있다는 것입니다. 실제로 국제결제은행(BIS)의 보고서도 0DTE 옵션이 “저렴한 복권형 상품”으로서 일부 투자자들에게 매력적이라고 분석합니다​. 0DTE 옵션은 매우 값이 싸면서도 기초자산 변동에 대한 레버리지 효과가 극대화되어, 운이 좋으면 단기간에 수백 배의 수익을 거둘 수 있는 반면 ...
옵션 (Option)
2025. 06. 17
10
8
219
[옵션] 만기별 옵션의 내재확률 시각화하기 (Feat. Asymmetry님)
[옵션] 옵션 시장 대시보드 만드는 중
옵션 (Option)
2025. 04. 23
34
7
531
[옵션] 조정일 것인가, 폭락일 것인가?
옵션 (Option)
2025. 02. 19
12
10
35