可以分两步做:
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>
如果你想区分日盘主力和夜盘主力,不能直接按“当前是不是日盘/夜盘”去调用一个现成接口筛出来,通常还是先拿主力合约列表,再结合交易所、品种和交易时段规则自行过滤。
如果只是要“所有主力合约当前行情剖面”,上面这种写法就是常规做法。
实际运行的时候,会卡住好像。