MQL5 中的范畴论 (第 6 部分):单态回拉和满态外推·综合运用
🧮

MQL5 中的范畴论 (第 6 部分):单态回拉和满态外推·综合运用

(3/3)· 当 EURJPY、USDX 与斐波那契分位桶撞进同一个锥体,回拉结构能告诉你仓位该不该收

案例拆解新手友好 第 3/3 篇
把多品种相关性当成独立信号叠加,是跨市场交易的常见坑。一旦 USDX 与日元交叉盘被无差别并入组合,隐藏的共域冲突会让仓位加权 silently 失真。

「满态外推与布林包络的纤维共积」

满态是域基数大于共域的满射同态,域中每个元素都映射到共域,无遗漏。把满态和范畴论里的外推(锥体中与共积域对角线相对的域,也称纤维共积)叠在一起,会得到一条可用性质:若 g: Y→B 是满态,则对任意 f: Y→X,左侧的 g': X→外推 也必然是满态。 放到价格行为里,把共积域 Y 设为某证券买入价的布林线范围值,两个共积因子域 X 与 B 分别对应布林带上、下包络线。两者的差(共积联合)就是对布林线范围的预测,而推出域则是生成上、下包络线的基线移动平均线。 验证路径很直接:以周期长度为变量,给 X、B、Y 各自推导不同均线,就能得到一组布林包络。探索性测试可先取周期 3、5、8、13、21 在 MT5 上调 MA 周期跑一遍,观察包络差对区间突破的提示概率。外汇与贵金属波动受杠杆放大,此类结构仅作概率参考,实盘高风险。

基线MA域按最小标准差选周期后的日志实证

这套锥体的指向和前面单态推出的第一个相反——顶点是共积而非乘积,态射箭头标出同态方向,各域元素链接严格沿用各自 N 周期的规则。 在套用满态性质前,先依据最小标准偏差在基线 MA 域挑周期跑一轮测试,USDX-JUN23 周线吐出的前几行日志很说明问题。

  • 07.04 与 07.11 两周 N=8,基线 MA 都是 103.425,上下轨 105.548 / 101.301,包络差 4.248,但实际波幅仅 0.850 和 0.758。

到 07.18 起 N 切到 13,基线 MA 降至 102.993,包络差略扩至 4.341,而实际波幅继续收敛到 0.691,随后一周又弹到 1.193。 开 MT5 把这段日志复刻出来,重点看 N 切换前后 Envelope Delta 与 Actual Range 的背离——包络宽度没怎么变,真实区间却大幅收缩,这种压缩往往倾向在周线级别酝酿变盘,外汇与贵金属属高风险品种,此类信号仅作概率参考。

MQL5 / C++
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)                                                                 [,class="num">0]           [,class="num">1]           [,class="num">2]           [,class="num">3]           [,class="num">4]           [,class="num">5]           [,class="num">6]
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)       [ class="num">0,] " DATE "          ," N period "    ," Baseline-MA "  ," Upper Bands "  ," Lower Bands "  ," Envelope Delta "," Actual Range "
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)       [ class="num">1,] "class="num">2021.07.class="num">04 class="num">00:class="num">00","class="num">8"             ,"class="num">103.425"       ,"class="num">105.548"       ,"class="num">101.301"       ,"class="num">4.248"          ,"class="num">0.850"
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)       [ class="num">2,] "class="num">2021.07.class="num">11 class="num">00:class="num">00","class="num">8"             ,"class="num">103.425"       ,"class="num">105.548"       ,"class="num">101.301"       ,"class="num">4.248"          ,"class="num">0.758"
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)       [ class="num">3,] "class="num">2021.07.class="num">18 class="num">00:class="num">00","class="num">13"            ,"class="num">102.993"       ,"class="num">105.163"       ,"class="num">100.822"       ,"class="num">4.341"          ,"class="num">0.691"
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)       [ class="num">4,] "class="num">2021.07.class="num">25 class="num">00:class="num">00","class="num">13"            ,"class="num">102.993"       ,"class="num">105.163"       ,"class="num">100.822"       ,"class="num">4.341"          ,"class="num">1.193"

◍ 美元指数周线里的重复报价段

上面这组 MT5 专家日志来自 USDX-JUN23 的 W1 图表,由脚本 ct_6 在 2023.04.07 19:04:11.241 一次性打印。每行对应一个周起点,末尾两列分别是区间振幅绝对值和某归一化读数。 注意 [5,] 与 [6,] 两行:时间分别为 2021.08.01 和 2021.08.08,但开高低(102.993 / 105.163 / 100.822)和振幅 4.341 完全复制,仅末列从 1.030 掉到 0.735。这说明脚本在周初未更新基准价时,会把上一周容器数值原样吐出。 [7,] 到 [10,] 更明显:连续四周(2021.08.15–09.05)开高低锁死在 103.616 / 106.326 / 100.906,振幅恒为 5.420,末列从 1.270 递减到 0.750。若拿这种输出当信号源,会误以为价格四周不动。 开 MT5 加载 ct_6 类脚本跑 USDX 周线,重点核对每周首行是否刷新开盘价;外汇与贵金属杠杆高,日志假静默可能让你漏掉真实波动。

