请帮忙分析一下我的代码该怎么优化一下,我感觉这样效率很低,每次触发行情都要把合约全部循环一遍,全部订阅下来有五六百个合约:
subID = []
objs_md = md_ctp_instrument_base.objects.all().order_by(‘ExchangeID’).order_by(‘InstrumentID’)[0:100]
subID = model_to_list(objs_md)
# 创建API实例.
api = TqApi()
dic_quote = {}
log.info(‘开始注册。。。’)
for id in subID:
ins_code = f”{id[‘ExchangeID’]}.{id[‘InstrumentID’]}”
try:
dic_quote[ins_code] = api.get_quote(ins_code)
except Exception as e:
log.info(f’ins_code:{ins_code}建立监听失败,原因:{e}’)
log.info(‘注册完成!’)
while True:
api.wait_update()
for ins_code in dic_quote.keys():
if api.is_changing(dic_quote[ins_code]):
log.info(f”行情变化>>>>>>>>ins_code:{ins_code},”
f”datetime:{dic_quote[ins_code].datetime},”
f”ask_price1:{dic_quote[ins_code].ask_price1}”)