# -*- 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耗那么高无法理解