Альтернативная оптимизация ТС - страница 4

 
Dmitry Fedoseev:

Каким образом? В каком примере?

Со временем.

Со временем достаточно одного прохода в тестере, потом можно проанализировать отчет. Если какой-то параметр типа периода индикатора или величины столопсса, для каждого значения надо проводить тестирование. Поэтому никак не сделать так же как со временем.

Не знаю, как объяснить, чтобы поняли.
 
Stanislav Korotky:

Подписываюсь под каждым словом.

ИМХО, исходный посыл содержит ошибку.

Это хорошо, что есть ИМХО, даже пусть ошибочное.

 
fxsaber:

Со временем.

Не знаю, как объяснить, чтобы поняли.
Изложить в том порядке в каком бы вы это делали. Ближе к тделу.
 
fxsaber:

Это хорошо, что есть ИМХО, даже пусть ошибочное.

Вы бы лучше ответили на вопросы которые я отквотил. ;-)

Я ИМХО написал только из этикета, а не потому что сомневаюсь.

 
Dmitry Fedoseev:
Изложить в том порядке в каком бы вы это делали. Ближе к тделу.

Привел пример со временем

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Альтернативная оптимизация ТС

fxsaber, 2016.10.06 20:40

На примере будет проще. Чтобы понять, на каком интервале суток советник лучше всего показывает, можно пойти двумя путями

  • добавить, задающие интервал торговли, входные параметры и оптимизировать ТС вместе с ними - это стандартный вариант.
  • ничего не добавлять. Но в каждом проходе проанализировать торговлю по часам и выявить наилучший вариант, создав соответствующий OnTester.
Второй вариант будет дешевле. Вот примерно о том же и эта ветка.

как вариант, когда есть возможность альтернативной оптимизации. НЕ первый пост, а пример из другой области.

Получил вопрос по ПРИМЕРУ

Дал ответ именно не этот вопрос (по ПРИМЕРУ)

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Альтернативная оптимизация ТС

fxsaber, 2016.10.07 07:18

В данном случае временной интервал - это фильтр торговли. Поэтому именно так, как в примере, можно поступить с любым фильтром.

Мне не ясно, что может быть не понятным, если говорится все по-делу.

Например, у вас есть ТС. Но вы хотите в нее добавить входной параметр в виде фильтра - открывай позицию по моему сигналу, но только если МАшка больше N. Вот такой тупой фильтр, т.к. пример опять же.

Вот с этим фильтром можно поступить точно так же, как с интервально-временным фильтром.

И еще раз, здесь сразу стали говорить о ТРЕХ подходах (ну так получилось)

Первый: 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Альтернативная оптимизация ТС

fxsaber, 2016.10.06 10:12

В режиме "по реальным тикам" один проход тестера длится иногда довольно долго. Что уж говорить про оптимизацию в таком режиме. Связано это с огромным количеством тиков и муторными проверками на различные условия на каждом тике.

Поэтому может быть интересен альтернативный способ оптимизации ТС

  1. Создается набор различных значений входных параметров ТС, как это делает обычный оптимизатор.
  2. Этот набор делится на группы по N штук.
  3. Для каждой группы создается корзина ТС - N штук соответствующих ТС.
  4. Делается стандартная оптимизация, но уже не ТС, а таких корзин. Грубо говоря, тестер делает в N-раз меньше одиночных проходов, чем при стандартном подходе.
  5. Историю торгов после каждого прохода расщепляем на N-штук (для каждого набора входных параметров). И лучшую историю отражаем в виде OnTester.

Поскольку последний пункт значительно дешевле (миллионы записей тиков vs тысячи записей сделок), чем N стандартных прогонов, то получается существенно сэкономить на количестве дорогих проходов и тем самым во много раз увеличить скорость оптимизации ТС без каких-либо потерь.

Второй:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Альтернативная оптимизация ТС

fxsaber, 2016.10.06 20:40

На примере будет проще. Чтобы понять, на каком интервале суток советник лучше всего показывает, можно пойти двумя путями

  • добавить, задающие интервал торговли, входные параметры и оптимизировать ТС вместе с ними - это стандартный вариант.
  • ничего не добавлять. Но в каждом проходе проанализировать торговлю по часам и выявить наилучший вариант, создав соответствующий OnTester.
