def get_intraday_outright_covariance(**kwargs): date_to = kwargs['date_to'] num_days_back_4intraday = 20 liquid_futures_frame = cl.get_liquid_outright_futures_frame(settle_date=date_to) date_list = [exp.doubledate_shift_bus_days(double_date=date_to,shift_in_days=x) for x in reversed(range(1,num_days_back_4intraday))] date_list.append(date_to) intraday_data = opUtil.get_aligned_futures_data_intraday(contract_list=liquid_futures_frame['ticker'].values,date_list=date_list) intraday_data['time_stamp'] = [x.to_datetime() for x in intraday_data.index] intraday_data['hour_minute'] = [100*x.hour+x.minute for x in intraday_data['time_stamp']] intraday_data = intraday_data.resample('30min',how='last') intraday_data = intraday_data[(intraday_data['hour_minute'] >= 830) & (intraday_data['hour_minute'] <= 1200)] intraday_data_shifted = intraday_data.shift(1) selection_indx = intraday_data['hour_minute']-intraday_data_shifted['hour_minute'] > 0 num_contracts = len(liquid_futures_frame.index) diff_frame = pd.DataFrame() for i in range(num_contracts): mid_p = (intraday_data['c' + str(i+1)]['best_bid_p']+ intraday_data['c' + str(i+1)]['best_ask_p'])/2 mid_p_shifted = (intraday_data_shifted['c' + str(i+1)]['best_bid_p']+ intraday_data_shifted['c' + str(i+1)]['best_ask_p'])/2 diff_frame[liquid_futures_frame['ticker_head'].iloc[i]] = (mid_p-mid_p_shifted)*cmi.contract_multiplier[liquid_futures_frame['ticker_head'].iloc[i]] diff_frame = diff_frame[selection_indx] return {'cov_matrix': diff_frame.cov(), 'cov_data_integrity': 100*diff_frame.notnull().sum().sum()/(len(diff_frame.columns)*20*6)}
def get_intraday_outright_covariance(**kwargs): date_to = kwargs['date_to'] num_days_back_4intraday = 20 liquid_futures_frame = cl.get_liquid_outright_futures_frame( settle_date=date_to) date_list = [ exp.doubledate_shift_bus_days(double_date=date_to, shift_in_days=x) for x in reversed(range(1, num_days_back_4intraday)) ] date_list.append(date_to) intraday_data = opUtil.get_aligned_futures_data_intraday( contract_list=liquid_futures_frame['ticker'].values, date_list=date_list) if len(intraday_data.index) == 0: return {'cov_matrix': pd.DataFrame(), 'cov_data_integrity': 0} intraday_data['time_stamp'] = [ x.to_datetime() for x in intraday_data.index ] intraday_data['hour_minute'] = [ 100 * x.hour + x.minute for x in intraday_data['time_stamp'] ] intraday_data = intraday_data.resample('30min', how='last') intraday_data = intraday_data[(intraday_data['hour_minute'] >= 830) & (intraday_data['hour_minute'] <= 1200)] intraday_data_shifted = intraday_data.shift(1) selection_indx = intraday_data['hour_minute'] - intraday_data_shifted[ 'hour_minute'] > 0 num_contracts = len(liquid_futures_frame.index) diff_frame = pd.DataFrame() for i in range(num_contracts): mid_p = (intraday_data['c' + str(i + 1)]['best_bid_p'] + intraday_data['c' + str(i + 1)]['best_ask_p']) / 2 mid_p_shifted = ( intraday_data_shifted['c' + str(i + 1)]['best_bid_p'] + intraday_data_shifted['c' + str(i + 1)]['best_ask_p']) / 2 diff_frame[liquid_futures_frame['ticker_head'].iloc[i]] = ( mid_p - mid_p_shifted) * cmi.contract_multiplier[ liquid_futures_frame['ticker_head'].iloc[i]] diff_frame = diff_frame[selection_indx] return { 'cov_matrix': diff_frame.cov(), 'cov_data_integrity': 100 * diff_frame.notnull().sum().sum() / (len(diff_frame.columns) * 20 * 6) }
def get_tickers_4date(**kwargs): liquid_futures_frame = cl.get_liquid_outright_futures_frame( settle_date=kwargs['date_to']) liquid_futures_frame = liquid_futures_frame[ ~liquid_futures_frame['ticker_head'].isin(['ED', 'TU'])] liquid_futures_frame.reset_index(drop=True, inplace=True) return liquid_futures_frame[['ticker', 'ticker_head']]
def get_tickers_4date(**kwargs): liquid_futures_frame = cl.get_liquid_outright_futures_frame(settle_date=kwargs['date_to']) liquid_futures_frame.reset_index(drop=True,inplace=True) return liquid_futures_frame[['ticker', 'ticker_head']]