71 lines
3.1 KiB
MQL5
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;
|
|
}
|
|
//+------------------------------------------------------------------+
|