An MQL4 version is also available. In this MQL5 version, I added a convenient use of "+"operators and indexing "[]". "+" allows updating flags of candlestick emergence. Indexing allows checking the emergence of a candlestick of the specified timeframe.
Many MQL5 programs explicitly execute part of their code only after the appearance of a new candlestick on the chart. This class saves you from the need to write candlestick monitoring functions in each program.
To use the class, save the attached file to %TerminalPath%\MQL4\Include\
Include this file in the required indicator or Expert Advisor:
Create an object:
CCheckNewCandle candle;
// or
CCheckNewCandle candle("EURUSD");
At the beginning of the event processing function, the emergence of new candlesticks is checked (the check result is stored in an instance).
OnTick() //or OnCalculate(), or another function... { +candle; ... }
Now, until the next check, the candle[ENUM_TIMEFRAMES timeframe] method returns the result of the previous check using the +candle; method.
if(candle[PERIOD_H1]) //Any standard timeframe. { ... } if(candle[PERIOD_D1]) //Any number of requests between the calls of +candle;. { ... }P.S. The +candle; call should be performed during program initialization.