161 浏览
0

请问在调用ticks数据或其他数据的时候,有没有一次性获得所有日盘主力合约剖面行情或夜盘主力合约剖面行情的函数。不要全部数据,只要剖面数据。

chaos 已回答的问题 4天 前
0

可以分两步做:

1. 先用 `query_cont_quotes()` 拿到主力合约列表
2. 再对这些主力合约逐个 `get_quote()`,读取当前时刻的 quote 字段

TqSdk 里没有一个“直接一次性返回所有主力合约剖面行情”的单独函数。通常做法就是先查主力合约,再批量拿 quote。
如果你要的是当前截面数据,用 `get_quote()` 就够了,不需要拉 `tick` 或 `kline` 全量序列。

<code class="language-python">from tqsdk import TqApi, TqAuth

api = TqApi(auth=TqAuth("快期账号", "快期密码"))

# 例如查询所有期货主力合约
conts = api.query_cont_quotes()

quotes = {symbol: api.get_quote(symbol) for symbol in conts}

# 等一轮行情更新,确保 quote 字段已经刷新
api.wait_update()

rows = []
for symbol, q in quotes.items():
    rows.append({
        "symbol": symbol,
        "datetime": q.datetime,
        "last_price": q.last_price,
        "ask_price1": q.ask_price1,
        "bid_price1": q.bid_price1,
        "volume": q.volume,
        "open_interest": q.open_interest,
    })

for row in rows:
    print(row)

api.close()</code>

如果你想区分日盘主力和夜盘主力,不能直接按“当前是不是日盘/夜盘”去调用一个现成接口筛出来,通常还是先拿主力合约列表,再结合交易所、品种和交易时段规则自行过滤。
如果只是要“所有主力合约当前行情剖面”,上面这种写法就是常规做法。

gjsr2000 发表新评论 3天 前

实际运行的时候,会卡住好像。

您正在查看1个答案中的1个,单击此处查看所有答案。