复购算法:提高效率的数学模型·进阶篇
📘

复购算法:提高效率的数学模型·进阶篇

第 2/2 篇

用期望收益和盈利因子看清系统真面目

策略测试报告里的数学期望(M)和盈利因子(Pf)不止用来读一份回测,它们能直接判断一个缺乏成交细节的系统到底有没有真前景。把“单次仓位”思路换成“在一段行情上独立测试”,跑多次互不相关的回测,只盯这两个最常用参数,就能逼出系统的真实分布——顺便养成不迷信单次结果、反复测的习惯。 核心等式很简单:M 为预期收益值,Wp 为期望利润,Investments 是你愿意投入的本钱,P 是撑到盈利前资金够用的概率,(1-P) 就是亏光的概率。随机交易且无视点差、佣金、掉期、滑点时,任何系统都恒有 M=0、Pf=1;只有预测在关键时刻把特征掰向你这边,不亏钱获利的概率才脱离 0.5。 一旦把点差、佣金、掉期算进来,恒等式立刻破功,变成 M<0、Pf<1。这不是某个系统烂,而是所有系统都逃不掉——短线测试里大幅回撤撞上的概率小,你容易以为系统还行;拉到长周期测,以前没见过的深坑全冒出来,多数人却找借口说“只是意外”。 唯一破局点是往概率方程里加一个带正号的分量 dP(Prediction):它专门用来抵消点差那些负作用。只有预测质量显著到让 M>0、Pf>1 成立,系统才真正有持续盈利可能。外汇和贵金属杠杆高、点差滑点随时变,这两个不等式的门槛比股票更难过,验证前先假设自己过不了。 想拿恢复因子(Recovery Factor)做更干净的评估,可以把一段行情切成的独立片段当成多次测试。多个品种并发交易的曲线和单品种不同,回撤前常有“反向回撤”蓝点片段,不能漏算,得并进轮回里。每次新轮回从上一个轮回末尾(红点)推迟一点起算,回撤增量必须低于当前轮回起点才算数。 单轮回恢复因子用等式算:B 取该片段余额终值减初值,增量取净值回撤幅度。从红点而非蓝点拉增量,得到的是优调值;想看原始值就从蓝点拉。重点不是那个数,而是“把曲线拆成独立轮回再平均”的方法。哪怕厘清后指标大于 1、2 甚至 3,也别当成能赚大钱的信号——同一套方程必须跑多次回测,每次回测就是一次轮回,要么逐轮回平均再总平均,要么直接把测试片段拉到最长,让轮回数最大化,平均恢复因子才靠得住。

◍ 用多品种并发测试逼近盈利曲线的理论极限

把回测历史切成若干递增长度的片段只是第一步。理论极限告诉我们:在无限测试区间内,任何盈利系统的恢复因子趋近无穷大、净值相对回撤趋近零、盈利因子与数学期望收敛到有限真实值。对有限样本,只要随测试片段编号 i 增大(长度至少翻倍),恢复因子上升且相对回撤下降,就是曲线在视觉上变得更直的间接证据,也就意味着无限极限可能被满足。 当单品种历史不够长时,可转向多品种并发测试。其数学本质与拉长测试时长等价,前提是系统支持多币种且各品种参数相似——相似性代表策略捕捉的是跨品种共有的物性。此时索引 i 应理解为固定片段上并发交易的金融产品数量:品种越多,恢复因子越大、相对回撤越小。 从概率论看,每条盈利线可截取无限个固定长度独立片段,片段内盈利增量是随机变量。若多条曲线数学期望相同,标准偏差最小者最“优美”;若期望不同,则需先做缩放变换将分布律归一到相同参数,再比较该参数。我定义的这个不变参数越小,系统图形越优美。两两配对合并 n+1 条曲线时,用下列概率算式可判定多品种并行是否真改善形态: [CODE] // 合并两条盈利曲线片段的概率计算(dE1+dE2) // Pl: 合计盈利低于 r 的概率;Pm: 高于 r 的概率 double Pl = CalcProbBelow(dE1, dE2, r); double Pm = CalcProbAbove(dE1, dE2, r); // 由 Pl、Pm 反推合并后随机变量分布律 double distLaw[] = BuildDistFromProbs(Pl, Pm, r); [/CODE] 上述逻辑表明:并发交易已证盈利的系统,整体盈利图倾向更直更优美;若较短片段表现好但最长片段破环,则不等式不再满足,系统在该阶段不宜实盘。外汇与贵金属杠杆高、回撤失控风险大,多品种并发前务必在 MT5 策略测试器用至少两倍长度梯度验证恢复因子读数。

