Может кто-то сталкивался, в чем может быть причина таких зависаний или торможений?
Первое что приходит на ум - баг в коде из-за которого запускается расчет который длится очень долго по времени (например в цикле от 1 до 10 из-за бага перебирается весь int)
Первое что приходит на ум - баг в коде из-за которого запускается расчет который длится очень долго по времени (например в цикле от 1 до 10 из-за бага перебирается весь int)
Вроде, в справке, написано, что зацикленный эксперт не может нарушить работу других программ. А тут все замирает, потом все снова начинает работать.
Параллельно работает 7 терминалов МТ4 и три терминала МТ5. Может мощностей не хватает ?
Множество TerminalA - терминалы, которые имеют данные о пинге (xxx ms) до access points.
Множество TerminalB - терминалы, которые не имеют данных о пинге (n/a) до access points.
Терминалы из обоих множеств могут быть подключены при этом к одной и той же Access Point и одинаково торговать - OrderSend отправляются и принимаются ответы.
TerminalA минимально грузит процессор.
TerminalB:
максимально грузит CPU.
после перезагрузки остается быть TerminalB.
После "Пересканировать сеть" (вручную через GUI) меняет тип на TerminalA. Соответственно, перестает грузить CPU.
Если столкнулись с необъяснимо высокой загрузкой CPU, попробуйте сделать перескан. Мне это помогло все TerminalB сделать TerminalA.
Но косвенные признаки дают повод говорить об опережении MT5 над MT4. Причины такого положения дел - только гадать.
Что знаю про клиентов:
>95% сделок (~99% оборота) - автоторговля.
У некоторых клиентов MT5-терминал выжирает > 10 гигов памяти (исторические кеши), MT4 при той же торовле < 1 гига. Но несмотря на это, готовы переплачивать за более мощный VPS, но торговать именно на MT5, а не на четверке.
Почти все скальперы. Основной профит приходится на вечерне-ночную флетовую торговлю.
Зашкаливающая (если сравнивать с другими брокерами) активность (в плюс) в период ролловера - огромных спредов.
Мониторьте расхождение между TimeLocal и TimeCurrent.
Спасибо за подсказку. Поймали такую ситуацию. В OnTimer() отслеживал расхождение между TimeLocal() и TimeCurrent()
Со вчерашнего вечера в 21:58 TimeCurrent() стал возвращать одно и то же время. Отпустило сегодня в 00:08. Т.е. чуть более двух часов была такая ситуация со всех символов.
Не удаленной машине (не VPS) с хорошими характеристиками и пингом до торгового сервера <4 мс увидел много случаев регулярных тормозов при просмотре логов Терминалов (b2958).
Даже для пинга 4 мс это многовато, но все же ни в какое сравнение не идет с восемью секундами.
На машине работают только MT5-терминалы и средняя нагрузка на CPU ~1%. Анализ показал, что во время тормозов нагрузка вплесками доходит до 100% при сильной активности рынка и торговых приказов. Как итог, ответ от торгового сервера до терминала длится ОЧЕНЬ долго. По случаям тормозов запрашивал у брокера информацию. На стороне торгового сервера все мгновенно и приказ доходит от терминала до сервера по первой строке modify. Т.е. отправка приказа не тормозит, лаги случаются при получении ответа в терминал.
Сомневаюсь, что разработчики смогут здесь что-то улучшить. Кто ОЧЕНЬ активно торгует, поделитесь наблюдениями этой темы по своим логам.
Мониторьте расхождение между TimeLocal и TimeCurrent.
И если TimeLocal() будет в таких ситуациях отставать, причина в операционной системе?
TimeLocal не отстает. Расхождения - брокер.
Может кто-то сталкивался, в чем может быть причина таких зависаний или торможений?
Первое что приходит на ум - баг в коде из-за которого запускается расчет который длится очень долго по времени (например в цикле от 1 до 10 из-за бага перебирается весь int)
TimeLocal не отстает. Расхождения - брокер.
Первое что приходит на ум - баг в коде из-за которого запускается расчет который длится очень долго по времени (например в цикле от 1 до 10 из-за бага перебирается весь int)
Вроде, в справке, написано, что зацикленный эксперт не может нарушить работу других программ. А тут все замирает, потом все снова начинает работать.
Параллельно работает 7 терминалов МТ4 и три терминала МТ5. Может мощностей не хватает ?
Вроде, в справке, написано, что зацикленный эксперт не может нарушить работу других программ. А тут все замирает, потом все снова начинает работать.
Да, странно, я увидел только вкладку экспертов, логи не увидел в первый раз.
Параллельно работает 7 терминалов МТ4 и три терминала МТ5. Может мощностей не хватает ?
Если так, то скорее всего тормозили бы все терминалы. Ну и плюс загрузка проца должна просто шкалить на 100% в этом случае
Множество TerminalA - терминалы, которые имеют данные о пинге (xxx ms) до access points.
Множество TerminalB - терминалы, которые не имеют данных о пинге (n/a) до access points.
Терминалы из обоих множеств могут быть подключены при этом к одной и той же Access Point и одинаково торговать - OrderSend отправляются и принимаются ответы.
TerminalA минимально грузит процессор.
TerminalB:
Если столкнулись с необъяснимо высокой загрузкой CPU, попробуйте сделать перескан. Мне это помогло все TerminalB сделать TerminalA.
Не знаю причин, но, похоже, у моего брокера торговый оборот, количество сделок и количество активных торговых счетов на MT5 больше, чем на MT4.
К сожалению, есть только суммарная информация по платформам.
Но косвенные признаки дают повод говорить об опережении MT5 над MT4. Причины такого положения дел - только гадать.
Что знаю про клиентов:
Мониторьте расхождение между TimeLocal и TimeCurrent.
Спасибо за подсказку. Поймали такую ситуацию. В OnTimer() отслеживал расхождение между TimeLocal() и TimeCurrent()
Со вчерашнего вечера в 21:58 TimeCurrent() стал возвращать одно и то же время. Отпустило сегодня в 00:08. Т.е. чуть более двух часов была такая ситуация со всех символов.
Не удаленной машине (не VPS) с хорошими характеристиками и пингом до торгового сервера <4 мс увидел много случаев регулярных тормозов при просмотре логов Терминалов (b2958).
Взял первый попавшийся для демонстрации здесь.
2022.01.18 23:00:09.375 Trades '': modify order #7133346 sell limit 0.23 USDCHF at 0.91744 sl: 0.00000 tp: 0.91709 -> 0.91741, sl: 0.00000 tp: 0.91709 2022.01.18 23:00:17.752 Trades '': accepted modify order #7133346 sell limit 0.23 USDCHF at 0.91741 sl: 0.00000 tp: 0.91709 -> 0.91741, sl: 0.00000 tp: 0.91709 2022.01.18 23:00:17.769 Trades '': modify #7133346 sell limit 0.23 USDCHF -> price: 0.91741, sl: 0.00000, tp: 0.91709) done in 8393.712 msМодификация лимитника длилась восемь секунд. Большинство же модификаций происходит за такое примерно время.
2022.01.18 23:11:00.751 Trades '': modify #7133346 sell 0.23 USDCHF sl: 0.00000, tp: 0.91711 -> sl: 0.00000, tp: 0.91712 2022.01.18 23:11:00.761 Trades '': accepted modify #7133346 sell 0.23 USDCHF sl: 0.00000, tp: 0.91711 -> sl: 0.00000, tp: 0.91712 2022.01.18 23:11:00.763 Trades '': modify #7133346 sell 0.23 USDCHF -> sl: 0.00000, tp: 0.91712 done in 12.422 msДаже для пинга 4 мс это многовато, но все же ни в какое сравнение не идет с восемью секундами.
На машине работают только MT5-терминалы и средняя нагрузка на CPU ~1%. Анализ показал, что во время тормозов нагрузка вплесками доходит до 100% при сильной активности рынка и торговых приказов. Как итог, ответ от торгового сервера до терминала длится ОЧЕНЬ долго. По случаям тормозов запрашивал у брокера информацию. На стороне торгового сервера все мгновенно и приказ доходит от терминала до сервера по первой строке modify. Т.е. отправка приказа не тормозит, лаги случаются при получении ответа в терминал.
Сомневаюсь, что разработчики смогут здесь что-то улучшить. Кто ОЧЕНЬ активно торгует, поделитесь наблюдениями этой темы по своим логам.