3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
您好!在 QMT 平台中,使用 query_credit_opvolume 函数查询两融最大可下单量时,其最终回调返回的结果(result)代表的是数量(股数),而不是金额。
需要特别注意的是,query_credit_opvolume 是一个异步查询函数,它本身不直接返回结果。您必须配合回调函数 credit_opvolume_callback 来接收服务器返回的数据。
以下是一个完整的代码示例,展示如何发起查询并获取返回的股数:
#coding:gbk
import time
def init(ContextInfo):
# 设置您的信用资金账号
ContextInfo.accid = '您的信用账号'
ContextInfo.set_account(ContextInfo.accid)
def handlebar(ContextInfo):
# 为了避免频繁查询,可以设置条件,例如只在特定时间或特定K线查询
if ContextInfo.is_last_bar():
# 查询担保品买入 600000.SH,限价10元的最大可下单量(股数)
# 参数说明:账号, 股票代码, 操作类型(33为信用买入), 报价类型(11为限价), 价格, 序列号, ContextInfo
seq = int(time.time())
query_credit_opvolume(ContextInfo.accid, '600000.SH', 33, 11, 10, seq, ContextInfo)
print(f"已发起查询,序列号: {seq}")
# 定义回调函数接收结果
def credit_opvolume_callback(ContextInfo, accid, seq, ret, result):
"""
查询两融最大可下单量的回调函数
:param accid: 查询的账号
:param seq: 发起查询时传入的序列号
:param ret: 查询状态(1:正常返回, -1:查询中, -2:账号非法, -3:参数非法, -4:服务器报错)
:param result: 查询到的结果(最大可下单股数)
"""
if ret == 1:
print(f"查询成功!账号: {accid}, 序列号: {seq}, 最大可下单量: {result} 股")
else:
print(f"查询失败或正在查询中,状态码: {ret}")
stockCode 参数支持传入 List 类型,可以一次最多查询 200 只股票的两融最大下单量。如果传入 List,price 参数也需要传入长度相同的 List。opType 需与实际交易意图一致(如 27:融资买入, 28:融券卖出, 33:信用账号股票买入 等)。