Ликвидация бизнеса. Приказы. Оборудование для бизнеса. Бухгалтерия и кадры
Поиск по сайту

Методы тестирования торговых стратегий. Как я сделал тестер-оптимизатор для нахождения прибыльных стратегий на бирже

Всем привет! Только что с тренировки, сил осталось немного, как раз на новую статью! Постараюсь сделать её интересной, тем более тема имеет значение для всех системных трейдеров. Как правильно провести тестирование торговой стратегии? На каком интервале времени проводить проверку? Как узнать реальные результаты системы, а не торговать по убыточной, веря в её доходность? Ответы на все эти вопросы найдёте далее!

Как уже упоминал в прошлых статьях, я тестирую свои стратегии с 2000 года по настоящее время. Этого срока вполне хватает. Можно ли уменьшить время проверки и к чему это приведёт? Смотря насколько уменьшать. Давайте возьмём за пример, результаты тестов моей трендовой стратегии и прикинем различные варианты.

Тестирование моей торговой стратегии

Тестирование этой стратегии я проводил ещё в 2010-начале 2011. С тех пор её и применяю. Посмотрите на график с 2001 по 2010 годы включительно на четырёх валютных парах.


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

Посмотрите внимательнее на 2008 год – это год кризиса. За этот промежуток стратегия принесла бы более 100%! Это очень хороший показатель, намного больше, чем в другие годы. Представим, что я придумал бы этот способ торговли именно в конце 2008 года. Причём моя лень настолько была бы велика, что после проведения тестирования за 1 год мои руки опустились, и я превратился в овоща. Что было бы тогда? Тогда был бы график только за 2008 год, а это +100% прибыли! Я бы подумал: «здорово, теперь я смогу зарабатывать ежегодно 100%!». Но это на самом деле не так…

А теперь посмотрите на 2009 год – эквити колеблется практически на месте и только к концу немного повышается. Посмотрев на тест только 2009 года, я бы подумал: «хм, не очень-то хорошая », и отказался бы от её применения. Но на самом деле система неплохая, просто один год слишком маленький промежуток, чтобы оценивать её работоспособность.

Всего один год на финансовых рынках может сложиться по-разному, посмотрим на примере.


2008 – год кризиса, резкие движения на большие расстояния становятся нормой, особенно во второй половине. Какая трендовая система не будет зарабатывать на таком рынке? Это же мечта, а не рынок!

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

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

Ещё один важный момент при тестировании стратегий – количество сделок за тест. В интернете встречал результаты, включающие 100-200 сделок, считаю, это очень мало! Здесь ситуация сложнее, минимальное количество сделок зависит от характеристик стратегии. Например, если прибыль/риск вашей системы 2/1, то 300-400 сделок уже дают предварительные данные, их стоит принимать в расчёт. А если у вас трендовая система, где прибыль делается в одной сделке из 50, то 300-400 позиций ни о чём не скажут! Посмотрите характеристики проверяемого способа торговли, и убедитесь, что бэк-тесты включают достаточное количество как положительных, так и отрицательных сделок, чем больше – тем лучше. Кстати, интересный случай из моей практики, как раз в тему:

Так же советую проводить тесты на разных инструментах, если у вас алгоритм, использующий общие неэффективности рынка. Трендовость – это как раз общая неэффективность рынка, присущая практически всем основным инструментам торговли. Проверьте вашу трендовую стратегию не только на EUR/USD, подключите основные валютные пары, золото, фьючерсы. Если система рабочая, то она как минимум не будет терять на других инструментах торговли, так вы получите дополнительную психологическую уверенность. Если же тесты проходят неудачно – это повод задуматься и доработать вашу систему. Это не касается методов, использующих неэффективность одного инструмента. Например, на EUR/USD во время азиатской сессии часто бывает флэтовое движение цены, так как основные торги проходят во время европейской и американской сессий. Стратегии, зарабатывающие благодаря этим особенностям EUR/USD, не имеет смысла проверять на всех инструментах. Если же вы до сих пор верите в прибыльность Мартингейла, тогда вам сюда: и советую раздел.

Основные правила для тестирования торговых стратегий

Теперь давайте соберём всё в кучу! Итак, тест должен быть как минимум за 5 лет, более длительный промежуток даёт больше информации, это приветствуется. А вот более маленький – повышает вероятность неадекватного тестирования. Постарайтесь включить трендовое и флэтовое состояние рынка. Существенным плюсом будет количество сделок за 1000, нужно сопоставлять с характеристиками вашей системы, однозначно – чем больше, тем лучше! И не забывайте проводить проверку на других ликвидных инструментах. Пример грамотной проверки системы можете посмотреть в статье:

На этом всё, друзья! Частному трейдеру пора отдохнуть:-) . Приглашаю подписаться на обновления блога по почте в форме ниже, так вы будете узнавать о новых материалах самыми первыми. Или добавляйтесь в социальных сетях, где я анонсирую посты. Попутного тренда, до встречи!

P.S. Классный мультик, что-то нравится мне в последнее время их смотреть! :-)

