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)
Exemple #2
0
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)
Exemple #3
0
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)