UTE/Strategy/NewTickDetector.mqh
super.admin bd7e405a90 convert
2025-05-30 16:34:43 +02:00

71 lines
3.1 KiB
MQL5

//+------------------------------------------------------------------+
//| NewTickDetector.mqh |
//| Copyright 2016, Vasiliy Sokolov, St-Petersburg, Russia |
//| https://www.mql5.com/ru/users/c-4 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Vasiliy Sokolov."
#property link "https://www.mql5.com/ru/users/c-4"
#include <Object.mqh>
//+------------------------------------------------------------------+
//| Определитель нового тика |
//+------------------------------------------------------------------+
class CTickDetector : public CObject
{
private:
string m_symbol; // Символ, по которому требуется отслеживать приход нового тика.
MqlTick m_last_tick; // Последний запомненный тик.
public:
CTickDetector(void);
CTickDetector(string symbol);
string Symbol(void);
void Symbol(string symbol);
bool IsNewTick(void);
};
//+------------------------------------------------------------------+
//| Конструктор по-умолчанию устанавливает текущий таймфрейм |
//| и инструмент. |
//+------------------------------------------------------------------+
CTickDetector::CTickDetector(void)
{
m_symbol=_Symbol;
}
//+------------------------------------------------------------------+
//| Создает объект с предустановленным символом и таймфремом. |
//+------------------------------------------------------------------+
CTickDetector::CTickDetector(string symbol)
{
m_symbol=symbol;
}
//+------------------------------------------------------------------+
//| Устанавливает название инструмента, образование нового тика |
//| на котором надо отслеживать. |
//+------------------------------------------------------------------+
void CTickDetector::Symbol(string symbol)
{
m_symbol=symbol;
}
//+------------------------------------------------------------------+
//| Возвращает название инструмента, образование нового тика |
//| на котором отслеживается. |
//+------------------------------------------------------------------+
string CTickDetector::Symbol(void)
{
return m_symbol;
}
//+------------------------------------------------------------------+
//| Возвращает истину, если на заданном инструменте и таймфрейме |
//| появился новый тик. |
//+------------------------------------------------------------------+
bool CTickDetector::IsNewTick(void)
{
MqlTick tick;
SymbolInfoTick(m_symbol,tick);
if(tick.last!=m_last_tick.last ||
tick.time!=m_last_tick.time)
{
m_last_tick=tick;
return true;
}
return false;
}
//+------------------------------------------------------------------+