)
Backtrader 风险管理先学会少亏再考虑多赚很多人学习量化交易时第一反应是怎样让收益率更高但更重要的问题是如果连续亏损我会不会被一次性淘汰这就是风险管理。一、仓位大小决定了亏损大小同一个策略如果买 10 股和买 1000 股信号完全一样账户波动却完全不同。常见仓位方式固定数量固定金额账户资金百分比根据波动率动态调整。Backtrader 中可以使用固定数量cerebro.addsizer(bt.sizers.FixedSize,stake100)也可以使用账户资金百分比cerebro.addsizer(bt.sizers.PercentSizer,percents20)注意百分比仓位不是“保证只亏 20%”它只是控制投入资金比例。二、先设定单笔最大亏损假设你有 100000 元资金希望一笔交易最多亏 1%那么最大可接受亏损是100000 × 1% 1000 元如果入场价是 100 元止损价是 95 元每股风险是 5 元那么可买数量大约是1000 ÷ 5 200 股这比“我感觉可以买 1000 股”更有纪律。三、止损距离会影响仓位止损越远每股风险越大仓位就应该越小。止损距离2 元数量可以更多 止损距离10 元数量应该更少一个简单函数defcalc_size(cash,risk_pct,entry,stop):risk_moneycash*risk_pct risk_per_unitabs(entry-stop)ifrisk_per_unit0:return0returnint(risk_money/risk_per_unit)真实交易还要加入手续费、滑点、最小交易单位和涨跌停限制。四、回撤比收益更能考验人最大回撤表示账户从高点跌到之后低点最多跌了多少。例如账户最高120000 之后最低90000 最大回撤25%回撤期间策略可能连续几个月没有创新高。所以设计策略时要提前问20% 回撤能否接受连续亏损 10 次会怎样账户下跌后是否还会继续加仓是否设置最大总仓位五、不要把所有资金押在一个品种上多资产组合需要考虑相关性。同时持有五只科技股不一定是真正分散因为它们可能一起下跌。可以设置单品种最大仓位单行业最大仓位组合总仓位单方向总风险高相关资产的合并限额。分散不是简单地增加品种数量而是降低风险集中。六、杠杆和保证金要谨慎杠杆会放大收益也会放大亏损。如果没有充分理解保证金、强平价格和隔夜风险不要轻易在回测中使用高杠杆。回测里看似能承受的仓位实盘遇到跳空时可能无法按预期止损。七、交易成本也是风险风险不只是价格下跌还包括手续费滑点借券成本资金费率换手过高流动性不足。一套高频交易策略如果不加入真实成本回测结果可能非常虚高。八、连续亏损保护可以为策略设计简单的保护规则单日亏损超过阈值停止开新仓连续亏损达到次数降低仓位账户回撤超过阈值暂停策略波动率突然升高时减少仓位。这些规则不是保证盈利而是防止坏情况进一步扩大。九、风险管理的常见误区只看胜率不看单笔亏损为了提高收益不断加大仓位同时持有很多高度相关的资产认为止损价一定能成交忽略跳空和流动性只做单笔风险控制不做组合风险控制回撤后盲目加仓试图“赚回来”。最后总结风险管理可以记成四句话先确定最多能亏多少 再根据止损距离计算仓位 控制单品种和组合集中度 最后把手续费、滑点和极端行情算进去。一个真正能长期运行的策略不是每次都赢而是在输的时候也不会失控。