「美元指数周线里的静态区间信号」

上面这组 MT5 专家日志来自美元指数期货 USDX-JUN23 的周线(W1)回测输出,标号 [11] 到 [16] 覆盖 2021.09.12 至 2021.10.17 连续六周。每一行末段的浮点值分别是 0.912、0.565、1.325、0.770、0.811、0.700,代表该周测算出的某波动幅度指标(单位依模型而定)。 值得注意的是,六周共享同一组基准数:开盘 103.616、最高 106.326、最低 100.906、极差 5.420。这说明回测窗口内模型锁定的是固定样本区间,并未随周偏移锚点。 末列数值在 1.325 那周明显跳高,其余五周都压在 0.56~0.91 之间。这种静态区间下偶尔出现的尖峰,可能提示该周有异常波动注入,值得在 MT5 里把同样参数跑一遍 2021 年 Q4 验证是否重复出现。外汇与贵金属受美元指数牵动大,此类信号仅作概率参考,实盘高风险。

美元指数周线通道的打印样本

下面这组 MT5 专家日志,是 ct_6 脚本在 USDX-JUN23 周线图上跑出的连续 6 根 K 线快照,时间跨 2021.10.24 至 2021.11.28。每行末尾最后两列分别是通道宽度与当根实体幅度(绝对值),前面四列是开高低收。 [17,] 到 [19,] 三根周线共用同一组 OHLC:开盘 103.616、最高 106.326、最低 100.906、收盘隐含于实体幅度列。通道宽度恒为 5.420,实体幅度从 1.035 收缩到 0.842 再扩张到 1.400,说明价格在区间内做收敛后的反向试探。 [20,]、[21,] 切换为另一组参数:开盘 102.993、最高 105.163、最低 100.822,通道宽度收窄到 4.341。这两根实体幅度 1.305 与 0.933,对比前一段属于波动降级。 [22,] 又跳回 5.420 宽通道、实体 1.115,参数在 21 与 13 两种均线周期标识间来回切。外汇与贵金属受美元指数牵引明显,但这种周线通道跳变本身不代表方向,只提示你 MT5 里把 ct_6 的 Period 参数从 13 改到 21 会直接改变通道带宽。

◍ 美元指数周线回测里的固定区间

一段 MT5 日志能暴露很多被忽略的细节。下面这组 USDX-JUN23 周线(W1)的输出,连续 4 根 K 线共享同一组基准数值,说明回测或指标计算在某段窗口内锚定了静态区间。 具体看:2021.12.05 至 2021.12.26 四周,Open 均为 103.616,High 106.326,Low 100.906,区间振幅 5.420 点纹丝不动;但最后一项逐周变化——0.747、1.077、0.685、0.778,这大概率是某动量或偏离度指标值,而非价格本身。 这种「价格动、锚不动」的结构,在外汇与贵金属高波动品种上容易出现信号滞后。打开 MT5 历史中心调取 USDX 周线,把这段日期加载进你自己的指标,核对最后一项的计算逻辑,可能比盲目跟信号更有用。

MQL5 / C++
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)    [class="num">23,] "class="num">2021.12.class="num">05 class="num">00:class="num">00","class="num">21"          ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"         ,"class="num">0.747"
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.241 ct_6(USDX-JUN23,W1)    [class="num">24,] "class="num">2021.12.class="num">12 class="num">00:class="num">00","class="num">21"          ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"         ,"class="num">1.077"
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.242 ct_6(USDX-JUN23,W1)    [class="num">25,] "class="num">2021.12.class="num">19 class="num">00:class="num">00","class="num">21"          ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"         ,"class="num">0.685"
class="num">2023.04.class="num">07 class="num">19:class="num">04:class="num">11.242 ct_6(USDX-JUN23,W1)    [class="num">26,] "class="num">2021.12.class="num">26 class="num">00:class="num">00","class="num">21"          ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"         ,"class="num">0.778"

「用满态放大域基数改写布林映射」

先前在分析与实际走势之间的相关性只有 0.12,信号弱到难以直接用于周线决策。把满态(surjective)性质套到锥体平行两侧——即下布林线映射到基线 MA,再映射到布林包络和上布林线——有机会改变这一局面。 核心动作是调域的基数:锥体以布林包络的基线 MA 为共积骨架,而非早期的乘积结构。满态要求域大于或等于共域,所以把共域从布林包络缩放到基线 MA,就能让每个同态天然满射,共域元素全部被覆盖。

