class TICK { public: static MqlTick Prev; ~TICK() { ::SymbolInfoTick(_Symbol, TICK::Prev); } }; static MqlTick TICK::Prev = {}; void OnTick() { const TICK PrevTick; Print(SymbolInfoDouble(_Symbol, SYMBOL_BID)); Print(TICK::Prev.bid); Print("--------"); }
1.04761 1.04758 -------- 1.04762 1.04761 -------- 1.04761 1.04762 --------
Пожалуйста, подскажите, есть ли какая-то простая возможность, находясь в обработчике OnTick, получить данные (цены bid и ask) с предыдущего тика (если он был).
Изначально стоит задача узнать, произошло ли с приходом нового тика пересечение ценой определённого уровня по отношению к предыдущему тику. Предварительно делается проверка на то, что это не первый поступивший тик с момента запуска советника.
Нужно ли для решения этой задачи сохранять на каждом новом тике данные предыдущего тика в статических переменных или терминал где-то хранит эти данные и можно получить цены bid и ask c предыдущего тика одним запросом?
Самое простое получить последние два тика в массив и проверить желаемое.
int CopyTicks( string symbol_name, // имя символа MqlTick& ticks_array[], // массив для приёма тиков uint flags=COPY_TICKS_ALL, // флаг, определяющий тип получаемых тиков ulong from=0, // дата, начиная с которой запрашиваются тики uint count=0 // количество тиков, которые необходимо получить );
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пожалуйста, подскажите, есть ли какая-то простая возможность, находясь в обработчике OnTick, получить данные (цены bid и ask) с предыдущего тика (если он был).
Изначально стоит задача узнать, произошло ли с приходом нового тика пересечение ценой определённого уровня по отношению к предыдущему тику. Предварительно делается проверка на то, что это не первый поступивший тик с момента запуска советника.
Нужно ли для решения этой задачи сохранять на каждом новом тике данные предыдущего тика в статических переменных или терминал где-то хранит эти данные и можно получить цены bid и ask c предыдущего тика одним запросом?