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

qmt 两融选股:如何使用 get_assure_contract 获取信用账户担保品列表?

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

问题描述

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

Title: qmt 两融选股:使用 `get_assure_contract` 查询可标的担保品

Question: 如何通过 qmt API 获取当前信用账户支持的所有担保品股票列表?

解决方案

qmt 两融选股:使用 get_assure_contract 查询可标的担保品

在 QMT(迅投/国信 QMT)进行融资融券量化交易时,筛选可作为担保品的标的股票是两融选股策略的核心第一步。通过 QMT 提供的 get_assure_contract 接口,投资者可以快速获取当前信用账户支持的所有担保品合约明细。


1. 接口介绍:get_assure_contract

get_assure_contract 函数用于获取指定两融信用账户的担保合约明细,返回一个包含对象属性的列表。

语法

get_assure_contract(accId)

参数

  • accId (str):两融信用资金账号。

返回值

返回一个列表(list),列表中的元素为 Python 对象(StkSubjects)。可以通过 m_strInstrumentIDm_strInstrumentName 等属性获取具体股票代码与名称。


2. 核心代码示例

以下是在 QMT 策略中的完整实现示例:

#encoding:gbk

def init(ContextInfo):
    # 设置两融信用账号
    ContextInfo.accId = '6000000248' # 请替换为实际的信用账号
    ContextInfo.set_account(ContextInfo.accId)

def handlebar(ContextInfo):
    # 仅在最后一根 Bar 执行,避免重复打印
    if not ContextInfo.is_last_bar():
        return
    
    # 获取担保品合约明细列表
    assure_list = get_assure_contract(ContextInfo.accId)
    
    print(f"--- 当前账号 {ContextInfo.accId} 担保品列表(共 {len(assure_list)} 只) ---")
    
    # 遍历并打印担保品股票信息
    stock_pool = []
    for obj in assure_list:
        stock_code = obj.m_strInstrumentID
        stock_name = obj.m_strInstrumentName
        stock_pool.append(stock_code)
        print(f"代码: {stock_code}, 名称: {stock_name}")
    
    # 将筛选出的担保品设置为策略运行股票池
    if stock_pool:
        ContextInfo.set_universe(stock_pool)
        print("已成功将担保品列表设置为当前股票池!")

3. 返回对象常用属性说明(StkSubjects

调用 get_assure_contract 后返回的对象包含以下主要字段:

属性字段 类型 说明
m_strInstrumentID str 证券代码(如 600000.SH600000
m_strInstrumentName str 股票名称
m_strExchangeID str 交易所代码(如 SH / SZ
m_dAssureRatio float 担保品折算比例
m_eAssureStatus enum 是否可做担保状态

4. 注意事项

  1. 实盘/模拟运行生效get_assure_contract 需要连通柜台获取账户权限数据,因此建议在实盘运行模拟运行模式下使用,回测模式下可能无法获取真实柜台担保品明细。
  2. 账号初始化:在 init 函数中需调用 ContextInfo.set_account(accId) 绑定信用账号,确保交易主推及数据查询正常。