orekton
orekton личный блог
24 сентября 2013, 14:29

Проверка устойчивости торговой системы. Часть 2. Выбираем, как тестировать

Продолжаем переводить книгу Перри Кауфмана «Smarter Trading: Improving Performance in Changing Markets». В десятой главе «Testing for Robustness» автор рассказывает о своих методах проверки торговой системы на устойчивость. В предыдущих публикациях мы выяснили, что устойчивая система должна оставаться работоспособной в разных условиях и решили, что правила такой системы мы должны создать самостоятельно, не доверяя автоматическому перебору. Теперь остановимся на вопросе о том, как протестировать торговую систему: поговорим о методике и выборе данных.
Проверка устойчивости торговой системы. Введение. Что и как тестировать
Проверка устойчивости торговой системы. Часть 1. Выбираем, что тестировать


Шаг № 5. Выбор необходимого инструментария и методики.
С появлением на рынке специализированных программ для тестирования торговых систем отпала необходимость вручную программировать весь тестовый алгоритм на Бейсике или С. За несколько минут вы можете с легкостью проверить работоспособность любой идеи, используя современные программные комплексы для тестирования и оптимизации биржевых правил. В доступном для среднестатистического пользователя ценовом сегменте очень высока конкуренция среди производителей программного обеспечения для графического и системного анализа. Все они хорошо справляются с расчетом прибыльных и убыточных сделок, позволяют гибко настраивать торговые правила, работать с различными источниками и форматами данных, отображать индикаторы и сделки прямо на ценовом графике. Некоторые программы даже позволяют построить отдельную таблицу сделок и подготовить ее для дальнейшего анализа или сохранить во внешние файлы. Сэкономленное время полностью оправдывает затраченные на это ПО деньги. Для более искушенных исследователей вполне подойдут продвинутые комплексы вроде Statgraphics или Mathcad, позволяющие использовать для анализа сложные статистические и эконометрические алгоритмы.

Длинный тест, короткий тест или тест с «шаговым смещением»?
Если при тестировании торговой системы использовать недостаточное количество данных, то результаты окажутся чересчур оптимистичными для слишком многих комбинаций. Чем короче тестовое окно, тем более прибыльную комбинацию можно подобрать. Предположим, что на рынке облигаций в течение 3 месяце наблюдался устойчивый восходящий тренд. Если коррекционные движения были не очень ярко выражены, то любая скользящая средняя линия с длиной более 10 дней покажет одинаковые результаты. Это объясняется тем, что одной сделкой будет захвачено все движение от начала до конца.
 Проверка устойчивости торговой системы. Часть 2. Выбираем, как тестировать
Если же во время короткого тестового интервала цена показала несколько коротких направленных движений, то быстрые скользящие средние окажутся прибыльными, а более длинные будут раз за разом приносить убытки, попав «на пилу». В этом случае оптимальность параметра для скорости тренда будет полностью определяться длиной направленных ценовых колебаний и величиной рыночного шума.
Проверка устойчивости торговой системы. Часть 2. Выбираем, как тестировать
Подводя итоги, можно сказать, что тестирование на малом количестве данных приводит к следующим результатам:
  — конкретные и средние результаты тестов будут сильно завышены относительно реальности;
