用Python给亚盘时段做了个波动率过滤,结果凌晨单子全被扫

较热57.7
登录发帖
Exness 推荐平台

入金门槛低,出金到账快,支持多种账户类型

FSA(塞舌尔)/FCA(英国) / CySEC(塞浦路斯) · 最低入金 $130
SunnyDayb
SunnyDayb 楼主 2026-9-15 21:06:09 浏览 517 回复 3 阅读 1 分钟
Lv.1 新手汇友 等级 Lv.1 主题 3 帖数 14 积分 1227 汇币 1086
1楼
上个月给黄金的亚盘策略加了个波动率过滤器,用Python拉了过去半年的tick数据算ATR,想着把凌晨那种死水行情过滤掉,只做伦敦开盘后的第一波。逻辑很简单:ATR低于某个阈值就暂停开仓。结果跑了两周,凌晨的单子全被扫了,还是那种刚进场就被反手打止损的扫法,气得我半夜爬起来翻日志。
先说数据。我用的阈值是黄金亚盘时段ATR(14)的20日均值乘以0.8,回测里这个过滤能把胜率从41%拉到53%,看着挺美。但实盘第一周就发现不对劲:凌晨1点到3点之间,点差从平时的0.15扩到0.35,我的过滤器只看了价格波动,没把点差成本算进去。等于说行情没波动,但交易成本翻倍,EA照样在那些垃圾时段挂单,被扫是迟早的事。
有个做量化多年的汇友跟我讲过一句话:过滤波动率之前,先过滤掉你自己对波动的幻想。
当时没听懂,现在明白了。我以为低波动=没机会,但外汇市场里低波动往往意味着流动性薄,薄流动性下的点差和滑点才是真正的杀手。我那个Python脚本只算了ATR,没算盘口深度,也没考虑亚盘时段黄金的报价源切换——有些流动性提供商在凌晨会缩量,报价跳一下就能触发止损。
后来怎么改的?我把过滤器从单一ATR改成三个条件同时判断:ATR低于阈值、点差大于0.25、盘口买卖量比低于0.6,三个里中两个就暂停开仓。另外把凌晨1点到4点单独设了个时间黑名单,不管波动率多少都不做。改完跑了一个月,凌晨被扫的次数从每周三四次降到零,代价是错过了两次亚盘的突发波动,但账户曲线稳多了。
说句实在的,用Python做过滤本身没错,错的是我把波动率当成了唯一变量。外汇这行,尤其是黄金这种品种,点差、流动性、报价源切换,哪个都比单纯的ATR更影响执行结果。代码写得再漂亮,如果没把交易成本嵌进去,回测和实盘就是两个世界。
你们有没有类似经历——写了个自认为很聪明的过滤器,结果被市场用更朴素的方式教育了?评论区聊聊,我看看是不是只有我这么干过。

补一句,后来我把点差也塞进过滤条件里了,逻辑改成ATR和点差比值低于阈值才停手,凌晨那波乱扫确实少了很多。你们要是也跑亚盘,记得别只盯K线波动,成本这东西才是真刺客。
0 回复 众裁0 复制
#1
NextLevel3
NextLevel3 #4· 2026-9-18 11:03:30
4楼
补充一下,你漏了swap和隔夜利息没算进去,凌晨持仓成本其实更高。另外黄金亚盘报价源切换这点很关键,我用MT5测过,某些LP在2点后点差直接翻倍,EA得加个点差动态跟踪才靠谱🙂
赞 回复 众裁0 复制
2026-9-18 11:03:30 #4
不将就
不将就 #3· 2026-9-18 11:01:14
3楼
你提到“点差从0.15扩到0.35”这个细节最戳我——我自己也写EA,但用的是MT5,之前只盯ATR不看点差,黄金凌晨同样被扫得没脾气😅
赞 回复 众裁0 复制
2026-9-18 11:01:14 #3
MistyMeadow
MistyMeadow #2· 2026-9-17 10:06:05
2楼
原来“ATR低于阈值就暂停开仓”只盯波动,漏了点差!我自己也写EA过滤,只算ATR没算点差,凌晨被扫到怀疑人生。
赞 回复 众裁0 复制
2026-9-17 10:06:05 #2
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 订单流工具跑了两周,这3个足迹图细节比成交量更早暴露主力意图 下一帖 → MT5的EA测试器里那个隐藏的“点差随机化”选项,到底该不该勾