Главная страница

Д.Катс.Д.Маккормик.Энциклопедия торговых стратегий. Донна л. Маккормик


Скачать 5.96 Mb.
НазваниеДонна л. Маккормик
АнкорД.Катс.Д.Маккормик.Энциклопедия торговых стратегий.pdf
Дата28.01.2017
Размер5.96 Mb.
Формат файлаpdf
Имя файлаД.Катс.Д.Маккормик.Энциклопедия торговых стратегий.pdf
ТипДокументы
#727
КатегорияЭкономика. Финансы
страница4 из 41
1   2   3   4   5   6   7   8   9   ...   41
ГЛАВА 2 СИМУЛЯТОРЫ
39
Отчеты для каждой сделки
Примеры отчетов для каждой сделки были созданы с использованием си- муляторов TradeStation (табл. 2-3) и C-Trader toolkit (табл. 2-4). Оба отчета описывают упоминавшуюся ранее систему пересечения скользящей сред- ней. Так как рассматривался период с сотнями сделок, и полный отчет слишком длинный, из таблиц удалены большие объемы текста, помечен- ные многоточиями. Поскольку данные отчеты представлены только как иллюстрации, такие пропуски вполне допустимы.
В отличие от отчета об эффективности, дающего общий обзор поведе- ния торговой системы, детальный отчет, или отчет для каждой сделки,
рассматривает в подробностях каждую из сделок, проведенную с модели- руемым счетом. Минимальный отчет сопровождает каждую из сделок,
включая даты входа и выхода (и время, если используются внутридневные данные), цены входа и выхода, позиции (длинные или короткие, количе- ство контрактов) и прибыль или убыток от каждой сделки. Более обшир- ный отчет для каждой сделки также будет включать информацию по виду использованного приказа (стоп-приказ, лимитный или рыночный приказ),
по какой цене торгового дня приказ был исполнен (в начале, при закрытии или посередине), количество дней в каждой сделке, состояние счета на на- чало каждой сделки, максимальные благоприятные и неблагоприятные дви- жения за каждую сделку и состояние счета при выходе из каждой сделки.
Таблица 2—3. Отчет для каждой сделки, выданный TradeStation для системы
пересечения скользящей средней (фрагмент)
BOOK_CH5 SP.LNG-Daily 910103 - 960103
Дата Вид Кол-во Цена Назв. сигнала Приб./убыт. входа Всего
03/13/91 Продаж. 1 511,75 В
03/14/91 К. вых. 1 516,75 А $ -2500.00 $ -2500.00 03/14/91 Покуп. 1 516,75 А
03/18/91 Дл. вых. 1 511,95 В $ -2400.00 $ -4900.00 03/18/91 Продаж. 1 511,95 В
03/25/91 К. вых. 1 507,45 А $ 2250.00 $ -2650.00 03/25/91 Покуп. 1 507,45 А
03/29/91 Дл. вых. 1 517,10 В $ 4825.00 $ 2175.00 03/29/91 Продаж. 1 517,10 В
04/03/91 К. вых. 1 519,85 А $ -1375.00 $ 800.00 04/03/91 Покуп. 1 519,85 А
04/08/91 Дл. вых. 1 514,60 В $ -2625.00 $ -1825.00 04/08/91 Продаж. 1 514,60 В
04/09/91 К. вых. 1 517,75 А $ -1575.00 $ -3400.00 04/09/91 Покуп. 1 517,75 А
04/10/91 Дл. вых. 1 513,15 В $ -2300.00 $ -5700.00 04/10/91 Продаж. 1 513,15 В
04/12/91 К. вых. 1 519,35 А $ -3100.00 $ -8800.00 04/12/91 Покуп. 1 519,35 А
04/22/91 Дл. вых. 1 523,10 В $ 1875.00 $ -6925.00 04/22/91 Продаж. 1 523,10 В
05/02/91 К. вых. 1 519,65 А $ 1725.00 $ -5200.00