MQL5 / C++
class=class="str">"cmt">// 合并两条盈利曲线片段的概率计算(dE1+dE2)
class=class="str">"cmt">// Pl: 合计盈利低于 r 的概率;Pm: 高于 r 的概率
class="type">class="kw">double Pl = CalcProbBelow(dE1, dE2, r);
class="type">class="kw">double Pm = CalcProbAbove(dE1, dE2, r);
class=class="str">"cmt">// 由 Pl、Pm 反推合并后随机变量分布律
class="type">class="kw">double distLaw[] = BuildDistFromProbs(Pl, Pm, r);

「用同期望变换直接比标准差」

另一种避开复杂判定准则的思路,是把原始分布和前面循环链产出的结果一起做同一套变换,让所有受影响的分布律都落到相同的数学期望上。这样一来,评估“美感”只需要看标准偏差,不用再发明奇异的比较规则。 根据给出的合并方程,对所有曲线施加可扩展变换后,相对分布律会收束成一组可比形态。图例里红矩形标出的基础积分,是按原始分布取小于数学期望的概率再除以对应 Kx;上层两个略异分布的合并积分也保持同一 Kx 比率,证明合并随机变量的相对偏差概率比原始更小,分布更“优美”。 这套方法也能直接用于扩展测试:在更长片段上验证,测试时间越长图形越优美。实操只有一个技巧——增加测试时长时必须按整数倍扩展,把步长从 1 换成 n 并套用合并方程。此时循环合并链只剩一个重复元素,合并更简单,只需把结果与该元素对照即可。外汇与贵金属市场高风险,此类分布美化仅指统计形态改善,不预示任何收益。

下一步要落地的数学验证

这一节把重心从复购算法本身挪开了,真正要交给你的是一套评估交易系统的数学框架:它给出了方程和方法,用来判断一个系统为什么有效、怎样在不扭曲逻辑的前提下自然放大优势。作者强调,盈利系统的曲线越干净、持仓区域拉得越长、同账户里并行运行的盈利系统越多,整体表现往往越稳健——但这只是理论推导,不是已实现的收益承诺。 外汇和贵金属杠杆高、回撤凶,任何数学漂亮的系统在实盘都可能因流动性或滑点失效,拿去跑之前先想清楚自己能扛多少回撤。 下一篇才会把这套理论做成可跑的价格模拟和多币种仿真模型,用来反推前面的结论。这类推导在公开资料里极少见,要么啃透公式,要么至少抓住“长周期+低耦合+多系统并发”这个内核,开 MT5 自己搭个简单回测先验证一半再说。

常见问题

先算每笔交易的期望收益=(胜率×平均盈利)-(败率×平均亏损),再算盈利因子=总盈利/总亏损;两者都为正且盈利因子大于1,系统才倾向有正期望,外汇贵金属高风险仍需样本验证。
把各品种独立系统的期望收益按资金权重叠加,得到组合理论曲线;实际多品种并发回测的曲线若明显低于叠加值,说明仓位或相关性拖了后腿,可下调并发数重测。
小布可接入你的策略输出,自动算期望收益、盈利因子并同屏比标准差,把多品种诊断结果直接推到品种页,你只管看结论。
同期望下波动越小,回撤越可控、复利更易累积;用同期望变换归一后比标准差,标准差小的策略在风险调整后倾向更优。
先拿历史tick导出每笔盈亏,用表格算期望收益与盈利因子;确认正期望后再做多品种并发脚本,别一上来就调复杂模型。