1 votos

Python - datos de opciones de Yahoo Finance - gráfico de sonrisa de volatilidad

He trazado el IV de las opciones de TSLA utilizando datos de opciones de Yahoo, pero el gráfico de dispersión no se ve bien, ¿alguien puede aconsejar por qué el gráfico se ve así? Esperaría ver trazado un "vol smile".

EDICION pregunta adicional, ¿se utiliza la misma tasa libre de riesgo para obtener esos datos de opciones? ¿y cuál es la tasa libre de riesgo utilizada en la práctica, por favor?

import pandas_datareader.data as web
import pandas as pd
import matplotlib.pyplot as plt

tesla = web.YahooOptions('TSLA')
tesla.headers = {'User-Agent': 'Firefox'}
tesla_calls = tesla.get_call_data(12,2023)

tesla_calls.reset_index(inplace=True)
tesla_calls = tesla_calls[tesla_calls['Expiry'] == '2023-12-01T00:00:00.000000000']
plt.scatter(tesla_calls['Strike'], tesla_calls['IV'])

    Strike     Expiry  Type               Symbol    Last  Bid  Ask  Chg  \
19   100.0 2023-12-01  call  TSLA231201C00100000  107.00  0.0  0.0  0.0   
28   140.0 2023-12-01  call  TSLA231201C00140000   82.30  0.0  0.0  0.0   
30   145.0 2023-12-01  call  TSLA231201C00145000   76.80  0.0  0.0  0.0   
32   150.0 2023-12-01  call  TSLA231201C00150000   58.75  0.0  0.0  0.0   
35   160.0 2023-12-01  call  TSLA231201C00160000   50.22  0.0  0.0  0.0   

    PctChg   Vol  Open_Int       IV  Root  IsNonstandard Underlying  \
19     0.0  11.0       0.0  0.00001  TSLA          False       TSLA   
28     0.0   NaN       0.0  0.00001  TSLA          False       TSLA   
30     0.0   2.0       0.0  0.00001  TSLA          False       TSLA   
32     0.0   6.0       0.0  0.00001  TSLA          False       TSLA   
35     0.0   5.0       0.0  0.00001  TSLA          False       TSLA   

    Underlying_Price          Quote_Time     Last_Trade_Date  \
19            205.76 2023-10-26 20:00:01 2023-10-26 16:17:53   
28            205.76 2023-10-26 20:00:01 2023-10-19 16:58:57   
30            205.76 2023-10-26 20:00:01 2023-10-24 14:04:46   
32            205.76 2023-10-26 20:00:01 2023-10-23 13:33:46   
35            205.76 2023-10-26 20:00:01 2023-10-26 18:42:36   

                                                 JSON  
19  {'contractSymbol': 'TSLA231201C00100000', 'str...  
28  {'contractSymbol': 'TSLA231201C00140000', 'str...  
30  {'contractSymbol': 'TSLA231201C00145000', 'str...  
32  {'contractSymbol': 'TSLA231201C00150000', 'str...  
35  {'contractSymbol': 'TSLA231201C00160000', 'str...  

enter image description here

0voto

Philipp Puntos 173

No he extraído los datos usando tu código, pero supongo que no debería haber nada mal con tu código, este es un ejercicio lo suficientemente sencillo. ¿Por qué no conviertes el conjunto de datos a Excel y observas los valores de volatilidad implícita para ver si coinciden? Si lo hacen, entonces es un problema de datos.

Por lo general, es común no ver sonrisas de volatilidad suaves para opciones de mercado (la última vez que intenté para el S&P500). Además, ten en cuenta que a veces se debe a que las opciones se negocian de manera desigualmente líquida, lo que significa que las opciones ITM se negocian menos líquidamente que las opciones OTM (tanto calls como puts). A veces los precios de las opciones incluso violan los límites superiores e inferiores (sin arbitraje) en el mercado.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X