Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Ping - индикатор для MetaTrader 5
- Просмотров:
- 3415
- Рейтинг:
- Опубликован:
- 2017.11.16 11:32
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Для торговли важным параметром является актуальность текущей цены. На него влияет множество факторов, самый популярный из которых - сетевой пинг между терминалом и торговым сервером.
Но часто из виду упускается другой параметр: так называемый "внутренний пинг терминала" - дополнительный лаг котировок внутри самого терминала (платформы). Даже при нулевом сетевом пинге это запаздывание может быть существенным.
Данный индикатор показывает динамику изменения этого параметра, который вычисляется следующим образом:
#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280 // Получение свежего тика с величиной внутреннего лага котировки (в миллисекундах) bool SymbolInfoTick( const string &Symb, MqlTick &Tick, double &Ping ) { static const bool IsTester = (MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION)); static MqlTick PrevTick = {0}; static ulong PrevTime = 0; const ulong NowTime = IsTester ? 0 : GetMicrosecondCount(); const bool Res = SymbolInfoTick(Symb, Tick); if ((!IsTester) && Res) { if (_R(Tick) != PrevTick) { Ping = PrevTime ? MathAbs(Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1e3) : 0; PrevTime = NowTime; PrevTick = Tick; } else Ping = 0; } return(Res); }
На приведенном скриншоте хорошо видно, что вычисляемая величина далеко не мала (чистый терминал, один чарт), и погоня за нулевым сетевым пингом может иногда быть самообманом при торговле или некоторых видах анализа в MetaTrader 5.
Особенности
- Временной лаг котировок вычисляется в миллисекундах;
- Индикатор минимально потребляет вычислительные ресурсы терминала;
- При сбросе индикатора (смена ТФ, символа и т.д.) накопленные данные теряются (БД не ведется);
- После удаления индикатора его комментарий на чарте остается;
- Невозможно создание такого индикатора для MetaTrader 4 - недоступны данные по тикам с точностью до мс;
- SymbolInfoTick в индикаторах требует "разогрева" в виде нескольких первых Calculate-событий;
- Индикатор может служить шаблоном для реал-тайм визуализации любых показателей - нужно заменить только одну строку;
-
Для компиляции индикатора требуется наличие библиотеки - используется для сравнения MqlTick-структур при вычислении лага:
#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280
-
Индикатор имеет два вида отображения, в зависимости от этой строки:
#define HISTOGRAM_VIEW // Закомментировать, чтобы сменить вид индикатора с гистограмм на свечи
Текущий индикатор, конечно, показывает лаг цен (далее пинг), связанный с Calculate-событием. Как оказалось, существует настолько много факторов серьезнейшим образом влияющих на пинг, что могут возникнуть сомнения в целесообразности использования каких-либо индикаторов в ТС (и анализе). Конечно, NewTick-событие слабее подвержено негативным влияниям, но и там пинг совсем не мал (если замерять в советнике), что может свести иногда к некоторой бессмысленности скоростные показатели платформы.
Семафорный сигнальный индикатор с использованием Average True Range.
Exp_Stopreversal_TmЭксперт на основе сигналов индикатора Stopreversal с возможностью жесткой фиксации временного диапазона торговли.
Советник по сигналам индикатора iRSI (Relative Strength Index, RSI).
OsMaSter v0Советник на базе сигналов индикатора iOsMA (Moving Average of Oscillator, OsMA).