MQL5中的替代风险回报标准·综合运用
📘

MQL5中的替代风险回报标准·综合运用

第 3/3 篇

◍ 偏矩比的反直觉现象

偏矩比(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 把同一段行情复盘三次再下结论。

MQL5 / C++
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 拖动界面,比盯着一堆比率数字更能直觉判断曲线形态。

常见问题

偏矩比对下行更敏感,右偏虽拉高均值却掩盖了尾部亏损概率,实盘应结合最大回撤一起看,别单信一个比值。
把策略收益对基准回归,截距显著为正才有真超额收益;截距接近零或负,说明只是跟着行情走,没有阿尔法。
小布可在对应品种页直接跑回归诊断,把 Alpha 与 Beta 拆开显示,省去你手动导数据算回归的麻烦。
Beta 高代表波动被放大,震荡市假突破多,倾向把仓位降到平时的一半以下,等趋势确认再加。
留基准回归线和偏矩比阈值线就够了,其余指标关掉,能更快看出策略是否偏离正常风险回报区间。