— риск и максимальная просадка, как правило, занижены;
— более прибыльными окажутся параметры, при которых торговая система торговала бы чаще;
— найденные параметры окажутся не устойчивыми и не подойдут для будущей торговли.
Гораздо труднее отыскать параметры, при которых торговая система будет демонстрировать прибыль на более продолжительном тестовом отрезке. Среднегодовая доходность системы, оптимизированной на отрезке в несколько лет, никогда не сможет сравниться с приведенной доходностью аналогичной системы, протестированной лишь на нескольких месяцах. Вот, каких результатов можно ожидать при тестировании торговых систем на более длинном интервале исторических данных:
— доходность будет гораздо ниже;
— риск возрастает с увеличением времени удержания позиции;
— даже при краткосрочной торговле становится проблематично постоянно поддерживать высокий уровень прибыли;
— возникают вопросы и сомнения относительно пригодности устаревших данных;
— найденные параметры более стабильны.
Можно однозначно сказать, что хотя тесты на коротком отрезке данных и демонстрируют более высокие показатели, но в реальности их работоспособность далека от ожиданий. Более длинное тестовое окно, наоборот, приводит к менее радужным результатам, но в дальнейшем торговая система ведет себя более предсказуемо. Не нужно переживать, сравнивая умеренные показатели долгосрочных тестов с результатами краткосрочного тестирования. Результаты оптимизации на недостаточном количестве данных могут легко ввести в заблуждение.
Выбирайте для тестов длинный, репрезентативный отрезок данных.
Когда для тестов задействовано больше данных, торговая система испытывается на множестве необычных ситуаций, ценовых колебаний различной длины и амплитуды, подвергается затяжной серии убытков и экстремальных ценовых отклонений. При тестировании системы на более продолжительных отрезках данных возрастает как риск, так и ожидаемая доходность. Тесты на коротких интервалах могут привести к сильно заниженным оценкам рискованности и недооценки глубины просадок, что повлечет риск недокапитализации. Можно взять за правило использовать для тестов отрезок данных продолжительностью «два полных цикла». Подобный тестовый интервал должен включать в себя два периода бычьего рынка, два медвежьих периода и два периода бокового флетового движения.
Поскольку на долгосрочных тестах торговая стратегия никогда не покажет таких впечатляющих результатов, как внутри короткого тестового окна, можно было бы предположить, что микроструктура рынка изменилась и более старые данные уже нерепрезентативны. Фундаментальными причинами для этого могли бы стать макроэкономические нововведения или действия правительств и Центробанков по предотвращению очередного экономического коллапса, которые могли бы повлиять на динамику торгов и изменить ценовые закономерности и взаимосвязи. Заблуждением также будет считать, что на рынке будут постоянно существовать только что найденные неэффективности. Паттерны постоянно эволюционируют, изживают себя и порождают новые, однако, мы никогда не сможем заранее предсказать характер этих изменений. История предлагает нам наиболее доступный, удобный и реалистичный набор ценовых закономерностей и взаимосвязей.
Тесты с шаговым смещением окна или один долгосрочный тест.
Алгоритм тестирования с использованием периодического смещения тестового окна представляет собой вполне разумный компромисс, способный объединить плюсы долгосрочных и краткосрочных тестов. Он состоит из следующих этапов:
1. Выберите относительно короткий отрезок данных, называемый «тестовым окном» (например, данные за два года);
2. Протестируйте (оптимизируйте) весь набор параметров на этом тестовом окне и выберите «лучшие»;
3. Запустите тесты торговой системы на коротком интервале вневыборочных данных, следующих непосредственно за тестовым окном (например, последующие три месяца), используя отобранные ранее «лучшие» параметры;
4. Сохраните показатели тестов на вневыборочных данных вместе с результатами тестового окна для дальнейшего сравнения;
5. Сдвиньте тестовое окно на один небольшой шаг вперед и повторяйте этапы со второго по четвертый до тех пор, пока не достигнете окончания доступных для тестов данных;
6. Параметры, которые показали себя наилучшим образом, наиболее последовательно и предсказуемо, считаются наилучшими.
 
Проверка устойчивости торговой системы. Часть 2. Выбираем, как тестировать

Продолжение http://robostroy.ru/community/article.aspx?id=687
4 Комментария
  • Спасибо, когда вернетесь на 2стокс?
  • Машковский Евгений
    24 сентября 2013, 16:36
    Спасибо, очень интересно!+++
  • ves2010
    24 сентября 2013, 18:31
    и это все??? чет мало… афтор имеет смутные представления об устойчивости систем

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн