MQL5 中的范畴论 (第 9 部分):幺半群(Monoid) 动作(基础篇)
用幺半群给 MQL5 动作建模
在 MQL5 里谈范畴论不是炫技,幺半群(Monoid)的核心就两条:存在一个单位元,以及满足结合律的二元运算。把交易里的「动作」看成幺半群元素,比如开仓、平仓、加仓,组合动作就是二元运算,空动作就是单位元。 实际写代码时,可以用结构体把动作封装起来,再重载运算符让多个动作能直接相加。下面这段演示了如何定义一个最简的「动作幺半群」骨架,便于在 EA 里做动作序列的组合与回放。 外汇与贵金属市场高杠杆、高波动,动作组合逻辑出错可能瞬间放大风险,建议在策略测试器里先跑历史数据验证再上实盘。
class="kw">struct Action { class="type">int type; class="type">class="kw">double lot; }; Action class="kw">operator+(const Action &a, const Action &b) { Action r; r.type = b.type; r.lot = a.lot + b.lot; class="kw">return r; } Action Empty() { Action e; e.type = class="num">0; e.lot = class="num">0; class="kw">return e; }
「幺半群动作如何补上变换短板」
上一节聊了幺半群在监督学习里做分类和发信号,但幺半群运算的输出永远落在自己集合内,天生没有变换能力。也就是说,你拿幺半群算出来的东西,不可能跳出它原本的成员范围,这在降维和无监督学习里是个硬限制。 幺半群动作(monoid action)就是来解这道题的:动作集不必须是幺半群集合的子集,输出可以越界到另一个集合 S 里,从而带上变换性。形式化一点,给定集合 S 上的幺半群 M(e, *),其动作 a 满足三条:a 把 M×S 映射到 S;单位元 e 作用于 s 原样返回 s;以及 (m*n) 作用于 s 等价于 m 作用于 (n 作用于 s)。 对做价格行为分析的人,这层抽象的价值在于:当你用无监督方法压缩 K 线特征时,可以借动作把高维状态推到更低维但不同构的空间,而不是被锁死在原幺半群里。外汇和贵金属市场高杠杆、高波动,任何降维都只是辅助,实盘前务必在 MT5 用历史数据回测验证。
◍ 给模型特征称重的几种实战手段
在 MT5 里跑机器学习模型时,先搞清楚哪些输入列真正驱动了预测,比盲目加特征更有用。以我们预测价格柱线范围、并据此调尾随止损的场景为例,原始决策列有五个:回溯周期、时间帧、应用价格、指标、交易决策类型。 随机森林训练后提取的 Gini 权重是个直观起点。假设排位结果是:指标选择 0.45、回溯周期 0.30、应用价格 0.20、时间帧 0.05。这说明指标选择最敏感,时间帧几乎可忽略。拿到这种排位,就可以把幺半群动作集往指标方向扩,比如把 RSI 和布林带都接进来,但输出必须正则化到 0–100(0 为范围缩小,100 为范围扩大)。外汇和贵金属波动剧烈,这类权重仅反映历史样本,实盘须防过拟合。 置换重要性则更粗暴:一次只打乱一列,看模型性能掉多少。用梯度提升分类器时,若回溯周期被打乱后预测效果降 0.062、时间帧降 0.048、应用价格降 0.027、指标降 0.014、决策降 0.009,那么回溯周期就是最致命的那根弦。当前幺半群集周期是 1–8 且均为 4 的倍数,既然回溯周期最敏感,试把倍数改成 2 或 3,很可能撬动尾随止损的放置精度。 SHAP 值按博弈论公平分配每列贡献,适合 XGBoost 这类黑箱;RFE 拿 SVM 反复剔最弱列,从 5 列收到 3 列时可能留下回溯周期、指标、时间帧;L1 正则化(Lasso)让不重要权重归零,类似浴室数量权重 0.00 被直接踢出;PCA 看方差方向,相关性分析只抓线性,互动信息能量化「购买总数 0.15 比性别 0.03 更预测客户黏性」这类依赖。工具很多,但核心动作只有一个:开 MT5 接 XGBoost C API,先跑一遍置换重要性,确认你最敏感的特征列是不是真那么回事。
用随机森林拆解客户特征权重
互动信息能给数据列加权,但“购买总数”这种连续变量没法像离散列那样直接扩幺半群集;加一个购买日期维度,把日期时间作为动作集,就能把每次购买的金额和日期配对,进而看日期与金额对客户黏性的影响,预测精度有可能提高。 随机森林这类基于决策树的集成模型,自带特征重要性评估。它按各特征在树拆分时被调用的次数算分数,训练完直接提取即可排位。下面是一组实测出来的分数示例:浏览历史 0.46、收入 0.34、年龄 0.28、性别 0.12。 排位后浏览历史明显主导预测,收入次之,年龄和性别贡献偏低。外汇与贵金属客户行为建模同样高风险,样本偏移会让分数失真,MT5 上接零售数据回测时须警惕过拟合。 除算法分数外,领域专家的判断不可省。不同方法结论常有细微分歧,技术选型依赖数据集与算法结构,多种手段交叉验证才更接近真实重要性。