自适应算法附加机制与测试:用多尺度序列补偿开仓模糊性
(4/4)· 当价格逆转无法精确预判,如何用逻辑相连的仓位序列与基本时间框提升算法稳定性
很多交易者误以为算法能精确捕捉入场点,于是把资金一次性押在单一信号上。实际上价格反转概率只能区域化预测,开仓时刻本身就是模糊的。不承认这点,再漂亮的回测曲线也会在实盘碎成渣。
「读这篇前先补上第三篇」
这套自适应算法写到第四部分,新增的附加功能和测试逻辑是建立在第三篇「放弃优化」的结论之上的。 原文作者在 2021 年 5 月 17 日发布于 MT5 社区,截至统计有 3367 次浏览、81 条讨论,属于该系列里互动量偏高的技术文。 如果你还没看过第三部分,直接啃这一节的代码会缺上下文——建议先回看「自适应算法(第三部分):放弃优化」,否则参数自适应退化的前提假设对不上。
◍ 主序列未平也能开新仓的确认逻辑
价格行为里入场点本就模糊,把资金切成仓位序列来摊薄错误是常态。算法能算出某区域逆转的概率,但没法精确到反转发生的那一跳,所以靠序列累积去补偿开仓偏差。 图例3里 GBPUSD 在2008年那段长期看跌趋势,从开仓到价格回滚到序列终点耗了275天,更长的也不少见。若死等价格回到前序列价位才动手,资金闲置和浮亏暴露都太被动;红色椭圆区不能起新序列,蓝色圆圈区起附加序列才有概率吃到利润。 关键在基本时间帧(TF)的块大小。初始数据取静态 M1,TF1=10点,TF2=10*KTF;KTF=1.1 时就是 10、11、12.1 点这样叠上去。主序列 TF 块大小超阈值后,才允许搜第二个序列启动信号,且二序列 TF 块必须明显大于一序列,否则等于在同尺度重复劳动。 确认机制用 Bmin~Bmax 范围搜横盘:Bmin=NPb(s2)/(%PV/100)。例里 %PV=50、NPb(S2)=9,得 Bmin=18;Bmax 由一序列末两大块里的小块数加邻近右侧小块数定,图例4算得14+5=19。在18~19块内跌涨块数相等才算横盘,标准可放宽到50–55%。 表1把固定百分比改成落入范围的概率再转回百分比更稳:16块中同向占56.25%对应垂直穿第2到第16块事件的80.36%。这样不同块数都能重算确认率,避免硬阈值丧失适应性。 实盘片段验证过:2008.11.13 与 2009.10.10 价格同是1.45554,前者资金8265.16美元、后者因附加序列已吃到利润变成9942.48美元,多了1677.57美元。外汇和贵金属杠杆高,这种多序列并行只是降低回撤暴露的概率手段,不是免亏保证。
用附加序列和跨品种利润填坑错仓
趋势自动 sizing 在延伸段起点误开仓时,平仓参考点因按价格序列参数算死,无法平移,容易把整串仓位拖到亏损。补救思路不是改原平仓点,而是拿后续序列或别的品种的盈利去覆盖这些错仓的浮亏。 附加序列本身就能纠错。平均亏损随步数非线性放大,但曲线形状跨品种稳定,可测。作者实盘设了“拿附加序列利润的 80% 补错仓”:某序列在参考点平仓若亏损,就找该串里浮亏最大的仓,若它属第一序列,则从第二序列抽 80% 利润抵掉当期亏损并平掉。主序列跑完,预备金没用完的部分清零。 跨品种层面更狠:系统同时跑 28 个品种,把每个品种第一序列平仓利润的 80% 放进公共池,哪品种卡在长趋势错仓就用池子填。作者用 2004–2010 中段 10000 根 H4 测过,28 对利润路径叠加后,总有别的品种在横盘期赚钱补刀。 把点数图转成固定美元额图的等式很直接:以 EURUSD 为例,卖 $1000 换 EUR 于前根收盘,再于末根收盘反向平,盈亏按当时 EURUSD 转回 USD 即烛条美元尺寸;USDCAD 等 USD 在前更简单,交叉盘类似但多一层货币中转。逐根累加就得到美元盈利路径。 实测 2020 年 M1、四对未优化品种:单独跑 GBPUSD 回撤峰值 $4311;开补偿后四对联合回撤降到 $3517,降 18%,总利 $2015.21,交易数 1446→1409。说明补偿不打断交易,只压波动。外汇贵金属高杠杆,错仓填坑只是降回撤概率,不承诺免亏。 品种越多图形越平,甚至接近线性——股票、货币、加密可混搭平衡量。但平均步长实测 $2.26,10000 步理论垂直位移 $2.26×10000^0.5≈$226,实际 $216.41,偏差来自品种幂次不同,调参时别直接信理论值。
「AAPL 与 28 货币对的 7–13 年裸跑回测」
算法设计上不挑品种,但当前 EA 还不会自己测统计参数,开/关序列的两个百分比要手填——数值来自内置指标实测,不是优化拟合出来的。先拿 AAPL 试,因为它多空统计不对称,所以买卖分开测:多头参数偏激进,空头偏保守,只动这两个值。 AAPL 多头段(2012.06.24–2020.12.28,M1,7.5 年)净值最大回撤 $858、利润 $1704、开仓 176 次、盈利因子 18.13,曲线很平。纯多头吃苹果上涨不算稀奇,于是逼它只做空:同区间最大回撤 $10533、利润 $2234、开仓 944 次、盈利因子掉到 1.4。资产 7.5 年涨了 6.3 倍,无优化自动做空还能活下来,说明自适应不是摆设。外汇贵金属高杠杆双向扫,这种回撤幅度随时可能放大,别直接当实盘依据。 真正压压力的是 28 个货币对同参测(GBPUSD、EURUSD…CHFJPY 全一样设置),区间 2008.01.01–2021.01.13 共 13 年、M1。EA 吃资源,1 年约耗 12 天,所以切 1–2.5 年并行跑。除 2012.06.24–2014.06.24 小段亏 $123(测试截断所致,续跑大概率爬出)外全段盈利,总持仓 14,415,样本量够大、不像随机噪声。 顺手塞了 MOEX 28 只俄股(GAZP、SBER…PLZL),杠杆 1:5、只允多头、设置与外汇同,2013.02.01–2018.09.20 共 5 年 7 个月,总持仓 5,485,收益薄但稳。当前版不能分调多空参数,这块还在写。想验证就开 MT5 把这两个百分比按内置指标读出来手填,先跑 EURUSD 单品种看曲线跟不跟得上。
◍ 利润藏在熵增里
做出能跑的模型只是第一步,更关键的是搞清楚钱从哪来。在不可观测的层面,这类系统的利润来源指向熵增——这里用的是玻尔兹曼定义的熵:由系统可能状态的数量和某一状态出现的概率共同刻画。 市场里的熵近似恒定。一个金融产品流动性越高,其价格图的熵就越高;上面发生的交易越多,可能状态数跟着膨胀,系统会自发往概率最大的状态挤。当熵本身被锁在近似值附近,可能状态数却持续变大,熵增效应就冒出来了。 外汇市场熵值最高,低流动性资产熵值最低,这是可以直接在 MT5 不同品种波动率分布上验证的现象。每个交易品种的熵都倾向于冲到最高,但资金流入会拦住它——资金进来无非两个动因:资产本身的投资吸引力、以及单纯的资金配置行为。长期看,任何交易品种的熵最终都会往上走,外汇和贵金属这类高杠杆品种波动更无序,风险也更高。
多品种同参测试暴露的五个改进缺口
同一套参数跑在 57 个不同金融品种上,等效于单品种 520 年回测,结果盈利性偏低但模型能全自动运行。这恰恰说明:跨品种通用参数只是基线,不是终点。 趋势分段延迟法只用 28 个品种测过,效果不如基于品种统计特征的延迟——后者算法还没写完,目前仅用了能跑的部分。下一版这块会重点补完。 两个硬伤拉低了外汇品种收益:一是算法不看资产价格差异,导致大价差资产占比失衡;二是没按各资产批量价做手数组合平衡。读者在 MT5 里复现时,应先给每个品种挂一个手数权重表,否则欧元和黄金同手数会扭曲权益曲线。 错误开仓的过滤也不够,需要先用最小块大小做初筛。多头/空头决策现在混在一起,后续要拆成独立管理并引入品种不对称性统计。当前只用了自适应机制,没采集单品种统计参数,下个版本若按品种特征调参,盈利有可能阶梯式抬升。 80% 利润被拿去维护稳定性,亏损补偿和决策机制都还粗糙。外汇贵金属属高风险,这类多品种组合策略回撤可能超出单品种经验值,验证前先开模拟盘跑满三月。
「别急着下结论」
这套自适应算法的系列从块状图替代烛条图的离散化思路起步,到第二部分提高效率、第三部分放弃优化,作者公开的需求规范在 FOREX 与 MOEX 共 28 种金融产品上几乎完全吻合,但作者也明言第三、四部分的机器人因复杂度高、面向大众成本过大而未公开发售。 评论区里有用户用两年真实账户跑第二部分改良版 EA,也有人在 MT4 上照着文档啃代码做单一符号移植,说明可验证的落点始终在「第二部分的 Just 改进版」而非更后的章节。 外汇与贵金属自带高杠杆高风险,即便拿到近似需求规范的 EA,也先在策略测试器里用历史报价跑一遍 28 品种的子集,别把「几乎符合」当成「实盘可托付」。