🚀 AI 一键生成 qmt 策略代码
立即体验

QMT 平台如何查询信用账户可融券股票明细?(附 Python 源码)

qmt | 发布时间: 2026/7/23
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: qmt 融券策略:使用 get_enable_short_contract 查询可融券明细

Question: qmt 怎么查询信用账户当前有哪些股票可以融券卖出?

解决方案

QMT 平台查询信用账户可融券股票明细指南

在进行两融(融资融券)量化策略开发(如融券对冲、日内网格对冲、多空配对交易等)时,实时查询当前信用账户中支持融券的股票标的及其可融券数量是策略执行的核心第一步。

QMT 平台提供了专门的 Python API 接口 get_enable_short_contract,方便用户获取信用账户当前的融券明细。


1. 核心 API 接口:get_enable_short_contract

接口用法

get_enable_short_contract(accId)

参数说明

  • accId (string): 信用账户资金账号(例如 '6000000248')。

返回值

返回一个包含 Python 对象的 list。每个对象为 CreditSloEnableAmount 结构,包含可融券标的的相关属性。

返回对象主要属性说明(CreditSloEnableAmount

  • m_strInstrumentID: 证券代码(如 '600000.SH'
  • m_strInstrumentName: 股票名称
  • m_nEnableAmount: 融券可融数量(股)
  • m_dSloRatio: 融券保证金比例
  • m_eSloStatus: 融券状态
  • m_strExpireDate: 到期日期

2. Python 策略示例代码

以下是一个完整的 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}")

3. 常见问题与注意事项

  1. 运行模式限制get_enable_short_contract 主要用于实盘/模拟运行模式,回测模式下需要券商柜台及数据支持。
  2. 账户类型要求:传入的账号必须是两融信用账户(Account Type 为 'CREDIT'),普通股票账户查询将无法返回有效数据。
  3. 下单配合:查询到可融券数量后,若要发起融券卖出指令,可使用 passorder 函数,将操作类型 opType 设置为 28(融券卖出)。