MQL4持续到蜡烛栏开放活动

时间:2018-04-11 14:44:31

标签: mql4 metatrader4 mql5 metatrader5

我是MQL4的新手,并且仍在努力掌握这个概念。我想要一个事件处理程序来检测每个蜡烛栏开口(或每个蜡烛栏关闭)。试着将它包裹在我的脑海中,但它不起作用:

所以我有一个功能来检查勾号:

bool checkingFirstTick(){
   datetime currentTime = iTime(Symbol(), Period(), 0);

   if(currentTime - lastCandle > 0){
      lastCandle = currentTime;
      return true;
   }
   return false;
}

其中lastCandle是全局变量。

现在,当我把它放入OnTick()事件时:

void OnTick(){

  Print("Ticking");
   if(checkingFirstTick()){
      Print("It's an opening!");
   }
}

永远不会打印It's an opening!语句。

enter image description here

我做了一些根本错误的事吗?或者,无论我设定的时间段是什么,有没有更有效的方式来听取烛台的开启?

1 个答案:

答案 0 :(得分:1)

// --- Global Variable ----
datetime ArrayTime[], LastTime;

void OnTick()
{
   if(NewBar(PERIOD_H1))
   {
       // insert your program here
   }
}

bool NewBar(int period)
{
   bool firstRun = false, newBar = false;

   ArraySetAsSeries(ArrayTime,true);
    CopyTime(Symbol(),period,0,2,ArrayTime);

    if(LastTime == 0) firstRun = true;
    if(ArrayTime[0] > LastTime)
    {
        if(firstRun == false) newBar = true;
        LastTime = ArrayTime[0];
    }

    return newBar;   
}