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

QMT 两融策略:如何利用担保品折算率优化账户资金利用率?(附 Python 源码)

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

问题描述

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

Title: QMT 两融策略:基于担保品折算率的最佳资金利用率调仓

Question: 如何通过 QMT API 查询担保品折算率并优化两融账户仓位?

解决方案

QMT 两融策略:基于担保品折算率的最佳资金利用率调仓

在融资融券(两融)交易中,合理利用**担保品折算率(Assure Ratio)**能够显著提升账户的整体保证金使用效率和购买力。本文将详细介绍如何通过 QMT API 查询信用账户的担保品折算率,并编写自动化调仓策略。


1. 担保品折算率与资金利用率原理

  • 担保品折算率:投资者将标的股票作为担保品转入信用账户时,系统会按股票市值的折算比例计算可用于充抵保证金的金额。
  • 资金优化逻辑:优先买入或持有高折算率(如 0.7 对应高质量蓝筹股)的证券,可以在同等持仓市值下提高账户的可用保证金(EnableBailBalance),从而释放更高的融资买入额度,实现资金效益最大化。

2. 关键 API 接口

  1. get_assure_contract(accId):获取信用账户担保品合约明细对象(StkSubjects),其属性 m_dAssureRatio 即为担保品折算率。
  2. passorder(opType, orderType, accountid, orderCode, ...):下单接口,两融担保品买入使用 opType=33(信用账号股票买入)或 opType=23

3. Python 策略源码实现

以下示例展示了如何在 QMT 中获取股票池中各标的的折算率,并按折算率由高到低分配仓位:

#encoding:gbk
import pandas as pd

def init(ContextInfo):
    # 1. 设置信用资金账号
    ContextInfo.accID = '6000000001'
    ContextInfo.set_account(ContextInfo.accID)
    
    # 2. 设置标的股票池
    ContextInfo.stocks = ['600000.SH', '000001.SZ', '600519.SH']
    ContextInfo.set_universe(ContextInfo.stocks)
    
    # 定时运行调仓逻辑
    ContextInfo.run_time("rebalance", "30nSecond", "2023-01-01 09:30:00", "SH")

def rebalance(ContextInfo):
    if not ContextInfo.is_last_bar():
        return
        
    # 3. 查询信用账户担保品明细,提取折算率
    assure_list = get_assure_contract(ContextInfo.accID)
    assure_dict = {}
    for item in assure_list:
        # item.m_strInstrumentID: 股票代码, item.m_dAssureRatio: 折算率
        stk = item.m_strInstrumentID + '.' + item.m_strExchangeID
        assure_dict[stk] = item.m_dAssureRatio
        
    print("当前担保品折算率列表:", assure_dict)
    
    # 4. 根据折算率高低筛选优质标的(例如折算率 >= 0.7)
    target_stocks = [stk for stk, ratio in assure_dict.items() if stk in ContextInfo.stocks and ratio >= 0.7]
    
    if not target_stocks:
        print("无满足折算率条件的标的")
        return
        
    # 5. 平均分配可用资金下单买入(使用信用账户担保品买入 opType=33)
    # orderType=1123 表示单股、单账号、可用资金比例方式下单
    weight = 1.0 / len(target_stocks)
    for stk in target_stocks:
        passorder(33, 1123, ContextInfo.accID, stk, 5, -1, weight, "两融折算率策略", 1, "", ContextInfo)
        print(f"对标的 {stk} 按可用资金比例 {weight:.2f} 发起担保品买入")

def handlebar(ContextInfo):
    pass

4. 注意事项

  1. 数据准备:运行前需确保已在 QMT 交易端登录两融信用账号,且账号具备对应的担保品交易权限。
  2. 风控控制:融资融券操作需时刻关注维持担保比例(m_dPerAssurescaleValue),防止因市场大幅波动触及平仓线。
  3. 折算率变动:交易所与券商会定期调整担保品折算率,策略中实时调用 get_assure_contract 能有效适应动态变化。