Второй вариант будет дешевле. Вот примерно о том же и эта ветка.

Третий:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Альтернативная оптимизация ТС

fxsaber, 2016.10.06 22:17

На сленге это называется пакетированием. Когда на агент посылается не один вариант ТС, а искусственно составленный пакет ТС, где оптимизируются только те параметры, которые вызывают быстрый перебор.

 

Грубо говоря, перед стандартной оптимизацией должно происходить следующее

  1. Идет предварительная оптимизаци по каждому параметру отдельно.
  2. Вычисляются скорости оптимизации каждого параметра.
  3. Входные параметры выстраиваются в порядке возрастания скорости оптимизации.
  4. Самый медленный входной параметр - внешний for, самый быстрый - самый вложенный. Так формируются пакеты для оптимизации.
  5. В каждом пакете формируются буфера для данных, порождаемых медленными входными параметрами.
  6. Отправляются пакеты на агентов.

Вот так я странно изъясняюсь, к сожалению. 

 
Stanislav Korotky:

Вы бы лучше ответили на вопросы которые я отквотил. ;-)

Я ИМХО написал только из этикета, а не потому что сомневаюсь.

Да надо бы конкретизировать вопросы - к какому из ТРЕХ подходов(см. выше) они относятся.
 

Отставив в сторону сомнительное предположение о яко-бы разном времени оптимизации для разных параметров, изложу свое предположение, что имелось в виду в остальном.

В рамках одного прогона тестера одновременно торгуются N экземпляров эксперта с различными параметрами. Для каждого экземпляра сохраняются его показатели. Результат прогона берется из лучшего экземпляра.

Как тут уже заметили - время прогона пропорционально количеству сделок и вычислениям (анализируемым барам/тикам). Поскольку при параллельной торговле количество сделок и вычислений увеличится в N раз, то и время такого кумулятивного прогона тоже увеличится в N раз. Никакой экономии.

Выход только в увеличении количества ядер процессора. 

 
fxsaber:
Да надо бы конкретизировать вопросы - к какому из ТРЕХ подходов(см. выше) они относятся.

Вот ссылка на исходные вопросы. Вы их проигнорировали. ;-)

Насчет уже трех подходов - я не в курсе. Если они о разном - приведите ссылки. У меня пока впечатление, что все предложения - в контексте одного и того же подхода.

 
Stanislav Korotky:

Отставив в сторону сомнительное предположение о яко-бы разном времени оптимизации для разных параметров, изложу свое предположение, что имелось в виду в остальном.

В рамках одного прогона тестера одновременно торгуются N экземпляров эксперта с различными параметрами. Для каждого экземпляра сохраняются его показатели. Результат прогона берется из лучшего экземпляра.

Как тут уже заметили - время прогона пропорционально количеству сделок и вычислениям (анализируемым барам/тикам). Поскольку при параллельной торговле количество сделок и вычислений увеличится в N раз, то и время такого кумулятивного прогона тоже увеличится в N раз. Никакой экономии.

Выход только в увеличении количества ядер процессора. 

На это ответил

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Альтернативная оптимизация ТС

fxsaber, 2016.10.06 21:12

Важно понимать, что выигрыш по времени будет только с корзинами ТС одной природы. Т.е. не получится, если корзина будет состоять из разных ТС. Тогда выигрыша никакого не будет чисто математически. А вот для корзин, составленных из одной ТС, как в первом посте - выигрыш получится за счет одних и тех же единоразовых вычислений для всех ТС в корзине.

Т.е. сам метод не универсален. Нельзя взять любую ТС и слабыми телодвижениями добиться эффекта, акромя таких тривиальных случаев, как выше привел - интервал торговли.

Метод работает, если есть ТС с тяжелыми вычислениями и прямые руки. Универсальное решение слабо себе представляю, хотя мысли есть.


 
Stanislav Korotky:

Вот ссылка на исходные вопросы. Вы их проигнорировали. ;-)

Разная скорость почему? - этот вопрос?

Допустим оптится какой-нибудь SL. Тогда почти все тяжелые расчеты можно провести ОДИН раз, а далее - просто подставлять на следующих прогонах.

Причина обращения: