EA-193 · 机器学习
Perceptron
一个基于感知器神经网络的EA,使用5个技术指标(MA交叉、RSI、CCI、MA斜率、动量震荡器)作为5个子神经网络的输入,再由元网络组合产生买卖信号。突触权重根据上一笔交易是否盈利进行简单的奖惩在线调整。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
这个 EA 从未交易的原因:转换后没有留下任何开仓规则。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 未发现爆仓模式
代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
该EA采用多层感知器架构,由5个子神经网络和一个元网络组成。每个子神经网络接收4个指标信号作为输入(留一法),通过加权求和产生中间输出,元网络再将5个子网络输出加权求和得到最终决策值。入场条件为:元网络输出大于0时买入,小于0时卖出,同时要求无持仓且与上一交易方向不同。出场条件依赖固定的止损和止盈,止损默认100点,止盈默认40点。仓位管理为固定0.1手,没有根据账户资金或风险动态调整。突触权重调整采用简单的奖惩机制:盈利时增强正确方向的权重,亏损时反向调整,权重被限制在SinMin到SinMax范围内。
优势
- 在线学习能力,权重根据交易结果动态调整,具有自适应性
- 多指标融合决策,5个指标从不同维度提供信号,减少单一指标偏差
- 留一法网络架构设计,每个子网络缺少一个指标的输入,增加模型鲁棒性
- 权重有上下限约束,防止权重无限增长导致过拟合
- 使用多个指标信号(-1/0/1)离散化,降低了噪声干扰
劣势
- 感知器仅有线性加权求和,没有激活函数和非线性变换,表达能力极其有限
- SinapticsAjust函数从未被调用,权重调整逻辑实际上是死代码,网络无法真正学习
- NN4的权重调整中存在严重BUG,错误修改了NN3的权重(NNS3IND2而非NNS4IND2),多处NNS2IND4被误修改
- 固定0.1手仓位,无资金管理策略,不适应不同账户规模
- 没有新柱检测,每个tick都会重新计算指标和尝试下单,可能频繁触发交易
- 止损大于止盈(100:40),盈亏比仅0.4,需要极高胜率才能盈利
改进建议
- 修复死代码问题:在OnTick中交易平仓后调用SinapticsAjust(),使权重调整逻辑真正生效
- 修复权重BUG:NN4中应修改NNS4IND2而非NNS3IND2,NN3中应修改NNS3IND4而非NNS2IND4
- 添加激活函数(如tanh或sigmoid)使网络具备非线性表达能力
- 添加新柱检测避免每个tick重复计算,添加持仓检查和开仓时间间隔限制
- 实现动态仓位管理,根据账户余额或风险百分比调整手数
风险评估
总体风险: 高风险
- 核心学习函数SinapticsAjust从未被调用,网络权重始终为初始值1,EA实际上不具备学习能力
- 多个权重调整存在复制粘贴BUG,错误修改其他神经网络的权重
- 无新柱检测,每个tick都会尝试交易逻辑
- 无点差过滤,在点差较大时仍可能开仓
- 固定仓位无资金管理,盈亏比仅0.4需要极高胜率
评估得分
代码质量1.0
策略逻辑2.0
风险管理1.0
稳健性1.0
创新性3.0
文档1.0
综合1.5
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
SL | 100 | 止损点数 |
TP | 40 | 止盈点数 |
SinMax | 5 | 突触权重上限 |
SinMin | 0 | 突触权重下限 |
MAGIC | 999 | 订单魔术号 |
SinPlus | 0.03 | 突触权重正向调整步长 |
SinMinus | 0.03 | 突触权重负向调整步长 |
ma1 | 5 | 快速均线周期 |
ma2 | 9 | 慢速均线周期 |
RSI | 14 | RSI指标周期 |
CCI | 14 | CCI指标周期 |
ma_a | 5 | IND4均线周期 |
IAO | 20 | 动量震荡器读取柱数 |
同类 EA:机器学习
回测是历史模拟,不代表未来收益,不构成投资建议。