MQL5中的替代风险回报标准·综合运用
◍ 偏矩比的反直觉现象
偏矩比(UPR)在解读上比 Omega 麻烦得多。Omega 的逻辑简单:数值越高越好,为负代表策略赔钱,为正代表承担风险后拿到了超额回报,这一条在 MT5 策略测试器里直接读数就能判断。 UPR 却常给出反直觉结果。用模拟净值曲线看:蓝色曲线整体是负的回报,UPR 却算出来为正;绿色和红色曲线形态接近,绿色实际收益更好,但 UPR 反而小于红色。这说明 UPR 对收益分布的形状敏感,不只看最终盈亏。 在 MT5 里验证时,别只盯 UPR 符号下结论。把同一 EA 跑多组不同市况,对比净值曲线的偏度和尾部,才能判断这个正值是真有偏度优势,还是被某段极端行情抬出来的。外汇与贵金属杠杆高,这类统计指标失真时容易放大误判,需结合回测样本长度交叉看。
「用 Jensen's Alpha 揪出跑赢基准的策略」
线性回归找出最贴合数据点的直线,Jensen's Alpha 就是这套思路在权益曲线上的落地:它读的是标准回归方程里的截距项,把「基准收益」当预测变量、「观察收益」当响应变量,量化两者之间的线性偏离。Alpha 为正,代表策略在同等基准环境下多咬下一块肉;为负则大概率跑输大盘。 最小二乘拟合是算 Alpha 的直接手段。下面这个函数吃进两条数组——一条是策略实际回报,一条是基准回报——顺手通过引用把 alpha、beta 吐出来,调用方拿去比对曲线就行。 在我们模拟的三条权益曲线里(红为基准、绿与蓝为待测),蓝色净值第一次被指标判为最佳。有意思的是:即便绝对收益为负,只要基准跌得更惨,Jensen's Alpha 仍可能给正号。外汇与贵金属杠杆高、回撤猛,这种「相对胜出」绝不承诺实盘安全,用它筛策略时得留神基准周期是否匹配。 别把正态当圣经 Alpha 只描述一段样本内的线性关系,换段时间窗重跑,符号翻面并不稀奇。真要信它,至少拿 MT5 把同一段行情复盘三次再下结论。
class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//|linear model using least squares fit y=a+bx | class=class="str">"cmt">//+------------------------------------------------------------------+ class="type">class="kw">double leastsquaresfit(class="type">class="kw">double &y[],class="type">class="kw">double &x[], class="type">class="kw">double &alpha,class="type">class="kw">double &beta) { class="type">class="kw">double esquared=class="num">0; class="type">int ysize=ArraySize(y); class="type">int xsize=ArraySize(x); class="type">class="kw">double sumx=class="num">0,sumy=class="num">0,sumx2=class="num">0,sumxy=class="num">0; class="type">int insize=MathMin(ysize,xsize); for(class="type">int i=class="num">0; i<insize; i++) { sumx+=x[i]; sumx2+=x[i]*x[i]; sumy+=y[i]; sumxy+=x[i]*y[i]; } beta=((insize*sumxy)-(sumx*sumy))/((insize*sumx2)-(sumx*sumx)); alpha=(sumy-(beta*sumx))/insize; class="type">class="kw">double pred,error; for(class="type">int i=class="num">0; i<insize; i++) { pred=alpha+(beta*x[i]); error=pred-y[i]; esquared+=(error*error); } class="kw">return esquared; }
用 Jensen Alpha 与 Beta 拆策略真实表现
Jensen 的 Alpha 为正,代表策略在扣掉对应风险敞口后,相对基准拿到了超额回报;为负则跑输基准。这个符号本身就能筛掉一批「看着漂亮但经不起风险调整」的 EA。 光看 Alpha 不够,OLS 回归一并给出的 Beta 才是波动弹性标尺:Beta=1 时净值曲线跟基准同频;Beta<1 说明回撤与反弹都比基准钝,Beta>1 则放大了基准的上下摆动。 在 MT5 里把策略净值与对应基准(如 XAUUSD 与美元指数)按日频对齐做回归,若 Alpha 显著为正且 Beta 落在 0.6~0.9,对贵金属这种高杠杆品种,往往意味着它避开了部分系统性跳空风险,但样本外仍可能因流动性断裂失效。
◍ 画得少,看得清
Omega 标准在替代夏普比率时最值得留意:它不预设收益服从正态分布,却保留了横向比较策略风险调整回报的能力。但任何单一指标都给不出风险与回报的全貌,实盘前最好把多个绩效指标叠在一起看。 PerformanceRatios.mqh 里实现了文中所有指标,注意它们都不输出年化数字;附带的 EquityCurves.ex5(319.8 KB)用 EasyAndFastGUI 库画出了模拟权益曲线,编译源码时需自行从代码库取该库。历史回测只是可追溯的刻度,外汇与贵金属杠杆交易高风险,过去表现不保证未来。 真要验证,把 sp500close.csv(5.91 KB)丢进 Mql5\Files,加载 EA 拖动界面,比盯着一堆比率数字更能直觉判断曲线形态。