Со временем достаточно одного прохода в тестере, потом можно проанализировать отчет. Если какой-то параметр типа периода индикатора или величины столопсса, для каждого значения надо проводить тестирование. Поэтому никак не сделать так же как со временем.
В данном случае временной интервал - это фильтр торговли. Поэтому именно так, как в примере, можно поступить с любым фильтром.
Мне не ясно, что может быть не понятным, если говорится все по-делу.
Например, у вас есть ТС. Но вы хотите в нее добавить входной параметр в виде фильтра - открывай позицию по моему сигналу, но только если МАшка больше N. Вот такой тупой фильтр, т.к. пример опять же.
Вот с этим фильтром можно поступить точно так же, как с интервально-временным фильтром.
И еще раз, здесь сразу стали говорить о ТРЕХ подходах (ну так получилось)
В режиме "по реальным тикам" один проход тестера длится иногда довольно долго. Что уж говорить про оптимизацию в таком режиме. Связано это с огромным количеством тиков и муторными проверками на различные условия на каждом тике.
Поэтому может быть интересен альтернативный способ оптимизации ТС
Создается набор различных значений входных параметров ТС, как это делает обычный оптимизатор.
Этот набор делится на группы по N штук.
Для каждой группы создается корзина ТС - N штук соответствующих ТС.
Делается стандартная оптимизация, но уже не ТС, а таких корзин. Грубо говоря, тестер делает в N-раз меньше одиночных проходов, чем при стандартном подходе.
Историю торгов после каждого прохода расщепляем на N-штук (для каждого набора входных параметров). И лучшую историю отражаем в виде OnTester.
Поскольку последний пункт значительно дешевле (миллионы записей тиков vs тысячи записей сделок), чем N стандартных прогонов, то получается существенно сэкономить на количестве дорогих проходов и тем самым во много раз увеличить скорость оптимизации ТС без каких-либо потерь.
На сленге это называется пакетированием. Когда на агент посылается не один вариант ТС, а искусственно составленный пакет ТС, где оптимизируются только те параметры, которые вызывают быстрый перебор.
Грубо говоря, перед стандартной оптимизацией должно происходить следующее
Идет предварительная оптимизаци по каждому параметру отдельно.
Вычисляются скорости оптимизации каждого параметра.
Входные параметры выстраиваются в порядке возрастания скорости оптимизации.
Самый медленный входной параметр - внешний for, самый быстрый - самый вложенный. Так формируются пакеты для оптимизации.
В каждом пакете формируются буфера для данных, порождаемых медленными входными параметрами.
Отставив в сторону сомнительное предположение о яко-бы разном времени оптимизации для разных параметров, изложу свое предположение, что имелось в виду в остальном.
В рамках одного прогона тестера одновременно торгуются N экземпляров эксперта с различными параметрами. Для каждого экземпляра сохраняются его показатели. Результат прогона берется из лучшего экземпляра.
Как тут уже заметили - время прогона пропорционально количеству сделок и вычислениям (анализируемым барам/тикам). Поскольку при параллельной торговле количество сделок и вычислений увеличится в N раз, то и время такого кумулятивного прогона тоже увеличится в N раз. Никакой экономии.
Выход только в увеличении количества ядер процессора.
Насчет уже трех подходов - я не в курсе. Если они о разном - приведите ссылки. У меня пока впечатление, что все предложения - в контексте одного и того же подхода.
Отставив в сторону сомнительное предположение о яко-бы разном времени оптимизации для разных параметров, изложу свое предположение, что имелось в виду в остальном.
В рамках одного прогона тестера одновременно торгуются N экземпляров эксперта с различными параметрами. Для каждого экземпляра сохраняются его показатели. Результат прогона берется из лучшего экземпляра.
Как тут уже заметили - время прогона пропорционально количеству сделок и вычислениям (анализируемым барам/тикам). Поскольку при параллельной торговле количество сделок и вычислений увеличится в N раз, то и время такого кумулятивного прогона тоже увеличится в N раз. Никакой экономии.
Выход только в увеличении количества ядер процессора.
Важно понимать, что выигрыш по времени будет только с корзинами ТС одной природы. Т.е. не получится, если корзина будет состоять из разных ТС. Тогда выигрыша никакого не будет чисто математически. А вот для корзин, составленных из одной ТС, как в первом посте - выигрыш получится за счет одних и тех же единоразовых вычислений для всех ТС в корзине.
Т.е. сам метод не универсален. Нельзя взять любую ТС и слабыми телодвижениями добиться эффекта, акромя таких тривиальных случаев, как выше привел - интервал торговли.
Метод работает, если есть ТС с тяжелыми вычислениями и прямые руки. Универсальное решение слабо себе представляю, хотя мысли есть.
Каким образом? В каком примере?
Со временем.
Со временем достаточно одного прохода в тестере, потом можно проанализировать отчет. Если какой-то параметр типа периода индикатора или величины столопсса, для каждого значения надо проводить тестирование. Поэтому никак не сделать так же как со временем.
Подписываюсь под каждым словом.
ИМХО, исходный посыл содержит ошибку.
Это хорошо, что есть ИМХО, даже пусть ошибочное.
Со временем.
Не знаю, как объяснить, чтобы поняли.Это хорошо, что есть ИМХО, даже пусть ошибочное.
Вы бы лучше ответили на вопросы которые я отквотил. ;-)
Я ИМХО написал только из этикета, а не потому что сомневаюсь.
Изложить в том порядке в каком бы вы это делали. Ближе к тделу.
Привел пример со временем
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернативная оптимизация ТС
fxsaber, 2016.10.06 20:40
На примере будет проще. Чтобы понять, на каком интервале суток советник лучше всего показывает, можно пойти двумя путями
как вариант, когда есть возможность альтернативной оптимизации. НЕ первый пост, а пример из другой области.
Получил вопрос по ПРИМЕРУ
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернативная оптимизация ТС
Dmitry Fedoseev, 2016.10.07 04:51
Только со временем торговли так можно поступить. С чем еще?Дал ответ именно не этот вопрос (по ПРИМЕРУ)
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернативная оптимизация ТС
fxsaber, 2016.10.07 07:18
В данном случае временной интервал - это фильтр торговли. Поэтому именно так, как в примере, можно поступить с любым фильтром.Мне не ясно, что может быть не понятным, если говорится все по-делу.
Например, у вас есть ТС. Но вы хотите в нее добавить входной параметр в виде фильтра - открывай позицию по моему сигналу, но только если МАшка больше N. Вот такой тупой фильтр, т.к. пример опять же.
Вот с этим фильтром можно поступить точно так же, как с интервально-временным фильтром.
И еще раз, здесь сразу стали говорить о ТРЕХ подходах (ну так получилось)
Первый:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернативная оптимизация ТС
fxsaber, 2016.10.06 10:12
Поэтому может быть интересен альтернативный способ оптимизации ТС
Поскольку последний пункт значительно дешевле (миллионы записей тиков vs тысячи записей сделок), чем N стандартных прогонов, то получается существенно сэкономить на количестве дорогих проходов и тем самым во много раз увеличить скорость оптимизации ТС без каких-либо потерь.
Второй:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернативная оптимизация ТС
fxsaber, 2016.10.06 20:40
На примере будет проще. Чтобы понять, на каком интервале суток советник лучше всего показывает, можно пойти двумя путями
Третий:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернативная оптимизация ТС
fxsaber, 2016.10.06 22:17
На сленге это называется пакетированием. Когда на агент посылается не один вариант ТС, а искусственно составленный пакет ТС, где оптимизируются только те параметры, которые вызывают быстрый перебор.
Грубо говоря, перед стандартной оптимизацией должно происходить следующее
Вот так я странно изъясняюсь, к сожалению.
Вы бы лучше ответили на вопросы которые я отквотил. ;-)
Я ИМХО написал только из этикета, а не потому что сомневаюсь.
Отставив в сторону сомнительное предположение о яко-бы разном времени оптимизации для разных параметров, изложу свое предположение, что имелось в виду в остальном.
В рамках одного прогона тестера одновременно торгуются N экземпляров эксперта с различными параметрами. Для каждого экземпляра сохраняются его показатели. Результат прогона берется из лучшего экземпляра.
Как тут уже заметили - время прогона пропорционально количеству сделок и вычислениям (анализируемым барам/тикам). Поскольку при параллельной торговле количество сделок и вычислений увеличится в N раз, то и время такого кумулятивного прогона тоже увеличится в N раз. Никакой экономии.
Выход только в увеличении количества ядер процессора.
Да надо бы конкретизировать вопросы - к какому из ТРЕХ подходов(см. выше) они относятся.
Вот ссылка на исходные вопросы. Вы их проигнорировали. ;-)
Насчет уже трех подходов - я не в курсе. Если они о разном - приведите ссылки. У меня пока впечатление, что все предложения - в контексте одного и того же подхода.
Отставив в сторону сомнительное предположение о яко-бы разном времени оптимизации для разных параметров, изложу свое предположение, что имелось в виду в остальном.
В рамках одного прогона тестера одновременно торгуются N экземпляров эксперта с различными параметрами. Для каждого экземпляра сохраняются его показатели. Результат прогона берется из лучшего экземпляра.
Как тут уже заметили - время прогона пропорционально количеству сделок и вычислениям (анализируемым барам/тикам). Поскольку при параллельной торговле количество сделок и вычислений увеличится в N раз, то и время такого кумулятивного прогона тоже увеличится в N раз. Никакой экономии.
Выход только в увеличении количества ядер процессора.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Альтернативная оптимизация ТС
fxsaber, 2016.10.06 21:12
Важно понимать, что выигрыш по времени будет только с корзинами ТС одной природы. Т.е. не получится, если корзина будет состоять из разных ТС. Тогда выигрыша никакого не будет чисто математически. А вот для корзин, составленных из одной ТС, как в первом посте - выигрыш получится за счет одних и тех же единоразовых вычислений для всех ТС в корзине.
Т.е. сам метод не универсален. Нельзя взять любую ТС и слабыми телодвижениями добиться эффекта, акромя таких тривиальных случаев, как выше привел - интервал торговли.
Метод работает, если есть ТС с тяжелыми вычислениями и прямые руки. Универсальное решение слабо себе представляю, хотя мысли есть.
Вот ссылка на исходные вопросы. Вы их проигнорировали. ;-)
Разная скорость почему? - этот вопрос?
Допустим оптится какой-нибудь SL. Тогда почти все тяжелые расчеты можно провести ОДИН раз, а далее - просто подставлять на следующих прогонах.