神经网络:从理论到实践(基础篇)
用 MT5 跑通你的第一个神经网络
MT5 自 build 600 起内置 MQL5 神经网络相关接口,可在 EA 里直接调用 CNeuron 等类做轻量前向网络训练,无需外接 Python。对日内贵金属与外汇波段交易者来说,这意味着策略原型能在原生终端里快速验证,而不是卡在环境配置上。 官方示例贴于 2014-03-20 发布,至今在 MQL5 社区累计阅读 12,161 次、评论 102 条,说明这套原生方案长期有人在用、不是一次性玩具。 开 MT5 后搜『Neural Network』示例,把默认 EURUSD 周期从 H1 改成 M15,先跑 3 个月历史数据看权重收敛曲线;外汇与贵金属杠杆高、滑点跳空频繁,回测盈利不代表实盘概率同向,务必用极小手数过一遍。
◍ 别把神经网络想成超能力
很多做外汇和贵金属的交易者一听神经网络就觉得是玄学,以为用上它的人都是开挂的超人。其实它只是一类可训练的函数逼近器,核心是用历史样本去拟合输入到输出的映射。 MT5 自带 MQL5 环境就能跑轻量网络,你完全可以在策略测试器里用 EURUSD 的 H1 收盘序列做第一次验证,而不是先去啃论文。 外汇和贵金属杠杆高、跳空频繁,拿神经网络做信号时务必用小样本先跑通逻辑,实盘前用至少 3 个月 Tick 数据回测,避免过拟合带来的概率误判。
「拆开人工神经元的黑箱」
人工神经网络本质是模仿人脑学习与适应机制的计算结构,它由大量人工神经元堆叠而成,对外表现为一个接收信号、吐出结果的黑箱。对交易者而言,这套结构在 MT5 里常被塞进 EA,用来替代手写规则判断多空。 单个神经元先吃一组输入,各自乘上权重后求和得到净输入,再经激活函数压成输出。学习过程说白了就是反复改这些权重,让输出越来越贴近你给的历史样本。 图里的多层网络分三块:输入层只负责把行情特征(比如均线斜率、波动率)灌进去,不做计算;隐藏层干脏活,本例叠了两层,也可以更多;输出层通常就一个神经元,吐出的数值直接成为 EA 后续下单逻辑的依据。 外汇与贵金属杠杆高、跳空频繁,拿历史权重跑实盘存在过拟合与断裂风险,任何信号都只是概率倾向,开 MT5 用样本外数据验过再谈信任。
把指标值压进统一量纲
喂给神经网络或任何跨指标计算前,先要把不同量级的输入压到同一区间,否则大数值会盖过小数值,神经元权重被带偏,决策容易失真。常见做法是映射到 [0,1] 或 [-1,1]:设原值 x 在 [x_min, x_max],目标区间 [d1, d2],正态值 = ((x - x_min) * (d2 - d1) / (x_max - x_min)) + d1。 举个具体例子,某均线缓冲数组 iMA_buf 取值在 [0,10],想压到 [0,1],则 x_min=0、x_max=10、d1=0、d2=1,任意柱上的值代进去就能得到 0~1 之间的归一结果。 下面这段 MQL5 直接干了这件事:先定输出上下限 d1=0.0、d2=1.0,再用 ArrayMinimum / ArrayMaximum 抓缓冲数组极值,逐根 K 线套公式写回 inputs[]。开 MT5 把 iMA_buf 换成你自己的指标句柄缓冲,就能马上复用。 别把正态当圣经 压到 [0,1] 会抹掉原始量纲,跨品种比对时若不做对齐,归一后外形相似但波动结构可能完全不同,外汇与贵金属杠杆高、跳空频繁,验证前先小周期跑一遍。
class="type">class="kw">double d1=class="num">0.0; class="type">class="kw">double d2=class="num">1.0; class="type">class="kw">double x_min=iMA_buf[ArrayMinimum(iMA_buf)]; class="type">class="kw">double x_max=iMA_buf[ArrayMaximum(iMA_buf)]; for(class="type">int i=class="num">0;i<ArraySize(iMA_buf);i++) { inputs[i]=(((iMA_buf[i]-x_min)*(d2-d1))/(x_max-x_min))+d1; }
◍ 神经元怎么决定要不要点火
人工神经元拿到一堆带权重的输入后,先算加权和,再交给激活函数决定输出。这个输出可能是 0/1、0~1 之间的值,也可能是负值,取决于选了哪类函数。 最硬核的是单位阶梯函数(硬阈值):加权和小于阈值返回 0,大于阈值返回 1,阈值在其他函数里通常是 0。它像开关,没有中间态。 S 形函数输出在 (0,1) 连续光滑,适合多层网络和连续信号场景;双曲正切则能把输出拉到负数区间,同样用于连续信号网络。两者相比,tanh 的零中心化特性在梯度更新时往往更友好。 在 MT5 里验证这类逻辑不必接真神经网络,用 iCustom 读别人训好的神经元指标、或自己写个加权和判断模块,都能直观看到硬阈值与 S 形在行情突变处的触发差异。外汇与贵金属杠杆高,信号函数只是概率参考,实盘须控仓。