凌晨两点四十,镑美在1.2630附近磨了快一个小时,我盯着MT5那个订单簿窗口,买盘挂单稀稀拉拉,卖盘倒是堆了几层,可价格就是不动。那一瞬间我意识到,光靠MT5自带的DOM来做EA进场判断,很多时候是在看一个被稀释过的信号。
先说我现在用的方案,和之前踩过的坑做个对比。
方案一,纯MT5订单簿。优点是原生、不用额外数据源,EA里用MarketBookGet就能读到买卖挂单量。但问题很明显,多数零售经纪商的DOM深度只有5到10档,而且更新频率受限于经纪商推流,镑美在伦敦开盘那会儿经常出现挂单量突然跳变,EA如果按这个做阈值触发,很容易在假突破里被扫。我去年有套基于DOM失衡的进场逻辑,回测漂亮,实盘跑了两周,光在欧美早盘就被这种跳变坑了七八次。
方案二,DOM加成交明细辅助。这是我目前觉得比较平衡的做法。核心思路是不把DOM当唯一信号,而是当过滤器。具体步骤:
这个方案的好处是,DOM只做否决不做触发,避免了它本身噪声大的问题。缺点是会漏掉一些快速行情,比如非农那种瞬间拉升,过滤太严反而进不去。
方案三,接第三方深度数据。我试过一家,数据确实细,但月费不低,而且VPS延迟稍微高一点就对不上,有次因为数据源和经纪商报价差了0.3秒,EA在镑美上进了个完全相反的方向。后来放弃了。
踩过的坑里,最值得说的是千万别在EA里直接对DOM挂单量做绝对值判断。不同经纪商的深度展示差异巨大,我同一个EA挂两家,一家显示买盘200手,另一家显示40手,但价格走势一样。所以我现在只用相对比值,不用绝对量。
另外提醒一句,DOM数据在MT5里要确认经纪商是否真的推送,有些只在手动打开订单簿窗口时才更新,EA后台跑是读不到的,这个我当初查了半天日志才发现。
你们平时做EA进场过滤,是更信DOM还是更信成交明细?有没有遇到过数据源和经纪商对不上的情况,怎么处理的?
补充个小细节:我后来把DOM失衡的阈值改成动态的,跟着ATR浮动,效果比固定阈值稳不少。另外有朋友问成交明细从哪来,我用的就是MT5自带的时间与销售,不用额外买数据。
先说我现在用的方案,和之前踩过的坑做个对比。
方案一,纯MT5订单簿。优点是原生、不用额外数据源,EA里用MarketBookGet就能读到买卖挂单量。但问题很明显,多数零售经纪商的DOM深度只有5到10档,而且更新频率受限于经纪商推流,镑美在伦敦开盘那会儿经常出现挂单量突然跳变,EA如果按这个做阈值触发,很容易在假突破里被扫。我去年有套基于DOM失衡的进场逻辑,回测漂亮,实盘跑了两周,光在欧美早盘就被这种跳变坑了七八次。
方案二,DOM加成交明细辅助。这是我目前觉得比较平衡的做法。核心思路是不把DOM当唯一信号,而是当过滤器。具体步骤:
- EA先按原有策略(我用的是H1的20/60均线交叉)产生候选进场信号
- 信号触发瞬间,读取当前DOM前5档的买卖挂单比,阈值设1.5才放行
- 同时看最近30秒的成交明细,如果主动买单占比超过65%,才确认进场
- 不满足就跳过这单,等下一个信号
这个方案的好处是,DOM只做否决不做触发,避免了它本身噪声大的问题。缺点是会漏掉一些快速行情,比如非农那种瞬间拉升,过滤太严反而进不去。
方案三,接第三方深度数据。我试过一家,数据确实细,但月费不低,而且VPS延迟稍微高一点就对不上,有次因为数据源和经纪商报价差了0.3秒,EA在镑美上进了个完全相反的方向。后来放弃了。
踩过的坑里,最值得说的是千万别在EA里直接对DOM挂单量做绝对值判断。不同经纪商的深度展示差异巨大,我同一个EA挂两家,一家显示买盘200手,另一家显示40手,但价格走势一样。所以我现在只用相对比值,不用绝对量。
另外提醒一句,DOM数据在MT5里要确认经纪商是否真的推送,有些只在手动打开订单簿窗口时才更新,EA后台跑是读不到的,这个我当初查了半天日志才发现。
你们平时做EA进场过滤,是更信DOM还是更信成交明细?有没有遇到过数据源和经纪商对不上的情况,怎么处理的?
补充个小细节:我后来把DOM失衡的阈值改成动态的,跟着ATR浮动,效果比固定阈值稳不少。另外有朋友问成交明细从哪来,我用的就是MT5自带的时间与销售,不用额外买数据。
