64 lines
5.1 KiB
MQL5
64 lines
5.1 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| TimeCounter.mqh |
|
|
//| Copyright 2016, MetaQuotes Software Corp. |
|
|
//| http://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
//| Счётчик времени |
|
|
//+------------------------------------------------------------------+
|
|
class CTimeCounter {
|
|
private:
|
|
//--- Шаг счётчика
|
|
uint m_step;
|
|
//--- Временной интервал
|
|
uint m_pause;
|
|
//--- Счётчик времени
|
|
uint m_time_counter;
|
|
//---
|
|
public:
|
|
CTimeCounter(void);
|
|
~CTimeCounter(void);
|
|
//--- Установка шага и временного интервала
|
|
void SetParameters(const uint step, const uint pause);
|
|
//--- Проверяет прохождение указанного временного интервала
|
|
bool CheckTimeCounter(void);
|
|
//--- Обнуление счётчика
|
|
void ZeroTimeCounter(void) {
|
|
m_time_counter = 0;
|
|
}
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| Constructor |
|
|
//+------------------------------------------------------------------+
|
|
CTimeCounter::CTimeCounter(void) : m_step(16),
|
|
m_pause(1000),
|
|
m_time_counter(0)
|
|
|
|
{
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Destructor |
|
|
//+------------------------------------------------------------------+
|
|
CTimeCounter::~CTimeCounter(void) {
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Установка шага и временного интервала |
|
|
//+------------------------------------------------------------------+
|
|
void CTimeCounter::SetParameters(const uint step, const uint pause) {
|
|
m_step = step;
|
|
m_pause = pause;
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Проверяет прохождение указанного временного интервала |
|
|
//+------------------------------------------------------------------+
|
|
bool CTimeCounter::CheckTimeCounter(void) {
|
|
//--- Увеличим счётчик, если не прошли указанный временной интервал
|
|
if(m_time_counter < m_pause) {
|
|
m_time_counter += m_step;
|
|
return(false);
|
|
}
|
|
//--- Обнулить счётчик
|
|
m_time_counter = 0;
|
|
return(true);
|
|
}
|
|
//+------------------------------------------------------------------+
|