神经网络变得简单(第 91 部分):频域预测(FreDF)·综合运用
(3/3)· 前两层铺垫了频域降自相关的原理,这一层直接跑测试、收口并附全套程序
「EURUSD H1 上的训练与样本外验证」
模型训练分两阶段走。先用 EURUSD、2023 年、H1 历史数据训编码器,按 NForecast=12 横向预测后续 12 根蜡烛的环境状态;重点不是把每个指标预测得最准,而是逼出信息量最密的潜在空间,给后续价格演化留编码。 第二阶段交替跑演员-评论家迭代并更新数据集,找最优动作策略。编码器训完对比无 FreDF 的同类模型,预测误差有缩小,但没做图形比对,实际品质只能靠潜在空间信息量间接判断。 样本外直接用 2024 年 1 月真实数据在 MT5 策略测试器跑,品种、周期、指标参数与训练完全一致。49 笔交易里 21 笔盈利,胜率 43%,但平均盈利约为平均亏损的 2 倍,盈利因子 1.43,当月权益曲线净增约 19%。外汇品种杠杆高、滑点跳空频繁,该结果仅代表特定时段样本,切换年份或周期可能失效。 想复现就先把 NForecast 改成自己容忍的 horizon,EURUSD 之外换 XAUUSD 时记得重采训练集,潜在空间维度别照抄。
class="macro">#define NForecast class="num">12 class=class="str">"cmt">//Number of forecast
◍ 频域对齐带来的实测增益
FreDF 的核心改动很小:在频域里把预测序列和标签序列做对齐,而不是沿用默认 DF 范式只在时域比对。原文作者指出,旧范式忽略标记序列的自相关性,会直接造成似然乖离和预测品质恶化,这一步对齐相当于把自相关结构补回损失函数。 我们在 MQL5 里给之前搭的 FEDformer 补了这段逻辑,并在相同数据、相同训练轮次下重跑。测试结果显示,其它条件不变时,加入 FreDF 后模型效率确有提升——这不是调参运气,而是频域对齐消除了原先的似然偏差。 值得留意的是,FreDF 不绑死某一类模型或变换,它和多种预测 backbone 兼容。对外汇与贵金属这种高波动、强自相关的品种,用 MT5 跑一遍你手头的时序模型加这个补丁,可能比换大模型更划算,但杠杆品种高风险,回测通过不等于实盘稳健。
记住这一条就够了
这套 LSTM 预测工程在 MT5 里拆成了八个文件:六个 EA(Research、ResearchRealORL、Study、StudyEncoder、Test 及前文未列的收集类)加两个核心类库 Trajectory.mqh 与 NeuroNet.mqh,另带一份 NeuroNet.cl 跑 OpenCL 加速。压缩包 MQL5.zip 约 1240.5 KB,下载后直接丢进 MetaEditor 编译即可看到完整调用链。 真正落地的关键只有一句:先跑 Research 类 EA 把行情状态按 Trajectory 结构存成样本,再用 Study 系列训网络,最后用 Test 在品种历史里验证命中率,外汇与贵金属杠杆高、滑点突变频繁,任何模型输出都只是概率倾向而非确定性信号。 剩下要做的无非是打开 MT5 把 ZIP 解到 Include 和 Experts 目录,选一个低频货币对用 2020 年后的数据重跑一遍 Test,看回测曲线是否过拟合——这一步不做,前面读再多都是空转。