检测新柱或蜡烛的开始 - MetaTrader 4 专家
对于一个专家顾问 (EA),当新的报价到达时,元交易者终端调用默认值OnTick()事件处理函数。然而,当新的柱(蜡烛)开始或打开时,没有默认的事件处理函数。
为了检测这一点,需要监控当前最新柱的开盘时间。一旦它发生变化,就意味着新柱的开始,人们可以对其做出反应并处理事件。以下示例代码与 MQL4 和 MQL5 兼容,展示了一种如何实现这一目标的方法:
// 默认刻度事件处理程序 空白 勾选() { // 检查新柱(与 MQL4 和 MQL5 兼容)。 静止的 日期时间dtBar当前 =错误_值; 日期时间dtBar上一个= dtBar当前; dtBar当前 =爱时(_象征,_时期,0); 布尔值 bNewBarEvent = ( dtBarCurrent != dtBarPrevious ); // 对新的栏事件作出反应并处理它。 如果(bNewBarEvent) { // 检测这是否是第一个收到的报价并处理它。 /* 例如,当它第一次附加到图表并且 该酒吧正处于其进度的中间位置并且 这实际上并不是一个新酒吧的开始。 */ 如果( dtBar上一个 ==错误_值) { // 在第一个价格变动或柱线中间做一些事情... } 别的 { // 当正常的柱开始时做一些事情... }; // 无论上述条件如何,都做一些事情... } 别的 { // 做点别的事... }; // 做其他事情... };
还需要注意的是,当 EA 首次放置在图表上时,上述代码的反应就像柱刚刚打开一样。如果情况需要以不同方式处理,则需要对这种情况进行特殊处理。
附件下载
📎 newbar.mq4 (2.8 KB)
Source: MQL5 #39104
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
