作为一个MQL4
新手,我有一些问题,如果有人能详细地回答我,我将非常高兴。
a)有人能解释一下循环标识符(MT4的指示器,例如在这里找到)是如何工作的吗?!
b)计算哪个值来决定是否给出信号?
c)如果这个蜡烛不是当前的蜡烛,那么给定蜡烛的信号也会消失(重新油漆)吗?
提前感谢!
a) Daniel,它到底是怎么工作的?
注意, MQL4
指示器具有特殊的执行模式,这与Expert Advisor类型的MQL4
-code不同。
也就是说,您将能够在上下文中阅读代码是如何"逐步"计算的(以增量方式,以便在正确添加或修改指示符后不会阻塞执行的主要流程)。这个功能是指标所独有的,所以如果你从一些高层次的交易理念来逆向工程或设计你自己的指标,必须要小心。
可以说明 630 SLOC-s
的哪个部分有问题。如果您希望详细了解解码工作,请不要犹豫发布代码块。
无论如何,一定要仔细阅读 MQL4 Help
,理解 OnTick()
在技术指标代码中的处理(start()
在"old"- MQL4
)。该过程对处理延迟相当敏感,因为所有技术指标在"new"- MQL4
执行引擎(MT4终端Build 6xx+)
b)计算哪个值来确定信号检测?
信号来源于 MQL4-source line 400 .. 480
if ( alertsOption == 0 ) {
...
}
}
if ( alertsOption == 1 ) { // buy
if ( <{Major|Minor}>CycleBuy[SignalIndex] == -1
&& <{Major|Minor}>BottomAlertTime < Time[SignalIndex]
) { ... }
}
if ( alertsOption == 2 ) { // sell
if ( <{Major|Minor}>CycleBuy[SignalIndex] == 1
&& <{Major|Minor}>BottomAlertTime < Time[SignalIndex]
) { ... }
...
}
c)是的,检查注释作为对 MQL4-source-line 480
表达性状态的评论,有重新绘制和正在进行的算法试图处理这种情况。