5. Подготовка данных, план и задачи исследований.

 5. Подготовка данных, план и задачи исследований.


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

Начнем с подготовки исторических данных для тестирования.


5.1. Подготовка данных.

5.1.1. Источники данных - биржи.

Вопрос поиска источника данных обычно не представляет большой проблемы.

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

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

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

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


5.1.2. Источники данных - информационные агентства.

Это другой надежный канал исторических данных, но, как правило, на платной основе.
Поставщиками самого широкого спектра данных являются крупнейшие мировые компаний, такие, например, как REUTERS, Telerate, Bloomberg и многие другие.

Агенство REUTERS является ведущим мировым агентством новостей и финансовой информации. Оно не имеет себе равных по количеству, сложности и общему объему информации, поставляемой агентством банкам, средствам массовой информации и постоянно увеличивающемуся числу других деловых подписчиков.

Moneyline Telerate предоставляет информацию и услуги по совершении сделок в режиме реального времени, позволяя владельцам ликвидностей обращать в деньги и эфективно распределять свои активы.
Cистема Telerate работает в сфере электронных рынков, но не является электронным брокером, предоставляя информацию и услуги по проведению сделок в реальном времени и предусматривая бесшовную интеграцию показательных и исполнительных цен.

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


5.1.3. Источники данных – брокерские компании и дилинговые центры.

Брокерские компании и дилинговые центры в рамках поддержки торговых операций своих клиентов также предоставляют некоторый объем исторических данных по торгуемым инструментам.

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

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


5.1.4. Особенности работы с историческими данными по фьючерсным рынкам.

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

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

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

В случае работы на спот-рынке, с текущими ценами наличного товара (такая ситуация характерна и для большинства инструментов FOREX), такая проблема отсутствует. Архивные данные непрерывны и соответствуют одному и тому же инструменту на всем протяжении временного интервала данных.


5.1.5. Верификация данных.

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

Простейший способ проверки - построение графиков, на которых всегда хорошо видны выбросы и нехарактерные движения как, например, показано на рисунке внизу.



Пример графика с данными, которые требуют дополнительной проверки: визуально видны разрывы графика и пропуски баров в зонах, где разделители периодов расположены неравномерно.

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


5.2. Секционирование (сегментирование) данных.

5.1.1. Необходимость секционирования.
.
После того, как получены необходимые исторические данные, их необходимо подготовить для тестирования. Для этого необходимо весь интервал данных разбить на сегменты (секции), сделав первый сегмент более крупным, чем остальные (см.рис.5.1).



Рис.5.1. Секционирование данных

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

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

Проблема подстройки стратегии под параметры рынка является одной из основных проблем при разработке торговых стратегий. Один из путей ее решения – это сведение к разумному минимуму количества параметров оптимизации. Лучше всего, если таких параметров будет 1-2, максимум 3. При большем количестве параметров у торговой системы возникает множество степеней свободы и наблюдая за расположением торговых сигналов на графике цен мы увидим чисто случайный порядок их размещения, несмотря на отличные результаты теста.

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

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


5.2.2. Выбор размера сегмента данных.

На рис.5.1. общий диапазон данных разбит на 8 одинаковых по размеру секций, три из которых на начальном участке объединены в основной (стартовый) сегмент.

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

В начале нашего курса мы привели в качестве примера один из способов классификации трендов по длительности:
- сверхкраткросрочные или внутридневные тренды;
- локальные тренды или тренды недельного цикла;
- краткосрочные тренды, длительностью до 4-5 недель;
- среднесрочные тренды, длительностью до полугода;
- долгосрочные тренды, длительностью до 2-2.5 лет;
- основные тренды, длительностью до 10-15 лет;
- глобальные тренды, длительностью свыше 12-15 лет.

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

Количество рабочих дней одного года, для которых строится график изменения цены дневного масштаба, составляет примерно 250 дней. Поэтому в сегменте размером около 1000 баров будет укладываться около 2-х циклов долгосрочного тренда, а три сегмента содержат данные 5-6 полных циклов, что позволит при проведении теста выявить существенные параметры рынка и несколько сгладит случайную составляющую рыночных движений. Для графиков другого масштаба цифры могут быть другими.

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


5.3. План и задачи исследований.

5.3.1. Торговая система (системы) без настраиваемых параметров.

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

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


5.3.2. Этапы тестирования торговых систем с оптимизацией.

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

Типовая процедура оптимизации, как уже отмечалось выше, включает несколько этапов.

Этап.1. Первоначальная оптимизация – определение параметров МТС.
Первоначальная оптимизация проводится на основном или стартовом сегменте данных и её целью является поиск параметров торговой модели, способных увеличить эффективность МТС.
Оптимальные параметры модели для первого сегмента подыскивается путем простого подбора значений параметров модели, при которых параметры МТС оказываются наилучшими.
Первоначальная оптимизация производится исключительно в пределах стартового сегмента данных, который называется выборкой (sample) и используемый для поиска наилучших значений изменяемых параметров торговой модели. Данные более позднего времени, не подвергавшиеся анализу на этапе первоначальной оптимизации, именуются данными вне выборки (out-of-sample) и будут использованы для продолжения оптимизации на следующих этапах.
На этапе 1 определяются оптимальные значения параметров, обеспечивающие наилучшие характеристики МТС с точки зрения выбранных критериев оптимизации, однако результаты тестирования на выборке не дают объективной информации об эффективности торговой стратегии. Достоверные данные о параметрах полученной в результате тестирования МТС, характеризующие эффективность системы, могут быть определены только после проведения анализа данных вне выборки.

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

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

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

Этап 5. Оценка результатов.
Если анализируемые данные не случайны, а количество сегментов достаточно велико, то в ходе тестирования можно получить достойную доверия информацию о поведении и эффективности торговой системы в течение ряда лет. Полученные результаты покажут, насколько прибыльной и стабильной оказалась торговая система или системы, и дадут возможность из нескольких прошедших тестирование систем выбрать одну для наиболее успешной работы в реальном времени. Ваша торговая модель, таким образом, прошла объективную проверку, по результатам которой она может быть принята или отвергнута.


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

Не стоит поддаваться соблазну и пропускать полную процедуру исследования системы с прохождением этапов 1-5, а сразу переходить к тесту на основе всех имеющихся данных. При этом будет упущена важнейшая информация о слабых и сильных сторонах МТС, а также об эволюции, которую она претерпевает с течением времени.

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

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


5.4. Рекомендации по оценке результатов тестирования.

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


5.4.1. Достоверность результатов тестирования и оптимизации.

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

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

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

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

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

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


5.4.2. Комиссионные и спред.

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

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


5.4.3. Соотношение размера и количества прибыльных и убыточных сделок.

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

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

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


5.4.4. Другие критерии качества, используемые при оценке систем.

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

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

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

Тестер систем программного комплекса Метасток не рассчитывает фактор восстановления, эти расчеты придется проводить самостоятельно.


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

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


5.5. Резюме.

Основные моменты мы оговорили.
Если что-то упущено, дополним впоследствии.
А теперь приступаем к практической части нашего курса - изучению типовых классов торговых стратегий и разработке конкретных механических торговых систем (МТС).

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

Отправить комментарий