MT5 и скорость в боевом исполнении - страница 82

 
fxsaber:

Не буду отвечать на посты, смысл которых мне непонятен.

лень, долго описывать,отмена

 
fxsaber:

Если увеличить количество символов, то будет видна и проблема завышенного потребления памяти.

Увеличил.

2021.02.05 16:48:47.862 CopyTicks_bug024 (EURUSD,D1)    Benchmark.mqh: TimeAvg[GetMicrosecondsCount()] = 0 mcs.
2021.02.05 16:48:47.862 CopyTicks_bug024 (EURUSD,D1)    Benchmark.mqh is On.
2021.02.05 16:48:49.052 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 183617 mcs.
2021.02.05 16:48:49.052 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 128 mcs.
2021.02.05 16:48:50.018 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 164117 mcs.
2021.02.05 16:48:50.018 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 119 mcs.
2021.02.05 16:48:50.995 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 142599 mcs.
2021.02.05 16:48:50.995 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 120 mcs.
2021.02.05 16:48:51.874 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 8822 mcs.
2021.02.05 16:48:51.874 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 71 mcs.
2021.02.05 16:48:53.047 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 192544 mcs.
2021.02.05 16:48:53.047 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 176 mcs.
2021.02.05 16:48:54.097 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 236094 mcs.
2021.02.05 16:48:54.097 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 130 mcs.
2021.02.05 16:48:55.078 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 225878 mcs.
2021.02.05 16:48:55.078 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 128 mcs.
2021.02.05 16:48:55.877 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 27860 mcs.
2021.02.05 16:48:55.877 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 90 mcs.
2021.02.05 16:48:56.884 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 37563 mcs.
2021.02.05 16:48:56.885 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 104 mcs.
2021.02.05 16:48:57.901 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 35817 mcs.
2021.02.05 16:48:57.901 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 92 mcs.
2021.02.05 16:48:58.913 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 584 in OnTimer: CopyTicks_Test()] = 50650 mcs.
2021.02.05 16:48:58.913 CopyTicks_bug024 (EURUSD,D1)    Alert: Bench_Stack = 0, 1 <= Time[CopyTicks_bug024.mq5 585 in OnTimer: CopyTicksRange_Test()] = 121 mcs.
2021.02.05 16:48:58.913 CopyTicks_bug024 (EURUSD,D1)    ExpertRemove() function called
2021.02.05 16:48:58.913 CopyTicks_bug024 (EURUSD,D1)    SymbolsTotal(true) = 61
2021.02.05 16:48:58.935 CopyTicks_bug024 (EURUSD,D1)    TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1476
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MT5 и скорость в боевом исполнении

Dzmitry Manannikov, 2021.02.05 14:50

Увеличил.

2021.02.05 16:48:58.913 CopyTicks_bug024 (EURUSD,D1)    SymbolsTotal(true) = 61
2021.02.05 16:48:58.935 CopyTicks_bug024 (EURUSD,D1)    TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1476

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MT5 и скорость в боевом исполнении

Dzmitry Manannikov, 2021.02.05 14:38

2021.02.05 16:23:17.921 CopyTicks_bug024 (EURUSD,D1)    SymbolsTotal(true) = 3
2021.02.05 16:23:17.929 CopyTicks_bug024 (EURUSD,D1)    TerminalInfoInteger(TERMINAL_MEMORY_USED) = 657
Спасибо. Вместе даже лучше. Хорошо видно, как возросло потребление, когда всего лишь берутся последние тики и никто не лезет в дебри тиковой истории.
 
мой тест
 
Konstantin Aleksandrov:
мой тест

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

 
Benchmark.mqh: TimeAvg[GetMicrosecondsCount()] = 0 mcs.
Benchmark.mqh is On.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 18203515 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 153 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 510201 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 157 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 463460 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 148 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 463374 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 150 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 457153 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 174 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 491020 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 168 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 491319 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 151 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 474759 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 149 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 468541 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 149 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 465631 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 154 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 63 in OnTimer: CopyTicks_Test()] = 486809 mcs.
Alert: Bench_Stack = 0, 1 <= Time[xxx.mq5 64 in OnTimer: CopyTicksRange_Test()] = 153 mcs.
ExpertRemove() function called
SymbolsTotal(true) = 47
TerminalInfoInteger(TERMINAL_MEMORY_USED) = 897
CopyTicks тут сильно страдает, да. Поэтому я везде использую именно Range, хоть и приходится памятью жертвовать.
 

Я чего-то не понимаю, наверное. Вот так с нулевым пингом происходит выставление отложек.

Если нужно, могу лог скинуть в ЛС. Получается, что сильно тормозит OnTradeTransaction. Как исправить?


Такая машина.


Укладывание в 1.5 мс случается. Но разброс значений катастрофический. Повторюсь, если нужно, полный лог готов предоставить в ЛС. Боевой счет, не демо.

 
fxsaber:

сильно тормозит OnTradeTransaction. Как исправить?

Сделал запрос серверных логов у брокера. Там за 0.3 мс все происходит.

Получается, что, действительно, Терминал захлебывается в своих же очередях. И ничего не сделать!


ЗЫ Посмотрел логи с другой более мощной машины, где пинг сотые доли миллисекунды. Запущен только один Терминал. Ситуация аналогичная. 50 мс на выставление отложки! Всего лишь поднял торговую активность и все посыпалось.


ЗЫЫ Может ли помочь переход на Linux?

Косяки терминала в Linux
Косяки терминала в Linux
  • 2021.02.13
  • www.mql5.com
Добрый вечер. У меня терминал запущен под вайном в Linux (OpenSuse). На данный момент, всё работает корректно, но я наблюдаю некоторые неудобства...
 
fxsaber:

Сделал запрос серверных логов у брокера. Там за 0.3 мс все происходит.

Получается, что, действительно, Терминал захлебывается в своих же очередях. И ничего не сделать!


ЗЫ Посмотрел логи с другой более мощной машины, где пинг сотые доли миллисекунды. Запущен только один Терминал. Ситуация аналогичная. 50 мс на выставление отложки! Всего лишь поднял торговую активность и все посыпалось.


ЗЫЫ Может ли помочь переход на Linux?

Замерял скорость приказов на линуксе, одинаово

у меня лимитки за 97-98 мс уходят при пинге 94, в том же месте

 
fxsaber:

Сделал запрос серверных логов у брокера. Там за 0.3 мс все происходит.

Получается, что, действительно, Терминал захлебывается в своих же очередях. И ничего не сделать!


ЗЫ Посмотрел логи с другой более мощной машины, где пинг сотые доли миллисекунды. Запущен только один Терминал. Ситуация аналогичная. 50 мс на выставление отложки! Всего лишь поднял торговую активность и все посыпалось.


ЗЫЫ Может ли помочь переход на Linux?

По моему ощущению, МТ5 2755 под wine 6.0.0 Ubuntu 18.04 xfce тормозит больше, чем MT5 1755 под WinXP.

И то, и другое - kvm-виртуалки в Debian 10 Buster ( i5-2500K, 32GB, ssd RAID-1).