EA-52148 · 机器学习

Neurotest

这是一个基于简单前馈神经网络(单隐层ReLU激活)的MT5 EA,使用OHLCV数据预测价格方向。在回测期间通过动量梯度下降进行在线训练,当sigmoid输出大于0.6或小于0.4时分别开多仓或空仓。风险管理包括ATR动态止损、日度和总回撤限制以及点差过滤。

打开交互版(权益曲线、切换品种)

基本信息

风险高风险
评分★☆☆☆☆
类型交易型 EA
周期M15
指标ATR
作者Seyyid Sahin

回测结果(H1,约 1 年)

暂未回测:这个 EA 还没能自动转换。

策略分析

该EA的策略概念是利用一个简单的3层前馈神经网络(5输入-隐层-1输出)从历史K线的开盘价、最高价、最低价、收盘价和成交量中学习价格运动模式。入场条件为:神经网络sigmoid输出大于0.6时做多,小于0.4时做空,处于0.4-0.6之间则不交易。出场条件依赖ATR动态止损和2倍风险回报比的止盈,没有跟踪止损或基于信号的反向平仓逻辑。仓位管理基于账户权益和每笔交易最大风险百分比计算手数,并根据经纪商的最小/最大手数和手数步长进行规范化。资金管理设有每日最大亏损5%和总最大亏损10%的硬限制,当每日利润低于1%目标时会惩罚性降低学习率。然而归一化逻辑存在严重缺陷——仅用单个样例的值计算min-max会导致所有输入归一化为0,且没有检查是否已存在同方向持仓,可能重复开仓。

优势

  • 实现了基于神经网络的自适应交易信号生成,概念上具有创新性
  • 具备完整的资金管理框架,包括每日/总回撤限制和动态止损
  • 使用ATR动态止损适应市场波动性,风险回报比设为1:2较为合理
  • 模型参数可持久化保存,支持EA重启后继续使用已训练权重
  • 包含点差过滤机制,避免在高点差环境下入场

劣势

  • 归一化逻辑严重错误——用单一样本计算min-max导致所有输入归一化为0,网络无法有效学习
  • 没有检查现有持仓,每个tick都可能重复开仓,导致无限加仓风险
  • 没有新K线检查,每个tick都会触发交易逻辑,造成冗余计算和潜在重复下单
  • 网络结构过于简单(仅5个原始价格输入+单隐层5神经元),难以捕捉有效的市场模式
  • ATR指标句柄在GetDynamicStopLoss中每次调用都创建但不释放,会导致资源泄漏
  • 训练数据使用原始价格而非差分或收益率,缺乏平稳性,网络难以泛化

改进建议

  • 修复归一化逻辑——应在训练前用整个数据集的统计量(均值/标准差或全局min-max)进行归一化,并使用差分或对数收益率替代原始价格
  • 添加持仓检查和新K线检查,防止重复开仓和不必要的每tick计算;将ATR指标句柄移至OnInit中创建并在OnDeinit中释放
  • 增加验证集和早停机制以防止过拟合,考虑使用更稳健的优化器(如Adam)和更合理的网络架构设计

风险评估

总体风险: 高风险

  • 没有持仓检查,每个tick可能重复开仓,导致仓位无限积累
  • 归一化逻辑错误导致神经网络输出无意义,交易决策实质上是随机的
  • ATR句柄资源泄漏可能导致长时间运行后指标句柄耗尽
  • 使用原始价格而非平稳序列训练,网络可能过拟合到特定价格水平

评估得分

代码质量2.0
策略逻辑1.0
风险管理3.0
稳健性1.0
创新性3.0
文档2.0
综合2.0

参数

参数默认值说明
MaxRiskPerTrade1.0每笔交易最大风险百分比
DailyLossLimit5.0每日最大亏损百分比
TotalLossLimit10.0总最大亏损百分比
MagicNumber12345订单唯一标识符
EnableLoggingtrue启用详细日志记录
InitialLearningRate0.01神经网络初始学习率
HiddenLayerSize5隐层神经元数量
MaxEpochs1每tick最大训练轮数
ModelFileNameneural_network.dat模型保存/加载文件名
ATRPeriod14ATR周期用于动态止损
MaxSpread20.0最大允许点差(点)

同类 EA:机器学习

回测是历史模拟,不代表未来收益,不构成投资建议。

订阅每周 Arena 周报

每周一封邮件:排名变化、新信号和新研究。不发垃圾邮件,随时可以退订。