Найденная на просторах интернета, услышанная от знакомого трейдера или же придуманная Вами, должна быть протестирована (сопоставлена с историческими данными) и "обкатана" на демо или центовом счете. Лишь после этого можно применять ее для торговли на реальном счете. Тестировать торговые стратегии можно и нужно сразу несколькими способами - используя последовательно описанные ниже методы тестирования, Вы добьетесь более точных и правдоподобных результатов. Давайте рассмотрим, какие методы и способы тестирования нужно применять в своей работе на рынке Форекс.

Визуальный метод тестирования.

Визуальный метод предусматривает привязку индикаторов и шаблонов тестируемых стратегий к графику с необходимой валютной парой. Затем обычным пролистыванием графика прокручивается история выбранной валютной пары или другого актива. Трейдер знакомится с историческими данными, отслеживает каждый сигнал, полученный при использовании испытываемой стратегии. Таким образом, удается определить поведение системы, ее актуальность и эффективность вплоть до определения количества пунктов прибыли, которые могли быть получены при появлении сигналов. Это, в свою очередь, позволяет в дальнейшем определиться с уровнями тейк-профита и стоп-лосса, если сигналы действительно оказывались верными. Если же стратегия является неэффективной, Вы сразу обнаружите её неработоспособность и сможете принять решение - поставить на этой стратегии "крест" или заниматься её дальнейшей модернизацией.

После тщательного тестирования и анализа стратегии Форекс путем просмотра истории цены актива на графике и принятия решения о том, что стратегия "перспективная", к анализу можно будет подключить для определения закономерностей в росте/падении валют вкупе с появляющимися сигналами. Это позволит внести дополнительные коррективы и изменения в параметры индикаторов, а, значит, сделать систему максимально результативной и эффективной.

Рис. 1. График с индикаторами, предназначенный для визуального тестирования стратегии.

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

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

Тестирование в тестере стратегий.

После визуальной обкатки ручной стратегии и создания на её основе , в дело вступает автоматизация. Второй метод подразумевает тестирование стратегии Форекс, по алгоритмам которой работает советник, в тестере стратегий . Он имеет свои преимущества и недостатки. Преимущества в том, что это метод прост, так как весь анализ проводится в автоматическом режиме тестером стратегий в торговом терминале, причем за сравнительно короткий промежуток времени могут прогоняться исторические данные за несколько лет. Но тут есть несколько сложных моментов. Первый: чтобы превратить стратегию в советника, необходимо обратиться за помощью к программистам. А иногда обходятся недешево, и не факт, что Ваши задумки превратятся в правильный программный код. И второе: для тестирования советников в тестере стратеги нужен качественный архив котировок, а его предоставить как раз то и не могут. Но, тем не менее, данный метод весьма распространен и активно используется подавляющим большинством трейдеров для тестирования не только советников, созданных на основе собственной стратегии, но и сторонних разработок.

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


Рис. 2. Тестер стратегий в торговом терминале MT4.

В случае получения отрицательных или малоприбыльных результатов придется "повозиться" и подобрать значения параметров советника таким образом, чтобы результаты тестирования стратегии (советника на его основе) стали прибыльными. в тестере стратегий в этом случае станет лучшим решением.

Тестирование на торговом счете.

Заключение.

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

  • 1) Визуальный метод тестирования разработанной или готовой торговой стратегии;
  • 2) Создание на основе стратегии автоматического робота - советника с последующим тестированием и оптимизацией его в тестере стратегий терминала МетаТрейдер 4;
  • 3) Обязательное тестирование советника на демо или центовом счету (а лучше - последовательно, вначале на демо, а потом уже на центовом счету на небольших суммах);

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

Торговля акциями

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

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

Другое дело при дискреционном подходе к трейдингу. Так как здесь все подряд не торгуется, хотя установлены конкретные правила, тестирование на исторических данных сильно утруднено, а иногда и вовсе невозможно. Например, стратегию свинг трейдинга , которая представлена на этом сайте, мне не удалось протестировать. Какой выход?

Далее в этой статье мы поговорим о таком способе тестирование, как «paper trading» или трейдинг на бумаге. Он поможет не только проанализировать стратегию, но и покажет результаты, которые можно реально ожидать.

Бэктестинг

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

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

Бэктестинг может быть ложно обнадеживающим, поскольку любую проигрышную стратегию здесь можно трансформировать в машину для генерации дохода. Как? При помощи оптимизации. Например, вы тестируете, как работала стратегия пересечения двух скользящих средних на протяжении последних 2 лет. Путем нехитрой игры с периодичностью скользящей средней, у вас получилось, что феноменальный результат дает пересечение 12-периодной SMA с 33-периодной EMA. Но практика показывает, что с таким подходом, в следующие 2 года эта стратегия будет феноменально убыточной.

Итак, тонкая подгонка установок торговой системы и ее сверх оптимизация, могут показать вам 100% прибыльный результат на исторических данных, но быть убыточными на реальном рынке. Как поступить?

Правильный бэктестинг или форвард тестирование

