def test_remote_data_service_inst_info(): ds = RemoteDataService() res, msg = ds.query_inst_info('000001.SZ', fields='status,selllot,buylot,pricetick,multiplier,product') assert res.loc[0, 'multiplier'] == 1 assert abs(res.loc[0, 'pricetick'] - 0.01) < 1e-2 assert res.loc[0, 'buylot'] == 100
class InstManager(object): def __init__(self): self.data_api = RemoteDataService() self.inst_map = {} self.load_instruments() def load_instruments(self): fields = ['symbol', 'inst_type', 'market', 'status', 'multiplier'] res, msg = self.data_api.query_inst_info(symbol='', fields=','.join(fields), inst_type="") for _, row in res.iterrows(): inst = Instrument() dic = row.to_dict() dic = {k: v for k, v in dic.iteritems() if k in fields} inst.__dict__.update(dic) self.inst_map[inst.symbol] = inst def get_intruments(self, code): return self.inst_map.get(code, None)