Таблица 2—4. Отчет для каждой сделки, выданный С-Trader Toolkit для системы пересечения скользящей средней
(фрагмент)
СДЕЛКИ В ПРЕДЕЛАХ ВЫБОРКИ
Дата Поз. Цена Когда вид Опред. Дата Цена Когда Вид Опред. Баров Приб./убыт Благопр. Неблагопр. Всего
входа входа ордера входа выхода выхода ордера выхода сделки сделки макс. макс.
910527
910528
910607
910613
9 1 0 6 1 4
9 1 0 6 1 8
9 1 0 6 2 0
9 5 1 2 2 5
-1
1
-1
1
-1
1
-1
1
4 9 2 . 1 5 0
4 9 2 . 1 5 0
501.250
495.30
492.200
496.900
491.800
691.500
О
О
О
О
О
О
О
О
м
м
м
м
м
м
м
м
В:
А:
В:
А :
В:
А :
В:
А :
910528
910607
910613
910614
910618
910620
910625
960101
4 9 2 . 1 5 0
501.250
4 9 5 . 3 0 0
4 9 2 . 2 0 0
4 9 6 . 9 0 0
491.800
4 9 0 . 6 5 0
6 9 2 . 6 0 0
О
О
О
О
О
О
О
О
м
м
м
м
м
м
м
м
А :
В:
А:
В:
А :
В:
А :
В:
2
11
7
2
5
3
6
8
0
4550
2 9 7 5
-1550
-2350
-2550
575
550
500
6900
4025
0
525
400
1650
1725
1250
500
400
3100
2825
2550
500
325
0
4550
7525
5975
3 6 2 5
1075
1650
-15625
СДЕЛКИ ВНЕ ВЫБОРКИ
9 6 0 1 0 1
9 6 0 1 0 4
9 6 0 1 0 8
960110
9 6 0 1 1 1
960118
9 6 0 2 1 6
9 6 0 2 2 3
9 6 0 2 2 8
9 6 0 3 0 5
9 6 0 3 0 8
-1
1
-1
1
-1
1
-1
1
-1
1
-1
692.600
700.700
691.600
697.600
681.000
683.000
729.300
727.500
724.750
722.900
725.900
О
О
О
О
О
О
О
О
О
О
О
м
м
м
м
м
м
м
м
м
м
м
В:
А :
В:
А :
В:
А :
В:
А :
В:
А :
В:
960104
960108
960110
960111
960118
960216
9 6 0 2 2 3
9 6 0 2 2 8
9 6 0 3 0 5
960308
960311
7 0 0 . 7 0 0
6 9 1 . 6 0 0
697
.600
6 8 1 . 0 0 0
6 8 3 . 0 0 0
7 2 9 . 3 0 0
7 2 7 . 5 0 0
724.750
722.900
7 2 5 . 9 0 0
716.150
О
О
О
О
О
О
О
О
О
О
О
м
м
м
м
м
м
м
м
м
м
м
А :
В:
А :
В:
А :
В:
А :
В:
А :
В:
А :
4
5
3
2
8
30
8
6
7
4
4
-4050
-4550
-3000
-8300
-1000
23150
900
-1375
925
1500
4875
1200
1675
1450
0
4300
29050
8400
5 7 2 5
8125
4475
4875
4050
5100
3000
8800
2 3 2 5
1450
1875
2750
2525
1275
1300
-19675
-24225
-27225
-35525
-36525
-13375
-12475
-13850
-12925
-11425
-6550

