🚀 AI 一键生成 joinquant 策略代码

JoinQuant 模拟交易中如何调整融资融券的利率和保证金比率?

joinquant | 发布时间: 2025/12/24
以下内容由 EasyQuant 生成。

问题描述

我想在回测中修改默认的融资利率和融券保证金比例,代码怎么写?

解决方案

在聚宽(JoinQuant)回测中,修改融资利率和融券保证金比例主要通过 set_option 函数在 initialize 初始化函数中完成。

关键点说明:

  1. 融资利率:使用 set_option('margincash_interest_rate', value),默认值为 8% (0.08)。
  2. 融券保证金比例:使用 set_option('marginsec_margin_rate', value),默认值为 100% (1.0)。
  3. 账户类型:必须通过 set_subportfolios 将账户类型设置为 'stock_margin'(融资融券账户),否则无法进行融资融券交易。

以下是完整的代码示例:

# -*- coding: utf-8 -*-

def initialize(context):
    # 1. 设定账户类型为融资融券账户 (必须步骤)
    # 如果不设置,默认为普通股票账户('stock'),无法进行融资融券操作
    set_subportfolios([SubPortfolioConfig(cash=context.portfolio.starting_cash, type='stock_margin')])

    # 2. 修改融资利率 (margincash_interest_rate)
    # 例如:设置为年化 6% (默认为 8%)
    set_option('margincash_interest_rate', 0.06)
    
    # 3. 修改融券保证金比例 (marginsec_margin_rate)
    # 例如:设置为 150% (默认为 100%)
    # 这意味着融券卖出价值100元的股票,需要150元的保证金
    set_option('marginsec_margin_rate', 1.5)

    # 其他常规设置
    set_benchmark('000300.XSHG')
    set_option('use_real_price', True)
    
    # 打印日志确认设置(可选)
    log.info("融资融券参数设置完成")

def handle_data(context, data):
    # 策略逻辑...
    pass

代码详解

  1. set_subportfolios:

    • 这是开启融资融券功能的必要前提。默认的 type='stock' 只能买入股票,不能进行融资买入或融券卖出。必须显式设置为 type='stock_margin'
  2. set_option('margincash_interest_rate', 0.06):

    • 含义: 设置向券商借钱买股(融资)的年化利息。
    • 参数: 浮点数,0.06 代表 6%。
  3. set_option('marginsec_margin_rate', 1.5):

    • 含义: 设置向券商借股卖出(融券)时需要的保证金比例。
    • 参数: 浮点数,1.5 代表 150%。
    • 计算: 如果你想融券卖出市值 10,000 元的股票,在 150% 的比例下,你需要占用 15,000 元的可用资金作为保证金。

Q&A

Q: 还需要设置融券的利率吗?
A: 如果需要,可以使用 set_option('marginsec_interest_rate', value) 来设置融券利率,系统默认值为年化 10% (0.10)。

Q: 融资保证金比例可以修改吗?
A: 可以。使用 set_option('margincash_margin_rate', value)。系统默认值为 100% (1.0)。例如设置为 1.2 表示融资买入需自有资金 120%(这通常不符合实际,实际通常低于100%,如0.5或1.0,具体视策略需求而定)。

Q: 这些设置在模拟交易中生效吗?
A: 是的,set_option 设置的费率和保证金比例在回测和模拟交易中均生效。但在模拟交易中,建议根据实际券商的费率进行调整以获得更真实的模拟结果。