基于斐波那契的分位数桶已给定,直接声明更大的域即可:LOWER-BOLLINGER= 19、BOLLINGER-ENVELOPE= 19,较大域保留在顶点与较低因子域。跑完测试,相关性从 0.12 跳到 0.16 区间,变化超过 30%,说明映射重构对美元指数周线(USDX-JUN23,W1)确有扰动。

日志里 2021.07.04 那根周线,基线 MA 103.425、上轨 105.548、下轨 101.301、包络差 4.248、实际波幅仅 0.850;到 2021.07.25 波幅放大到 1.193,但包络差仍稳在 4.341 附近。外汇与贵金属属高风险品种,这种基数重构只提高信号出现概率,不预示方向。

MQL5 / C++
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.547 ct_6(USDX-JUN23,W1)                                                                 [,class="num">0]           [,class="num">1]           [,class="num">2]           [,class="num">3]           [,class="num">4]           [,class="num">5]           [,class="num">6]
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.547 ct_6(USDX-JUN23,W1)       [ class="num">0,] " DATE "           ," N period "     ," Baseline-MA "  ," Upper Bands "  ," Lower Bands "  ," Envelope Delta "," Actual Range "
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.547 ct_6(USDX-JUN23,W1)       [ class="num">1,] "class="num">2021.07.class="num">04 class="num">00:class="num">00","class="num">8"               ,"class="num">103.425"        ,"class="num">105.548"        ,"class="num">101.301"        ,"class="num">4.248"           ,"class="num">0.850"
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.547 ct_6(USDX-JUN23,W1)       [ class="num">2,] "class="num">2021.07.class="num">11 class="num">00:class="num">00","class="num">8"               ,"class="num">103.425"        ,"class="num">105.548"        ,"class="num">101.301"        ,"class="num">4.248"           ,"class="num">0.758"
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.547 ct_6(USDX-JUN23,W1)       [ class="num">3,] "class="num">2021.07.class="num">18 class="num">00:class="num">00","class="num">13"              ,"class="num">102.993"        ,"class="num">105.163"        ,"class="num">100.822"        ,"class="num">4.341"           ,"class="num">0.691"
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.547 ct_6(USDX-JUN23,W1)       [ class="num">4,] "class="num">2021.07.class="num">25 class="num">00:class="num">00","class="num">13"              ,"class="num">102.993"        ,"class="num">105.163"        ,"class="num">100.822"        ,"class="num">4.341"           ,"class="num">1.193"

美指周线采样里的重复极值现象

上面这组 ct_6 在 USDX-JUN23 周线(W1)上的打印,时间跨度从 2021.08.01 到 2021.09.05,索引 5 到 10 共六行。注意 [5,] 和 [6,] 两行的开高低收完全一致:开盘 102.993、最高 105.163、最低 100.822、区间幅度 4.341,仅最后一段数值从 1.030 降到 0.735。 [7,] 到 [10,] 更明显,四行共享同一组 OHLC 与 5.420 的幅度,尾值从 1.270 递减到 0.750。这种周线 Bar 被多次回放的情况,在采样逻辑里往往意味着同一根 K 线被不同偏移窗口重复捕获。 外汇与贵金属挂钩的美指期货波动剧烈、杠杆风险高,看到这类重复极值先别当成信号增强。开 MT5 把这段日志对应品种调出来,核对 W1 上 2021.08 那几根实体,确认是数据回放还是真实重叠,比直接下结论更有用。

◍ USDX 周线回测里的固定区间与浮动读数

上面这组 MT5 专家日志来自 USDX-JUN23 周线图表(品种代号 ct_6),记录于 2023.04.07 19:58:57 附近,连续 6 根 K 线(索引 11–16,对应 2021.09.12 至 2021.10.17 每周日开盘)。 每一行末尾的倒数第二列都是 5.420,这是该段回测里锁死的区间高度(最高 106.326 减最低 100.906 恰好等于 5.420),说明策略在这几周共用同一套上下轨基准,没有随周重算。 最后一列是每周的某浮动读数:0.912、0.565、1.325、0.770、0.811、0.700。可以看到 2021.09.26 那周冲到 1.325,为 6 周峰值,而前一周仅 0.565,波动节奏并不平滑。 外汇与贵金属受美元指数牵引明显,这类周线固定区间样本提醒:USDX 在 100.9–106.3 箱体震荡阶段,子指标很容易出现周间跳变,实盘前建议把这段日志直接粘进 MT5 回放验证。

「美元指数周线聚类输出的原始样本」

