Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ЗЫ Интересно было бы сравнить с другими торговыми платформами этот же скрипт.
MT4 b1280.
Проскачило всего три штуки и потом очень редко выскакивали. Наверное, сложно создать тормоза, посколько нет HistorySelect и CopyTicks.
так они ведь оба Haswell, у ксеона сильно ниже рабочая частота, будет снижение производительности в работе и одиночных тестах, только в оптимизации многопоточной будет выигрыш. i3 из последних моделей должен быть гораздо быстрее для работы
узнать бы у разработчиков влияние кеш уровней на скорость работы, да и вообще скорости Zen2 и последних intel
add
Ryzen 3700x у меня есть, можно сделать тесты с Intel
например с помощью этого штатного скрипта MQL5\Scripts\UnitTests\Stat\TestStatBenchmark.mq5
зациклить его несколько раз с таймером
Здесь речь идет не о тестах, а о задержках в исполнении торговых приказов. Эта задержка есть, причем плавающая. И это достаточно сильно беспокоит, как ТС, так и меня.
Проскачило всего три штуки и потом очень редко выскакивали. Наверное, сложно создать тормоза, посколько нет HistorySelect и CopyTicks.
Дождался и на MT4.
TimeLocal за 36 миллисекунд. Выбрал символ с тиковым объемом побольше.
Кому интересно, здесь инструкция для воспроизведения.
Кто думает, что его не коснется.
Выбрал символ с тиковым объемом побольше.
Даже проверять не буду. Представьте себе самый популярный символ ФОРТС с подпиской на стакан. Вместо OnTick логика в OnBookEvent. Лаги должны быть жуткие.
Нужны официальные рекомендации, что нужно сделать, чтобы минимизировать лаги.
Чтобы воспроизвести тормоза, нужно скрипт запустить на нескольких чартах ОДНОГО символа - добиться одновременного вызова OnTick. Тогда сыпятся алерты на каждом тике.
График загрузки CPU показывает, что terminal64.exe грузит до 30% восемь логических ядер. Это всего четыре EURUSD-чарта с запущенным скриптом. Хорошо видно, как одномоментно грузит каждый чарт.
Куда столько ресурсов уходит?
На этот вопрос легко ответить.
Вот тут вы копируете много данных:
Фактически даете команду забрать всю доступную историю торговли из базы терминала в окружение эксперта, для дальнейшего использования. Специально рандомом пытясь сбить возможный алгоритм кэширования идентичных запросов.
Но все эти данные вы не используете, а сразу сбрасываете в следующей же строке:
Очевидно что база терминала тут разделяемый ресурс с синхронизацией доступа. И вы сознательно нагенерили в ней дестки тысяч ордеров и сделок.
Все это бессмысленное действие происходит с повтором 10 раз на каждом тике из нескольких потоков одномоментно. Причем вы именно сознательно добиваетесь одновременности этих действий из нескольких потоков.
Так что вы отлично знаете что и почему делаете и куда ресурсы уходят, и при этом утверждаете что "Задержки из-за чрезмерной нагрузки CPU со стороны MT5".
При этом у вас явно есть проблема с вашим компьютером. Т.е., да, вы очень активно двигате существенные объемы памяти, но это не должно так влиять на время выполнения функций, тем более никак не связанных с HistorySelect().
На наших тестах b2582, даже при частоте 1000 раз на каждом тике и 5 экспертах на чартах одного символа, т.е. на порядки больше ваших дефолтных условий, не наблюдается ни одного Алерта.
Наша тестовая система: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
На этот вопрос легко ответить.
Вот тут вы копируете много данных:
Фактически даете команду забрать всю доступную историю торговли из базы терминала в окружение эксперта, для дальнейшего использования. Специально рандомом пытясь сбить возможный алгоритм кэширования идентичных запросов.
Но все эти данные вы не используете, а сразу сбрасываете в следующей же строке:
Очевидно что база терминала тут разделяемый ресурс с синхронизацией доступа. И вы сознательно нагенерили в ней дестки тысяч ордеров и сделок.
Все это бессмысленное действие происходит с повтором 10 раз на каждом тике из нескольких потоков одномоментно. Причем вы именно сознательно добиваетесь одновременности этих действий из нескольких потоков.
Так что вы отлично знаете что и почему делаете и куда ресурсы уходят, и при этом утверждаете что "Задержки из-за чрезмерной нагрузки CPU со стороны MT5".
При этом у вас явно есть проблема с вашим компьютером. Т.е., да, вы очень активно двигате существенные объемы памяти, но это не должно так влиять на время выполнения функций, тем более никак не связанных с HistorySelect().
На наших тестах b2582, даже при частоте 1000 раз на каждом тике и 5 экспертах на чартах одного символа, т.е. на порядки больше ваших дефолтных условий, не наблюдается ни одного Алерта.
Наша тестовая система: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Коллеги,
вам пора выходить с уровня кружка авиамоделизма.
Вот вам боевые условия: 4 терминала, около 300 советников, порядка 30 инструментов. Треть советников подписаны на стаканы. Все это на FORTS. Моделируйте в таких условиях.
Коллеги,
вам пора выходить с уровня кружка авиамоделизма.
Вот вам боевые условия: 4 терминала, около 300 советников, порядка 30 инструментов. Треть советников подписаны на стаканы. Все это на FORTS. Моделируйте в таких условиях.
"Вот вам" принимается в виде zip файла, плюс подробное описание проблемы. Иначе это пустой разговор.
В данном случае обсуждается код представленного эксперта и эффективность его выполнения. По выявленным проблемам были проведены работы по оптимизации кода терминала.
"Вот вам" принимается в виде zip файла, плюс подробное описание проблемы. Иначе это пустой разговор.
В данном случае обсуждается код представленного эксперта и эффективность его выполнения. По выявленным проблемам были проведены работы по оптимизации кода терминала.
Проблемы у меня нет никакой, посылать нечего.
Проблемы есть у fxsaber, он тут уже 16 страниц накатал.
И у Михаила ТАКИЕ ЖЕ проблемы с 2014 года, накатал уже 149 страниц: https://www.mql5.com/ru/forum/38456/page149
У них у обоих достаточно квалификации, чтобы предоставить вам всю необходимую информацию.
На этот вопрос легко ответить.
Вот тут вы копируете много данных:
Фактически даете команду забрать всю доступную историю торговли из базы терминала в окружение эксперта, для дальнейшего использования. Специально рандомом пытясь сбить возможный алгоритм кэширования идентичных запросов.
Вы не следили за хронологией развития этой ветки, поэтому позволяете себе обвинительные нотки в своих заявлениях.
Я убрал строку с MathRand. Вот краткий лог.
Но все эти данные вы не используете, а сразу сбрасываете в следующей же строке:
Очевидно что база терминала тут разделяемый ресурс с синхронизацией доступа. И вы сознательно нагенерили в ней дестки тысяч ордеров и сделок.
Тестирую на реальных счетах, где ордеров больше 10К - норма. Это не фейковые ордера, т.к. > 70% из них были исполнены.
На скрине, кстати, 9331+576 != 12529.
Все это бессмысленное действие происходит с повтором 10 раз на каждом тике из нескольких потоков одномоментно. Причем вы именно сознательно добиваетесь одновременности этих действий из нескольких потоков.
У меня проблемы на разных символах. Один символ предлагается использовать для более быстрого воспроизведения проблемы.
Повтор 10 раз на каждом тике - это жизненная необходимость. Т.к. нормально, когда один советник содержит в себе десяток ТС с разными мэджиками.
Так что вы отлично знаете что и почему делаете и куда ресурсы уходят, и при этом утверждаете что "Задержки из-за чрезмерной нагрузки CPU со стороны MT5".
При этом у вас явно есть проблема с вашим компьютером. Т.е., да, вы очень активно двигате существенные объемы памяти, но это не должно так влиять на время выполнения функций, тем более никак не связанных с HistorySelect().
Язык не поворачивается обвинить Вас в некомпетентности, но то, что Вы написали, мягко говоря, вызывает недоумение. HistorySelect - это нахождение четырех индексов (начало/конец для таблицы ордеров и начало/конец для таблицы сделок). При этом таблицы отсортированы по времени, поэтому идет (должен) бинарный поиск в худшем случае. Для 10К ордеров - это мгновенно (посчитайте двоичный логарифм). Какое движение объемов памяти?! Здесь никто не говорит про ужасную HistorySelectByPosition. Затрагивается элементарная HistorySelect.
На наших тестах b2582, даже при частоте 1000 раз на каждом тике и 5 экспертах на чартах одного символа, т.е. на порядки больше ваших дефолтных условий, не наблюдается ни одного Алерта.
Наша тестовая система: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Пожалуйста, приведите здесь данные для входа на торговый счет, на котором проводили тесты.