有汇友私信问我那个货币强弱排名指标怎么做的,说他照网上模板抄了一份,结果八个货币对强弱值全挤在一条线上,分不出谁强谁弱。这个问题我当初也踩过,先别急着改公式,八成是归一化窗口设错了。
我做这个指标的思路其实不复杂:拿七个直盘(欧美、镑美、美日、美瑞、美加、澳美、纽美)的收盘价,分别算出各自相对N根K线前的涨跌幅,再以美元为基准反推各货币的相对强弱。听起来简单,但真正动手时坑一堆。第一步先把直盘映射成货币对美元的贡献方向,比如欧美涨代表欧元强、美元弱,美日涨则代表美元强、日元弱,方向反了排名就全乱。第二步我习惯用ATR做波动率标准化,不然黄金波动大的时候美元强弱值被放大,排名失真。第三步才是排序和可视化,用MT5的指标缓冲区输出八条线,配个颜色区分。
踩过的坑我列几个,都是血泪:
还有一个容易被忽略的点:货币强弱排名本质是相对值,不是绝对值。你把它挂到欧美H1上得到的排名,跟挂到黄金M15上完全不是一回事,所以指标里我把计算周期和显示周期做成了两个独立输入,避免混用。另外VPS上跑的时候注意图表刷新频率,指标重算太频繁会拖慢EA下单响应,我一般设成每根新K线算一次就够了。
最后提醒一句,这个指标我主要拿来给EA做币种过滤,比如只做当前排名前三的强币对弱币,胜率确实比无脑跑欧美高一些。你们做强弱排名时是习惯用直盘反推还是直接上货币指数?评论区聊聊 🙌
我做这个指标的思路其实不复杂:拿七个直盘(欧美、镑美、美日、美瑞、美加、澳美、纽美)的收盘价,分别算出各自相对N根K线前的涨跌幅,再以美元为基准反推各货币的相对强弱。听起来简单,但真正动手时坑一堆。第一步先把直盘映射成货币对美元的贡献方向,比如欧美涨代表欧元强、美元弱,美日涨则代表美元强、日元弱,方向反了排名就全乱。第二步我习惯用ATR做波动率标准化,不然黄金波动大的时候美元强弱值被放大,排名失真。第三步才是排序和可视化,用MT5的指标缓冲区输出八条线,配个颜色区分。
踩过的坑我列几个,都是血泪:
- 用固定窗口算涨跌幅,遇到周末跳空或新闻行情,强弱值直接炸掉,后来改成按交易时段对齐才稳
- 八个货币对的时间戳不同步,尤其是美瑞和纽美,回测时出现未来函数,排名虚高
- 缓冲区数量设少了,MT5最多支持512个,我一开始只开8个还忘了给每条线赋独立索引,结果全叠一起
- EA调用指标数据时用了iCustom但没传对参数顺序,读出来全是0
还有一个容易被忽略的点:货币强弱排名本质是相对值,不是绝对值。你把它挂到欧美H1上得到的排名,跟挂到黄金M15上完全不是一回事,所以指标里我把计算周期和显示周期做成了两个独立输入,避免混用。另外VPS上跑的时候注意图表刷新频率,指标重算太频繁会拖慢EA下单响应,我一般设成每根新K线算一次就够了。
最后提醒一句,这个指标我主要拿来给EA做币种过滤,比如只做当前排名前三的强币对弱币,胜率确实比无脑跑欧美高一些。你们做强弱排名时是习惯用直盘反推还是直接上货币指数?评论区聊聊 🙌
