SelfLearningExperts
该EA使用基于虚拟交易的自学习算法,将价格走势编码为二进制模式并估计方向性概率。它追踪多种delta参数下的价格运动模式,通过虚拟交易学习哪些模式预示上涨或下跌,仅在学到概率超过可配置阈值时才开真实仓位。遗忘因子确保模型能适应不断变化的市场环境。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念是基于二进制价格模式的在线学习:将最近NN根K线的价格变化方向编码为0/1二进制序列,再通过位运算转化为唯一模式编号。入场条件为:当某一模式在虚拟交易中累计的上涨概率(PowerUp)或下跌概率(PowerDn)超过Probab阈值(默认0.8),且该模式的虚拟交易次数超过10次时,分别开多或开仓。出场条件包括:止损/止盈触发(与虚拟交易的stop参数一致)、概率反转信号(当前概率比上次保存的概率高0.05以上时平仓)、以及盈利超过半个dstop时的部分平仓信号。仓位管理使用固定手数(Lots参数),止损和止盈相等,由dstop和Nstop参数决定具体点数。资金管理方面没有动态仓位调整,不使用马丁格尔或网格策略,仅有可选的移动止损(Trailing)和止损替换功能(ReplaceStops)。
优势
- 自学习机制无需预定义指标,通过虚拟交易自动发现有效的价格模式
- 遗忘因子(forg)使模型能适应市场状态变化,避免过时模式干扰
- 多种delta参数和止损参数组合提供多维度的模式识别和风险管理
- 概率阈值和最小交易次数要求过滤了低置信度信号
- 支持学习历史的保存与加载,可实现跨会话的持续学习
劣势
- 固定手数缺乏动态仓位管理,无法根据账户风险或波动率调整仓位大小
- 二进制模式编码丢失了价格幅度信息,仅保留方向信息,信息损失较大
- 大型三维数组(5000x30x3)消耗大量内存且大部分可能未使用,效率低下
- 虚拟交易仅使用Ask价格评估,未考虑点差和滑点对实际交易的影响
- 文件读写缺乏错误处理,文件不存在或读取失败时可能导致崩溃
- TimeToUpdate函数使用2倍周期作为冷却时间,在高波动时可能错过交易机会
改进建议
- 引入动态仓位管理,基于账户权益和ATR波动率计算手数,实现更科学的资金管理
- 在二进制模式基础上增加价格幅度特征(如变化百分比),提升模式识别的信息量和准确性
- 为所有文件操作添加错误检查和异常处理,并在ReadProbFromFile中处理文件不存在的情况
风险评估
总体风险: 中等
- 文件操作无错误处理,文件损坏或缺失可能导致EA异常
- 虚拟交易与真实交易存在点差和滑点差异,实盘表现可能与学习结果偏差
- 固定手数无风险调整机制,在小账户或高波动时可能过度暴露
- StopInPointsParameter数组大小为3但Nstop可达更大值,存在数组越界风险
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
ReadHistory | false | 是否读取已保存的学习历史文件 |
SaveHistory | false | 是否保存学习历史,测试结束时或账户运行时定期保存 |
Lots | 0.1 | 固定交易手数 |
Nidelt | 20 | 不同模式参数(delta)的数量 |
Nstop | 1 | 虚拟仓位的止损/止盈参数组数 |
dstop | 250 | 止损/止盈步进变化点数 |
forg | 1.05 | 遗忘率,略大于1,控制旧数据衰减速度 |
Probab | 0.8 | 开仓概率阈值,虚拟交易学习到的概率需超过此值 |
NN | 10 | 模式长度(最近NN根K线),最大12 |
delta | 1 | 模式参数delta的步进值 |
ReplaceStops | false | 是否用新信号替换止损/止盈,仅沿仓位方向移动 |
Trailing | 0 | 移动止损点数,0表示关闭 |
同类 EA:机器学习
回测是历史模拟,不代表未来收益,不构成投资建议。