运用 R-平方 评估策略余额曲线的品质(基础篇)
用 R 平方看穿余额曲线的拟合质量
很多交易者只看最终盈利,却忽略了余额曲线本身“长什么样”。一条平滑单调向上的曲线,和一条剧烈来回折返的曲线,即便终点净值相同,背后的策略稳定性也完全不同。 R 平方(R-squared)原本是统计学里衡量因变量波动能被自变量解释的比例,放到 MT5 策略测试里,它用来评估余额曲线对一条线性趋势线的拟合程度。数值越接近 1,说明权益增长越接近匀速直线;越接近 0,说明曲线杂乱、随机性主导。 在 MT5 的回测报告里,R 平方是一个独立字段。实盘验证时,可先跑一轮 2015—2017 年 EURUSD H1 的回测,观察报告中的 R 平方值:若低于 0.5,即便净利润为正,策略也可能高度依赖少数几笔极端行情。 外汇与贵金属属高风险品种,R 平方高不代表未来收益,只表明历史曲线形态更“规矩”,样本内过拟合的概率相对低一些。
「先看这套评估框架的骨架」
要把一个交易系统从「看着还行」推进到「敢上真金」,先得理清手里有哪些统计工具。MQL5 官方那篇长文把评估链路拆成了几块:从测试时的常见误区,到线性回归、相关性、R² 判定系数,再到反正弦定理对回归评估的补刀,最后落到用 AlgLib 实算 R² 并在实盘里用。 整条链路里有两个硬数据点值得记住:一是判定系数 R² 的取值范围恒在 0 到 1 之间,越靠近 1 说明净值曲线对线性回归的拟合度越高;二是反正弦定理揭示了一个反直觉现象——随机交易系统的交易次数越多,其净值回归线的斜率偏向零的概率越大,而非均匀分布。 对 MT5 用户来说,这一节的价值不在于结论,而在于它把「该测什么」排好了序。下一节会直接进入线性回归和 R² 的实算,你可以先开好 MT5 的策略测试器,等代码出来直接跑。
◍ 余额曲线平滑度为何缺位
多数策略评估依赖胜率、利润因子这类易算指标,但有一条最直观却长期缺席的量化维度:余额曲线到底有多平滑。MT5 标准报告给出了一组汇总统计,却始终没有把“曲线平滑上升”落成可比较的数字,这给横向筛选策略留下盲区。 R²(判定系数)能补上这个缺口。它把交易者最在意的“平滑且向上的权益轨迹”压缩成一个 0~1 之间的标量,值越高代表拟合出的上升趋势越干净、回撤噪声越小。 MT5 的优势在于允许自定义评估参数,不必受限于内置报告。我们接下来要做的,就是在优化器和回测报告里植入 R²,并把它和常规准则摆在一起看规律。外汇与贵金属杠杆高、滑点跳空频繁,这类平滑度指标只能作为概率参考,不能单独当成开仓依据。
回测报告里那几个数字到底能不能信
MT5 跑完策略测试,报告里总堆着一堆统计量。最显眼的是 Total Net Profit(净利润总计),它代表测试期内净赚或净亏的总金额,理论上独立于其他参数,可以单独看。但它有三个坑:用复利时利润呈非线性爆发,期末数字可能天文级却实盘落空;按固定手数才客观,有经验的测试者对外汇习惯锁 0.1 或 0.01 手,这样最小变动等于一个点,上表 0.1 手跑出 $15,757 算显赫,换 1.0 手就逊色很多;净利润还死依赖测试起止时间,同是 $15,757 可能是 1 年也可能是 5 年赚的,含义完全不同。 Profit Factor(盈利因子)是老手最爱,用总盈利除以总亏损,比如两笔交易亏 $1000 赚 $2000,因子就是 2.0,且不依赖测试时长和手数。但它的软肋是成交少时很容易飙到 2.0 甚至 3.0,成交多能上 1.5 就算巨大成功,样本量会严重扭曲读数。 Expected Payoff(预期收益)看每笔平均回报,正数是盈利策略、接近点差佣金就要怀疑真盘能力。测试器里理想成交能画平滑上升线,但实盘滑点重报价会让均值稍差就转亏。它也是线性指标,不能用于资金管理系统,老手只拿它配固定手数线性系统、和成交数对照看。 Number of Deals(成交数量)暗中绑架大多数指标。假设胜率恒为 70%、输赢绝对值相等,若只取最后两笔,两笔都赢概率仅 49%,一半情况下统计会显示策略不赚钱、因子=1、预期收益=0。统计学里 37 次测量是代表性下限,但交易系统至少得 100–300 笔才勉强可靠,专业盘手通常要求 500–1000 笔后再考虑上真盘。外汇和贵金属杠杆高,这些数字再漂亮也只代表历史样本,实盘滑点和黑天鹅仍可能击穿结论。
「净利润和盈利因子在回测里会骗人」
用 CImpulse 2.0 在 EURUSD 1H 上跑 2015.01.15–2017.10.01,PeriodMA=120、StopPercent=0.67 时净利润约 +11,894 美元,曲线稳定增长;但换成 PeriodMA=110、StopPercent=0.24,终值接近却全程像随机游走,若测试在 2015 年中截断利润就趋近于零。再换 PeriodMA=45、StopPercent=0.44,利润同样靠近前两者,但盈利几乎全来自 2015 上半年,之后长期横盘——这种形态实盘大概率不可行,外汇和贵金属杠杆品种尤其要警惕样本内虚假平滑。 盈利因子(PF)看的是总盈利/总亏损,对单笔依赖更强。上面三组中 PF 从高到低排列,图3已逼近盈亏边界。但它也能被少量交易撬动:PeriodMA=60、StopPercent=0.82 跑出极高 PF,余额图好看,实则成交稀疏,PF 被夸张放大。 验证这一点有两手。一是把 CImpulse 大范围参数优化,导出结果后画 PF 对交易数的散点:点数少的那头 PF 动辄虚高,交易数一大 PF 就塌回 1 附近。二是做 OOS 样本外,周期切到 2012.01.01–2015.01.01,同一组稀疏参数直接反手亏损——说明少样本下的高 PF 只是区间随机,跨周期会被反向补偿。 预期收益对交易数的依赖和 PF 同构:成交越多数值越小,盈利和非盈利策略都服从这条线。所以它也不能单独当优化目标,MT5 策略测试器里别只看这一列排序。
◍ 统计准则为什么都要防两套漏洞
逐个拆过主流统计评估准则后会发现,每条都有适用边界,随便举一个反例就能让指标好看而策略实际拉胯。不存在判断交易系统稳健性的完美标准,但强力统计标准至少要扛住四类扭曲。 第一是独立于测试周期长度。盈利策略测的时间越长,总利润往往越大,恢复因子(总利润/最大回撤)也随期限拉长而膨胀。要让不同策略可比,指标必须对测试期限不变性,否则长周期策略天然占便宜。外汇与贵金属杠杆高,这种期限幻觉会放大账户毁灭风险。 第二是独立于测试终点。有些策略靠扛亏损单「填平」曲线,测试在哪天截止直接决定余额。若正好在浮亏未平掉时收工,净值变余额,回撤立刻难看。统计口径必须堵住这种人为掐点的欺诈空间。 第三是简单释义。系统参数都应量化成具体数字,且这个数字得直观——边界清晰比无限量程更利于快速判断。 第四是少量成交下的可用性。统计稳定性依赖样本数,样本少本就无解,但可缓解:后续会用两类函数评估 R 平方,一类按可用成交数构建,一类用浮盈净值计算,减轻数据不足带来的偏差。 在直接给出判定系数 R^2 前,先拆它的组成项,才能看懂这个参数到底在防什么、依据什么原则。