Скорость оптимизации - страница 2

 
Спору нет что
Алгоритмическая оптимизация побеждает наращивание мощности процессоров:


Но реализация много потоковой оптимизации для N ядер ускорит процесс практически в N раз.
Я конечно не професиональный программист и может не вижу серьезных подводных камней, но считать разные проходы в разных потоках помойму сам бог велел.

Во первых не в N раз, а на практике всего лишь на десятки процентов (пусть 50%) быстрее на реально многоядерных (не HT) процессорах. Распараллеливание потребует дополнительной внутренней синхронизации (а это тормоза) и точно в N раз больше памяти под копии массивов данных. Кроме того, на процессорах с гипертредингом ускорения от многопотокового тестера вообще не будет, а наоборот будет реальное падение производительности.

Мы все это обдумывали и в МТ4 такого делать не будем. На многопотоковый тестер надо закладываться изначально при проектировании системы.
 
Ну чтож будем ждать MT5.

ЗЫ А про Hyper Threading я кстати и не говорил.
 
Удивляют заявления "как ему разогнать МТ4(Без ГА)чтоб он считал максимально быстро".

Используйте генетический оптимизатор торговых стратегий - это гарантированный способ кардинально снизить в десятки и сотни раз объем пересчета. Кроме того, рационально используйте возможности терминала, а не пытайтесь в лоб перебрать все бесполезные варианты.

Эффективная оптимизация - это не однократный подход к станку. А последовательное приближение к цели за несколько проходов с коррекцией области поиска.

Алгоритмическая оптимизация побеждает наращивание мощности процессоров:
- увеличили шаг просчета, применили ГА и получили результат в несколько тысяч раз быстрее.
- поставили процессор помощнее и ускорились на 30-40% (в теории, да еще и не на гипертрединге)


Этот подход (алгоритмич.) самый эффективный. Например, во многих индикаторах есть параметр "к-во баров", который определяет длину графического отображения функции, во многих случаях для оптимизации его можно значительно уменьшить, что ускоряет процесс оптимизации.
 
Удивляют заявления "как ему разогнать МТ4(Без ГА)чтоб он считал максимально быстро".
Все это конечно понятно я так и оптимизирую в 2-3 захода: сначала логически главные парамерры и.д. В двух терминалах работать не хочу. Окошко ввода параметров для оптимизации и так микроскопическое-нужно лупу приделывать к монитору, а переключаться между МТ - вообще очманеть можно. Если бы рабочие каталоги двух разных МТ можно былобы сделать общими!
Генетический алгоритм - хорошо, но он может все же пропустить глобальный экстремум, а выдать средний локальный и это плохо.
НО Я НЕ УСЛЫШАЛ МНЕНИЯ УВАЖАЕМОГО СООБЩЕСТВА О ПЕРЕДАЧЕ ПАРАМЕТРОВ В ФУНКЦИИ ПО ССЫЛКЕ !
ДАСТ ЛИ ЭТО ПРИРОСТ ПРОИЗВОДИТЕЛЬНОСТИ.
 
Эффективная оптимизация - это не однократный подход к станку.
Если советник вызывает функцию iCustom()? как тогда обрабатывается функция IndicatorCounted()?
Если при каждом вызове start() пересчитываются все iCustom() заново, то это полный маразм и нужно заменять пользовательские индикаторы на функции. Какой все же результат выдает IndicatorCounted()?
Каждый раз сначала при каждом вызове iCustom() или один раз за весь запуск start()?
 
Можно самому проверить - вставить распринтовку в кастомный индикатор и начать прогонять в визуальном режиме с выводом времени.
 
Если советник вызывает функцию iCustom()? как тогда обрабатывается функция IndicatorCounted()?
Если при каждом вызове start() пересчитываются все iCustom() заново, то это полный маразм и нужно заменять пользовательские индикаторы на функции. Какой все же результат выдает IndicatorCounted()?
Каждый раз сначала при каждом вызове iCustom() или один раз за весь запуск start()?

У меня пока впечатление, что тестер полностью имитирует работу индикатора в реальном времени. То есть, если IndicatorCounted() используется (и используется правильно), никаких лишних расчётов не делается. Другой вопрос, что для работы с тестером я стараюсь делать индикаторы, работающие только с закончившимся баром, обработку тиков делаю только при крайней нужде.
 
НО Я НЕ УСЛЫШАЛ МНЕНИЯ УВАЖАЕМОГО СООБЩЕСТВА О ПЕРЕДАЧЕ ПАРАМЕТРОВ В ФУНКЦИИ ПО ССЫЛКЕ !
ДАСТ ЛИ ЭТО ПРИРОСТ ПРОИЗВОДИТЕЛЬНОСТИ.

Не даст.
 
Если советник вызывает функцию iCustom()? как тогда обрабатывается функция IndicatorCounted()?
Если при каждом вызове start() пересчитываются все iCustom() заново, то это полный маразм и нужно заменять пользовательские индикаторы на функции. Какой все же результат выдает IndicatorCounted()?
Каждый раз сначала при каждом вызове iCustom() или один раз за весь запуск start()?

У меня пока впечатление, что тестер полностью имитирует работу индикатора в реальном времени. То есть, если IndicatorCounted() используется (и используется правильно), никаких лишних расчётов не делается.

Да, верно. В тестере стратегий полностью действуют механизмы экономичного расчета и правильно написанные кастомные индикаторы пересчитывают только измененные данные.
 
В тестере стратегий полностью действуют механизмы экономичного расчета и правильно написанные кастомные индикаторы пересчитывают только измененные данные.
Вот это другое дело!
А то: попробуйте сами запринтить , проверить...
Вообще не мешало бы иметь более полный Хелп-описание тонкостей роботы МТ.
МТ - отличная вещь, но хорошая документация это тоже неплохо!
Причина обращения: