已解决1.85K 浏览
0

# -*- 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日
0

你获取的应该不是一点数据 9个合约,每个合约的期权合约大概是在30-40左右,总共是360个合约的最近360根kline数据,在每次行情更新的时候会推送增量数据到内存,确实会让内存数据越来越大

rlliang 发表新评论 2021年11月16日

你们的sdk有待提高 多重视用户反馈 cpu耗那么高无法理解

包括很多用户都提到的get_kline_serial超时问题 作为sdk是无法接受的