![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Боюсь что разочарую, но результаты измерения прозводительности этим скриптом еще менее относятся к реальности чем результаты первого скрипта. И дело здесь вот в чем - большинство компиляторов выражения такого типа как здесь вычисляют еще на моменте компиляции (т.к. нет никакого смысла вычислять потом то что можно вычислить заранее). Т.е. код внутри циклов эквивалентен примерно такому: Int = 120 и Double = 120.0. Т.е. ничего полезного не делается вообще. И если заменить код внутри циклов на то что я написал, то результат не изменится (проверьте сами). Фактически измеряются накладные затраты на организацию цикла. То что во втором случае результат чуть меньше объясняется тем, что запись в Double (8 байт) чуть-чуть дольше чем запись Int (4 байта).
И если в первом скрипте работа с массивом (самая долгая часть) хоть как-то отражала производительность подсистемы памяти (и шины с кэшами), то этот тест вообще измеряет "сферических коней в вакууме" и выдает результат мало не в попугаях.
joo, надеюсь без обид. :)
Хмм, возможно, и скорее всего Вы правы. Ну тогда, либо делать замысловатые-хитрые ветвления в коде, либо подавать на обработку процу числа, которые он заранее "знать" не может: котировки. Типа того не торгующего эксперта https://forum.mql4.com/ru/25722/page41 :(
У меня изменение приоритета на реальный в этом тесте изменило рейтинг чуть больше чем на 1%.
Тест стабильно выдает 104.8311. К дождю наверное. Думаю отключать интернет с антивирусом немного странно. Проще поставить приоритет реального времени терминалу.
Нормальный антивирус работает как служба в системе, и не получив ресурсов, может подвесить комп.
Хмм, возможно, и скорее всего Вы правы. Ну тогда, либо делать замысловатые-хитрые ветвления в коде, либо подавать на обработку процу числа, которые он заранее "знать" не может: котировки. Типа того не торгующего эксперта https://forum.mql4.com/ru/25722/page41 :(
Вы попробовали вставить Int = 120 и Double = 120? :)
Предлагаю следующее решение.
Использовать для проверки более или менее реального быстродействия прикрепленный эксперт.
Это тот же самый Moving Average, что использовался и ранее, но из него исключена функция расчета лота. Он всегда открывает позиции размером 0.1 лота.
Тест проводить по ценам открытия. Тест за период с 15.09.08 до 15.09.09.
Баланс - 1 000 000 долларов. Чтобы наверняка при любых плечах и маржинальных требованиях не было маржин колла. Для этого же постоянный лот 0.1
Количество проходов увеличил за счет уменьшения шага MovingShift. Это позволит IMHO сгладить случайные "забросы" нагрузки на процессор.
Мой результат 7:08 при отключении вывода незначащих (insignificant) результатов и 7:11 при их выводе. Возможно это не так и важно, а просто влияние фоновой нагрузки.
Давайте проверим на этом эксперте. Особенно интересны результаты begemot61 и four2one.
Docent, тут не все разбираются в языке. Выложи сам эксперт, пожалуйста, чтобы и тут разнобоя не получилось.
ОК, сам выложу. Я просто закомментировал расчеты внутри функции расчета лота.
Мой результат - 9:10 (бесполезные результаты выводятся). С учетом частот ff получается таким:
431*3 = 1293 (твой)
550*2.53=1391.5 (мой)
Разница 7.6% в твою пользу.
Файл удалил. На твоем выходит чуть быстрее - 9:05.
Docent, тут не все разбираются в языке. Выложи сам эксперт, пожалуйста, чтобы и тут разнобоя не получилось.
Так вообще-то он и прикреплен внизу вместе с файлом настроек в архиве...
Просто чтобы 1 файл был, а не 2.
Пожалуйста, проверь с моим - некоторая разница может быть.
И подождем результатов других.
А на каких именно приложениях?
На тяжёлой расчетной задаче, изначально многопроцессорной.
Данные (старый скрипт) на Атоме.
Предлагаю следующее решение.
Использовать для проверки более или менее реального быстродействия прикрепленный эксперт.
Это тот же самый Moving Average, что использовался и ранее, но из него исключена функция расчета лота. Он всегда открывает позиции размером 0.1 лота.
Баланс - 1 000 000 долларов. Чтобы наверняка при любых плечах и маржинальных требованиях не было маржин колла. Для этого же постоянный лот 0.1
Количество проходов увеличил за счет уменьшения шага MovingShift. Это позволит IMHO сгладить случайные "забросы" нагрузки на процессор.
Согласен. Скрипт изначально был "сферическм конем". Нужны приближенные к реальности результаты. Ваши изменения в эксперте и начальных установках кажутся разумными.
Мой результат 7:08 при отключении вывода незначащих (insignificant) результатов и 7:11 при их выводе. Возможно это не так и важно, а просто влияние фоновой нагрузки.
Я бы оставил полный вывод результатов. Значащее кол-во будет колебаться от условий конкретного ДЦ. Все - нет.
Вообще, можно полностью исключить влияние ДЦ - есть прога, которая позволяет выставить любой спред. И можно исключить влияния разных историй, просто включив в архив с тест-экспертом историю по символу. Далее понятно: офф-лайн терминал, установка спреда, импорт истории из архива и тест.
По поводу статьи. Пока методика не отточена, не соберется статистика, говорить не о чем. Можно было бы создать что-то вроде странички в сети с заполняемой посетителем формой. Там же архив с методикой, советником, историей и пр. Надо подумать. Интересно было бы такое разместить на самом сайте форума. Но это уже вне наших возможностей.