Example #1
0
def main():
    ticker = 'SPY'

    root = './data'
    path = make_dir(root)

    # scraping
    yf = YahooFinance(ticker)

    chain = yf.get_chain()
    spot = yf.get_spot()

    array = qd.get('FRED/FEDFUNDS', rows=1, returns='numpy')
    rate = array[0][1]

    # option chain
    oc = OptionChain(ticker,
                     chain).add_spot(spot).add_rate(rate,
                                                    name='Fed Funds Rate (%)')
    oc.get_df().to_csv(f'{path}/option_chain.csv')

    # call prices
    call_prices = oc.get_price_mx()
    call_prices.to_csv(f'{path}/call_prices.csv')

    # implied vols
    implied_vols = vol_surface(call_prices, spot, rate / 100)
    implied_vols.to_csv(f'{path}/implied_vols.csv')

    # interpolated surfaces
    interp_linear = interpolate(implied_vols, 'linear')
    interp_linear.to_csv(f'{path}/implied_vols_interpolated_lin.csv')

    interp_cubic = interpolate(implied_vols, 'cubic')
    interp_cubic.to_csv(f'{path}/implied_vols_interpolated_cub.csv')

    # parametric models
    model = DumasFlemingWhaley()

    model.fit(implied_vols.reset_index())
    model.get_surface().to_csv(f'{path}/implied_vols_parametric_dfw.csv')

    # update repo
    update_repo(root)

    return
Example #2
0
    if len(sys.argv) not in [2, 3]:
        print sys.argv[0], " ticker ", "[expiry]"
        exit
    else:
        underline_ticker = sys.argv[1].upper()
        expiry = sys.argv[2] if len(sys.argv) == 3 else lib.CURRENT_EXPIRY
        current_date_str = lib.create_current_date_string()
        days_to_expiry = lib.calculate_days_difference(expiry, current_date_str)
        
        option_chain_data_all = {}
        if lib.DEBUG:
            option_chain_data_all['P'] =  option_chain_data.put_data
            option_chain_data_all['C'] =  option_chain_data.call_data
            lib.find_iron_condor(underline_ticker, option_chain_data_all, days_to_expiry)
        else:
            option_chain = OptionChain(underline_ticker)
            option_chain.download([expiry])
            option_chain_data_all['P'] = option_chain._option_chain_sorted_dict['P']
            option_chain_data_all['C'] = option_chain._option_chain_sorted_dict['C']
            lib.find_iron_condor(underline_ticker, option_chain_data_all, days_to_expiry)
        
        
        
        
        
            
    
    
    
    
Example #3
0
if __name__ == '__main__':
    
    if len(sys.argv) not in [2, 3]:
        print sys.argv[0], " ticker ", "[expiry]"
        exit
    else:
        underline_ticker = sys.argv[1].upper()
        expiry = sys.argv[2] if len(sys.argv) == 3 else lib.CURRENT_EXPIRY
        current_date_str = lib.create_current_date_string()
        days_to_expiry = lib.calculate_days_difference(expiry, current_date_str)
        
        if lib.DEBUG:
            put_option_chains = option_chain_data.put_data
            lib.find_vertical_spread_long(underline_ticker, put_option_chains, days_to_expiry, True)
            call_option_chains = option_chain_data.call_data
            lib.find_vertical_spread_long(underline_ticker, call_option_chains, days_to_expiry, False)
        else:
            option_chain = OptionChain(underline_ticker)
            option_chain.download([expiry])
            put_option_chains = option_chain._option_chain_sorted_dict['P']
            lib.find_vertical_spread_long(underline_ticker, put_option_chains, days_to_expiry, True)
            call_option_chains = option_chain._option_chain_sorted_dict['C']
            lib.find_vertical_spread_long(underline_ticker, call_option_chains, days_to_expiry, False)

            
    
    
    
    
Example #4
0
 if len(sys.argv) not in [2, 3]:
     print sys.argv[0], " ticker ", "[expiry]"
     exit
 else:
     underline_ticker = sys.argv[1].upper()
     expiry = sys.argv[2] if len(sys.argv) == 3 else lib.CURRENT_EXPIRY
     current_date_str = lib.create_current_date_string()
     days_to_expiry = lib.calculate_days_difference(expiry, current_date_str)
     
     option_chain_data_all = {}
     if lib.DEBUG:
         option_chain_data_all['P'] =  option_chain_data.put_data
         option_chain_data_all['C'] =  option_chain_data.call_data
         lib.find_straddle(underline_ticker, option_chain_data_all, days_to_expiry) 
     else:
         option_chain = OptionChain(underline_ticker)
         option_chain.download([expiry])
         underline_price = option_chain.get_price()
         option_chain_data_all['P'] = option_chain._option_chain_sorted_dict['P']
         option_chain_data_all['C'] = option_chain._option_chain_sorted_dict['C']
         lib.find_straddle(underline_ticker, underline_price, option_chain_data_all, days_to_expiry)
     
     
     
     
     
         
 
 
 
 
Example #5
0
from data import option_chain_data

if __name__ == '__main__':

    if len(sys.argv) not in [2, 3]:
        print sys.argv[0], " ticker ", "[expiry]"
        exit
    else:
        underline_ticker = sys.argv[1].upper()
        expiry = sys.argv[2] if len(sys.argv) == 3 else lib.CURRENT_EXPIRY
        current_date_str = lib.create_current_date_string()
        days_to_expiry = lib.calculate_days_difference(expiry,
                                                       current_date_str)

        option_chain_data_all = {}
        if lib.DEBUG:
            option_chain_data_all['P'] = option_chain_data.put_data
            option_chain_data_all['C'] = option_chain_data.call_data
            lib.find_straddle(underline_ticker, option_chain_data_all,
                              days_to_expiry)
        else:
            option_chain = OptionChain(underline_ticker)
            option_chain.download([expiry])
            underline_price = option_chain.get_price()
            option_chain_data_all[
                'P'] = option_chain._option_chain_sorted_dict['P']
            option_chain_data_all[
                'C'] = option_chain._option_chain_sorted_dict['C']
            lib.find_straddle(underline_ticker, underline_price,
                              option_chain_data_all, days_to_expiry)