问题描述
请问下这个问题,margincash_margin_rate和marginsec_margin_rate用得有点迷,设置0.1难道不是可以10倍杠杆的意思吗?谢谢
解决方案
您的理解是完全正确的!在 JoinQuant(聚宽)平台中,将 margincash_margin_rate 或 marginsec_margin_rate 设置为 0.1,确实意味着您开启了 10倍杠杆。
下面为您详细解释这两个参数的含义以及杠杆的计算方式:
1. 参数含义解析
margincash_margin_rate:融资保证金比率。指您向券商借钱买入股票(融资买入)时,需要提供的自有资金比例。系统默认值为1.0(即 100%)。marginsec_margin_rate:融券保证金比率。指您向券商借股票卖出(融券卖出)时,需要提供的自有资金比例。系统默认值为1.0(即 100%)。
2. 杠杆倍数计算公式
杠杆倍数与保证金比率呈倒数关系:
杠杆倍数 = 1 / 保证金比率
- 如果您设置比率为
1.0(默认),杠杆倍数 = 1 / 1.0 = 1 倍(即没有额外杠杆,借多少钱需要多少本金)。 - 如果您设置比率为
0.5,杠杆倍数 = 1 / 0.5 = 2 倍。 - 如果您设置比率为
0.1,杠杆倍数 = 1 / 0.1 = 10 倍。
3. 代码设置示例
在策略的 initialize 函数中,您可以通过 set_option 来修改这些比率:
def initialize(context):
# 设置融资保证金比率为 10% (即 10 倍杠杆)
set_option('margincash_margin_rate', 0.1)
# 设置融券保证金比率为 10% (即 10 倍杠杆)
set_option('marginsec_margin_rate', 0.1)
# 别忘了,如果要进行融资融券交易,需要将子账户类型设置为 'stock_margin'
init_cash = context.portfolio.starting_cash
set_subportfolios([SubPortfolioConfig(cash=init_cash, type='stock_margin')])
⚠️ 温馨提示与实盘差异
虽然在 JoinQuant 的回测和模拟环境中,您可以自由地将保证金比率设置为 0.1 来体验 10 倍杠杆的威力,但在真实的 A 股市场中,融资融券是有严格监管限制的:
- 实际业务限制:目前国内券商的融资保证金比例通常不得低于 100%(即
1.0),融券保证金比例通常不得低于 50%(近期政策有收紧趋势,具体以券商规定为准)。这意味着在实盘中,您很难获得超过 1 倍的融资杠杆(即自有资金 100 万,最多再借 100 万,总资产 200 万)。 - 维持担保比例:除了开仓时的保证金比率,融资融券账户还有“维持担保比例”的考核(通常警戒线为 130%,平仓线为 115%)。如果使用极高的杠杆(如 10 倍),标的稍微波动 10% 就会导致爆仓(强平)。
总结:在回测中设置 0.1 确实是 10 倍杠杆,可以用于测试极端策略或放大收益曲线,但如果您的策略最终目标是实盘,建议将参数保持在默认值 1.0 附近,以贴近真实市场环境。