Jeff_Max_Trading/MTLibrary/MTTimer.mqh

79 lines
2.8 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 15:02:04 +02:00
//+------------------------------------------------------------------+
//| 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;
}
};
//+------------------------------------------------------------------+