ГЛАВА 2 СИМУЛЯТОРЫ 41
Как и отчеты об эффективности, отчеты для каждой сделки могут быть представлены по-разному и могут основываться на различных определе- ниях вычисляемых показателей.
Если отчет об эффективности обеспечивает обзор всего «леса», то от- чет о каждой сделке заостряет внимание на отдельных «деревьях»: в хо- рошем отчете каждая сделка рассматривается детально. Каковы были максимальные отрицательные переоценки открытой позиции, какова была бы прибыль при идеальном выходе и какова была «настоящая» при- быль (или убыток) моделируемой сделки, была ли торговля достаточно пос- ледовательной, были ли новые сделки лучше или хуже более старых, как можно использовать опыт худших сделок для улучшения системы — вот вопросы, на которые нельзя ответить при обзоре только общей эффек- тивности системы. Кроме того, отчет по каждой сделке может быть до- полнительно обработан в виде таблицы, например для построения гисто- грамм (Sweeney, 1993). Гистограммы могут показать, какая часть потен- циальных прибылей фиксируется при использовании данной стратегии выхода, и полезны при определении целей прибыли. Кроме того, тщатель- ное изучение лучших и худших сделок может дать результаты, полезные для улучшения системы.
ЭФФЕКТИВНОСТЬ СИМУЛЯТОРА
Торговые симуляторы могут сильно различаться по таким показателям, как мощность, емкость и скорость. Скорость важна при выполнении многих тестов или проведении сложных оптимизаций, например генетических.
Скорость также важна при разработке систем для портфельной торговли или при использовании длинных внутридневных серий данных с тысяча- ми сделок и сотнями тысяч числовых данных. В некоторых случаях от ско- рости симулятора зависит сама возможность проведения анализа: ряд за- дач требует поистине огромного объема расчетов, недоступного для «мед- ленных» программ. Емкость симуляторов определяет ограничения объе- ма задач (количество баров данных, которое может загружаться или объем кода самой системы). Мощность симулятора — показатель, определяющий,
как сложные тесты и задания могут выполняться на базах данных цен то- варов или на целых портфелях, что важно для серьезной профессиональ- ной торговли. Достаточно мощный симулятор требуется, например, для использования многих торговых моделей, приведенных в этой книге.
Скорость
Наиболее важный фактор, влияющий на скорость работы системы, — при- рода используемого языка: скриптовый или программный, т.е. определе-

Рисунок 2-1. Гистограмма неблагоприятных движений.

ГЛАВА 2 СИМУЛЯТОРЫ 43
ние, является ли программа скриптом или используется в интерпретато- ре. Современные компиляторы языков общего назначения, таких как
C++, FORTRAN и Pascal/Delphi, переводят написанную пользователем программу в высокоэффективный машинный код, пригодный для прямо- го исполнения процессором; это делает пакеты с использованием таких языков и компиляторов весьма быстрыми. С другой стороны, собствен- ные интерпретируемые языки, такие как Visual Basic for Applications и Easy
Language, должны переводиться и подаваться в процессор построчно при исполнении сложного, насыщенного циклами исходного кода. Каков же возможный выигрыш в скорости для компилируемого языка по сравне- нию с интерпретируемым? Мы слышали о системах, которые после пере- вода с собственного языка на C++ стали работать в 50 раз быстрее!
Емкость
Если скорость в основном зависит от работы с языком (интерпретируе- мым или компилируемым), то емкость главным образом от используемого
16- или 32-битного программного обеспечения. Старые 16-битные програм- мы часто зависят от предела в 64 кбайт, т.е. практически для тестирования системы может быть загружено не более 15 000 баров данных (около 4 дней тиковых или 7 недель 5-минутных данных S&P 500). Кроме того, если у си- стемы код большого объема, будьте готовы получить сообщение, что про- грамма с ней не может справиться. Современные продукты, написанные на FORTRAN или C++, работают с соответствующими компиляторами,
что позволяет, например, загрузить для тестирования всю историю тиков
S&P 500 с появления индекса в 1983 г., если, конечно, у компьютера доста- точно памяти. Кроме того, практически нет ограничений на количество сделок, принимаемых системой, или на сложность и размер самой систе- мы. Все современные компиляторы для FORTRAN, C++, Pascal/Delphi —
полностью 32-битные программы, работающие под 32-битными операци- онными системами, такими как Windows 95, Windows NT или LINUX/
UNIX. Любой симулятор, работающий на основе таких компиляторов,
способен работать с огромными объемами данных без труда. Поскольку большинство программных пакетов постоянно совершенствуется, пробле- ма емкости становится все менее и менее принципиальной.
Мощность
Различия в мощности симуляторов главным образом зависят от языка программирования. Для начала рассмотрим язык, но не в аспекте скорос- ти компилируемых и интерпретируемых языков, а в аспекте его возмож- ностей. Можно ли изящно и обстоятельно запрограммировать самую