下面这段是 MT5 专家日志里直接吐出的 ct_6 聚类结果,标的为 USDX-JUN23 的周线(W1)。每行对应一个周起点,字段依次是:序号、K线时间、聚类标签、开盘、最高、最低、区间振幅、当周实体幅度。 从 [17] 到 [19] 三行聚类标签都是 21,开盘 103.616、最高 106.326、最低 100.906、振幅 5.420 完全不变,但实体幅度从 1.035 降到 0.842 再升到 1.400,说明同簇内价格包络固定、周内收线力度在漂。 [20] 起标签切到 13,开盘下移到 102.993、振幅收窄到 4.341,实体幅度 1.305→0.933,[22] 又跳回标签 21 且包络恢复成 103.616/106.326/100.906/5.420,实体 1.115。外汇与贵金属受美元指数联动高,这类簇跳变往往先于波段,但属概率信号,实盘须防假突破。 开 MT5 把这段日志贴进回放,对照 USDX 周线看标签 21 与 13 的切换节奏,比单纯看裸 K 更容易抓包络复用。

美元指数周线里的静态分位打印

上面这段 MT5 专家日志来自美元指数期货 USDX-JUN23 的周线(W1)回测输出,标识 ct_6 的程序在 2023.04.07 19:58:57 一次性吐出了连续四周的快照。每一行对应一个周日切分点,字段顺序为:时间标签、字符串"21"、开盘 103.616、最高 106.326、最低 100.906、固定跨度 5.420、以及末位的周波动率读数。 注意末列数值的变化:2021.12.05 当周是 0.747,随后三周依次为 1.077、0.685、0.778。也就是说,在价格高低区间(106.326−100.906=5.420)完全不变的前提下,周内的相对摆动幅度出现了约 0.33 的落差,12.12 当周波动最猛。 这种把"枢轴区间写死、只刷波动率"的打印方式,适合用来快速肉眼比对:哪几周看似区间重合,实则内部能量不同。外汇与贵金属受美元指数牵动明显,此类静态分位在高杠杆环境下误读可能导致快速回撤,属高风险观察法。 开 MT5 加载对应品种周线,把这段日志里的四个时间点对齐 K 线,就能验证末列波动率是不是和当周影线长度对得上。

MQL5 / C++
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.548 ct_6(USDX-JUN23,W1)      [class="num">23,] "class="num">2021.12.class="num">05 class="num">00:class="num">00","class="num">21"                  ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"           ,"class="num">0.747"
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.548 ct_6(USDX-JUN23,W1)      [class="num">24,] "class="num">2021.12.class="num">12 class="num">00:class="num">00","class="num">21"                  ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"           ,"class="num">1.077"
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.548 ct_6(USDX-JUN23,W1)      [class="num">25,] "class="num">2021.12.class="num">19 class="num">00:class="num">00","class="num">21"                  ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"           ,"class="num">0.685"
class="num">2023.04.class="num">07 class="num">19:class="num">58:class="num">57.548 ct_6(USDX-JUN23,W1)      [class="num">26,] "class="num">2021.12.class="num">26 class="num">00:class="num">00","class="num">21"                  ,"class="num">103.616"       ,"class="num">106.326"       ,"class="num">100.906"       ,"class="num">5.420"           ,"class="num">0.778"

◍ 画得少,看得清

把锥体按域拆开看,很多原本藏着的指标与时间序列关联就浮出来了。用单态回拉和满态推出做轻微限制,最终结果波动区间能差出 15–30%,这不是玄学,是结构本身的排列冗余。 挂上权重、改一改态射观察方式,出来的不只是新入场信号,而是一套能跑的资金管理逻辑。附带脚本丢进 MT5 里,按你自己的指标和风格改两行参数就能验证。 外汇和贵金属杠杆高、回撤快,这类范畴调整只提高概率倾向,不替你兜底。开终端跑一遍,比看十遍描述都实在。

把回拉诊断交给小布
这些锥体敏感性与单态回拉校验,小布盯盘的 AIGC 已内置,打开 EURJPY 或 USDX 品种页即可看到实时相关性锥体提示,你只管决定收不收仓位。

常见问题

均衡器找相似元素(如相似回撤),协均衡器处理域间视差并商掉差异;实战中前者定阈值,后者做跨会话仓位逆向加权。
它们来自斐波那契数列,覆盖短到中周期;在回拉锥体里能观察不同 N 下因子域相关性的稳定度,纯经验性选择,非必然最优。
从已知锥体域向外推共域态射,把样本内相关性结构延伸到未交易时段;概率上辅助判断伦敦-纽约重叠的延续性,不保证方向。
可以,对应品种页已内置回拉与协均衡器视图,免写 MQL5 代码即可看多品种锥体冲突预警,外汇贵金属属高风险,仅供参考。
多因缺少代偿或 g 非单态;当 A 到 Y 的映射不是单射时,回拉域对 X 的约束就松了,相关性过滤会漏判。