3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在聚宽(JoinQuant)回测中,修改融资利率和融券保证金比例主要通过 set_option 函数在 initialize 初始化函数中完成。
关键点说明:
set_option('margincash_interest_rate', value),默认值为 8% (0.08)。set_option('marginsec_margin_rate', value),默认值为 100% (1.0)。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
set_subportfolios:
type='stock' 只能买入股票,不能进行融资买入或融券卖出。必须显式设置为 type='stock_margin'。set_option('margincash_interest_rate', 0.06):
0.06 代表 6%。set_option('marginsec_margin_rate', 1.5):
1.5 代表 150%。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 设置的费率和保证金比例在回测和模拟交易中均生效。但在模拟交易中,建议根据实际券商的费率进行调整以获得更真实的模拟结果。