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...