Чтение онлайн

ЖАНРЫ

Компьютерный анализ фьючерсных рынков
Шрифт:

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

Отметьте, как в таблице 3.1 на результаты влияет изменение временных отрез­ков, особенно это относится к убыткам. Отдача реагирует сходным образом, что под­водит нас к любопытной мысли. При проведении всех процедур оптимизации/тести­рования мы сконцентрировали внимание на совокупной отдаче как на единственном критерии выбора оптимальных параметров для использования в последующих тестах или в торговле в реальном времени. В нашем простом примере отдачи примерно соот­ветствуют друг другу. Потери, однако, существенно различаются. Сколько трейде­ров хотели бы наяючить на убыток в $10000 при торговле контрактом со средним запасом примерно в $2500?

Этот пример на рисунке 3-1 иллюстрирует одну из редко упоминаемых опаснос­тей тестирования вообще, и оптимизации в частности. Когда вы тестируете для улучшения только одного результата (обычно совокупной отдачи), вы игнорируете другие не менее важные данные. Мы рекомендуем проводить тестирование для серии пара­метров, а не только для одного. Мы понимаем, что это усложняет процедуру и во многом делает ее субъективной, но тестирование только для улучшения совокупной отдачи часто уводит с правильного пути и может оказаться опасным для вашего фи­нансового здоровья.

Выбор данных для тестирования

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

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

У нас есть данные из двух источников: FutureSource и Technical Tools. Наши данные Technical Tools поступили вместе с программным обеспечением для создания наших собственных продолжительных (или другого рода) контрактов. Если вы обла­даете несколькими различными пакетами аналитического программного обеспече­ния, Quote Butler от Technical Tools является отличным способом перебрасывания данных из одного пакета в другой без необходимости покупать данные отдельно для каждого приложения. Мы давно не общались с другими поставщиками данных, но существует еще несколько надежных источников недорогих и достоверных данных.

Проскальзывания и комиссионные

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

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

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

У каждого есть свои любимые числа для стоимости трансакций. Мы отводим $75 на проскальзывания и $50 на комиссионные за оборот контракта, что в общей сложности составляет $ 125 на торговлю. Эти цифры могут показаться высокими, но мы предпочитаем ошибаться в худшую сторону. Когда мы тестируем части торговой системы, мы можем умышленно закрыть глаза на проскальзывания и комиссионные для упрощения операций, но мы обязательно убедимся, что они участвуют в итоговом тестировании.

Типы тестирования *

Мы разъясним несколько наиболее общих схем оптимизации и тестирования.

Простая оптимизация

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

Совокупное опережающее тестирование

Это также называется "прогонной" оптимизацией. Совокупное опережающее тестирование требует, чтобы вы оптимизировали систему на периоде в начале ваших данных, а затем тестировали результаты на относительно небольшом последующем участке. Затем вы должны переоптимизировать на периоде, включающем оба набора данных, и повторить цикл. Например, если у вас есть 10-летние данные по казначейс­ким обязательствам, вы могли бы оптимизировать на первых 3 годах, а затем тестиро­вать на следующем за ними году. Если результаты все еще хороши, вы должны затем оптимизировать на всех четырех годах и тестировать на пятом году, и так далее. Это одна из форм оптимизации, которая была протестирована Лукасом и Брорсеном, и которую они нашли не лучшей, чем простая оптимизация (смотрите выше).

Простое опережаюшее тестирование *

Этот способ называют также "слепым моделированием" или "тестированием за пределами выборки". Вы разрабатываете вашу систему на начальных данных (ска­жем, первые 5 лет 10-летнего набора данных) и затем тестируете без изменения то, что вы считаете вашей лучшей комбинацией параметров и правил на более свежем вре­менном периоде. Если результат не устраивает-процесс повторяется. Оптимизируете вы или нет в первой фазе тестирования, это не так важно, как удерживание количе­ства переменных на небольшом уровне. Самое важное, что любая торговая система, подвергаемая простому тестированию или оптимизации без опережающего тестиро­вания, скорее всего будет обречена на провал.

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

Измерение производительности

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

Поделиться с друзьями: