3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在期货量化交易中,资金管理与风控是策略稳健运行的核心。聚宽(JoinQuant)提供了灵活的 API 接口,帮助开发者自定义期货保证金比例,并在盘中实时监控账户风险,进行追保或平仓预警。
futures_margin_rate通过 set_option 可以全局或针对特定品种/合约设置保证金比例。
set_option('futures_margin_rate', 0.10) # 设置所有期货保证金比例为 10%
set_option('futures_margin_rate.AU', 0.09) # 设置所有黄金期货保证金比例为 9%
set_option('futures_margin_rate.IF', 0.15) # 设置股指期货 IF 保证金比例为 15%
set_option('futures_margin_rate.AU1709', 0.08) # 设置 AU1709 合约保证金比例为 8%
is_dangerous用于判断指定仓位的实际保证金比例是否低于预设安全阈值:
context.subportfolios[i].is_dangerous(margin_rate)
margin_rate 为设定的预警保证金比例阈值(如 0.2 表示 20%)。True;否则返回 False。initialize 中配置期货子账户 SubPortfolioConfig(type='futures')。set_option('futures_margin_rate.xx', value) 设定合规的保证金率。handle_data 或定时任务中,调用 is_dangerous 检测仓位风险。import jqdata
def initialize(context):
# 开启动态复权模式
set_option('use_real_price', True)
# 1. 初始化期货子账户
init_cash = context.portfolio.starting_cash
set_subportfolios([SubPortfolioConfig(cash=init_cash, type='futures')])
# 2. 设置螺纹钢 (RB) 的保证金比例为 8%
set_option('futures_margin_rate.RB', 0.08)
# 定义交易标的
g.symbol = 'RB2001.XSGE'
# 订阅定时运行函数
run_daily(check_risk, time='every_bar')
def check_risk(context):
# 检查 subportfolios[0] 是否处于高风险状态(例如保证金维持率低于 15%)
if context.subportfolios[0].is_dangerous(0.15):
log.warn("【风控警告】当前账户保证金低于预警线 15%,准备执行风控平仓!")
# 强平所有持仓以控制风险
order_target(g.symbol, 0, side='long', pindex=0)
order_target(g.symbol, 0, side='short', pindex=0)