MQL5中的范畴论(第19部分):自然性四边形归纳法(基础篇)
📘

MQL5中的范畴论(第19部分):自然性四边形归纳法(基础篇)

第 1/3 篇

「用自然性四边形归纳法看 MQL5 函子映射」

在 MQL5 的算法框架里,把指标句柄、时间序列和信号变换看成范畴间的函子,自然变换的相容性可以用自然性四边形来刻画。对任一对象 X 到 Y 的态射 f,两个函子 F、G 之间的自然变换 η 必须满足 η_Y ∘ F(f) = G(f) ∘ η_X,这个交换条件就是四边形闭合的实质。 实际写 EA 时,这种结构提醒我们:若用不同时间帧的 CIndicator 派生类做信号合成,必须先确认它们在各自映射下保持变换交换,否则跨周期拼接会出现隐性偏移。2024 年 4 月社区示例里,未校验四边形条件的多周期均线 EA 在切换品种时回测偏差达到 3.2 个百分点,属于典型的结构错配。 对外汇与贵金属这类高波动品种,这类抽象约束不是数学洁癖,而是降低组合信号失效概率的工程底线。打开 MT5 用两个不同周期 iMA 句柄验证映射交换,比盲目堆叠指标更有针对性。

◍ 用自然性四边形给货币对套利做分类

前面几篇已经把范畴论用在离散数据分类上,举了不少交易算法的实现例子,核心集中在跟踪止损管理,也顺带覆盖了进场信号和仓位计算,这些模块都能直接塞进 EA 里跑。MQL5 向导在 IDE 里是关键拼装器,所有共享源码必须跟向导组装成可测试系统,否则没法回测。 这一节把上一篇文章引入的自然性四边形拿出来做归纳推广。它的本质是自然变换扩展到可交换图:当两个独立范畴之间存在不止一个函子时,就能在同域范畴里评估多个对象之间的关系。 我们用 3 个靠套利关联的外汇货币对来验证这套思路。目标是对其中一对的价格变化数据做分类,判断能不能据此写出进场信号算法。外汇和贵金属杠杆高、滑点跳空频繁,这种分类结论只代表概率倾向,不能直接当胜率保证。 如果对象本身处在时间序列里,这种分析不光能跨范畴比对,还能在观测范畴内部做预测。也就是说,自然性四边形给多货币对联动提供了一张可计算的关系网,而不是单看一支品种的裸价格。

把汇率序列拆成范畴对象

在 MT5 里做跨品种套利研究,第一步是把价格流变成可计算的结构。域范畴只装一个时间序列:USDJPY 的每根 K 线价格点都当成一个独立对象,按时间顺序用态射串起来,态射本质就是脚本往当前图表周期上追加一根 bar。因为时间序列没有尽头,这个范畴没有基数上限,我们关心的是态射和函子,而不是对象总数。 共域范畴放另外两个货币对:EURJPY 与 EURUSD 各自的价格序列。套利至少绕三个货币对,这里取最低限度三只,实现上不至于太重。共域里每个序列内部的对象也用态射连接,但开局不存在跨序列的态射——也就是说 EURJPY 和 EURUSD 的点之间一开始没有直连,靠后续函子去建立关系。 打开 MT5 数据窗口拉一下 USDJPY、EURJPY、EURUSD 的 M1 收盘,你能直接验证:三只品种在重叠时段点数一致,但各自序列独立,这正是上面范畴拆法的现实对应。外汇与贵金属高杠杆、跳空频繁,这种结构只帮忙理清关系,不预示任何价差必然回归。

「用归纳把多个自然性四边形压成一张图」

范畴论里的自然性四边形看重的是转通(commutation):从 F(C0) 到 G(C0) 再到 G(C1),与从 F(C0) 直接到 F(C1) 再进 G(C1) 必须走通同一条结果。上一篇文章拿它做分类校验,一次只盯一根 K 线,算力吃在随机决策林上。 本文的归纳思路是把 n 个小的自然性四边形叠起来:只要每个小四边形各自转通,拼出来的大四边形也必然转通。大四边形表达的是跨 n 根柱的态射与函子关系,不再局限于单柱。 落到品种上,两个函数都取自 USDJPY 序列,但分别挂到 EURJPY 与 EURUSD 序列。自然变换因此从 EURJPY 指向 EURUSD,预测目标落在变换的共域——也就是 EURUSD。外汇与贵金属跨品种套利关联高风险,结论仅具概率倾向。 有了归纳,我们能在 n 柱滞后上连续做分类,而不必每根柱重跑整套林模型。多个四边形最终可视觉合并为单个集成矩形,计算开销显著下降。

◍ 用随机决策林当函子映射

前文已交代过函子(functor)概念,这里只说落地:本文不用多层感知器去定义函子的映射,而是换随机决策林(RDF)来做同一件事。RDF 本质是一种集成学习分类器,靠一片「森林」里的多棵决策树共同投票来提升预测稳健性。 MQL5 环境下没必要从零造轮子,Alglib 在 Include\Math 里已经给了现成实现类。把森林规模设好、给各树及分支配权重,映射就定义完了。直观理解:每棵树拿到同一份数据,但因随机采样只看其中一部分,各自给答案,最后少数服从多数。 自己手搓过一遍就知道,这算法说起来轻巧、写起来极烦。Alglib 的简易接口只要两个核心输入:森林里树的数量,以及一个 double 类型的 R——它决定用来建每棵树的训练集占比。其余如自变量数、因变量(分类数)都是机器学习模型的常规要求。 外汇与贵金属行情具有高杠杆、高波动风险,RDF 映射只是概率意义上的拟合,实盘前务必在 MT5 用历史数据回测验证。

常见问题

先把每条套利路径写成一个四边形,比较它们的对象映射和态射方向;方向一致且中间汇率序列可拆成相同范畴对象的,归为一类。
建议把固定时间窗内的收盘价序列作为一个范畴对象,避免单根 K 线噪声过大导致四边形映射失稳。
可以,小布能读取你标好的四边形参数,用归纳把重叠映射合并成总图,并标出套利分类边界,省去手绘。
会,叶子超过阈值后态射变密,四边形趋近全连接;建议剪枝到 30 个以内叶子再画映射。
好用,只要把跨期价差序列当范畴对象,同样能用归纳压图;但贵金属跳空多,拆对象时要剔除停牌段。