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