# -*- encoding:utf-8 -*- import pandas as pd from tqsdk import TqApi, TqSim, TqAuth, TqTimeoutError seconds = 60 lengths = 600 contracts = [ 'SHFE.ru2201', 'DCE.p2201', 'DCE.i2201', 'DCE.i2205', 'DCE.pg2201', 'CZCE.CF201', 'CZCE.MA201', 'CZCE.ZC201', 'SSE.000300' ] def get_kline_serial(api, contract): print("get_kline_serial: {}".format(contract)) options = api.query_options(contract, option_class="PUT", expired=False) for i in range(0, len(options)): try: print(options[i]) kline = api.get_kline_serial("{}".format(options[i]), seconds, data_length=lengths) except TqTimeoutError as e: print("获取合约{}超时".format(options[i])) options = api.query_options(contract, option_class="CALL", expired=False) for i in range(0, len(options)): try: print(options[i]) kline = api.get_kline_serial("{}".format(options[i]), seconds, data_length=lengths) except TqTimeoutError as e: print("获取合约{}超时".format(options[i])) return 0 if __name__ == "__main__": api = TqApi(TqSim(), auth=TqAuth("xxx", "yyy")) for contract in contracts: get_kline_serial(api, contract)
rlliang 选择最佳答案 2021年11月16日
你获取的应该不是一点数据 9个合约,每个合约的期权合约大概是在30-40左右,总共是360个合约的最近360根kline数据,在每次行情更新的时候会推送增量数据到内存,确实会让内存数据越来越大
rlliang 发表新评论 2021年11月16日
包括很多用户都提到的get_kline_serial超时问题 作为sdk是无法接受的
你们的sdk有待提高 多重视用户反馈 cpu耗那么高无法理解