在 EA 的程式中,如果需要判斷 K 棒移動的時候,可以參考以下的程式碼。下面的例子是在 PERIOD_H1 的區間中,檢查 K 棒是否移動。
datetime TimeBar;
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
if(!IsSameTimeBar(TimeBar, PERIOD_H1))
{
//--- do something
}
}
//+------------------------------------------------------------------+
//| 檢查是不是相同 TimeBar |
//+------------------------------------------------------------------+
bool IsSameTimeBar(datetime &timeBar, ENUM_TIMEFRAMES period = PERIOD_M5)
{
//--- 讀取時間資料
datetime TimeBar_Buffer[];
ArraySetAsSeries(TimeBar_Buffer, true);
if(CopyTime(Symbol(), period, 0, 2, TimeBar_Buffer) < 0)
return(false);
datetime this_time = TimeBar_Buffer[0];
if(timeBar == this_time)
return(true);
timeBar = this_time;
//---
return(false);
}