Новая версия платформы MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике - страница 4

 

Можно ожидать настройку расцветки стакана? Чтобы самостоятельно задавать цвет в ленте сделок для BUY, SELL и N/A?

 

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


 
Sergey Golubev:

Может это тоже самое ... но вот китайцы рапортуют (два поста там на эту тему, машинный перевод с китайского):



У меня тоже самое. 

Не знаю в чем дело. 


При чем на рабочем компьютере все ок. 

у некоторых пользователей пропали звуки.... 

 
Vladislav Andruschenko:


У меня тоже самое. 

Не знаю в чем дело. 


При чем на рабочем компьютере все ок. 

у некоторых пользователей пропали звуки.... 

Уже исправили, будет в бете завтра.
 
Renat Fatkhullin:
Уже исправили, будет в бете завтра.


Спасибо. 

 

Я что-то делаю не так или есть место для улучшения? Последняя релизная версия МТ5.

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

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

traveller00, 2021.03.01 21:41

Мониторю около 12 часов, но уже заметны лаги, переходящие все границы.

Time[Main.mqh 162 in ProcessTicks: CopyTicksRange(_Symbol,OldTicks,COPY_TICKS_INFO,LastTickParsed.time_msc)] = 8589203 mcs.

3 советника, каждый на своём чарте, все на 1 символе, запрашивают на новом пришедшем тике старые тики с прошлого тика через CopyTicksRange. И лаг составляет почти 9 секунд. И, похоже, это не предел. Скорее всего хранилище тиков является общем ресурсом, к которому синхронизируется доступ, но даже при очень ужасной синхронизации не должны быть такие времена.

Кто-то скажет, что это разовый глюк. За эти 12 часов мониторинга к сожалению выходов за 1 секунду было больше сотни. И это уже не похоже на разовые всплески. Похоже, что в это время приходило часто подряд несколько тиков, что и вызывает такие всплески.

Даже если закрыть глаза на то, что 3 советника подрались за общий ресурс, поглядим на другой мониторинг:

ProcessTicks: CopyTicksRange(_Symbol,OldTicks,COPY_TICKS_INFO,LastTickParsed.time_msc)] = 1401285 mcs.

Тут на символе был только 1 советник. И всё равно полторы секунды. Он был уже не один, на других символах были и другие, но вроде же многопоточность? Или тики для разных символов всё равно могут тормозить друг друга?

Это базовый функционал для базовых советников. Платформа же позиционируется как алготрейдерская. При этом базовый функционал вызывает сильные вопросы. Большая просьба посмотреть ещё раз на это.  Практически уверен, что где-то можно улучшить. Либо был бы очень благодарен за возможность получить последние тики с момента вызова функции, как предлагается тут 


 
traveller00:

Я что-то делаю не так или есть место для улучшения? Последняя релизная версия МТ5.


Отсутствуют важные технические детали и логи.

Какие? Подумайте сами и половина вопросов сразу пропадет.

Мы не рассматриваем плохо подготовленные вопросы.

 
Renat Fatkhullin:

Отсутствуют важные технические детали и логи.

Какие? Подумайте сами и половина вопросов сразу пропадет.

Мы не рассматриваем плохо подготовленные вопросы.

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

#include <fxsaber\Benchmark\Benchmark.mqh>

MqlTick LastTickParsed;

void OnTick()
{
  if(LastTickParsed.time_msc==0)
    LastTickParsed.time_msc=(long)((TimeCurrent()/60/60/24)*60*60*24-14*24*60*60)*1000;

  MqlTick OldTicks[];
  int OldTicksCount=_B(CopyTicksRange(_Symbol,OldTicks,COPY_TICKS_INFO,LastTickParsed.time_msc),50000);
  ...
  ParseTicks();
  ...
  LastTickParsed=OldTicks[OldTicksCount-1];
}

Другими словами, на каждом новом тике идёт подгрузка всех тиков, что пришли с прошлого обработанного тика. Есть несколько таких советников, каждый крутится на своём чарте, все работают на одном символе. Соответственно когда приходит новый тик, они все бросаются подгружать историю и иногда сильно на этом застревают. Похоже, когда новые тики приходят часто, несколько тиков через каждые 100мс или меньше.

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

На символе, где были лаги в 9 секунд, работало 3 советника. Всего советников 25. Машина-4 физических ядра+HT 3.5ГГц, 32 Гб RAM. Предвосхищая упрёк, что я забил весь процессор советниками, я поставил мониторинг на все основные моменты, 95% алёртов-это CopyTicksRange, остальные места практически не вызывают вопросов.

Ещё какая-то информация нужна?

 
traveller00:

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

Другими словами, на каждом новом тике идёт подгрузка всех тиков, что пришли с прошлого обработанного тика. Есть несколько таких советников, каждый крутится на своём чарте, все работают на одном символе. Соответственно когда приходит новый тик, они все бросаются подгружать историю и иногда сильно на этом застревают. Похоже, когда новые тики приходят часто, несколько тиков через каждые 100мс или меньше.

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

На символе, где были лаги в 9 секунд, работало 3 советника. Всего советников 25. Машина-4 физических ядра+HT 3.5ГГц, 32 Гб RAM. Предвосхищая упрёк, что я забил весь процессор советниками, я поставил мониторинг на все основные моменты, 95% алёртов-это CopyTicksRange, остальные места практически не вызывают вопросов.

Ещё какая-то информация нужна?

Что происходило в моменты выбросов на компьютере? Что с другими программами на компьютере и остальными ресурсами?

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

Нельзя разбирать вопросы при таком уровне детализации.

 
Renat Fatkhullin:

Что происходило в моменты выбросов на компьютере? Что с другими программами на компьютере и остальными ресурсами?

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

Нельзя разбирать вопросы при таком уровне детализации.

Других программ не запущено. Винда 8 x64, всё лишнее отключено, внезапно ничего всплыть не должно было. Процессор обычно грузится не выше 10%, памяти больше половины свободно. SSD, порядка 5Гб свободных есть. Что ещё предоставить, даже не знаю.

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