练习开发交易策略·进阶篇
📘

练习开发交易策略·进阶篇

第 2/2 篇

◍ 多均线叠加只是换了个振荡器

前面用过两条 SMA 交叉,自然会想:能不能叠三条甚至更多均线?可以,而且数量任意。做法上,把不同周期均线的系数做有限差分,要求系数总和 k=0。一阶差分是 k1-k2,二阶变成 k1-2*k2+k3,三阶是 k1-3*k2+3*k3-k4,规律直接从帕斯卡三角形取行、改个符号就行。 我这里用三条 SMA 套了二阶差分系数,实际计算就按对应公式走。策略表现由三个参数掌控,随便改一条 SMA 周期,结果都可能大幅偏移——这是 MT5 里拖一下周期就能验证的。 继续加均线数量看着合理,其实是死路。无论叠多少条 SMA,底层仍是一个振荡器;新加的线只改了振荡器系数和特征。更直接的路是去找最优振荡器的最优系数,但那活儿不简单,外汇和贵金属这类高波动品种上乱加均线反而容易过度拟合。

「多指标振荡器的拜占庭共识」

把单个指标的差值振荡器思路扩展到多个均线类指标时,复杂性不在公式本身,而在信号冲突。SMA 用等差系数,EMA 用 0~1 的几何级数且周期实质无限,SMMA 是 SMA 再平均形成的三角窗,LWMA 用步长 1 的算术级数——EMA 比 LWMA 遗忘过去更快。把每种指标都做成独立振荡器并各自统计,就会得到四个可能信号:买开、卖开、买平、卖平,第五种「不动」不计数。 冲突典型如 SMA 喊买开、EMA 喊卖平、SMMA 喊卖开、LWMA 喊买平。这本质是拜占庭将军问题:多源信号里可能有假有真。经验法则是「超三分之二同源才算可靠」。设 N 为指标总数,最少共识数 = floor(2N/3)+1;N=4 时至少 3 个同向才动作,EA 也照此执行。 另一种路线是收集各指标值的经验频率 f[i],用 N 个样本量算经验分布函数 F(x)=i/N(前 i 个值 ≤ x),它给出下一值小于当前值的概率。四个概率经贝叶斯合并成一个最终概率 P = Πp_i / (Πp_i + Π(1-p_i)),仅当 P 超阈值才开平。 加过滤器很直接:最终概率拐头向上才许买开,拐头向下才许卖开,平仓可套类似逻辑,可能减少单量、缓解保证金占用。注意所有指标必须尽量异构——若 SMA(2) 与 SMMA(2) 系数相等,等于复制同一指标,信号偏移会让策略失效。外汇与贵金属杠杆高,多指标共识仅降冲突概率,不消除爆仓风险,参数请在 MT5 用历史数据自验。

用中位数改写 CCI 来构造开仓逻辑

回到单指标策略,但这次把复杂度提上来:底层换用 CCI 思路,却不直接用原始公式。经典 CCI 是价格减 SMA 再除以 StDev 归一化,整数统计量不好采集,于是改成中位数价格配绝对偏差。 中位数求法很直白——把一组原始价格升序排好,居中的那个数就是中位数,它不吃异常值干扰。因为方法限制,取的价格个数必须是奇数,这样才能落到一个整数上。 先抓一批价格算中位数,再算当前价与中位数的差,得到第一个统计量;我把出现频次最高的那段截掉,图特征更干净。接着取这些差值的绝对值,再求一次中位数,当作标准差的替代估计,也就是第二个统计量。分布看着不错,只是偏不对称、也不均匀。 交易规则保持简单:用价格与中位数之差生成信号,差值远远偏离零就开仓,赌它回归中位数;用偏差统计量做过滤器,偏差过大意味着可能有剧烈波动,这时禁开。 实测里最简单那种偏差过滤还不够——大偏差有时反而是该反手的信号,比如系统喊买、偏差却提示你该卖。另一层过滤可搭在中位数上:它是非线性指标,能和某个具体价格位重合,设定只有中位数等于第 5 个价格位时才交易,权益曲线形态会明显不同。 外汇与贵金属属高风险品种,上述信号仅代表概率倾向,须在 MT5 用历史数据自行验证。一个指标就能衍出这么多组合,交易者的活就是把这些分支都跑一遍,挑出最稳的那支。

◍ 把工具请下神坛

这套围绕 SMA 差分布、双/三均线、拜占庭将军信号与贝叶斯 NBC 的 EA 集群,本质是把「价格-均线偏离」和「多指标共识」拆成了可下载验证的 mq5 文件。scr_SMA1.mq5 仅 5.28 KB,EA_CCI.mq5 不过 5.69 KB,说明统计型策略的骨架并不臃肿,MT5 里直接编译就能看到 LvlOpen、LvlClose 这些参数怎么掐住进场退场。 真正容易被忽略的是过滤器权重:EA_SMA2 里的 Filter 是 SMA 过滤器,EA_CCI 的 Filter 是非负数、要求价格指数与中位数吻合,这类约束才是策略成活与否的暗线,而非指标个数堆出来的复杂度。 外汇与贵金属杠杆高、滑点跳空频繁,任何统计优势都只是概率倾向,下载 ZIP 跑一遍历史回放比盲信结论实在。工具链放在硬盘里不会自动赚钱,把它当显微镜而非水晶球,才谈得上创造空间。

常见问题

多数情况下只是把均线换成了另一种振荡器,信号频率变了但盲区仍在,建议用历史回看比对两种方式的漏单率。
这是多指标振荡器的拜占庭共识问题,指标同源时会集体误判,应拆开看每个指标的独立逻辑而非数个数。
小布可以汇总各指标的触发条件并标注同源冗余,帮你识别集体误判,只把真正独立的信号推给你看。
中位数版对极端值不敏感,开仓更偏均值回归,适合震荡市;建议拿近半年数据比一下两类信号的胜率。
工具只是辅助,叠加过多反而模糊价格本身,把工具请下神坛、回到裸价行为才是务实做法。