예제 #1
0
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
예제 #2
0
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)