Issue #122: Added event OnLockTicksEvent (MT5)

This commit is contained in:
vdemydiuk
2018-06-06 12:46:24 +03:00
parent 1a5882b75a
commit 897892dc89
8 changed files with 75 additions and 13 deletions
BIN
View File
Binary file not shown.
+30 -6
View File
@@ -96,9 +96,9 @@ void OnTick()
MqlRates rates_array[];
CopyRates(symbol, Period(), 1, 1, rates_array);
MtTimeBar* timeBar = new MtTimeBar(symbol, rates_array[0]);
SendMtEvent(LAST_TIME_BAR_EVENT, timeBar);
delete timeBar;
MtTimeBarEvent* time_bar = new MtTimeBarEvent(symbol, rates_array[0]);
SendMtEvent(ON_LAST_TIME_BAR_EVENT, time_bar);
delete time_bar;
lastbar_time_changed = true;
}
@@ -119,6 +119,10 @@ void OnTick()
(BacktestingLockTicks == LOCK_EVERY_CANDLE && lastbar_time_changed))
{
_is_ticks_locked = true;
MtLockTickEvent * lock_tick_event = new MtLockTickEvent(symbol);
SendMtEvent(ON_LOCK_TICKS_EVENT, lock_tick_event);
delete lock_tick_event;
}
OnTimer();
@@ -7283,7 +7287,8 @@ enum MtEventTypes
ON_TRADE_TRANSACTION_EVENT = 1,
ON_BOOK_EVENT = 2,
ON_TICK_EVENT = 3,
LAST_TIME_BAR_EVENT = 4
ON_LAST_TIME_BAR_EVENT = 4,
ON_LOCK_TICKS_EVENT = 5
};
class MtEvent
@@ -7359,10 +7364,10 @@ private:
MqlTick _tick;
};
class MtTimeBar: public MtEvent
class MtTimeBarEvent: public MtEvent
{
public:
MtTimeBar(string symbol, const MqlRates& rates)
MtTimeBarEvent(string symbol, const MqlRates& rates)
{
_symbol = symbol;
_rates = rates;
@@ -7382,6 +7387,25 @@ private:
MqlRates _rates;
};
class MtLockTickEvent: public MtEvent
{
public:
MtLockTickEvent(string symbol)
{
_symbol = symbol;
}
virtual JSONObject* CreateJson()
{
JSONObject *jo = new JSONObject();
jo.put("Instrument", new JSONString(_symbol));
return jo;
}
private:
string _symbol;
};
void SendMtEvent(MtEventTypes eventType, MtEvent* mtEvent)
{
#ifdef __DEBUG_LOG__