Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Неоднократно видел ситуации, когда Терминал грузит CPU на 100% настолько, что ни на что не реагирует.
Потом по логам смотрел, что там дикие пропуски тиков в OnTick. Но если написать грамотно советник, то реально, что на результате торговли такое ужасное обстоятельство не скажется. Специально это анализировал, все четко.
Интересно, насколько распространены механизмы борьбы с задержками в Маркет-продуктах? Ни разу не видел, чтобы говорилось о мощности машины для запуска. Минимальный пинг - это да.
Где вы их пускали?
Если на ВПС за 2-5 долларов, то там запросто задержки в десятки и сотни миллисекунд ловятся в любой мало-мальски серьезной WinAPI функции. Тормозит все начиная с уровня гипервизора, превращая виртуалку в слайд-шоу.
Объяснение выше дал.
Это не GetMicrosecondsCount тормозит, а операционка квантует CPU ресурсы для любого потока вашей придушенной впски. Для любой функции, любого действия, любой программы внутри вашей ВПС.
Ну не может никакой CPU шедулер нарезать честно и распределить ресурсы, когда у него 20 (это еще по божески) операционок по 1500 потоков выполнения в каждой копии. Возьмите 8-16 ядер и распределите их на 20 * 1 500 = 30 000 (тридцать тысяч физических тредов).
В моем случае (виртуал-бокс с вин7 + 2 ядра + 16 Гб ОЗУ на полностью своей железке, где больше ничего не крутится), откуда периодические 2-3 мкс?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MT5 и скорость в боевом исполнении
Andrey Khatimlianskii, 2020.10.05 10:19
Не совсем ВПС, но виртуалка на арендованной железяке:
В моем случае (виртуал-бокс с вин7 + 2 ядра + 16 Гб ОЗУ на полностью своей железке, где больше ничего не крутится), откуда периодические 2-3 мкс?
Такова цена двойной виртуализации.
Тем более, что VirtualBox не является полноценным гипервизором типа Hyper-V, а живет поверх вашей текущей десктопной операционки (Windows 7 к тому же?), у которой CPU шедулер заточен под другой кейс использования.
То есть, у вас: Windows 7/10 -> VirtualBox -> Windows 7. По сути, два уровня виртуализации, причем первый не знает чаяний VirtualBox, считая его просто обычной программой. Распределение CPU ресурсов(шедулер потоков) явно ни к черту.
А должно быть: Hyper-V 2016/2019 -> Windows 2016/2019
Это не GetMicrosecondsCount тормозит, а операционка квантует CPU ресурсы для любого потока вашей придушенной впски. Для любой функции, любого действия, любой программы внутри вашей ВПС.
Думаю, вас заставит задуматься такой аргумент. Советник.
Так что далеко не все тормозит. Поэтому и смог довольно безобидно перейти на winmm::timeBeginPeriod(1)+winmm::timeGetTime(), получив скорость, как GetTickCount, но при этом без ужасного ограничения в 16 мс. Однако, Маркет-продукам такой путь заказан, т.к. DLL. Вряд ли будете делать миллисекундный штатный вариант.
MQL5 функция минимизации всех окон и самого приложения - это отличная идея. Проработаем.
Тут еще такое дело.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MT5 и скорость в боевом исполнении
fxsaber, 2020.10.02 23:01
Просьба добавить TERMINAL_IS_MINIMIZED по аналогии с CHART_IS_MINIMIZED. Пока приходится использовать DLL-решение. Чтобы понимать, что можно снять опросы той же мышки, не рисовать панели и т.д.Но при этом, если человек пускает самостоятельно терминал на VPS, то тут он сильно будет против того, что у него все резко свернется. Он сам может и должен сворачивать окна, если уходит с RDP сессии.
Вот пример того, о чём я хотел сказать.
Оба сервера разных брокеров, находятся в одном районе, могут и в одной локации находится.
Сервис карта предлагает для AMP, разместится в UK.
А для Just почему то предлагает в NL.
Почему? Если есть впс ближе.
Думаю, вас заставит задуматься такой аргумент. Советник.
Так что далеко не все тормозит. Поэтому и смог довольно безобидно перейти на winmm::timeBeginPeriod(1)+winmm::timeGetTime(), получив скорость, как GetTickCount, но при этом без ужасного ограничения в 16 мс. Однако, Маркет-продукам такой путь заказан, т.к. DLL. Вряд ли будете делать миллисекундный штатный вариант.
Ну вы мастер гонять стресс-тесты без контроля соотносимости и резонности.
Конечно микросекундный замер требует ресурсов, чтобы можно было замерять промежутки в 1000 раз меньше миллисекунды.
Если вам периодически требуется замерять промежутки сверх точно, то используйте микросекунды. И стоить это будет вам 0 микросекунд.
Если же вы настроены вызывать миллионы раз самозамер, то скорее всего вы занимаетесь самообманом.
На придушенном VPS разгонять системный таймер через timeBeginPeriod чревато. Вы просто наоборот повысите затраты CPU:
Иначе давно бы в операционке сделали точные GetTickCount/GetTickCount64 и радовались бесплатной точностью. Но нет, за точность этого таймера придется заплатить.
Вот пример того, о чём я хотел сказать.
Оба сервера разных брокеров, находятся в одном районе, могут и в одной локации находится.
Сервис карта предлагает для AMP, разместится в UK.
А для Just почему то предлагает в NL.
Почему? Если есть впс ближе.
Мы знаем геоточки своих серверов, а вот позиции брокерских серверов строим из GeoIP баз.
И частенько бывает так, что информация не соответствует действительности. Поэтому нельзя ни в коем случае считать, что точка брокера показана точно.
Будем завтра детальнее разбираться, так как надо вручную все перепроверять и пересканировать, чтобы ответить на вопрос.
Такова цена двойной виртуализации.
Тем более, что VirtualBox не является полноценным гипервизором типа Hyper-V, а живет поверх вашей текущей десктопной операционки (Windows 7 к тому же?), у которой CPU шедулер заточен под другой кейс использования.
То есть, у вас: Windows 7/10 -> VirtualBox -> Windows 7. По сути, два уровня виртуализации, причем первый не знает чаяний VirtualBox, считая его просто обычной программой. Распределение CPU ресурсов(шедулер потоков) явно ни к черту.
А должно быть: Hyper-V 2016/2019 -> Windows 2016/2019
Нет, у меня на ЦентОС виртуалки крутятся. Но я не компетентен продолжать этот диалог.