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

joinquant 平台如何自定义期货保证金比例并进行追保预警?(附 Python 源码)

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

问题描述

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

Title: joinquant 期货风控指南:futures_margin_rate 与保证金预警

Question: 如何在 joinquant 中自定义期货保证金比例并进行追保预警?

解决方案

joinquant 平台如何自定义期货保证金比例并进行追保预警

在期货量化交易中,资金管理与风控是策略稳健运行的核心。聚宽(JoinQuant)提供了灵活的 API 接口,帮助开发者自定义期货保证金比例,并在盘中实时监控账户风险,进行追保或平仓预警。


一、核心 API 介绍

1. 设置期货保证金比例 futures_margin_rate

通过 set_option 可以全局或针对特定品种/合约设置保证金比例。

  • 设置所有期货默认保证金
    set_option('futures_margin_rate', 0.10) # 设置所有期货保证金比例为 10%
    
  • 按品种设置保证金
    set_option('futures_margin_rate.AU', 0.09) # 设置所有黄金期货保证金比例为 9%
    set_option('futures_margin_rate.IF', 0.15) # 设置股指期货 IF 保证金比例为 15%
    
  • 按特定合约设置保证金
    set_option('futures_margin_rate.AU1709', 0.08) # 设置 AU1709 合约保证金比例为 8%
    

2. 保证金预警 is_dangerous

用于判断指定仓位的实际保证金比例是否低于预设安全阈值:

context.subportfolios[i].is_dangerous(margin_rate)
  • 参数margin_rate 为设定的预警保证金比例阈值(如 0.2 表示 20%)。
  • 返回值:若账户当前保证金占用/权益状况处于高风险状态(低于指定比例),返回 True;否则返回 False

二、策略实现流程

  1. 初始化账户:在 initialize 中配置期货子账户 SubPortfolioConfig(type='futures')
  2. 设定保证金:根据交易品种,通过 set_option('futures_margin_rate.xx', value) 设定合规的保证金率。
  3. 盘中监控:在 handle_data 或定时任务中,调用 is_dangerous 检测仓位风险。
  4. 触发风控:当触发预警时,执行减仓、平仓或日志提醒,防止强平。

三、完整 Python 策略示例

import jqdata

def initialize(context):
    # 开启动态复权模式
    set_option('use_real_price', True)
    
    # 1. 初始化期货子账户
    init_cash = context.portfolio.starting_cash
    set_subportfolios([SubPortfolioConfig(cash=init_cash, type='futures')])
    
    # 2. 设置螺纹钢 (RB) 的保证金比例为 8%
    set_option('futures_margin_rate.RB', 0.08)
    
    # 定义交易标的
    g.symbol = 'RB2001.XSGE'
    
    # 订阅定时运行函数
    run_daily(check_risk, time='every_bar')

def check_risk(context):
    # 检查 subportfolios[0] 是否处于高风险状态(例如保证金维持率低于 15%)
    if context.subportfolios[0].is_dangerous(0.15):
        log.warn("【风控警告】当前账户保证金低于预警线 15%,准备执行风控平仓!")
        
        # 强平所有持仓以控制风险
        order_target(g.symbol, 0, side='long', pindex=0)
        order_target(g.symbol, 0, side='short', pindex=0)