в Алготрейдинг

Специальная подгонка под последние данные

Here2learn:

Кто-нибудь специально подгоняет стратегию для оптимизации результатов за недавний период времени? У меня тут есть идея – тестирование стратегии на исторических данных за последние пять дней, подгонка данных к этим пяти дням и использование полученных оптимальных параметров в торговле на шестой день.

Или, возможно, нужно использовать стратегию с параметрами, дающими оптимальные результаты за последний месяц… или какой таймфрейм вы используете.

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

У кого какие мысли? Кто-нибудь делает что-то подобное? Может кто что дельного подскажет. Спасибо

braincell:

Я пробовал такое для внутридневной торговли, 10 дней теста, и 1 день out-of-sample. Использовалось машинное обучение и около 10000 систем. Около 80% систем теряли, и многие из них теряли больше, чем они заработали за 10-дневную подгонку.

Я сделал это, чтобы исследовать подгонку примерно год назад, я свел к минимуму все параметры, которые предотвращают переподгонку (я бы избегал этого в реальных системах), и использовал показатели с сильным шумом (и, следовательно, более склонны к подгонке). Интересным результатом стало то, что на дневных данных подгонка менее выражена для того же количества баров. Это, в основном из-за трендового компонента и того факта, что дневные данные менее шумные, чем 1-минутные данные, так что с этим все понятно.

Если вы только оптимизируете параметры (а не создаете новые системы) переподгонка может быть менее выраженной, но все еще очень значительной. Я читал статьи, где говорилось о том, как различные стратегии являются более уязвимыми для оптимизации и переподгонки, а именно, как вы отправлять и тестируете исполнение ордеров (стратегии низкой волатильности или высокой волатильности и т.д.). Там много компонентов, так что вы не получите прямого ответа, кроме такого: в подавляющем большинстве случаев, это плохая идея, особенно если вы не используете робастный и точный софт для бэктестинга.

abattia:

Наличие большого числа параметров означает много степеней свободы для удачного совмещения входов и выходов сделок с поведением цены. Таким образом, результат тестирования окажется хорошим, но не потому, что стратегия с теми параметрами имеет какую-то прогнозирующую силу или статистическое преимущество; а скорее потому, что испробовано 10^7 наборов параметров, и набор с лучшими результатами был частью небольшого процента от всего сгенерированного случайным образом, который дал приемлемый результат. «Но взаимозависимость [с хорошим результатом] не предполагает причинно-следственную связь». Все может закончиться тем, что случайность просто введет вас в заблуждение… Использование «лучшего» результата может быть рискованным.

По-моему, поиск набора параметров, который «в данный момент созвучен с рынком», чреват риском, и не только по причине, в общих чертах указанной выше. А также потому, что такой набор игнорирует факт, что отношение сигнал-шум для торговых систем обычно ничтожно мало, и могут быть долгие периоды, когда никакого сигнала нет вообще. Согласно моему опыту, эффективный подход в ситуациях, когда нет сигнала, просто продолжать торговать как раньше, и допускать просадку, но оставаться в состоянии немедленно получить прибыль, как только сигнал снова вернется. С другой стороны, с подходом “walk-forward” оптимизации, этот период падения без сигнала может привести к таким параметрам стратегии, которые сильно откланяются от лучших долгосрочных параметров, и могут вовсе пропустить возвращение сигнала. И по моему опыту на сегодняшний день, период сразу после возвращения сигнала, часто позволяет очень неплохо заработать, и с лихвой компенсировать просадку.

Комментарии:

Sergey: Представьте себе рынок как случайные колебания, в которых вдруг обнаруживается какой либо паттерн. Этот паттерн поначалу находится лишь наиболее эффективными алгоритмами по дата майнингу и эксплуатируется только ими некоторое время. Потом паттерн замечают многие (вручную, или более медленными алгоритмами), и он исчезает под лавиной денег.
Когда вы оптимизируете или настраиваете ваш дайтамайнинг алгоритм на поиск только на последних данных, то в данном случае вы можете выцепить такие вот молодые паттерны. С другой стороны – вы увеличиваете свои риски – а что если этот патерн в прошлом был в “другую” сторону? А что если он 5 раз повторился, а на 6 был тоже в другую – проще говоря у вас паттерн по которому возможно слишком мало экспериментов.

Pavel Sergeyev: Пять дней это очень очень мало даже для интрадея.

mehanizator: я три года беру, и то только потому, что движухи 2008-2009 считаю нерелевантными. если б не они, больше бы брал, лет пять-шесть.

Pavel Sergeyev: Почему же 2008-2009 не берете, полагаете такого больше не повторится? Случилось раз может случиться и другой. Лучше быть готовым ко всему.

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