44 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ
сложную торговую идею? Как правило, примитивные языки не дают всех возможностей, необходимых для кодирования наиболее сложных торго- вых стратегий. К сожалению, наиболее мощные языки сложнее всего изу- чать. Но если человеку удалось овладеть таким языком, как C++, возмож- ным становится практически все. Ваш текстовый процессор, программа работы с таблицами, броузер и сама операционная система, скорее всего,
были исходно написаны на C++ или его предшественнике — Си. Такие языки, как C++ и Object Pascal (основа Borland Delphi), расширяемы и могут легко быть приведены в соответствие с требованиями разработки торговых систем с помощью использования библиотек и дополнительных компонентов. Языки Visual Basic и Easy Language, хотя и не обладают мощ- ностью многоцелевых объектно-ориентированных языков вроде C++ и
Object Pascal, более легки в изучении и имеют большинство необходи- мых возможностей. Гораздо слабее и не вполне достаточны для разработ- чика продвинутых систем макроязыки, встроенные в ряд популярных программ построения графиков, например MetaStock. Как правило, чем мощнее используемый язык, тем мощнее симулятор.
Вопросы оформления также влияют на мощность симулятора, особен- но важна модульность и расширяемость. Симуляторы, использующие C++
или Delphi (Object Pascal) как основной язык, чрезвычайно расширяемы и модульны, поскольку таковы сами языки, спроектированные «снизу вверх». Библиотеки классов позволяют определять новые типы данных и операторов. Компоненты могут обеспечивать функции в готовых блоках,
например управление базами данных или построение графиков. Даже
«старинные» библиотеки, такие как Numerical Algorithms Group Library,
International Mathematics and Statistics Library и Numerical Recipes Library,
могут обеспечить самые разнообразные потребности. Модули, называе- мые User Functions могут быть написаны на Easy Language, а функции,
написанные на других языках (включая C++), могут быть вызваны, если они записаны в виде DLL (динамической библиотеки ссылок). Макроязы- ки, с другой стороны, не столь гибки, что сильно лимитирует их эффек- тивность для разработки продвинутых систем. С нашей точки зрения,
возможность использования модулей, написанных на другом языке, аб- солютно необходима: у разных языков разные «акценты», и даже при ис- пользовании мощного языка вроде C++ имеет порой смысл обратиться к модулям, созданным на другом языке, например таком, как Prolog (язык,
разработанный для написания экспертных систем).
Еще одно важное свойство симуляторов, не связанное с языками про- граммирования, — способность симулятора работать не только с индиви- дуальными финансовыми инструментами, но и с портфелями. Многие про- дукты не имеют возможности выполнять оптимизацию целых портфелей,
хотя порой это достижимо при помощи дополнительных модулей. С другой стороны, хорошо организованный симулятор, как правило, позволяет мо- делировать торговлю портфелем различных финансовых инструментов.

