Д.Катс.Д.Маккормик.Энциклопедия торговых стратегий. Донна л. Маккормик
Скачать 5.96 Mb.
|
ГЛАВА 3 ОПТИМИЗАТОРЫ и ОПТИМИЗАЦИЯ 63 Поскольку будущее еще не наступило, нельзя дать оптимизатору ту задачу, которую предстоит решать системе в процессе реальной торгов- ли. Следовательно, требуется дать оптимизатору задание, решение кото- рого было бы применимо к реальной торговле с максимальной степенью приближенности. Один из способов достичь этого состоит в том, чтобы использовать данные из прошлого, включающие характеристики, кото- рых можно ожидать в будущем, т.е. бычьи и медвежьи периоды, периоды с трендами и без них и даже обвалы цен. Кроме того, данные должны быть максимально свежими для отражения текущих процессов на рынке. Та- кую выборку можно считать представительной. Помимо репрезентативности выборка должна быть достаточно вели- ка. Большие выборки снижают вероятность возникновения артефактов или случайных результатов системы при оптимизации. Эффективность торговой системы, оптимизированной на большой выборке, не будет силь- но отличаться от ее эффективности в реальной торговле. Впрочем, иногда приходится делать выбор между размером выборки и степенью ее репрезентативности. Увеличение размера выборки приво- дит к использованию старых ценовых данных, значимость которых для представления современного состояния рынка весьма сомнительна. В некоторых случаях существует четкая грань, за которой данные теряют значимость. Например, фьючерсы на индекс S&P 500 начали обращение на рынке в 1983 г., что оказало структурное влияние на рынок в целом. Это наблюдение становится менее важным при работе с внутридневной ценовой историей, где за относительно короткий период времени можно собрать данные о десятках и сотнях тысяч баров, не углубляясь в прошлое слишком далеко. В конце напоминаем, что при проведении оптимизаций и тестов сле- дует учитывать количество сделок, проведенных системой. Как и объем выборок данных, количество сделок для достоверности должно быть зна- чительным. Если система совершает всего несколько сделок, то, несмот- ря на количество точек данных в выборке, результат может оказаться след- ствием случайностей или артефактов! Минимум правил и параметров Для достижения успеха следует ограничивать число оптимизируемых правил и параметров, особенно при работе на небольших выборках дан- ных. Чем меньше правил и параметров, тем больше вероятность устойчи- вой эффективности решений как на материале выборки, так и за ее пре- делами. Хотя при работе с несколькими тысячами сделок (1 год S&P 500 содержит примерно 100 000 одноминутных баров) можно оптимизировать несколько десятков параметров, при использовании данных на конец дня за несколько лет даже два-три параметра могут оказаться излишними. Если 64 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ данная модель требует оптимизации многих параметров, то следует при- ложить усилия к сбору колоссального объема данных. Легендарный Ганн, как говорят, собрал данные по цене на пшеницу за тысячу лет. При невоз- можности использовать большие объемы данных следует проводить оп- тимизацию системы на портфеле нескольких финансовых инструментов с использованием одних и тех же правил и параметров на всех рынках — эта методика широко использована в данной книге. Подтверждение результатов После оптимизации правил и параметров торговой системы и получения хорошей эффективности на выборке данных важно так или иначе под- твердить эффективность этой системы, прежде чем рисковать реальны- ми деньгами. Подтверждение дает трейдеру еще один шанс отказаться от неудачного решения. От систем, которые не подтвердили себя, следует отказываться, а использовать лишь подтвержденные. Подтверждение — критический шаг на дороге к успеху при оптимизации и при любом мето- де совершенствования работы торговой системы. Для гарантии успеха любое решение следует подтверждать тестами на данных вне выборки или статистическим анализом, но предпочтитель- но — обоими методами. Отбросьте любое решение, которое не будет при- быльным в тесте на данных, не входящих в первоначальную выборку, — при реальной торговле оно, скорей всего, провалится. Рассчитывайте ста- тистическую значимость всех тестов — и в пределах выборки данных, и вне ее. Оценка статистической значимости показывает вероятность того, что пригодность системы на выборке данных соответствует ее пригодно- сти в других условиях, включая реальную торговлю. Статистический ана- лиз работает по принципу распределения вероятностей прибылей в сдел- ках, совершаемых системой. Используйте только статистические мето- ды, скорректированные для множественных тестов, когда анализируете результаты тестов в пределах выборки. Тесты вне пределов выборки сле- дует оценивать стандартными, некорректированными методами. Подоб- ные отчеты приводились в главе, посвященной симуляторам. Займитесь изучением статистики; это улучшит ваши трейдерские качества. Некоторые советуют проверять модель на чувствительность к малым изменениям параметров. Модель, которая мало чувствительна к таким изменениям, считается «высоконадежной». Не обращайте на подобные заявления слишком много внимания. Фактически, устойчивость к изме- нению параметров не может служить показателем надежности системы. Многие чрезвычайно надежные модели весьма чувствительны к измене- ниям некоторых параметров. Единственно достоверный показатель на- дежности системы — статистика, в особенности результаты тестов на дан- ных вне пределов выборки. ГЛАВА 3 ОПТИМИЗАТОРЫ и ОПТИМИЗАЦИЯ 65 АЛЬТЕРНАТИВЫ ТРАДИЦИОННОЙ ОПТИМИЗАЦИИ Существуют два альтернативных традиционной оптимизации подхода — это оптимизация с прогонкой вперед и самоадаптивные системы. Обе эти методики имеют то преимущество, что практически все тестирование проводится вне (пределов выборки. Оцените результативность системы, проведите несколько статистических тестов, постройте график измене- ния капитала — и система готова к торговле. Все чисто и математически безукоризненно. Про коррекцию коэффициентов корреляции, множе- ственные тесты, чрезмерную подгонку системы под ценовые данные и другие проблемы можно просто забыть. Более того, с современной ком- пьютерной техникой модели с прогонкой вперед и самоадаптивные моде- ли становятся практичными и даже несложными. Принцип оптимизации, или тестирования с прогонкой вперед, состо- ит в эмуляции шагов, действительно производимых системой, требующей периодической оптимизации. Метод работает следующим образом. Оп- тимизируйте систему на точках данных от 1 до М. Затем проведите вирту- альную торговлю в точках данных от М + 1 до М + К. Повторно оптими- зируйте систему на точках от К + 1 до К + М. Затем промоделируйте торговлю в точках от (К + М) + 1 до (К + М) + К. Пройдите таким обра- зом через всю выборку данных. Как следует из примера, сначала оптими- зируется система, потом моделируется торговля. Через некоторое время система снова оптимизируется, и торговля возобновляется. Эта последо- вательность гарантирует, что торговля всегда происходит на данных, бо- лее поздних, чем данные, использовавшиеся для оптимизации. Практи- чески, все сделки происходят на данных вне пределов выборки. При тес- тировании с прогонкой вперед М — окно оптимизации (или историчес- кого обзора), а К— интервал повторной оптимизации. Самоадаптивные системы работают подобным образом, но в этом слу- чае оптимизация или адаптивный процесс — часть системы, а не тестовой программы. Как только поступает новая точка данных, самоадаптивная система обновляет свое внутреннее состояние (правила или параметры) и затем принимает решение относительно следующей точки данных. При поступлении следующих данных выполняются принятые решения, и про- цесс повторяется. Внутренние изменения, при помощи которых система изучает рынок и адаптируется к нему, могут происходить не в каждой точ- ке, а, например, в некоторые фиксированные моменты времени. Трейдер, планирующий использовать самоадаптивные системы, дол- жен иметь мощную, основанную на компонентах платформу с использо- ванием развитого языка программирования (C++, Object Pascal или Visual Basic) с возможностью доступа к библиотекам и компонентам третьих производителей. Эти компоненты рассчитаны на встраивание в создава- емые пользователем программы, включая специальные программы адап- тивных систем. Чем больше компонентов доступно, тем меньше работы: 66 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ как минимум трейдер, пытающийся использовать самоадаптивные сис- темы, должен иметь доступ к генетическому оптимизатору и симулятору, которые могут быть легко встроены в модель. Адаптивные системы будут рассмотрены в следующих главах, показывая, как этот метод работает на практике. Несомненно, что системы с прогонкой вперед и самоадаптивные сис- темы приобретут большую популярность в будущем с ростом эффектив- ности рынков и сложности работы на них, а также с расширением дос- тупности для рядовых трейдеров коммерческого программного обеспе- чения на их основе. ИНСТРУМЕНТЫ И ИНФОРМАЦИЯ ДЛЯ ОПТИМИЗАЦИИ Аэродинамика, электроника, химия, биохимия, планирование и бизнес — это только некоторые из областей, где используется оптимизация. По- скольку оптимизация важна для такого количества приложений, в этом направлении ведется множество исследований, создано множество ин- струментов и накоплено много информации. Где же можно найти эту ин- формацию? Какие существуют доступные продукты и инструменты? Оптимизаторы с лобовым подходом обычно встроены в программные пакеты, нацеленные на другие задачи, и редко доступны по отдельности. В мире программ для трейдинга такие оптимизаторы встроены в TradeStation и SuperCharts фирмы Omega Research (800-292-3453), Excalibur фирмы Futures Truth (828-697-0273) и MetaStock фирмы Equis International (800-882-3040). Если вы пишете собственные программы, при помощи не- сложного программирования написать алгоритм лобовой оптимизации можно безо всяких дополнительных библиотек. Программы и алгоритмы для оптимизации с лобовым подходом также полезны при проведении оптимизации под управлением пользователя. Хотя иногда генетические оптимизаторы бывают встроены в специа- лизированные программы, они чаще встречаются в виде компонентов или библиотек классов, дополнений к различным пакетам или самостоятель- ных исследовательских инструментов. Примером библиотеки классов с учетом компонентного использования может служить OptEvolve, генети- ческий оптимизатор на C++ фирмы Scientific Consultant Services (516-696- 3333): этот многоцелевой генетический оптимизатор использует несколь- ко алгоритмов, включая дифференциальную эволюцию, и продается в виде портативного кода на C++, пригодного для UNIX/LINUX, DOS и Windows. TS-Evolve фирмы Ruggiero Associates (800-211-9785) дает пользователям TradeStation возможность провести полноценную генетическую оптими- зацию. Evolver фирмы Palisade Corporation (800-432-7475) представляет со- бой многоцелевой генетический оптимизатор для таблиц MS Excel; с ним поставляется DLL-библиотека, которая может быть использована с лю- ГЛАВА 3 ОПТИМИЗАТОРЫ и ОПТИМИЗАЦИЯ 67 бой программой на любом языке, способной вызывать функции DLL. Так, программа GENESIS, написанная Джоном Грефенштеттом (John Grefenstette) из Naval Research Laboratory, представляет собой самостоя- тельный инструмент для исследователей и доступна в виде исходных ко- дов. Хотя генетические оптимизаторы могут включаться в состав пакетов моделирования для химиков и в другие специализированные продукты, они до сих пор не включены как стандартный компонент в программные пакеты для трейдеров. О генетических оптимизаторах существует достаточно много доступ- ной информации. Генетические алгоритмы обсуждаются в ряде книг, журналов и изданий, на сайтах новостей в Интернете. Хороший анализ проблемы дан в книге Девиса «Handbook of Genetic Algorithms» (Davis, 1991). Прайсом и Стормом (Price и Storm, 1997) описан алгоритм для мето- да «дифференциальной эволюции», который оказался чрезвычайно мощ- ным инструментом для задач оптимизации с рациональными параметра- ми. Генетические алгоритмы сейчас являются темой многих научных из- даний и конференций. Оживленные дискуссии ведутся на страницах ряда новостных сайтов в Интернете, из которых наиболее примечателен comp.ai.genetic. Основы метода моделирования отжига приведены в книге Пресса и др. «Numerical Recipes for С» (Press et al., 1992) вместе с функциями для напи- сания оптимизаторов с этим алгоритмом для комбинаторных задач и за- дач с рациональными параметрами. Книга Мастерса «Neural, Novel & Hybrid Algorithms for Time Series Prediction» (Masters, 1995) также содер- жит рассмотрение задач моделирования отжига, причем коды представ- лены на CD-приложении к книге. Как и генетическая оптимизация, моде- лирование отжига также является темой многих научных исследований, докладов на конференциях, статей и дискуссий в Интернете. Алгоритмы весьма сложных методов — сопряженных градиентов и переменной метрики — можно найти в исследованиях Пресса и др. «Numerical Recipes for С» (Press et al., 1992) и «Numerical Recipes» (Press et al., 1986). Большой ассортимент процедур аналитической оптимизации содержится в уже упомянутом труде Мастерса «Neural, Novel & Hybrid Algorithms for Time Series Prediction» (Masters, 1995) и на прилагаемом к нему диске. Дополнительные процедуры для аналитической оптимизации доступны в составе библиотек IMSL и NAG (Visual Numerics и Numerical Algorithms Corp. соответственно) и в составе оптимизационного набора для MATLAB (многоцелевого математического пакета от Math Works, 508-647-7000, очень популярного в среде занимающихся финансовым пла- нированием). Кроме того, в MS Excel встроен Solver — аналитический оп- тимизатор, основанный на методе Ньютона и сопряженных градиентах. Как источник общей информации об оптимизации при разработке торговых систем можно порекомендовать книгу Роберта Пардо «Design, Testing and Optimization of Trading Systems» (Robert Pardo, 1992). Кроме 68 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ прочего, в книге приведены примеры прибыльной оптимизации, избежа- ния чрезмерной подгонки системы под ценовые данные и проведения те- стов с прогонкой вперед. КАКОЙ ОПТИМИЗАТОР ПОДХОДИТ ВАМ? Как минимум любому трейдеру следует иметь оптимизатор с возможнос- тью проведения лобовой оптимизации и оптимизации под управлением пользователя. Если вы используете для разработки систем TradeStation или Excalibur, эти оптимизации вам уже доступны. С другой стороны, если вы используете Excel, Visual Basic, C++ или Delphi, вам придется разра- батывать собственный оптимизатор. Как показано выше, это достаточно просто, и для многих проблем лобовая оптимизация или оптимизация под управлением пользователя — лучший подход. Если для разработки вашей системы требуются более продвинутые методы, хороший выбор — генетический оптимизатор. При помощи ло- бового подхода и генетического оптимизатора можно решить практичес- ки любую задачу. В нашей работе мы почти не используем других инстру- ментов! Пользователям TradeStation придется по вкусу TS-Evolve, пред- лагаемый Ruggiero Associates. Evolver фирмы Palisade Corporation хорош для пользователей Excel и Visual Basic. При разработке систем на C++ или Delphi выбирайте C++ Genetic Optimizer, предлагаемый Scientific Consultant Services, Inc. Генетический оптимизатор — наиболее универ- сальный инструмент среди оптимизаторов: даже задачи, более эффектив- но решаемые другими методами, могут быть медленно, но верно решены хорошим генетическим алгоритмом. А если вы все же хотите испытать аналитическую оптимизацию или симуляцию отжига, мы рекомендуем воспользоваться книгой Пресса и др. «Numerical Recipes in С» (Press et al., 1992) и вышеупомянутым тру- дом Мастерса (Masters, 1995) как источниками и информации, и кодов. Пользователи Excel могут попробовать также встроенный Solver. ГЛАВА 4 Статистика Многие разработчики торговых систем не оценивают статистическую значимость результатов оптимизации. Это достаточно неприятно, учиты- вая, что статистика принципиально важна при оценке поведения торго- вых систем. Как, например, можно судить о причине успеха системы — реален ли он или основан на артефакте либо на «удачной» выборке дан- ных? Задумайтесь об этом, ведь следующая выборка может быть не оче- редным тестом, а реальной торговлей. Если поведение системы определя- лось случаем, можно быстро лишиться капитала. Нужно найти ответ на следующий очень важный вопрос: высокая эффективность системы выз- вана обнаружением по-настоящему оптимальных параметров или явля- ется результатом «подгонки» под исторические данные? Мы встречали много разработчиков систем, которые отказываются от любой оптимиза- ции вообще по причине иррационального страха подгонки, не зная, что статистический анализ помогает бороться с этой опасностью. В общем, статистика может помочь трейдеру оценить вероятность того, что систе- ма в будущем будет работать так же прибыльно, как и в прошлом. В этой книге мы представили результаты статистического анализа везде, где это, по нашему мнению, полезно и уместно. Среди методов статистического анализа, наиболее полезных трейде- ру, можно назвать проверку по критерию Стьюдента, корреляционный анализ и некоторые виды непараметрического статистического анализа. Проверка по критерию Стьюдента необходима в тех случаях, когда надо определить вероятность того, что среднее или сумма некоторого ряда независимых значений (полученных из выборки) больше или меньше не- которого числа или находится в некоторых пределах от него. Например, проверка по критерию Стьюдента может вскрыть вероятность того, что общая прибыль ряда сделок (каждая с индивидуальными показателями прибыли/убытка) может превысить некоторый порог в результате про- стой случайности. Эти критерии также полезны для выбора периодично- сти данных, например при вычислении дневного или месячного дохода за период в несколько лет. Кроме того, проверка по критерию Стьюдента помогает установить границы производительности системы в будущем 70 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ (если предположить, что на рынке не ожидается структурных изменений), что позволит заявить, например, следующее: «вероятность того, что в бу- дущем средняя прибыль составит от х до у, более 95%». Корреляционный анализ помогает определить степень взаимосвязи двух различных переменных. При использовании для принятия решений он также помогает определить, являются ли связи «статистически значи- мыми» или просто случайными. С помощью таких методов можно опре- делить доверительные интервалы границ «реальной» корреляции, т.е. кор- реляции по выборке данных за некоторый период времени. Корреляци- онная статистика важна при поиске переменных, которых можно исполь- зовать как прогностические показатели, например, в нейронной сети или в системе уравнений регрессии. Корреляционный анализ и непараметрические статистические мето- ды (критерий наличия «чередующихся полос» в ряду данных) полезны при оценке зависимости значений ряда данных от предыдущих значений в ряду (серийной корреляции). Например, действительно ли выгодные сделки сле- дуют в виде полос или групп, между которыми сплошные убытки? Крите- рии наличия «полос» позволяют определить, что же на самом деле проис- ходит. Если в системе есть серийная корреляция, ее можно использовать для перенастройки системы. Например, если в системе выражены перио- ды прибылей и убытков, можно разработать метасистему, которая будет проводить сделку за сделкой, пока есть прибыли, и прекращать торговлю после первой убыточной сделки, уходя в «виртуальную торговлю» до на- ступления новой прибыльной полосы. Если полосы реально существуют, то подобная стратегия может значительно улучшить поведение системы. ЗАЧЕМ НУЖЕН СТАТИСТИЧЕСКИЙ АНАЛИЗ ПРИ ОЦЕНКЕ ТОРГОВЫХ СИСТЕМ? Очень важно определить, действительно ли наблюдаемые прибыли реаль- ны (т.е. основаны не на артефактах тестирования) и какова вероятность, что система будет давать подобные прибыли в будущем при реальной тор- говле. Хотя тестирование на данных вне пределов выборки может до не- которой степени показать, выдержит ли система испытание более новы- ми данными, при помощи статистики можно получить дополнительную информацию. Статистика позволяет определить, случаен ли результат или он основан на реальных достоинствах системы. Статистические расчеты могут быть использованы для обнаружения подгонки под исторические данные, т.е. могут определить, является ли наблюдаемая эффективность модели реальной или же она — результат подгонки. Следует отметить, что в статистике, как правило, делаются некоторые теоретические предположения относительно образцов данных и выборок, к которым можно адекватно применять статистические методы. При ра- |