Вам нужно взять достаточно длинный исторический период, не менее 5 лет и разделить его на три части. Две трети вы оставите для тестирования и оптимизации, и называться эта часть будет – данные в выборке. Одну треть нужно зарезервировать для контроля под названием – данные вне выборки.

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

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

Тестирование на текущих данных

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

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

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

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

Ниже рассмотрены основные способы и правила тестирования торговых систем применяемые в настоящее время.

Backtesting или тестирование на исторических данных

Благодаря развитию компьютерных технологий, сегодня провести такого рода Backtesting может практически любой трейдер. Практически каждый современный обладает набором инструментов для такого рода тестирования. Не исключением является и торговый терминал MetaTrader4 (МТ4). В МТ4 для этих целей применяется инструмент под названием «Тестер стратегий». Он позволяет протестировать создаваемую торговую стратегию на любом историческом интервале данных (если истории не хватает её всегда можно подгрузить). Для того чтобы воспользоваться этим инструментом необходимо сначала переложить тестируемую стратегию на язык понятный торговому терминалу (создать программный код). Для торгового терминала МТ4 это язык программирования MQL4.

По сути, торговая система, подготовленная для тестера стратегий, то есть переложенная на MQL4, представляет собой практически готового . И с небольшими доработками вы сможете впоследствии использовать этот программный код для автоматизации своей торговли.

Тестирование на исторических данных позволяет охватить огромные интервалы истории, затратив на это минимум своего времени. Однако такое тестирование таит в себе одного опасного врага и имя этого врага – излишняя оптимизация.

Что такое оптимизация торговой системы и в чём её опасность

Если в двух словах, то оптимизация торговой системы сводится к тому, что тестируемая система прогоняется на одном и том же временном интервале с различными значениями переменных. Целью этих прогонов является такой подбор переменных, при котором система даёт наилучшие свои результаты.

К примеру, вы тестируете систему на основе трёх и на временном промежутке в 3 года. Благодаря вычислительным возможностям любого современного компьютера можно прогнать эту систему с бесконечным числом комбинаций параметров (периодов скользящих средних и ADX) найдя, таким образом, такое их сочетание при котором система показывает феноменальную прибыль.

Казалось бы чего же в этом плохого? А плохо то, что при такого рода оптимизации, практически для любой, даже для самой плохонькой торговой системы можно найти такую комбинацию параметров, при которой она покажет прибыль на заданном временном интервале. Но вот стоит выйти с такой торговой системой на реальную торговлю, как тут же начнётся планомерный слив депозита (планомерный, поскольку задан в алгоритме системы).

Как избежать переоптимизации торговой системы

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

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

Тестер стратегий в торговом терминале МТ4

Paper trading или тестирование на текущих данных

Торговля «на бумаге», а именно так переводится с английского словосочетание paper trading, представляет собой симуляцию торговли в реальном времени. Раньше, до появления компьютеров, трейдеры записывали все сделки по тестируемой системе на бумаге. То есть они не совершали сделку как таковую, и не рисковали своими деньгами, но вели подсчёт виртуальных прибылей и убытков вручную, что в итоге давало им представление о том, насколько хороша тестируемая стратегия.

В настоящее время для online тестирования торговых систем как нельзя лучше подходит . Сейчас трудно найти такого брокера, который не предоставлял бы своим клиентам возможность попробовать свои силы на демо-счете, прежде чем приступать к торговле на реальные деньги. По большому счёту процесс торговли на демке ничем не отличается от реального счёта, здесь те же графики, котировки и торговые условия. Единственное, отсутствует тот накал страстей, который привносят в процесс торговли настоящие деньги.

Вывод

Правильное тестирование торговой системы должно включать в себя два этапа:

1. Тестирование на исторических данных

2. Тестирование в реальном времени

Первым делом испытайте ТС на истории. Убедитесь в том, что она в принципе обладает достаточным потенциалом прибыльности.

Затем протестируйте созданную торговую систему на трёх разных исторических интервалах и убедитесь в отсутствии переоптимизации.

После этого в обязательном порядке протестируйте ТС на демо-счёте. Если это внутридневная система, то достаточно будет 2-4 недели тестирования. Для более долгосрочных ТС, соответственно, больше. Ни в коем случае не пренебрегайте этим этапом, именно он является определяющим во всей процедуре тестирования.

Только так можно быть уверенным в прибыльности тестируемой системы и смело начинать торговать по ней на реальном торговом счете.

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

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

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

Итак, предположим, что начинающий трейдер разработал свою собственную , применил ее на реальном рынке.

Отлично! Сделки совершены верно и даже получена неплохая в виде 31%. Что в этом случае сделает начинающий трейдер? Правильно – продолжит торговлю на бирже по той же схеме. Торговля продолжается в течение месяца и, как результат 105% прибыли (см. картинку ниже).

И снова все в порядке! Наверное в этот момент наш начинающий трейдер может почувствовать, что нашел грааль и теперь его ждут миллионные прибыли, успех и слава. Посмотрим, продолжим тестирование.

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

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

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

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