79 lines
2.8 KiB
MQL5
79 lines
2.8 KiB
MQL5
|
//+------------------------------------------------------------------+
|
||
|
//| 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;
|
||
|
}
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
//+------------------------------------------------------------------+
|