在 MQL4 中为自定义平均方向指数指标中的 +DI/-DI 指标线实现简单的反转检测方法时 [Investopedia 的参考] [完整源代码] 我尝试使用以下表达式进行测试r1 <= r2 >= r3 是否为 r1 是三个时间序列中最早的时间序列刻度处的速率:
if (rate_far <= rate_mid >= rate_near) {
// ...
}
这并没有达到预期的效果。坦白说,我花了一两分钟来调试这个。
按照以下表达式实现,其结果是:
if (rate_far <= rate_mid && rate_mid >= rate_near) {
// ...
}
这可能是 MQL4 编译器的一个怪癖吗?还是我误解了这里的运算符优先级?
在 iPython 中测试这一点,原始表达式被解释为预期的
20 <= 25 >= 15
# => True
我认为这可能与 MQL4 中的运算符重载有关。
也许这可能类似于 C++ 语言的某些标准中的实现方式。