问题描述
解决方案
JoinQuant模拟交易设置融资利率方法
在聚宽(JoinQuant)的模拟交易中,可以修改融资利率。您可以通过 set_option 函数来设定具体的融资利率数值。
设置方法
使用 set_option('margincash_interest_rate', value) 函数进行设置。
- 参数说明:
- 第一个参数固定为
'margincash_interest_rate'。 value:融资利率的值,格式为浮点数。例如0.08代表年化 8%。
- 第一个参数固定为
- 默认值:如果不设置,系统默认融资利率为 8%。
- 代码位置:通常建议在
initialize(context)函数中进行设置。
代码示例
假设您希望将融资利率设置为年化 6%,代码如下:
# -*- coding: utf-8 -*-
def initialize(context):
# 设定融资利率: 年化 6%
set_option('margincash_interest_rate', 0.06)
# 其他初始化代码...
# 设定账户为融资融券账户(必须步骤,否则无法进行融资融券交易)
set_subportfolios([SubPortfolioConfig(cash=context.portfolio.starting_cash, type='stock_margin')])
相关融资融券设置
除了融资利率,您可能还需要设置融券利率或保证金比率,相关API如下:
- 设置融券利率 (默认 10%):
set_option('marginsec_interest_rate', 0.10) - 设置融资保证金比率 (默认 100%):
set_option('margincash_margin_rate', 1.0) - 设置融券保证金比率 (默认 100%):
set_option('marginsec_margin_rate', 1.0)
Q&A
Q: 融资利率设置后是立即生效吗?
A: 是的,在策略运行到 set_option 代码行时即刻生效。如果在模拟交易运行中途修改代码,建议在 after_code_changed(context) 中也添加该设置,或者重启模拟交易以确保配置更新。
Q: 融资利息是如何计算和扣除的?
A: 融资利息通常按日累计,并在交易或结算时根据负债金额和设定的年化利率进行计算。系统会自动处理利息的扣除,体现在账户的总资产和负债中。
Q: 如果我不设置 type='stock_margin',设置融资利率有效吗?
A: 无效。必须通过 set_subportfolios 将账户类型设置为 'stock_margin' (融资融券账户),才能进行融资融券交易,此时融资利率的设置才有实际意义。默认账户类型通常为 'stock' (普通股票账户)。