def get_bid_ask_sheet(event_groupings, event_grouping_names, expiry, metric = 'IV', mc_iterations = 10**5): #labels = ['Bid - {}'.format(metric), 'Mid - {}'.format(metric), 'Ask - {}'.format(metric), 'New - {}'.format(metric)] event_grouping_names = ['{} - {}'.format(label, metric) for label in event_grouping_names] mc_distributions = list(map(lambda events: get_total_mc_distribution(events, expiry, mc_iterations=mc_iterations), event_groupings)) implied_vols = list(map(lambda dist: get_option_sheet_from_mc_distribution(dist, expiry).loc[:, [(expiry, metric)]], mc_distributions)) show_mc_distributions_as_line_chart(mc_distributions, labels = event_grouping_names) return reduce(lambda x,y: pd.merge(x, y, left_index=True, right_index=True), implied_vols)
def term_structure(events, expiries): mc_distributions = list( map(lambda expiry: get_total_mc_distribution(events, expiry), expiries)) implied_vols = list( map( lambda dist, expiry: get_option_sheet_from_mc_distribution( dist, expiry).loc[:, ['IV']], mc_distributions, expiries)) show_mc_distributions_as_line_chart(mc_distributions) return reduce( lambda x, y: pd.merge(x, y, left_index=True, right_index=True), implied_vols)
def bid_ask(events_bid, events, events_ask, expiry, metric='IV', mc_iterations=10**5): mc_distributions = list( map( lambda events: get_total_mc_distribution( events, expiry, mc_iterations=mc_iterations), [events_bid, events, events_ask])) implied_vols = list( map( lambda dist: get_option_sheet_from_mc_distribution(dist, expiry). loc[:, [(expiry, metric)]], mc_distributions)) show_mc_distributions_as_line_chart(mc_distributions, labels=[ 'Bid - {}'.format(metric), 'Mid - {}'.format(metric), 'Ask - {}'.format(metric) ]) return reduce( lambda x, y: pd.merge(x, y, left_index=True, right_index=True), implied_vols)