MT5策略测试器多品种回测:跨品种相关性参数配置的五个步骤

一般32.8
登录发帖
Exness 推荐平台

入金门槛低,出金到账快,支持多种账户类型

FSA(塞舌尔)/FCA(英国) / CySEC(塞浦路斯) · 最低入金 $130
予安仔
予安仔 楼主 4 天前 浏览 328 回复 0 阅读 1 分钟
新汇友(注册会员) 等级 Lv.1 主题 2 帖数 6 积分 20 汇币 20
1楼
昨晚跑一个多品种组合的回测,MT5策略测试器跑到一半直接卡死,日志里报了一堆“correlation matrix not positive definite”,折腾到凌晨两点才搞明白是相关性参数填得太随意了。想起论坛里聊多品种回测的帖子不多,干脆把我踩过的坑整理一下,算是给想深入这块的朋友一点参考。
多品种回测和单品种最大的区别,就是你不能把每个品种当成孤岛。我以前也偷懒,欧美、镑美、黄金各跑各的,然后手动把资金曲线拼起来看,结果实盘一上就发现回撤叠加得厉害——因为欧美和镑美在大多数时候是同向的,你等于变相重仓了美元。所以第一步,先想清楚你要回测的是组合层面的风险,不是单个策略的收益。我一般会在MT5的“品种”列表里先把候选品种拉出来,用脚本算一下近两年的日线收益率相关系数,超过0.7的,要么砍掉一个,要么在参数里做对冲处理。
第二步是配置相关性矩阵。MT5策略测试器本身不直接提供跨品种相关性输入,得靠自定义EA里读CSV或者用全局变量传。我的做法是在EA的OnInit里加载一个相关系数矩阵文件,然后根据当前持仓品种动态调整手数。这里有个坑:矩阵必须是正定的,否则优化器会报错。我一开始手动填了几个相关系数,没注意对称性,结果矩阵非正定,跑了一晚上白跑。后来改成用Python的numpy先算好再导出,省事很多。
第三步,资金分配和杠杆要联动。多品种回测时,测试器默认每个品种独立计算保证金,但实盘是共享净值的。我习惯在EA里加一个总风险敞口上限,比如所有品种的未平仓风险合计不超过净值的2%。参数上,我会把每个品种的风险权重和相关系数挂钩——相关性越高,权重压得越低。这一步在优化时特别耗时,建议先用小样本参数粗筛,别一上来就全参数优化。
第四步,点差和隔夜利息要单独设。不同品种的点差差异很大,黄金和欧美完全不是一个量级。我通常会在测试器的“设置”里把每个品种的点差手动覆盖,而不是用默认值。隔夜利息也别忘了,尤其是持有多日的组合策略,三倍隔夜利息那天能吃掉不少利润。我吃过亏,回测里没算利息,实盘跑了一个月发现收益少了两成。
第五步,样本外验证要按品种分组做。别把所有品种的数据混在一起做交叉验证,那样会掩盖单品种的过拟合。我的习惯是每个品种单独留一段样本外,然后再看组合整体的表现。如果某个品种在样本外垮了,先别急着删,看看是不是相关性结构变了——有时候只是临时脱钩,加个滚动相关系数窗口就能救回来。
最后说个心态上的事。多品种回测很容易让人产生“分散了就安全”的错觉,其实相关性在极端行情下会突然飙升,你以为的对冲可能瞬间变成双倍亏损。我现在的做法是,回测报告里必须有一栏“最大回撤期间各品种相关性变化”,这个比夏普比率更让我安心。
你们跑多品种回测时,有没有遇到过相关性矩阵报错或者优化器卡死的情况?都是怎么处理的?

补充个细节:相关性矩阵别用全历史数据算,我后来改成分段滚动窗口,实盘匹配度高不少。
0 回复 众裁0 复制
#1
💬
暂无回复,来抢沙发吧!
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 美联储利率决议前平仓还是持仓?新手面对重大数据时的心态与仓位抉择 下一帖 → MT5订单簿深度数据在黄金闪崩时有多失真?EA挂单被反复触发