//+------------------------------------------------------------------+ //| MTTimer.mqh | //| MRBC | //| | //+------------------------------------------------------------------+ #property copyright "MRBC" #property version "1.0.0" enum TimeSlot { TS_every_4_hrs = 3600*4, TS_every_12_hrs = 3600*12, TS_every_24_hrs = 3600 * 24, }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class MTTimer { private: datetime m_base_time; datetime m_alert_time; bool m_has_alert; public: bool has_triggered() { datetime t_time= TimeCurrent(); return TimeCurrent() >= m_alert_time; } bool has_set_alert() { return m_has_alert; } void set_base_time(datetime time) { m_base_time = time; } void set_alert_time(datetime time) { m_alert_time = time; } void reset_alert_set() { m_has_alert = false;} void roll_base_time() { m_base_time = m_alert_time; } void set_alert_from_base_24hrs() { m_alert_time = (m_base_time + TS_every_24_hrs); m_has_alert = true;} void set_alert_from_base_12hrs() { m_alert_time = (m_base_time + TS_every_12_hrs); m_has_alert = true;} void set_alert_from_base_4hrs() { m_alert_time = (m_base_time + TS_every_4_hrs); m_has_alert = true;} datetime get_24_from_now() { return TimeCurrent() + TS_every_24_hrs; } datetime get_12_from_now() { return TimeCurrent() + TS_every_12_hrs; } datetime get_4_from_now() { return TimeCurrent() + TS_every_4_hrs; } void set_alert_24hrs() { m_alert_time = get_24_from_now(); m_has_alert = true;} void set_alert_12hrs() { m_alert_time = get_12_from_now(); m_has_alert = true;} void set_alert_4hrs() { m_alert_time = get_4_from_now(); m_has_alert = true;} void MTTimer(datetime base_time, datetime alert_time) { m_alert_time = alert_time; m_base_time = base_time; m_has_alert = false; } void MTTimer(datetime base_time) { m_base_time = base_time; m_alert_time = -1; m_has_alert = false; } void MTTimer() { m_base_time = TimeCurrent(); m_alert_time = -1; m_has_alert = false; } }; //+------------------------------------------------------------------+