Order Blocks Precision EA
- 专家
-
Carlos Dante Diaz
你好,我是 Carlos Díaz,来自阿根廷的程序员和算法交易员,拥有超过 10 年的交易经验。我使用 MetaEditor 和 MetaTrader 5 的 Strategy Tester,用 MQL5 设计、编写并测试我所有的 Expert Advisor。
多年交易不同品种的经历,让我了解了构建交易机器人时真正重要的实际细节:点差、订单执行、滑点,以及每家经纪商和每个交易品种的具体条件。我把这些经验用在我发布的每一个 EA 上。 - 版本: 1.1
- 更新: 2 十月 2026
- 激活: 20
Order Blocks Precision EA
Order Blocks Precision EA 是一款适用于 MetaTrader 5 的自动化智能交易系统(EA),通过限价挂单交易订单块(Order Block)。
工作原理
EA 会寻找至少由三根连续K线构成的明确方向性走势。走势确认后,它会在该走势的起点位置挂出限价单:
- 做多:挂在看涨走势之前最后一根阴线(红色K线)的最高点。
- 做空:挂在看跌走势之前最后一根阳线(绿色K线)的最低点。
止损基于最后一根反向K线的波幅,止盈则是止损距离的倍数,由您自行设定。每一笔订单发送时都已设置好止损和止盈。EA 不使用马丁格尔或网格策略。
内置过滤器
在挂单之前,三个过滤器会检查市场状况:一个用于方向强度,一个用于波动率(仅当波动率处于其自身近期平均值的相对区间内时才允许交易),一个用于市场活跃度。每个过滤器都有各自的参数设置。
交易管理
- 枢轴到枢轴(pivot-to-pivot)移动止损,可在参数中启用或禁用。
- 当出现顺着交易方向的超大K线时自动离场。
- 挂单会一直保持有效,直到成交或被更新的信号替换。
风险与参数
- 两种仓位大小模式:按每笔交易承担的余额百分比计算,或使用固定手数。
- 止盈比例、入场距离和移动止损边距均可调整。
- 多单和空单可分别启用。
- 可选的交易时间窗口,以及可选的所有持仓和挂单的平仓时间。
使用建议
EA 专为 M5 和 M15 周期设计,可用于多个品种。不同经纪商的点差、手续费和执行方式各不相同,因此请在 Strategy Tester 中使用您自己经纪商的数据进行测试,并在实盘交易前先在模拟账户上运行。
非常重要:Magic Number。 在每个加载 EA 的图表上都要使用不同的 Magic Number,无论是不同的品种,还是同一品种的不同周期(例如 SP500 的 M5 和 M15)。如果两个图表使用相同的 Magic Number,它们会互相作用于对方的持仓和订单:可能会平掉不属于自己的交易、移动移动止损,或替换不属于自己的挂单。
使用与优化建议
- 遗传算法每次运行会探索约 10,000 种参数组合;所需时间取决于您的电脑性能。
- 截图中包含一个优化设置示例,可作为不同品种的起点。
- 优化时请始终使用前向测试(forward)周期,然后在转入实盘之前,先在模拟账户上交易与前向周期相同的时长。
- 先同时启用多单和空单进行测试。如果分析结果后发现某一方向明显表现较差,可以分别优化两个方向,或只保留表现更好的一侧。
- EA 设计为使用风险百分比(%)进行优化。如果在某个品种上这样效果不佳(这种情况不常见),请使用固定手数。如果您只是更喜欢固定手数,也可以选择它。
- 移动止损可以在启用和禁用两种状态下测试:它在优化中只是一个普通参数,您可以将其固定为在您的品种上表现最好的值。
- 建议的建模方式:“Every tick based on real ticks”(基于真实报价的每个报价),使用快速遗传算法进行优化,并采用 “Complex Criterion max” 标准。
建议的优化数值
| 参数 | 默认值 | 起始 | 步长 | 结束 |
|---|---|---|---|---|
| Filter1_Period | 17 | 14 | 2 | 30 |
| Filter2_Period | 14 | 14 | 2 | 30 |
| Bars used for the filter 2 average | 50 | 20 | 10 | 100 |
| Minimum % of the current value relative to its average | 70 | 50 | 10 | 90 |
| Maximum % of the current value relative to its average | 150 | 110 | 10 | 200 |
| CandleAvgCount | 24 | 15 | 5 | 60 |
| Filter3_BarsBack | 5 | 3 | 2 | 14 |
| TakeProfitRatio | 1.5 | 1.5 | 0.5 | 4 |
| Entry distance = filter 2 value * this value | 0.8 | 0.25 | 0.25 | 2.5 |
| Enables the pivot-to-pivot trailing stop | true | false | – | true |
| Trailing margin = filter 2 value * this value | 1.1 | 0.25 | 0.25 | 2.5 |
Magic Number、手数模式和手数大小、多单和空单的启用设置以及时间过滤器不参与优化:请根据您自己的风险标准和交易方式将其固定。
各参数的作用
- Magic Number: 用于标识 EA 每个实例的交易。每个图表上必须不同。
- Filter1_Period: 方向强度过滤器(过滤器 1)的周期。
- Filter2_Period: 波动率过滤器(过滤器 2)的周期。
- Bars used for the filter 2 average: 用于计算过滤器 2 参考平均值的K线数量。
- Minimum % of the current value relative to its average: 过滤器 2 当前值相对于其平均值的最低百分比。低于该值时不交易。
- Maximum % of the current value relative to its average: 过滤器 2 当前值相对于其平均值的最高百分比。高于该值时不交易。
- CandleAvgCount: 用于计算平均K线大小的K线数量,EA 据此对K线进行分类,包括自动离场所用的“超大K线”。
- Filter3_BarsBack: 用于市场活跃度过滤器(过滤器 3)平均值的K线数量。
- TakeProfitRatio: 止损距离的倍数,用于确定止盈。
- Entry distance = filter 2 value * this value: 在入场位置上额外增加的距离。计算方式为过滤器 2 的数值乘以该倍数。
- Enables the pivot-to-pivot trailing stop: 启用或禁用移动止损。
- Trailing margin = filter 2 value * this value: 移动止损时与最近枢轴点保持的边距。计算方式为过滤器 2 的数值乘以该倍数。
注意事项
- 请以 HH:MM 格式输入时间,并与图表周期上某根K线的开盘时间一致。时间过滤器使用终端所在电脑或 VPS 的本地时间。
风险提示: 在金融市场中交易存在亏损风险。过往业绩不代表未来表现。本 EA 不承诺任何盈利。
支持通过本产品的评论区以及 mql5.com 的消息系统提供。
