问题描述
解决方案
在聚宽(JoinQuant)的回测环境中,修改融资融券的利息率需要使用 set_option 函数。这些设置通常在 initialize 函数中进行配置。
以下是具体的修改方法和代码示例:
修改融资融券利息率的方法
您可以通过以下两个选项来分别设置融资利率和融券利率:
- 融资利率 (Financing Interest Rate): 使用
margincash_interest_rate参数。 - 融券利率 (Securities Lending Interest Rate): 使用
marginsec_interest_rate参数。
代码示例
请将以下代码添加至您的策略代码中的 initialize(context) 函数内:
def initialize(context):
# 设定融资利率
# value 为 float 类型,例如 0.08 代表年化利率 8%
# 系统默认值为 0.08 (8%)
set_option('margincash_interest_rate', 0.06)
# 设定融券利率
# value 为 float 类型,例如 0.10 代表年化利率 10%
# 系统默认值为 0.10 (10%)
set_option('marginsec_interest_rate', 0.08)
# 注意:要进行融资融券交易,还需要在 initialize 中初始化融资融券账户
# 获取初始资金
init_cash = context.portfolio.starting_cash
# 设定账户类型为 'stock_margin'
set_subportfolios([SubPortfolioConfig(cash=init_cash, type='stock_margin')])
参数说明
-
set_option('margincash_interest_rate', value):- 含义: 设置向券商借钱买股(融资)的年化利率。
- 参数:
value是一个浮点数。例如0.08表示 8%。 - 默认值: 8%。
-
set_option('marginsec_interest_rate', value):- 含义: 设置向券商借股卖出(融券)的年化利率。
- 参数:
value是一个浮点数。例如0.10表示 10%。 - 默认值: 10%。
Q&A
Q: 融资融券的利息是如何扣除的?
A: 在聚宽的回测系统中,利息通常会在每日结算时计算并累计到负债中,或者在还款/还券时进行结算。具体的扣费逻辑遵循交易所和券商的一般规则,利息计算基于实际占用的资金或证券市值。
Q: 如果我不设置这两个参数,默认利率是多少?
A: 如果不调用 set_option 进行设置,系统默认的融资利率为 8% (0.08),默认的融券利率为 10% (0.10)。
Q: 修改利率后,之前的负债会按新利率计算吗?
A: set_option 设置的利率通常从设置生效之时起应用于后续的计息周期。在 initialize 中设置意味着整个回测期间都将使用该利率。
Q: 除了利率,还需要设置什么才能进行融资融券回测?
A: 除了设置利率,最重要的是必须在 initialize 中通过 set_subportfolios 将账户类型设置为 'stock_margin'(融资融券账户)。默认的账户类型是 'stock'(普通股票账户),不支持融资融券操作。