Д.Катс.Д.Маккормик.Энциклопедия торговых стратегий. Донна л. Маккормик
Скачать 5.96 Mb.
|
ГЛАВА 1 ДАННЫЕ 29 ных с повторными или перепутанными датами. Единственные проблем- ные моменты являются следствием аномалии рынка, а не ошибок. В об- щем набор данных по S&P можно считать чрезвычайно чистым, что и не- удивительно, зная о высокой репутации поставщика — Pinnacle Data Corporation. Как пример низкого качества данных рассмотрим последовательность котировок компании Apple Computer (AAPL), полученных авторами от одного знакомого. Результаты проверки приведены в табл. 1-2. В отличие от предыдущей выборки, здесь данные за два дня были по- мечены как имеющие необъяснимые логические ошибки. В одном случае цена открытия равнялась нулю и была ниже минимальной цены. В дру- гом случае обнаружилась аномальная величина дневного диапазона цен (что может быть как ошибкой, так и последствием аномальной торговли). В нескольких случаях отмечалось сильное отклонение цены закрытия, возможно ввиду нескорректированных дроблений акций. Повторяющих- ся или перепутанных дат не обнаружено, но немало дней было пропуще- но. В данном случае пропущенные точки соответствуют праздникам и, сле- довательно, просто указывают на разный подход к работе с данными; мы обычно по ряду причин заполняем праздничные дни данными предыду- щего дня. При том что последовательность включает котировки только с 1/2/97 по 11/6/98 (котировки S&P 500 — с 1/3/83 по 5/21/98), обнаруже- ние ряда серьезных ошибок с помощью довольно простой процедуры не может не настораживать. Суть в том, что на этих примерах показана важность приобретения качественных данных от поставщика, имеющего хорошую репутацию и ведущего серьезную работу. Это сэкономит время, обеспечит надежные, чистые данные для разработки и тестирования систем и для торговли в дальнейшем. Более глубокий обзор проблем качества данных, в том числе и то, как, собственно, создаются рыночные котировки, как их передают и хранят, можно найти у Джурика (Jurik, 1999). ПОСТАВЩИКИ И ИСТОЧНИКИ ДАННЫХ Сегодня существует множество источников для получения данных. Дан- ные можно получать от поставщиков за отдельную плату, скачивать с раз- личных бирж, получать из различных баз данных, доступных в Интерне- те и на компакт-дисках. Поставщики, взимающие дополнительную плату, такие как Tick Data и Pinnacle, данные которых широко использовались в работе над книгой, могут снабжать трейдеров достаточно чистыми данными в удобном для использования формате. Они также предлагают удобные службы обнов- ления и, по крайней мере Pinnacle, обеспечивают автоматическую кор- 30 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ рекцию ошибок, что облегчает хранение надежной большой базы данных. Среди известных поставщиков данных на конец дня с товарных бирж можно отметить Pinnacle Data Corporation (800-724-4903), Prophet Financial Systems (650-322-4183), Commodities Systems Incorporated (CSI, 800-274- 4727) и Technical Tools (800-231-8005). Внутридневные исторические дан- ные, необходимые для тестирования систем, можно приобрести у Tick Data (800-822-8425) и Genesis Financial Data Services (800-621-2628). Трейдерам, ведущим дневную торговлю, следует также обратить внимание на Data Transmission Network (DTN, 800-485-4000), Data Broadcasting Corporation (DBC, 800-367-4670), Bonneville Market Information (BMI, 800-532-3400) и FutureSource-Bridge (800-621-2628); эти поставщики предлагают быстрые котировки в реальном времени, необходимые для успешной дневной тор- говли. Данные о других источниках котировок можно найти у Мэрдера (Marder, 1999), сравнительный обзор поставщиков данных на конец дня естьуНайта (Knight, 1999). Данные не обязательно покупать у коммерческих поставщиков. Иног- да их можно получить непосредственно с места событий — различные биржи порой поставляют данные потребителям напрямую. Данные по опционам можно найти в Интернете на сайте Чикагской торговой биржи (СВОТ). Когда вводится новый контракт, биржа публикует всю актуаль- ную информацию по данному контракту. В некоторых случаях это — един- ственный способ получить доступ к данным быстро и дешево. В конце концов необъятное количество баз данных может быть най- дено в Интернете с помощью броузера или ftp-клиента. Сейчас практи- чески все доступно в онлайне: например, министерства финансов под- держивают базы данных по экономическим показателям и индикаторам циклов деловой активности. NASA — замечательный источник для все- возможных солнечных и астрономических данных. Национальный центр климатических данных (NCDC) и Национальный центр геофизических данных (NGDC) предлагают данные о погоде и геофизические показате- ли. Для любителя путешествовать по Сети найдется необъятное изоби- лие данных в самых разнообразных форматах. Здесь, впрочем, лежит другая проблема — для поиска нужен некоторый уровень умения и, воз- можно, навыки в программировании и написании скриптов, а также много времени на поиск, переформатирование и очистку данных. Поскольку «время — деньги», лучше всего положиться на поставщика данных с хо- рошей репутацией для приобретения основных котировок и использо- вать Интернет и другие источники для получения более экзотических и труднодоступных данных. Дополнительные источники данных также включают базы, доступ- ные в библиотеках и на компакт-дисках. ProQuest и другие профессио- нальные базы с возможностью получения полного текстового содержа- ния часто бывают доступны в общественных библиотеках, так что дан- ные можно скопировать на принесенную с собой дискету. Не забывайте ГЛАВА 1 ДАННЫЕ 31 о периодических изданиях, таких как Investor's Business Daily, Barton's и The Wall Street Journal; они могут быть замечательными источниками не- которых видов информации и во многих библиотеках доступны в виде микрофильмов. Наиболее удобно хранить данные в ASCII-текстовом формате. Этот формат легко конвертируется и читается разнообразными приложения- ми — от текстовых редакторов до программ построения графиков. ГЛАВА 2 Симуляторы Ни один настоящий трейдер не будет вести торговлю с реальным счетом и рисковать настоящими деньгами без предварительной проверки на бу- маге. Торговый симулятор — это программа или компонент программы, позволяющий моделировать на исторических данных поведение торго- вого счета, управляемого заданными пользователем правилами. Правила сведены в небольшую программу, которая автоматизирует процесс «вир- туальной торговли» на значительной выборке исторических данных. Та- ким образом, торговый симулятор позволяет трейдеру понять, как систе- ма могла бы работать при торговле с настоящим счетом. Смысл торгового симулятора в том, что он позволяет проводить эффективное тестирова- ние системы («виртуальную торговлю») на исторических данных для оп- ределения, будет ли система работать, и если да, то насколько хорошо. ВИДЫ СИМУЛЯТОРОВ Существуют два главных вида торговых стимуляторов. Одни из них — ин- тегрированные, простые в применении программные приложения, кото- рые обеспечивают некоторые функции исторического анализа и тести- рования помимо сбора данных и построения графиков. Другой вид — спе- циализированные компоненты программ или библиотеки классов, кото- рые могут включаться в создаваемые пользователем программы для обес- печения функций тестирования и оценки систем. Компоненты программ и библиотеки классов обеспечивают открытость архитектуры, продвину- тые возможности и высокую производительность, но требуют умения программировать. Для работы с ними необходимы дополнительные эле- менты — графика, создание отчетов, управление данными. Интегриро- ванные пакеты, хотя обычно менее производительны, гораздо доступнее для начинающего пользователя. ПРОГРАММИРОВАНИЕ СИМУЛЯТОРА Вне зависимости от устройства (интегрированный или основанный на компонентах симулятор) в него должна быть введена логика системы, ис- пользуемой пользователем. Язык программирования может быть или мно- ГЛАВА 2 СИМУЛЯТОРЫ 33 {Простая система пересечения скользящей средней в Easy Language} Inputs: Len(4); {параметр длины скользящей средней) If {Close > Average{Close, Len)) And {Close[1] <= Average(Close, Len)[1]} Then Buy ("A") 1 Contract At Market; {покупает на открытии следующего дня} If (Close <= Average(Close, Len)) And (Close[1] > Average{Close, Len}[1]) Then Sell ("B") 1 Contract At Market; {продает на открытии следующего дня} //простая система пересечения скользящих средних в C++ len = parms[l]; // параметр длины скользящей средней if (cls [cb] > Average(cls, len, cb} && cls [cb-1] <= Average(cls, len, cb-1)) ts.buyopen ('A', 1); // покупает на открытии следующего дня if (cls[cb] <= Average(cls, len, cb) && cls [cb-1] > Average(cls, len, cb-1)) ts.sellopen ('B', 1); // продает на открытии следующего дня гоцелевым языком программирования, как C++ или FORTRAN, или соб- ственным языком скриптов программы. Без содействия формального язы- ка невозможно выразить торговые правила системы с достаточной для симуляции точностью. Необходимость в программировании того или ино- го вида не следует рассматривать как неизбежное зло — пользователь может приобрести много опыта, поскольку программирование заставля- ет выражать свои идеи упорядочение и целенаправленно. В качестве примера программирования логики торговой системы рас- смотрим TradeStation, популярный интегрированный пакет от Omega Research, содержащий интерпретатор для собственного языка програм- мирования, называемого Easy Language, обеспечивающий проведение тестов на исторических данных. Easy Language — собственный язык фир- мы, основанный на Pascal (многоцелевом языке программирования). Как выглядит простая торговая система, запрограммированная на Easy Language? В качестве примера предлагаем код для системы простого пе- ресечения скользящей средней: Эта система открывает длинную позицию (один контракт) при открытии на следующий день, когда цена закрытия пересекает скользящую сред- нюю вверх, и короткую позицию (один контракт), когда цена закрытия пересекает скользящую среднюю вниз. Каждому приказу присваивается имя или идентификатор: А — на покупку, В — на продажу. Длина сколь- зящей средней (Len) может задаваться пользователем или оптимизиро- ваться программой. Ниже та же система, запрограммированная на языке C++ с помощью набора инструментов C-Trader от Scientific Consultant Services, в состав которого входит торговый симулятор C++: За исключением синтаксиса и обозначений, различия в применении C++ и EasyLanguage невелики. Наиболее важны сноски на текущий бар (cb) и на данный симулируемый торговый счет или ссылку на класс симулятора 34 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ (ts) в версии на C++. Так, на C++ можно использовать любое количество симулируемых счетов; это важно при работе с портфелями и метасисте- мами (системами, управляющими счетами другой системы) и при разра- ботке моделей, включающих скрытую адаптацию с движением вперед. ВЫХОДНЫЕ ДАННЫЕ СИМУЛЯТОРА Все хорошие торговые симуляторы создают выходные данные, содержа- щие разнообразную информацию о поведении моделируемого счета. Можно ожидать получения данных по чистой прибыли, количеству при- быльных и убыточных сделок, максимальным падениям капитала и про- чим характеристикам системы даже при использовании самых простых симуляторов. Более продвинутые программы предлагают отчеты по мак- симальному росту капитала, среднему благоприятному и неблагоприят- ному движению рынка, статистическим оценкам и т.д. и т.п., не говоря уже о детальном анализе индивидуальных сделок. Высокоуровневые си- муляторы могут также включать какие-либо показатели соотношения прибыли и риска, например годовое соотношение риска/прибыли (ARRR) или отношение Шарпа — важный показатель, широко используемый для сравнения эффективности различных портфелей, систем или фондов (Sharpe, 1994). Выходные данные торгового симулятора обычно представляются пользователю в виде одного или нескольких отчетов. Два основных вида отчетов представляют собой обзор эффективности и детальный отчет по каждой сделке. Информация, содержащаяся в этих отчетах, может помочь трейдеру оценить «торговый стиль» системы и определить, годится ли она для реальной торговли. Возможно формирование и других видов отчетов, которые могут вклю- чать разнообразную информацию, генерируемую программами, как пра- вило, в виде электронных таблиц. Почти все таблицы и графики в этой книге были построены именно так: выходные данные симулятора пере- носились в Excel, где обрабатывались и форматировались для представ- ления в законченном виде. Отчеты об эффективности системы В качестве примера итогового отчета об эффективности системы, мы при- готовили два отчета, полученных при тестировании уже упоминавшейся системы пересечения скользящей средней. Табл. 2-1 представляет собой отчет о системе, написанной и проработанной на TradeStation, а табл. 2-2 — отчет о системе, созданной с помощью C-Trader. В обоих случаях параметр длины скользящей средней был установлен равным 4. ГЛАВА 2 СИМУЛЯТОРЫ 35 BOOK_CH5 SP.LNG-Daily 01/01/91 - 01/01/96 Обзор эффективности: Все сделки Общая чистая прибыль $ -15625,00 Прибыль/убыток открытых позиций $ 75,00 Валовая прибыль $ 280350,00 Валовый убыток $ -295975,00 Общее # сделок 362 Процент прибыльных 4 0 % Число выгодных 146 Число убыточных 216 Максимальная прибыльная $ 14800,00 Максимальная убыточная $ -5750,00 Средняя прибыльная $ 1920,21 Средняя убыточная $ -1370,25 Средняя пр./ср. убыточная 1,40 Средняя сделка {приб. и уб.) $-43,16 Макс. прибыльных подряд 6 Макс. убыточных подряд 10 Ср. # баров в прибыльной 5 Ср. # баров в убыточной 2 Макс. внутридневное падение капитала $ -50650,00 Фактор прибыли 0,95 Макс. # контрактов на руках 1 Требуемый размер счета $ 50650,00 Прибыль со счета -31% Обзор эффективности: Длинные позиции Общая чистая прибыль $ 42300,00 Прибыль/убыток открытых позиций $ 0,00 Валовая прибыль $ 173075,00 Валовый убыток $ -130775,00 Общее # сделок 181 Процент прибыльных 4 8 % Число прибыльных 87 Число убыточных 94 Максимальная прибыльная $ 14800,00 Максимальная убыточная $ -5750,00 Средняя прибыльная $ 1989,37 Средняя убыточная $ -1391,22 Средняя пр./ср. убыт. 1,43 Средняя сделка {приб. и уб.) $ 233,70 Макс. прибыльных подряд 9 Макс. убыточных подряд 7 Ср. # баров в выгодной 5 Ср. # баров в убыточной 2 Макс. падение капитала за день $ -17225,00 Фактор прибыли 1,32 Макс. # контрактов на руках 1 Требуемый размер счета $ 17225,00 Прибыль со счета 246% Обзор эффективности: Короткие позиции Общая чистая прибыль $ -57925,00 Прибыль/убыток открытых позиций $ 75,00 Валовая прибыль $ 107275,00 Валовый убыток $ -165200,00 Общее # сделок 181 Процент прибыльных 3 3 % Число прибыльных 5 9 Число убыточных 122 Максимальная прибыльная $ 8125,00 Максимальная убыточная $ -5675,00 Средняя прибыльная $ 1818,22 Средняя убыточная $ -1354,10 Средняя пр./ср. убыт. 1,34 Средняя сделка (приб. и уб.) $ -320,03 Макс. прибыл?^ных подряд 3 Макс. убыточных подряд 10 Ср. # баров в выгодной 5 Ср. # баров в убыточной 2 Макс. падение капитала за день $ -65625,00 Фактор прибыли 0,65 Макс. # контрактов на руках 1 Требуемый размер счета $ 65625,00 Прибыль со счета -88% Таблица 2—1. Отчет о эффективности системы пересечения скользящей средней (TradeStation) 36 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ Таблица 2—2. Отчет об эффективности системы пересечения скользящей средней (C-Trader) ОБЗОР ДЛЯ СИМВОЛА SP В ВЫБОРКЕ (В): С 910601 ДО 960101 ВНЕ ВЫБОРКИ (ВНЕ): С 960101 ДО 970108 ТЕСТОВ:1 В Описание Число сделок Число приб. Число убыт. Макс. приб. подряд. Макс. убыт. подряд. Всего баров Приб. баров Убыт. баров Средн. баров в сделке Средн. в приб. сделке Средн.в убыт. сделке Процент приб. Общий доход Общ. дох. прибыльных Общ. дох. убыточных Макс. капитал Мин. капитал Макс. подъем Макс. падение капитала Станд. откл. сделки Средн. приб. /убыт. Средн. прибыльная Средн. благопр. движение Средн. убыточная Средн. неблагопр. движение Макс. прибыльная Макс. благопр. движение Макс. убыточная Макс. неблагопр. движение Средн. приб. /убыт. * 100 Фактор прибыли* 100 Годовая прибыль, $ Годовая прибыль, % Отношение Шарпа* 100 Т -критерий* 100 Т- вероятность* 10000 Вероятность ОС*10000 В Всего 362 138 216 6 10 1562 843 698 4 6 3 38 -15625 280350 -295975 8575 -43125 40300 -50650 2262 -43 2031 2205 -1370 -1439 14800 16950 -5750 -8500 148 94 -3404 -7 -18 -36 7160 7160 В Длин. 181 83 94 7 7 834 529 295 4 6 3 45 42300 173075 -130775 44600 -12675 57200 -17225 2444 233 2085 2195 -1391 -1450 14800 16950 -5750 -8500 149 132 9217 31 0 129 1974 1974 ВНЕ Корот. 181 55 122 3 10 728 314 403 4 5 3 30 -57925 107275 -165200 4025 -62650 18775 -65625 2026 -320 1950 2215 -1354 -1427 8125 15375 -5675 -5675 144 64 -12622 -37 0 -213 340 340 ВНЕ Всего 71 33 38 4 6 337 210 127 4 6 3 46 35800 156875 -121075 47175 -22350 68075 -28875 5634 504 4753 5149 -3186 -2921 23150 29050 -8300 -10125 149 129 35032 120 40 76 4469 4469 ВНЕ Длин. 35 17 18 5 4 195 140 55 5 8 3 48 45975 111225 -65250 49875 -14300 62725 -17600 7108 1313 6542 5573 -3625 -3416 23150 29050 -8300 -10125 180 170 44988 251 0 112 2682 2682 Корот. 36 16 20 3 4 142 70 72 3 4 3 44 -10175 45650 -55825 12425 -20425 28675 -20425 3498 -282 2853 4736 -2791 -2440 8600 20075 -5450 -8250 102 81 -9956 -49 0 -49 6211 6211 ГЛАВА 2 СИМУЛЯТОРЫ 37 Большинство отчетов разбивают данные на показатели для длинных позиций, коротких позиций и всех позиций вместе. Кроме того, указыва- ются прибыль, риск и стиль торговли. Факторы прибыли включают при- быль от всех прибыльных сделок, максимальную прибыль в одной сделке и среднюю прибыль в одной сделке. Факторы риска включают убыток от всех убыточных сделок, максимальный убыток в одной сделке, средний убыток в одной сделке и максимальное падение капитала, находящегося на моделируемом счете. Факторы риска и прибыли отражаются на пока- зателях общей прибыли (или общего убытка) системы во всех сделках, средней прибыли (убытка) в одной сделке, соотношения средней прибыль- ной и убыточной сделок, фактора прибыльности (общей прибыли, делен- ной на общий убыток) и общего дохода (за год или без определения вре- мени) моделируемого счета. К таким факторам также относятся общее количество сделок, коли- чество прибыльных сделок, количество убыточных сделок, максималь- ное количество последовательных прибылей и убытков и среднее коли- чество баров в прибыльных и убыточных сделках. В отчетах также при- водятся критические для оценки системы показатели прибыли, риска и стиля торговли. Хотя все отчеты обеспечивают анализ системных показателей при- были, риска и стиля торговли, между ними существуют принципиальные различия. В некоторых отчетах, пытаясь объединить максимальное коли- чество информации в минимальном объеме, умножают значения на 10, чтобы не ставить десятичные точки, и располагают цифры в виде табли- цы. В других используются менее сокращенные наименования, не округ- ляются и не масштабируются значения и форматируются выходные дан- ные в виде более или менее классических отчетов. Различия в формате менее важны, чем в собственно заключениях. Эти различия возникают из-за разнообразия подходов и определений, зало- женных в системах. Например, количество прибыльных сделок может по- разному определяться на одних и тех же данных различными системами ввиду разного определения прибыльности. Некоторые симуляторы счи- тают выгодной сделку, в которой прибыль/убыток равны нулю; другие считают выгодными только сделки с положительным балансом. Это раз- личие и влияет на подсчет сделок и на значение средней прибыльной сдел- ки, и на соотношение прибыльных/убыточных сделок. Подобным же об- разом среднее количество дней в сделке может меняться в зависимости от метода подсчета дней. Некоторые симуляторы включают в подсчеты входной день, другие — нет. Данные по доходности счета также могут раз- личаться — например, они могут приводиться к процентам годовых или даваться в абсолютном виде. Разница в содержании отчетов может быть и более значительной. Некоторые программы просто разбивают данные на результаты корот- ких позиций, длинных позиций и общие. Другие ведут анализ отдельно 38 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ по сделкам в пределах выборки данных и вне ее. Дополнительное разде- ление проясняет картину; становится видно, как система, оптимизирован- ная на одной выборке данных, будет себя вести за ее пределами. Провер- ка на данных, взятых из другого периода, обязательна для оптимизиро- ванных на некотором периоде систем. В некоторых отчетах присутству- ют и другие важные показатели, такие как общее количество баров, мак- симальный подъем (показатель, противоположный максимальному паде- нию капитала), максимальные благоприятное и неблагоприятное движе- ния, максимальное и минимальное значения капитала на счете, прибыль в долларах за год, изменчивость торговли (в виде стандартного отклоне- ния) и годовое соотношение риска/прибыли (вариант отношения Шар- па). Расчет статистических показателей, например т-критерия и его ассо- циируемой вероятности, для отдельных тестов либо для множественных тестов и оптимизаций также является желательной чертой симулятора. Статистические функции, такие как т-тест и вероятности, важны потому, что помогают определить, действительно ли система отражает деятель- ность реального рынка или успех обусловлен случаем либо излишней под- гонкой параметров системы под прошлые данные. Могут применяться многие дополнительные и, возможно, полезные методики анализа на ос- нове информации, содержащейся в отчетах. Среди этих методов (Stendahl, 1999) — общие позитивные аутсайдеры, общие негативные аутсайдеры, селективная общая прибыль (за исключением выбросов), отношение убыт- ков (максимальный убыток, деленный на общую прибыль), соотношение подъем/падение капитала, максимальный период простоя системы и при- быль стратегии «купи и держи» для сравнения с результатами торговой системы. Кроме того, в некоторых отчетах создается график состояния счета в зависимости от времени. Если считать, что история повторяется, то хорошее понимание про- шлого должно помочь аналитику при построении прогнозов на будущее. Хороший отчет об эффективности дает широкий обзор исторического поведения торговой стратегии. Показатели прибыли и риска показыва- ют, насколько хорошо система работала на данных рассматриваемого исторического периода. Отношение Шарпа, или годовое соотношение прибыли/риска, измеряет прибыль с учетом риска. Т-тесты и подобные статистические методы могут отличить реально эффективную на рынке стратегию от случайности или неправильной оптимизации. Результаты, достигнутые за счет действительно эффективных правил, будут повторять- ся снова и снова; случайные результаты вряд ли повторятся в будущем. В общем, хороший отчет помогает обнаружить явления, которые могут по- вторяться. Поиск устойчивых явлений, приносящих прибыль, — основа любого длительного успеха в трейдинге. На этом заканчивается обсуждение отчетов об эффективности, доступ- ных с использованием большинства симуляторов. Сейчас мы рассмотрим другой тип отчетов, предлагаемых симуляторами: отчет для каждой сделки. |