# -*- encoding:utf-8 -*- import time import datetime import pandas as pd from tqsdk import TqApi, TqSim, TqAuth, TqTimeoutError seconds = 60 lengths = 60 def get_kline_serial(api, contract, code): print("get_kline_serial: {}".format(code)) 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) for k in range(0, len(kline)): time = str(datetime.datetime.fromtimestamp(kline['datetime'][k]/1e9 + seconds)) except TqTimeoutError as e: print("获取合约{}超时".format(options[i])) return 0 def is_changing(api, kline, items): if api.is_changing(kline.iloc[-1], "datetime"): option = kline.iloc[-1].symbol if __name__ == "__main__": api = TqApi(TqSim(), auth=TqAuth("xxx", "yyy")) get_kline_serial(api, "DCE.p2201", "P2201") api.close()
rlliang 选择最佳答案 2021年8月13日
但是不应该很长时间后返回超时 很多新的期权合约都有这个问题 应该和有数据的合约一样立刻返回 目前这样会影响遍历期权合约的时间 程序应该是有bug