【发布时间】:2015-08-11 12:28:45
【问题描述】:
作为MQL4新手,我有一些问题,如果有人能详细回答,我会非常高兴。
a) 谁能解释一下周期标识符(MT4 的指标,例如 found here)究竟是如何工作的?!
b)计算哪个值来决定是否给出信号?
c) 如果该蜡烛不是当前蜡烛,给定蜡烛的信号是否也会消失(重绘)?
非常感谢!
【问题讨论】:
标签: indicator algorithmic-trading mql4 metatrader4 mt4
作为MQL4新手,我有一些问题,如果有人能详细回答,我会非常高兴。
a) 谁能解释一下周期标识符(MT4 的指标,例如 found here)究竟是如何工作的?!
b)计算哪个值来决定是否给出信号?
c) 如果该蜡烛不是当前蜡烛,给定蜡烛的信号是否也会消失(重绘)?
非常感谢!
【问题讨论】:
标签: indicator algorithmic-trading mql4 metatrader4 mt4
请注意,MQL4 指标具有特殊的执行模式,不同于MQL4的专家顾问类型-代码。
也就是说,您将能够在上下文中阅读代码是如何“逐步”计算的(以增量计算,以免在正确添加或修改指标后阻塞主要的执行流程)。此功能是指标所独有的,因此如果您根据一些高级交易理念进行逆向工程或设计自己的指标,则必须小心。
可以说明您对 630 SLOC-s 的哪一部分有问题。如果您想详细解码,请不要犹豫发布代码块。
无论如何,请务必仔细阅读MQL4 Help,了解OnTick()在技术指标代码中的处理(中的start() “旧”-MQL4)。该过程对处理延迟相当敏感,因为所有技术指标在 "new"-MQL4 执行引擎(MT4 终端 Build 6xx+)
信号来源于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]
) { ... }
...
}
正如对 MQL4-source-line 480 的评论所表达的那样,有重绘和即将推出的算法试图处理这种情况。
【讨论】:
alertsOption == { 0 会生成 sell 警报:全部 | 2 :只卖 } && 条件 CyclePrice < PriceSell ,其中 CyclePrice = iMA( NULL, 0, PriceActionFilter, 0, MODE_SMMA, PRICE_CLOSE, pos ); 对称检查购买提醒的条件。