ГЛАВА 2 СИМУЛЯТОРЫ 45
НАДЕЖНОСТЬ СИМУЛЯТОРОВ
Разные торговые симуляторы имеют разную степень надежности и досто- верности. Не существует компьютерных программ, полностью гарантиро- ванных от ошибок, даже если ее производитель — знаменитая фирма ми- рового уровня. Кроме того, проблемы возникают при принятии решений в состоянии неустойчивого равновесия — когда в пределах одного и того же бара возникают условия для исполнения различных приказов. Некоторые из этих состояний, например так называемый прыгающий тик (Ruggiero,
1998), могут привести к тому, что система будет казаться лучшей на свете,
в то время, как, по сути, она сможет разорить любого. Считается предпоч- тительным, чтобы симулятор выбирал худший вариант развития событий в неоднозначных ситуациях; таким образом, при начале реальной торгов- ли вероятность приятных сюрпризов будет выше, чем неприятных. Все это сводится к тому, что при выборе симулятора следует выбирать хорошо про- веренный, с историей надежной работы и четким описанием того, как про- грамма трактует неоднозначные состояния. Кроме того, обязательно изу- чите недостатки симулятора и способы их обходить.
ВЫБОР ПРАВИЛЬНОГО СИМУЛЯТОРА
Если вы серьезно хотите заниматься разработкой продвинутых торговых систем, торговать сильно диверсифицированными портфелями, прово- дить тестирование индивидуальных контрактов или опционов, вам нуж- но собраться с силами для изучения программирования — вам нужен си- мулятор, созданный с помощью языков программирования общего назна- чения, таких как C++ или Object Pascal. Такие симуляторы имеют откры- тую архитектуру, позволяющую использовать множество дополнений и библиотек: библиотеки по техническому анализу, например от FM Labs
(609-261-7357) и Scientific Consultant Services (516-696-3333); библиотеки общих числовых алгоритмов, например от Numerical Recipes (800-872-
7423), Numerical Algorithms Group (NAG) (44-1865-511-245) и International
Mathematics and Statistics Library (IMSL), в которых хорошо освещена ста- тистика, линейная алгебра, спектральный анализ, дифференциальные уравнения и другие математические приложения. Продвинутые симуля- торы с использованием общих языков программирования также доступ- ны целому миру компонентов и графических средств управления, покры- вающих все аспекты от сложного построения графиков и представления данных до продвинутого управления базами данных, и при этом совмес- тимы с C++ Builder и Delphi, а также с Visual Basic и Visual C++.
Если же вам нужно нечто менее трудоемкое, выбирайте полные ин- тегрированные решения. Убедитесь, что язык симулятора позволяет ис- пользовать процедуры, вызываемые по необходимости из DLL. Остере-

46 ЧАСТЬ I РАБОЧИЕ ИНСТРУМЕНТЫ
гайтесь продуктов, нацеленных в основном на построение графиков и с ограниченными возможностями программирования, если вы собираетесь разрабатывать, тестировать на исторических данных и использовать в торговле механические торговые системы, значительно отличающиеся от традиционных индикаторов.
СИМУЛЯТОРЫ, ИСПОЛЬЗОВАННЫЕ В ЭТОЙ КНИГЕ
Мы предпочитаем использовать симуляторы, основанные на практике современного объектно-ориентированного программирования. Одна из причин такого выбора состоит в том, что объектное ориентирование упро- щает создание нужного количества моделируемых счетов, каким бы оно ни было. Это в особенности полезно при моделировании торговой систе- мы, управляющей целым портфелем товаров или акций, как это сделано в большинстве тестов в данной книге. Объектно-ориентированные симу- ляторы также хороши для построения адаптивных самооптимизирующих- ся систем, в которых иногда требуется использовать внутреннее модели- рование. Кроме того, такие программы позволяют достаточно просто со- здавать метасистемы (системы, принимающие решения на основе графи- ков изменения капитала других систем). Например, метасистемами мож- но считать модели распределения активов, поскольку они динамически меняют распределение средств между отдельными торговыми система- ми или счетами. Хороший объектно-ориентированный симулятор может генерировать графики изменения капитала портфелей и другую инфор- мацию для создания и тестирования на исторических данных систем рас- пределения активов, работающих на основе множественных торговых систем. Из этих соображений, а также в силу привычки большинство те- стов в этой книге проведены с использованием C-Trader tookit. Для того чтобы почерпнуть полезные знания из этой книги, не требуются позна- ния в C++ и программировании. Логика любой системы или элемента системы будет подробно рассматриваться в тексте.

1   2   3   4   5   6   7   8   9   ...   41


написать администратору сайта