Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mjam03/365f234fc9f2a9755af32f889ecf785b to your computer and use it in GitHub Desktop.
Save mjam03/365f234fc9f2a9755af32f889ecf785b to your computer and use it in GitHub Desktop.
fat_tails_and_their_impact_on_option_prices0
# usual suspects
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
import scipy.stats as stats
import warnings
from scipy.integrate import simps
from scipy.interpolate import interp1d
# some config
%config Completer.use_jedi = False
warnings.filterwarnings('ignore')
sns.set()
# fetch index daily returns
DATA_PATH = './asset_data.csv'
df = pd.read_csv(DATA_PATH)
# set Date as dt format and index
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
df = df[['SPX']]
# compute daily log returns
df['ret'] = np.log(df['SPX'] / df['SPX'].shift(1)).dropna()
# plot them
fig, ax = plt.subplots(ncols=1, figsize=(25,12))
sns.distplot(df['ret'], kde=False, fit=stats.norm, ax=ax, bins=400)
# label them
ax.set_title("SPX Daily Log Returns Distribution Plot", fontsize=24)
ax.set_xlabel("Daily Log Return", fontsize=20)
ax.set_xticklabels(['{:,.0%}'.format(x) for x in ax.get_xticks()], fontsize=18)
ax.set_ylabel("Density", fontsize=20);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment