Любой индикатор или торговую систему (платные, бесплатные, чужие или созданные самостоятельно) можно ставить на реальный счет только после успешного тест-драйва несколькими способами и в различных торговых условиях. Оптимизация и грамотное тестирование торговых стратегий – необходимый процесс для успешной торговли.
Разработка торговой системы требует много времени и сил, поэтому эмпирические методы подбора параметров уже давно не используются. Сегодня этап тестирования стал необходимым компонентом теханализа и позволяет сохранить капитал для реальной торговли.
Процесс тестирования торговых стратегий означает запуск алгоритма на исторических или смоделированных данных. Тест должен «увидеть» биржевые «сигналы» для генерации сделок покупки/продажи и выдать результат «возможной» торговли – величина дохода/убытка выступает показателем пригодности для реальной работы.
Основные цели и методики
Прежде всего, необходимо выполнить проверку:
- заложенных в стратегию показателей производительности;
- рыночных моделей (активы, ликвидность, издержки, скорость, проскальзывание, риск) без реальной торговли;
- оптимальность параметров по результатам теста на истории;
- программного кода на ошибки разработки.
Тест должен включать анализ прошлого/прогноз будущего и выдать отчет с графическими и количественными результатами. В тестер можно загрузить:
- историю - массив ранее сформированных баров с параметрами цен, объемов, индикаторов: тогда для анализа формируется ценовое «прошлое» и «будущее» для того, чтобы на «прошлой» динамике оценить «будущую» реакцию;
- значения цены, смоделированные сценарием: затем на вход тестера подавать тиковые данные (историю или реальные) и получать прогноз движения.
Первый метод дает легкость, скорость, но слабую точность, а во втором стратегия ведет себя в тестере именно так, как и в режиме реальной торговли. Смоделированные результаты можно хранить в виде внешних файлов, которые можно загрузить в терминал через меню «Файл» - «Открыть автономно».
Тестирование торговых стратегий можно выполнять с помощью:
- любого математического ПО (Matlab или MS Excel с плагинами для биржевой торговли);
- систем создания механических систем (MetaStock, Wealth-Lab, Omega);
- языков программирования Java, Scala или C++/C# для создания и теста торговых роботов;
- тестеров, встроенных в торговые платформы.
Традиционно для получения стабильных и корректных результатов в процессе тестирования последовательно применяются:
- Визуальный тест индикатора или системы: требует просмотра истории цены за длительный период (один - два года). Этот трудоемкий процесс упрощается с помощью ПО тестера ручных стратегий.
- Создание, тестирование и оптимизация советника.
- Тест на длительной истории в автоматическом режиме.
- Тест на демо-счете или на центовом счете: выполняется после получения стабильных результатов по двум первым методам – продолжительный, но самый точный расчет. Разница между демо и центовым счетом - только психологическая.
В случае получения невыгодных результатов необходимо потратить время на подбор параметров советника и встроенная опция оптимизации – наиболее пригодный для этого механизм.
Тестеры торговых стратегий
Представляют собой мультивалютные аналитические инструменты для обработки истории, загруженной из внешних файлов. Процесс последовательно перебирает котировки, анализирует реакцию алгоритма, открывает виртуальные сделки. Можно рассчитывать одновременно на нескольких активах для выбора выгодного варианта.
При тестировании торговых стратегий режим произвольных задержек исполнения моделирует сетевые проблемы при реальном исполнении приказов дилерами. Режим визуализации показывает процесс в режиме реального времени: на ценовом графике отображаются все открываемые сделки, проводится настройка по критериям: скорость, качество, прибыль, период, различные условия торговли.
Результат выдается в виде графической и статистической информации: процент прибыль/убыток, кол-во убыточных/профитных сделок, показатели факторов риска, математическое ожидание выигрыша и прочее.
Механизм «форвард» тестирования торговых стратегий помогает избавиться от проблем «подгонки» параметров: история делится на две части – на одной половине выполнятся оптимизация, а второй участок должен результат подтвердить. Тестеры могут поддерживать методику распределенного тестирования, то есть включать в процесс дополнительные мощности, в том числе и в сети облачных вычислений.
Основные требования к настройкам при тестировании торговых стратегий:
- скачать данные всех периодов; диапазон истории – не менее 5 лет, с обязательным включением периодов с кризисной/нестандартной динамикой (например, 2008-2009 гг.);
- если используете меньший период, то он должен включать периоды трендового и флетового движения;
- количество смоделированных сделок менее 300;
- тест алгоритма на нескольких ликвидных инструментах.
При настройке параметров теста необходимо учитывать:
- торговые издержки (спреды, комиссии);
- проскальзывание/задержки срабатывания;
- влияние ликвидности актива (объемную динамику);
- изменение рыночных условий;
- типы торговых приказов, которые планируется использовать (market или limit ордера).
Если market-ордер исполняется сразу, но его конечная цена для теста неопределена, то limit-приказы могут «ждать» самую подходящую для сделки цену. Limit-ордер считается пассивным средством, так как может быть неисполнен или частично исполнен, если будет мало заявок. Если поведение очереди заявок (Order book) смоделировать неточно, тест в реальном времени покажет худшие результаты, чем тест на истории.
Не забываем: перед закрытием сессий спрэд может увеличиваться в несколько раз, поэтому не стоит проводить короткие тесты с учетом выходных – получите гораздо большие издержки.
Обычно используются три способа расчета:
- По ценам открытия: самый быстрый, но самый неточный метод, большинство стратегий при тестировании на периоде до 1 года могут вообще не открыть ни одной сделки;
- По контрольным точкам: наиболее сбалансирован по точности и времени, но уровень доверия к полученным данным низкий;
- По всем тикам: самый точный метод, приближенный к реальности.
При любом методе теста на длительном периоде, результаты за последние пару лет получаются самыми точными, как для трендовых, так и для откатных систем.
Не забываем: реализация реальных моделей и объемы смоделированных данных для точного тестирования требуют технических ресурсов, а визуализация замедляет процесс расчета.
Тестирование торговых стратегий корректно моделирует все тайм-фреймы, включая данные объема. Во время теста расчет индикаторов выполняется в режиме онлайн.
После завершения теста можно открыть модель графика со всеми точками входа/выхода и данными индикаторов, так что если стратегии или индикаторы имеют ошибки – они обязательно проявятся. Значения индикатора, рассчитанные по истории, могут отличаться от значений на момент теста.
Результаты тестирования можно выгрузить в Excel или любое иное ПО в виде последовательности данных с разделителями.
Не забываем: нельзя использовать в расчетах неполный комплект котировок или частичный импорт из различных источников. Минутные котировки должны пересчитываться автоматически и поступать в расчет без временных пропусков или сдвигов.
И в качестве заключения …
Тестирование торговых стратегий позволяет оценить корректность и прибыльность алгоритма без реальной торговли на рынке. Кроме денег, это экономит время – тест на котировках за период в несколько лет может занять всего несколько часов, его можно остановить в любой момент, поменять инструмент, условия расчета или параметры оптимизации. Источник: Dewinforex
Социальные кнопки для Joomla