Блог им. raxat

Тест устойчивости торговых систем

Тест устойчивости торговых систем

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

1. Подключить торговый журнал для автоматического учета сделок.

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

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

Первое жизненно необходимо любому системному трейдеру и я решил вопрос через подключение своего аккаунта в Т-Инвестициях к сервису TradersDiaries. Это очень простой процесс — генерируете API-токен в режиме read-only, вставляете его в нужное поле в TradersDiaries и сразу видите всю историю своих сделок, топ-трейды, топ-дни и другую полезную информацию.

Второй пункт реализовал в Google Spreadsheets, чтобы таблицы были доступны в любом месте и в любое время.

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

Зачем нужно повторно тестировать торговые системы?

В бэктестинге есть известная проблема, которая называется «curve fitting», когда вы подгоняете свою систему под набор исторических данных и создается иллюзия того, что система работает. У опытных алготрейдеров есть сложные методики для решения этой проблемы (например, Монте-Карло симуляция), но розничному трейдеру в TradingView все это недоступно и нужны другие средства, которые логически верны и позволят отсеять неустойчивые системы.

Раньше я использовал forward testing, перебор параметров и тестирование связанных активов (NG против базового актива Henry Hub Gas Futures или SBER против SBERP, устойчивая система должна работать на обоих при одних и тех же параметрах), но это все равно недостаточно надежно. Я начал обращать больше внимания на два важных параметра: drawdown (общая просадка портфеля) и win rate. По наблюдениям если у системы много трейдов и win rate ниже 50%, то это сильный сигнал о том, что она может быть нерабочей. Если система не предназначена для позиционного трейдинга, то при drawdown выше 20% она считается нерабочей.

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

Тест устойчивости торговых систем

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

Как еще можно улучшить методику тестирования?

Есть простой и относительно доступный способ — я подключил самый дорогой тариф в TradingView, который позволяет тестировать 20 000 баров и в котором есть функция Deep Backtesting. Когда мне стало доступно больше баров, я сразу понял, что половина систем имеют проблемы на длинной дистанции. Deep Backtesting позволил убрать лишние и в итоге осталось только несколько систем, которым я готов доверить деньги.

SNGSP выглядел неплохо до Deep Backtesting:

Тест устойчивости торговых систем

Но на самом деле, торговать такую систему нельзя:

Тест устойчивости торговых систем

В SBER была гипотеза о том, что на дневном таймфрейме EMA50 это хороший индикатор направления рынка:

Тест устойчивости торговых систем

Deep Backtesting добавил очков этой гипотезе:

Тест устойчивости торговых систем

Связанный биржевой инструмент SBERP не сломался, тоже плюс к гипотезе:

Тест устойчивости торговых систем

Для уточнения точек входа можно использовать младший таймфрейм H1, так он выглядит без Deep Backtesting:

Тест устойчивости торговых систем

А так с включенным Deep Backtesting:

Тест устойчивости торговых систем

Проверяем на связанном инструменте SPERP, к сигналам есть определенное доверие:

Тест устойчивости торговых систем

В остальных случаях примерно 8/10 систем отваливались и я теперь точно знаю, что на них не надо тратить время. У истории со Сбером тоже есть нюансы вроде низкого win rate на таймфрейме H1, но я хотя бы снизил вероятность того, что потеряю деньги на рынке.

Настоящие алготрейдеры делают по-другому!

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

Еще один важный момент: вам нужно как можно быстрее понять, что бесконечный перебор и простое тестирование торговых алгоритмов не поможет двигаться вперед. Точно так же, как перебор индикаторов, поиск Граалей, готовых решений и т.д. Если понимаете, что застряли и ходите по кругу, то меняйте метод на более профессиональный и наименее комфортный для вас. Также трейдинг без журнала это очень плохая идея — вы не видите свои худшие и лучше трейды, не видите где сильнее рискуете, какой инструмент хуже торгуется.
★1
18 комментариев

ключевой параметр профит фактор от 1.7 и выше...

устойчивость крайне просто проверить 

полный перебор параметров от -50% до 200% от лучшего значения… на этом интрвале доходность не падает вдвое

avatar
ves2010, да, если система сработает с любыми параметрами, то это хороший критерий отбора. Если только с единичными параметрами, то это подгонка.
avatar
ves2010, спасибо! На профит-фактор тоже большое внимание обращаю.
avatar
Что такое дип бэктестинг? Чем отличается от обычного бэктестинга?
avatar
T-800, можно тестировать с самой ранней даты или с произвольного диапазона. Обычный бэктест в TradingView видит только ограниченное количество баров и только от текущей даты влево.
avatar
Diamond, ааа… т.е. специально ограничили обычный бэктест и сделали «продвинутый» за деньги. Понимаю.
avatar
Это модератор Смартлаба такое пишет??? Ууу как тут все запущено)))
Да лажа почти все. Только пару моментов :
На связанных (коррелированных инструментах) надежная система должна работать априори, устойчивая система должна работать на не связанных (некоррелированных) инструментах ( тут есть оговорки, но не буду вдаваться)..
Сделок должно быть не менее 1000. Если меньше вообще ни о чем для верификации выводов.
Большой Брат, ну так сваяй пост — обсудим в чем ты не прав
avatar
Большой Брат, да нормально — чем больше такого мусора здесь будет, тем дольше народ будет добираться до правды ))
Никто не хочет «плясать от печки» — от статистических свойств цен. Все хотят сразу ЧУДО-СИСТЕМУ ))
На неэргодичных-то данных, какую они там устойчивость ищут хз )) 
Сергей Сергаев, вас тоже на конференцию летом приглашаю, расскажете.
avatar
Diamond, не получится — горло не позволяет языком чесать
Брат, ты неправ насчет 1000 сделок. Важно не количество сделок, а период в годах, охватывающий разные фазы рынка. Минимум 3 года, даже, если там всего 100 сделок. 1000+ сделок в плюс за один месяц, это фиаско, братан…
avatar
Большой Брат, отправляйте заявку на конференцию летом, послушаю вас в своем зале.
avatar
Что за бред?...
Как вы будете анализировать журнал, если в течение дня несколько сотен сделок?
Как в боевом режиме вы поймёте, что фаза рынка изменилась, если даже на бэктестах вы не можете определить это в моменте?
avatar
RoboScalp, у меня не скальпинг.
avatar
Diamond, тестинг торговых систем при разных способах торговли не может отличаться. Какая разница, сколько сделок в день или час совершается, если суть одна и та же: купить дешевле, продать — дороже?
avatar
RoboScalp, журнал проще анализировать, если там не 500-1000 сделок в день. В крайнем случае, можно использовать AI, который определит лучший или худший биржевой инструмент, укажет на сделки с высоким риском и т.д. Без автоматического журнала пока не знаю, как это сделать.

Про фазу рынка, в моем случае направленное движение может смениться на боковой тренд. Самый простой способ это заметить — трендовая система стала чаще давать несколько стоп-лоссов подряд.
avatar
Diamond, журнал — это атавизм из прошлого, когда торговали по телефону на основе таблиц котировок в газетах. Он никак не помогает в торговле!

Про тренды: оцените реальное время нахождения цены в фазе флэта и тренда. Думаю, вывод вас серьёзно удивит
avatar

теги блога Diamond

....все тэги



UPDONW
Новый дизайн