3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在进行两融(融资融券)量化策略开发(如融券对冲、日内网格对冲、多空配对交易等)时,实时查询当前信用账户中支持融券的股票标的及其可融券数量是策略执行的核心第一步。
QMT 平台提供了专门的 Python API 接口 get_enable_short_contract,方便用户获取信用账户当前的融券明细。
get_enable_short_contractget_enable_short_contract(accId)
string): 信用账户资金账号(例如 '6000000248')。返回一个包含 Python 对象的 list。每个对象为 CreditSloEnableAmount 结构,包含可融券标的的相关属性。
CreditSloEnableAmount)m_strInstrumentID: 证券代码(如 '600000.SH')m_strInstrumentName: 股票名称m_nEnableAmount: 融券可融数量(股)m_dSloRatio: 融券保证金比例m_eSloStatus: 融券状态m_strExpireDate: 到期日期以下是一个完整的 QMT 策略示例,展示如何在 handlebar 驱动中获取并打印当前信用账户所有可融券股票及其数量:
#encoding:gbk
def init(ContextInfo):
# 设置两融信用账号
ContextInfo.accid = '6000000248'
ContextInfo.set_account(ContextInfo.accid)
print("策略初始化:资金账号绑定成功")
def handlebar(ContextInfo):
# 仅在最后一根 Bar 上执行一次查询
if not ContextInfo.is_last_bar():
return
print("--- 开始查询信用账户可融券明细 ---")
# 获取可融券明细列表
slo_list = get_enable_short_contract(ContextInfo.accid)
if not slo_list:
print("当前账户无可用融券标的或未能获取到数据。")
return
# 遍历打印可融券标的信息
for item in slo_list:
code = item.m_strInstrumentID
name = item.m_strInstrumentName
enable_vol = item.m_nEnableAmount
slo_ratio = item.m_dSloRatio
print(f"代码: {code} | 名称: {name} | 可融数量: {enable_vol} 股 | 保证金比例: {slo_ratio}")
get_enable_short_contract 主要用于实盘/模拟运行模式,回测模式下需要券商柜台及数据支持。'CREDIT'),普通股票账户查询将无法返回有效数据。passorder 函数,将操作类型 opType 设置为 28(融券卖出)。