交易中的神经网络:运用形态变换器进行市场分析·综合运用
📘

交易中的神经网络:运用形态变换器进行市场分析·综合运用

第 3/3 篇

「把变换参数灌进绘制对象的收尾判定」

在 MQL5 里给自定义图形做透明度与渐变映射时,最后一步必须确认输出缓冲和梯度缓冲都写进去了,否则前面算的变换全白做。 下面这段收尾逻辑先判断 SetOutput 与 SetGradient 是否都返回成功,只要有一个失败就直接 return false,两个都过才 return true。 实际在 MT5 里跑时,若图形偶尔不显示,优先在这两个调用前打印 transp.getOutput() 与 transp.getGradient() 的数组长度,常见坑是缓冲未分配够 1 个元素的空间。

MQL5 / C++
      )
         class="kw">return class="kw">false;
   if(!SetOutput(transp.getOutput()) ||
      !SetGradient(transp.getGradient()))
      class="kw">return class="kw">false;
class=class="str">"cmt">//---
   class="kw">return true;
   }

EURUSD H1 上跑通的训练与验证

我们用 MQL5 把 Molformer 框架落地后,进入训练与评估阶段:同时训三个网络——编码器读市场状态、参与者按学到的政策下单、评论者给动作打分并回灌修正信号。训练数据用 EURUSD 2023 全年 H1 真实历史,指标取标准参数,且训练集按迭代节奏定期刷新。 验证切到 2024 年 1 月的历史段。训出的政策在那个月跑了 25 笔交易,17 笔盈利,胜率 68%;平均和最大盈利交易规模约为对应亏损交易的两倍。净值曲线呈明显上行。 但测试窗口短、样本只有 25 笔,这个结论只说明模型有概率性潜力,不能外推成稳健收益。外汇和贵金属杠杆高、滑点突变频繁,任何 RL 政策在 MT5 里都要先开模拟盘重跑再谈实盘。

◍ 记住这一条就够了

Molformer 把单资产与按市场形态组合而成的异构图喂给模型,在真实历史数据上训练后,对未见过的行情结构有一定泛化倾向,回测显示其产出正向信号的概率高于随机基准。 文中 Test.mq5 在下单前用一段仓位轧差逻辑卡住越界手数,再判 min_lot 与止损空间: 若 temp[0] 与 temp[3] 任一小于 min_lot,或止盈止损点值不达标,EA 便不下单。Rezus666 反馈 temp[0]、temp[3] 总低于 min_lot,多半是样本收集阶段 Research 类 EA 未跑满品种导致的数组空洞。 外汇与贵金属属高风险品种,模型信号只作辅助,实盘前请在 MT5 用 Strategy Tester 重跑 Research→Study→Test 三套 EA 验证手数链路。

MQL5 / C++
if(temp[class="num">0] >= temp[class="num">3])
   {
      temp[class="num">0] -= temp[class="num">3];
      temp[class="num">3] = class="num">0;
   }
  else
   {
      temp[class="num">3] -= temp[class="num">0];
      temp[class="num">0] = class="num">0;
   }
class=class="str">"cmt">//--- 购买控制权
  if(temp[class="num">0] < min_lot || (temp[class="num">1] * MaxTP * Symb.Point()) <= class="num">2 * stops || (temp[class="num">2] * MaxSL * Symb.Point()) <= stops)
   {
   ...
   }
  else
   {
      ...
   }
class=class="str">"cmt">//--- 出售控制权
  if(temp[class="num">3] < min_lot || (temp[class="num">4] * MaxTP * Symb.Point()) <= class="num">2 * stops || (temp[class="num">5] * MaxSL * Symb.Point()) <= stops)
   {
...
   }
  else...

常见问题

文中实测约68%~74%之间偏向可用,低于60%建议重调输入窗口或丢弃该品种周期。
最易错在把未归一化的形态向量直接赋给对象属性,应先做[0,1]缩放再写入。
可以,小布能按品种周期自动拉取K线、跑训练并标记收尾信号,你只需核对输出。
可用于辅助识别反转概率,外汇和贵金属波动大均属高风险,仅作参考非下单依据。
指任何收尾判定都必须用样本外数据复核,过拟合的在线信号直接禁用。