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

QMT 平台如何实时查询信用账户维持担保比例与融资可用额度?(附 Python 代码)

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

问题描述

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

Title: QMT 两融风控 API:实时查询信用账户保证金比例与可用额度

Question: QMT 如何查询信用账户的维持担保比例和融资可用额度?

解决方案

QMT 平台如何实时查询信用账户维持担保比例与融资可用额度?

在进行两融(融资融券)量化交易时,严格的风控措施至关重要。QMT(迅投 QMT)提供了丰富的信用交易 API,让投资者能够在策略运行过程中实时获取信用账户的个人维持担保比例可用保证金融资可用额度等核心风控指标,从而预防触发强制平仓风险。


一、核心 API 接口说明

在 QMT 中,查询信用账户风控指标主要依赖 get_trade_detail_data 函数。通过将数据类型指定为 'account'(或直接读取信用账户特有属性),返回的对象为 CCreditAccountDetail,其中包含了完整的两融风控字段。

关键风控属性对照表(CCreditAccountDetail

属性名称 类型 说明 应用场景
m_dPerAssurescaleValue double 个人维持担保比例 监控平仓风险(如低于 130% 预警)
m_dEnableBailBalance double 可用保证金 评估当前可开仓的最大担保能力
m_dFinEnableQuota double 融资可用额度 评估可继续融资买入的限额
m_dSloEnableQuota double 融券可用额度 评估可继续融券卖出的限额
m_dTotalDebit double 总负债 统计账户负债情况
m_dAssureAsset double 净资产 账户实际资产总额

二、Python 策略实现源码

以下示例展示了如何在 QMT 策略的 handlebar 函数中实时获取并输出信用账户的风控数据:

#encoding:gbk
import time

def init(ContextInfo):
    # 设定信用交易账号
    ContextInfo.accID = '6000000248'  # 替换为您的信用账号
    ContextInfo.set_account(ContextInfo.accID)
    print("=== QMT 两融风控策略初始化完成 ===")

def handlebar(ContextInfo):
    # 仅在最新 Bar 运行,避免历史回测频繁输出
    if not ContextInfo.is_last_bar():
        return
    
    # 获取信用账户交易明细
    account_type = 'CREDIT'  # 账号类型:信用
    acct_info_list = get_trade_detail_data(ContextInfo.accID, account_type, 'account')
    
    if not acct_info_list:
        print("未能获取到信用账户信息,请检查账号是否登录或拼写正确!")
        return
        
    for acc_detail in acct_info_list:
        # 1. 实时维持担保比例
        maintain_ratio = getattr(acc_detail, 'm_dPerAssurescaleValue', 0.0)
        # 2. 融资可用额度
        fin_enable_quota = getattr(acc_detail, 'm_dFinEnableQuota', 0.0)
        # 3. 可用保证金
        enable_bail = getattr(acc_detail, 'm_dEnableBailBalance', 0.0)
        # 4. 总负债
        total_debit = getattr(acc_detail, 'm_dTotalDebit', 0.0)
        
        print(f"【两融风控指标】")
        print(f"账号: {acc_detail.m_strAccountID}")
        print(f"维持担保比例: {maintain_ratio:.2f}%")
        print(f"融资可用额度: {fin_enable_quota:.2f} 元")
        print(f"可用保证金: {enable_bail:.2f} 元")
        print(f"总负债: {total_debit:.2f} 元")
        
        # 预警逻辑示例
        if maintain_ratio > 0 and maintain_ratio < 140.0:
            print(f"[警告] 当前维持担保比例低于 140%!预警触发,暂停融资买入!")
        else:
            print("[正常] 维持担保比例处于安全区间。")

三、常见问题与开发建议

  1. 实盘模式生效:信用账户风控指标查询仅在实盘运行模式下生效,在历史 K 线回测模式下虚拟账号无真实信用数据。
  2. 配合下单函数:在使用 passorder 进行融资买入(操作类型 27)或融资卖出(操作类型 28)前,应先校验 m_dFinEnableQuota(融资可用额度)与 m_dEnableBailBalance(可用保证金),确保订单不会因额度不足被柜台拒绝。
  3. 单股最大可下单量查询:除账户维度的风控外,若需查询某只具体股票的融资/担保买入上限,可配合使用 query_credit_opvolume() 异步回调接口。