def _process_rec_02(rec_02, rec_01): if len(rec_02) > 0: _symbol, _csi_com_num, _cont, _open1, _open2, _high, _low, _close, _prev_close = [], [], [], [], [], [], [], [], [] _vol, _oi = [], [] for i in rec_02: _i_val = i.split(sep=',') _symbol.append(_i_val[0]) _csi_com_num.append(int(_i_val[1])) _cont.append(int('20' + _i_val[2] if int(_i_val[2][0:2]) < 40 else '19' + _i_val[2])) _open1.append(float(_i_val[3]) if _i_val[3] != '' else float('nan')) _open2.append(float(_i_val[4]) if _i_val[4] != '' else float('nan')) _high.append(float(_i_val[5]) if _i_val[5] != '' else float('nan')) _low.append(float(_i_val[6]) if _i_val[6] != '' else float('nan')) _close.append(float(_i_val[7]) if _i_val[7] != '' else float('nan')) _prev_close.append(float(_i_val[8]) if _i_val[8] != '' else float('nan')) _vol.append(int(_i_val[9]) if _i_val[9] != '' else float('nan')) _oi.append(int(_i_val[10]) if _i_val[10] != '' else float('nan')) _rec_02 = cruf.DataFrame(odict([('SymbolCommercial', _symbol), ('CommercialCsiNumber', _csi_com_num), ('Contract', _cont), ('Open', _open1), ('High', _high), ('Low', _low), ('Close', _close), ('PreviousClose', _prev_close), ('Volume', _vol), ('OpenInterest', _oi)])) _rec_02 = cruf.DataFrame.merge(_rec_02, rec_01[['SymbolCommercial', 'AggVolume', 'AggOpenInterest']], on='SymbolCommercial') _rec_02 = _rec_02.subset(cruf.notnull(_rec_02['CommercialCsiNumber'])) _rec_02['Contract'] = [int(el) for el in _rec_02['Contract', list]] return _rec_02 else: return None
def _generate_adv(_d_comb): comb_data_adv = _d_comb.retrieve('Turnover') # get ADV tick_cols = comb_data_adv.tick_cols() for i in tick_cols: comb_data_adv[i] = crtf.med(comb_data_adv[i].values, 200) # comb_data_adv[i] = crtf.ema(comb_data_adv[i].values, 200) _d_comb.store('Adv', comb_data_adv) # get Univ comb_data_univ = comb_data_adv.copy() f = lambda z: int(cruf.notnull(z) & (z >= 30.0)) for i in tick_cols: comb_data_univ[i] = comb_data_univ.apply(i, func=f) _d_comb.store('Univ', comb_data_univ)