функция OnCalculate и OnTick - страница 3

 
komposter:

стакан по инструменту имеется.

Вот в этом и есть разница. В моем примере у велтрейда стакан "липовый" (без объемов), а у альпарей - с объемами.

Пробую еще демку робо, и закругляюсь.

 

Нет, предположение про стакан оказалось неверным. У робо-демо тоже "липовый" стакан, но разница накапливается:

2013.10.28 02:58:39 eTicksCount (EURUSD,M1) Количество тиков OnTick() = 2086
2013.10.28 02:58:39 iTicksCount (EURUSD,M1) Количество тиков OnCalculate() = 3258
2013.10.28 02:58:39 iTicksCount (EURUSD,M1) Количество тиков OnCalculate() = 3257


Следующим шагом было бы сохранение и сравнение Бид/Аск (или всего стакана) из индикатора и из эксперта, но мне уже лень. Если кто-то сделает - поделитесь результатами.

 
komposter:

Нет, предположение про стакан оказалось неверным. У робо-демо тоже "липовый" стакан, но разница накапливается:


Следующим шагом было бы сохранение и сравнение Бид/Аск (или всего стакана) из индикатора и из эксперта, но мне уже лень. Если кто-то сделает - поделитесь результатами.

Вот. Запустил на счете  РеальныйЦентовыйFix(который без стакана цен) МТ4

Начали подсчет.

 12:10:07 Expert777 EURUSD,H1: Количество тиков (Индикатор) -  2       Ask -  1.3812        Bid 1.381

12:10:07 Expert777 EURUSD,H1: Количество тиков (советник) -  2     Ask -  1.3812      Bid  -1.381

 

Закончили подсчет.

 13:31:40 Expert777 EURUSD,H1: Количество тиков (Индикатор) -  363       Ask -  1.3805        Bid 1.3803

13:31:40 Expert777 EURUSD,H1: Количество тиков (советник) -  363     Ask -  1.3805      Bid  -1.3803

13:31:44 Expert777 EURUSD,H1: Количество тиков (Индикатор) -  364       Ask -  1.3804        Bid 1.3802

13:31:44 Expert777 EURUSD,H1: Количество тиков (советник) -  364     Ask -  1.3804      Bid  -1.3802

13:31:45 Expert777 EURUSD,H1: Количество тиков (Индикатор) -  365       Ask -  1.3805        Bid 1.3803

13:31:45 Expert777 EURUSD,H1: Количество тиков (советник) -  365     Ask -  1.3805      Bid  -1.3803

Получается что все дело в стакане цен? 

 
Riko888:

Получается что все дело в стакане цен? 

Все дело в особенностях датафида и активности рынка. Стакан - лишь один из вариантов множества разных датафидов, где пакетные апдейты являются частой ситуацией.

В какой-то момент прилетает пачка тиков (2-3-N), что приводит к последовательным N вызовам индикатора и только 1 вызову эксперта.

У большинства брокеров спокойные котировки и пакет можно получить разве что на сильных движениях рынка.

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
Riko888:

Вот. Запустил на счете  РеальныйЦентовыйFix(который без стакана цен) МТ4

Запустите такой вариант кода на счете, где есть расхождения. Посмотрим, какие тики пропускаются (меняется ли в них цена).
 
komposter:
Запустите такой вариант кода на счете, где есть расхождения. Посмотрим, какие тики пропускаются (меняется ли в них цена).

Запустил на счете где есть стакан цен ECN_Demo MT5.  Обращаю ваше внимание на время .   Ордер под номером  Indicators777"4" можно считать вторым ,"5"-третим ,"6"-четвертым и.т.д. Так-как он открылся одновременно с Experts777"2"

Начали... 

 IQ 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 4   Ask - 1.37459   Bid - 1.37449

FS 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 5   Ask - 1.37459   Bid - 1.37449

ON 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 6   Ask - 1.37459   Bid - 1.37449

LH 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 7   Ask - 1.37459   Bid - 1.37449

MJ 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 8   Ask - 1.37459   Bid - 1.37449

RD 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 9   Ask - 1.37459   Bid - 1.37449

ND 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 10   Ask - 1.37459   Bid - 1.37449

KR 0 23:21:39 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 11   Ask - 1.37459   Bid - 1.37449

LN 0 23:21:39 Experts777 (EURUSD.e,H1) Количество тиков от советника - 2   Ask - 1.37459   Bid - 1.37449

 

 Закончили...

 ER 0 00:32:43 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3190   Ask - 1.37486   Bid - 1.37482

PP 0 00:32:43 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3191   Ask - 1.37486   Bid - 1.37482

CS 0 00:32:43 Experts777 (EURUSD.e,H1) Количество тиков от советника - 1166   Ask - 1.37486   Bid - 1.37482

JO 0 00:32:44 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3192   Ask - 1.37486   Bid - 1.3748

II 0 00:32:44 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3193   Ask - 1.37486   Bid - 1.3748

DK 0 00:32:44 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3194   Ask - 1.37486   Bid - 1.3748

CE 0 00:32:44 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3195   Ask - 1.37486   Bid - 1.3748

FG 0 00:32:44 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3196   Ask - 1.37486   Bid - 1.3748

ML 0 00:32:44 Experts777 (EURUSD.e,H1) Количество тиков от советника - 1167   Ask - 1.37486   Bid - 1.3748

KO 0 00:32:55 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3197   Ask - 1.37486   Bid - 1.37482

HM 0 00:32:55 Indicators777 (EURUSD.e,H1) Количество тиков от индикатора - 3198   Ask - 1.37486   Bid - 1.37482

FQ 0 00:32:55 Experts777 (EURUSD.e,H1) Количество тиков от советника - 1168   Ask - 1.37486   Bid - 1.37482

 
Интересно , а что означают крайние аббревиатуры , типа ( FQ,KP ,CS) и другие?
 
Riko888:

Запустил на счете где есть стакан цен ECN_Demo MT5. 

То есть, бид и аск в этих "дополнительных тиках" не меняется.

Остается одна догадка - что-то меняется в стакане.

 

Но не очень понятно, надо ли это индикатору... Может, сделать подписку на такие события опциональной? Зачем гонять индикаторы в 5 раз больше, если 99.9% из них стакан не анализируют? Или расчет на то, что они экономные, и поэтому такие вызовы погоды не делают?

Причина обращения: