Esempio n. 1
0
def fix_a3s(file_name):
    store = pd.HDFStore(file_name)
    dat = store['pcap_data']
    exp_info = store['expiry_info']
    store.close()
    newdat = two_level_fix_a3s(dat.symbol,dat.msg_type.str[1:].astype(long),dat.ix[:,['bid1','bidsize1','ask1','asksize1','bid2','bidsize2','ask2','asksize2','tradeprice','tradesize']].values)
    #dat[['bid1','bidsize1','ask1','asksize1','bid2','bidsize2','ask2','asksize2','tradeprice','tradesize']] = pd.DataFrame(newdat,columns = ['bid1','bidsize1','ask1','asksize1','bid2','bidsize2','ask2','asksize2','tradeprice','tradesize'], index = dat.index)
    file_name = 'fixed_'+file_name
    store = pd.HDFStore(file_name)
    store.append('pcap_data',newdat,data_columns=['symbol'])
    store.append('expiry_info',exp_info)
    store.close()
Esempio n. 2
0
def save_implieds(h5_pointer, new_store,start_time,end_time,MAX_AGE=50,RISK_FREE=.03,GUESS=260):
    s = pd.Series(h5_pointer['twmids'].columns)
    front_syms = s[s.str.contains('-')].str[0:2].append(s[s.str.contains('-')].str[3:5]).unique()

    dat = h5_pointer.select('pcap_data',[pd.Term('index','>=',start_time),pd.Term('index','<=',end_time)])
    supp = h5_pointer.select('supplementary',[pd.Term('index','>=',start_time),pd.Term('index','<=',end_time)])
    recombined_dat = (dat.join(supp,how='outer'))
    recombined_dat = recombined_dat[is_kospi(dat.symbol).values]
    expiries = recombined_dat.symbol.str[6:8]
    recombined_dat = recombined_dat[expiries.isin(h5_pointer['dtes'].index).values]
    recombined_dat['tte'] = recombined_dat.symbol.str[6:8].replace(h5_pointer['dtes'].to_dict()[0]).astype(float) / 260.
    recombined_dat['strike'] = kospi_strikes_from_symbols(recombined_dat.symbol.values)
    recombined_dat['type'] = kospi_types_from_symbols(recombined_dat.symbol.values)
    recombined_dat = recombined_dat[recombined_dat.symbol.str[6:8].isin(front_syms).values]
    recombined_dat = recombined_dat[kospi_fresh(recombined_dat.symbol,recombined_dat.tte.values,MAX_AGE/260.)]
    implieds_frame = fast_implieds(recombined_dat.symbol,recombined_dat.bid1.astype(np.float64),recombined_dat.bidsize1,recombined_dat.bid2.astype(np.float64),recombined_dat.bidsize2,
            recombined_dat.ask1.astype(np.float64),recombined_dat.asksize1,recombined_dat.ask2.astype(np.float64),recombined_dat.asksize2,
              (recombined_dat.basis+recombined_dat.fut_bid),recombined_dat.basis,recombined_dat.vols,recombined_dat.tte,recombined_dat.strike.astype(np.float64),
                recombined_dat.type.astype(long),RISK_FREE,GUESS)
    implieds_frame.index = recombined_dat.index
    
    implieds_frame['delta_effect'] = net_effect_cython(recombined_dat.symbol,recombined_dat.bid1.astype(np.float64),recombined_dat.tradeprice.astype(np.float64),recombined_dat.tradesize)
    implieds_frame['delta'] = deltas(recombined_dat.fut_bid.astype(np.float64),recombined_dat.strike.astype(np.float64),recombined_dat.vols,recombined_dat.tte,recombined_dat.type.astype(long),.03)
    implieds_frame['implied_trd'] = implied_futs(recombined_dat.tradeprice.astype(np.float64),recombined_dat.strike.astype(np.float64),recombined_dat.vols,recombined_dat.tte,recombined_dat.type.astype(long),.03,26410) - recombined_dat.basis
    implieds_frame['implied_trd'][(implieds_frame.delta.abs()<.15).values] = np.NaN
    implieds_frame['delta'][(implieds_frame.delta.abs()<.15).values] = np.NaN
    implieds_frame['delta_effect'] *= implieds_frame['delta']
    #implieds_frame = implieds_frame.drop_duplicates()
    implieds_frame['symbol'] = recombined_data.symbol
    implieds_frame['fut_bid'] = recombined_data.fut_bid
    implieds_frame['fut_ask'] = recombined_data.fut_ask 
    newdat = pd.DataFrame(two_level_fix_a3s(recombined_dat.symbol,recombined_dat.msg_type.str[1:].astype(long),recombined_dat.ix[:,['bid1','bidsize1','ask1','asksize1','bid2','bidsize2','ask2','asksize2','tradeprice','tradesize']].values),columns = ['bid1','bidsize1','ask1','asksize1','bid2','bidsize2','ask2','asksize2','tradeprice','tradesize'], index = recombined_dat.index)
    combo = implieds_frame.join(newdat,how='inner')
    print 'Preparing to save implieds info... %d,%d' % (len(implieds_frame),len(combo))
    if '/implieds' in new_store.keys():
        print 'Deleteing old implieds frame...'
        new_store.remove('implieds')
    new_store.append('implieds',combo)