之前编全部信号.mq4指标时,一直没搞明白货币强弱的计算机制,可能与原来的参照母本删减了重要功能段代码有关。
昨日从电脑里搜索所有“强弱”关键词,找到PriceMeter这个2007年的指标源码,经过对比,认为这是货币强弱指标的一个早期母本。
由于是源码,很容易看懂整个计算机制。
-
首先确定7个基础货币;
-
列出平台可提供的交叉盘(含直盘)货币对;
-
计算每个货币对的日最高点,日最低点,Bid现价;高低点差值作为分母,现价与最低点差值作为分子,因此完成这个货币对的波幅比例;对这个比例分成10档(模糊数学~哈哈);
-
以USD为例,只要涉及USD的所有交叉盘或直盘,都纳入指数计算。
aMeter[USD] = NormalizeDouble((aLookup[USDJPY]+aLookup[USDCHF]+aLookup[USDCAD]+aStrength[EURUSD]+aStrength[GBPUSD]+aStrength[AUDUSD])/6,1); aMeter[EUR] = NormalizeDouble((aLookup[EURUSD]+aLookup[EURJPY]+aLookup[EURGBP]+aLookup[EURCHF]+aLookup[EURAUD])/5,1); aMeter[GBP] = NormalizeDouble((aLookup[GBPUSD]+aLookup[GBPJPY]+aLookup[GBPCHF]+aStrength[EURGBP])/4,1); aMeter[CHF] = NormalizeDouble((aStrength[USDCHF]+aStrength[EURCHF]+aStrength[GBPCHF])/3,1); aMeter[CAD] = NormalizeDouble((aStrength[USDCAD]),1); aMeter[AUD] = NormalizeDouble((aLookup[AUDUSD]+aStrength[EURAUD])/2,1); aMeter[JPY] = NormalizeDouble((aStrength[USDJPY]+aStrength[EURJPY]+aStrength[GBPJPY])/3,1);
如果USD出现在货币对名称的后三位,那么使用9-波幅比例作为USD的一个投票值。
-
最后画图。
从上述流程中我们可以看到,这种计算指数的方式有一定道理,能考虑到缺陷是EURUSD权重应该最高,CADUSD不应该有同样的权重。
另外,这个指标只是反映当前市场的客观情况,但没法预测顶点和底点在哪里,需要构造简单有效的判断机制,从而发挥该指标的更大作用。
微信公众号:天泓评测
发表评论