Содержание к диссертации
Введение
Глава 1. Статистический анализ ценовых рядов 15
1.1 Основные понятия, определения и обозначения 15
1.2 Вероятностные характеристики ценового ряда 19
1.3 Анализ динамики вероятностных характеристик ценовых рядов 21
1.4 Аппроксимация функций распределения непрерывными распределениями 28
Глава 2. Математические модели ценового ряда 39
2.1 Нелинейная стохастическая дифференциальная модель 40
2.2 Модель Холла-Вайта 45
2.3 Моделирование стационарных случайных процессов с заданным одномерным распределением 48
2.4 Адаптированные стохастические дифференциальные модели ценового ряда 56
2.5 Вероятностная модель ценового ряда 67
Глава 3. Вычислительные алгоритмы и программное обеспечение 79
3.1.1 Состав и назначение комплекса программ 79
3.1.2 Обзор современных программных комплексов 80
3.1.3 Логическая схема работы системы TechAn 82
3.2 Компиляция программы, написанной на языке TAL 83
3.3 ПО Opti для оптимизации параметров торговых стратегий 93
3.4 Целевые функции, доступные в Opti 94
3.5 Визуализация данных в Opti 95
3.6 Алгоритм ускорения полного перебора 98
3.7 Распараллеливание вычислений 99
3.8 Численные эксперименты 101
Заключение 105
Литература 106
- Вероятностные характеристики ценового ряда
- Моделирование стационарных случайных процессов с заданным одномерным распределением
- Компиляция программы, написанной на языке TAL
- Распараллеливание вычислений
Введение к работе
Одной из ключевых задач финансовой математики является задача построения адекватных, с точки зрения определенных вероятностных характеристик, математических моделей ценового ряда. Дальнейшее практическое применение данных моделей представлено целым спектром таких задач, как расчет премии опционов различных стилей, расчет границ залоговых средств для торговли фьючерсными контрактами, статистическая проверка торговых алгоритмов, управление портфелем корпоративных ценных бумаг.
Для того чтобы осуществить переход от практических задач к задаче математического моделирования ценовых рядов, необходима определенная идеализация рынка ценных бумаг. Ниже приведен пример такой идеализации, известный как основа современного технического анализа[26] .Идеальный рынок основывается на трех аксиомах Аксиома 1. Движения рынка учитывают все факторы. Суть аксиомы заключается в том, что любой фактор, влияющий на цену - экономический, политический, психологический, заранее учтен и отражен в ее ценовом ряде.
Аксиома 2. Цены двигаются направленно. Это предположение стало основой для создания многих методик технического анализа. Термин тренд означает определенное направление движения ценового ряда. Одной из главных задач технического анализа является своевременное определение трендов. Существует три основных типа трендов: бычий (bullish) - движение цены вверх, медвежий (bearish) - движение цены вниз, боковой (sideways) - цена практически не меняется.
Аксиома 3. История повторяется. Технический анализ занимается именно историей определенных событий, связанных с рынком. С точки зрения технического анализа, понимание будущего лежит в изучении прошлого.
Принимая за истину аксиомы технического анализа, большинство прикладных задач теории финансов сводится к задаче математического моделирования ценовых рядов. Кроме того, в работе делается еще одно важное предположение: считается, что все торговые операции осуществляются мгновенно и что всегда есть возможность совершения сделок необходимого объема по цене с точностью до минимального кванта цены, то есть предполагается, что рынок обладает абсолютной ликвидностью.
Прежде чем переходить к постановке задач, решаемых в данной работе, проведем небольшой экскурс в историю финансовой математики.
В начале своего становления, в 20-х годах XX века, теория финансов в качестве математического аппарата использовала лишь формулу сложных процентов, а ее основной интерес был связан с вопросами администрирования и увеличения фондов. Последующее развитие теории шло в двух направлениях: в предположении условий полной определенности и условий неопределенности. Для развития первого направления важную роль сыграли работы Ирвинга Фишера [20],[29], а также работы Франко Модильяни и Мертон Миллера ("Сколько стоит фирма?", "Теорема ММ", 1963), в которых рассматривался вопрос выбора оптимальных решений для участников рынка.
Исторически первой работой во втором направлении стала диссертация Л. Башелье ("Theorie de la speculation", 1900), в которой автор предпринял попытку описать изменение стоимости акций на парижском рынке ценных бумаг как случайный процесс. Систематическому обобщению теория впервые подверглась в статье А.Н.Колмогорова (1931 г.). Хотя истоки теории лежали в области экономики, после Л.Башелье очень долгое время большинство ее методов использовалось, в основном, при исследованиях в области теоретической физики, главным образом, в молекулярной физике и радиофизике.
Лишь в начале пятидесятых годов XX века стохастическая математика вновь стала применяться в финансовых вычислениях. В 1952 году Г. Марковиц публикует статью с коротким названием "Выбор портфеля". Данная работа стала начальной точкой нового этапа развития финансовой математики. Главная идея Марковица - считать доходность операций купли-продажи каждой ценной бумаги случайными величинами. Эти величины заранее неизвестны, но предполагается, что для них заданы ожидаемые значения, а также величины, характеризующие отклонения доходностей от ожидаемых, - так называемые вариации и ковариации. Таким образом, Марковиц заставил говорить финансовый рынок на языке теории вероятностей.
Следующим важным этапом в теории финансов явилась работа В. Шарпа (1964), в которой идеи Марковица получили воплощение в широко известной модели, объясняющей поведение инвесторов на рынке, находящемся в равновесном состоянии. Далее в 1965 П.Самуэльсон для описания динамики изменения стоимости акции Р, „г, Ч О" t
/jt+(TlV(t) вводит, так называемое, геометрическое броуновское движение: Pt — Р§Є где ju,cr- вещественные параметры, ](•)- винеровский процесс. В 1972 году С. Росс для описания равновесности состояния рынка впервые использовал идеи арбитража. Утверждалось, в частности, что рынок, находящийся в равновесном состоянии, не должен допускать арбитражных ситуаций, то есть возможности извлечения прибыли без риска.
В современной теории и практике торговли опционами знаменательную роль сыграл 1973 год, когда в Чикаго (США) была открыта биржа по заключению стандартных контрактов с опционами. В том же году были опубликованы две работы, совершившие революцию в финансовых расчетах, связанных с опционами. Это статьи Ф. Блэка и М. Шоулса «Расчет цены опционов и обязательства корпораций» (1973)[28] и Р. Мертона «Теория расчета рациональной цены опциона» (1973). В этих работах было показано, что для расчета стоимости опциона необходимо привлечь теорию случайных процессов, в частности, теорию стохастических дифференциальных уравнений. Впервые для расчета стоимости опциона в качестве математической модели цены базисного актива опциона использовалось линейное СДУ в смысле Ито вида dPt=juPtdt+ rPtdH{f) 0) Р(0)=Р0 °-1 Т где Pt - значение ценового ряда в момент времени /; \xeR - коэффициент роста, aeR -коэффициент волатильности, м (») стандартный винеровский процесс. Данная модель позволила организовать работу опционных бирж, однако позднее многие исследователи отмечали неадекватность данной модели историческим ценовым рядам.
Изучение данной проблематики в России связано с развитием рыночных отношений в стране в начале 90-х годов XX века. Наиболее полно задача построения модели ценовых рядов исследована в работах А.Н. Ширяева (Институт математики им. В.А. Стеклова РАН) [22,23,24,25].
На данный момент современное состояние мировой компьютерной сети Интернет дает возможность огромному количеству физических и юридических лиц участвовать в биржевой торговле ценными бумагами, например, акциями. Как известно, участники рынка ценных бумаг подразделяются на инвесторов и спекулянтов. Для последних характерно большое количество сделок покупки и продажи за достаточно короткое время. Спекулятивная торговля является основой биржевой торговли и позволяет инвесторам осуществлять крупные торговые операции в любое время. Данный вид торговли доступен только высококвалифицированным специалистам по торговле акциями и невозможен без компьютерной поддержки. Для обеспечения такой поддержки создано большое количество компьютерных торговых программ, которые выдают сигналы на покупку и продажу, основываясь на поступающих с бирж числовых данных в режиме реального времени. Каждая такая программа имеет некоторый набор параметров, варьируя которые, можно добиться определенных характеристик торговли, например, высокой годовой доходности, минимального риска, минимальной длительности ряда убыточных сделок. Обычно параметры подбираются путем тестирования программ на исторических ценовых рядах за определенный период времени. Однако практика показывает, что зачастую даже оптимальная программа дает совершенно убыточную реальную торговлю. Поэтому тестирование торговых программ желательно проводить на ансамбле траекторий. С другой стороны, в действительности мы обладаем историческими данными, представленными одной траекторией. Таким образом, ансамбль траекторий может быть получен только путем статистического моделирования ценового ряда. Для этого можно использовать параметрическую модель, когда динамика цены определяется стохастическим дифференциальным уравнением. Для таких моделей вероятностные характеристики модельной цены зависят от выбранных значений свободных параметров дифференциального уравнения. Также можно моделировать ценовой ряд в полном соответствии с вероятностными характеристиками исторического ценового ряда, например, аналогично тому, как моделируется цепь Маркова с использованием матрицы перехода. Такой подход относится к вероятностным подходам, для него характерен малый набор свободных параметров.
Итак, при наличии адекватной модели ценового ряда появляется возможность качественно улучшить работу торговых программ по сравнению с тестированием программ на исторических данных, так как появляется возможность моделирования ансамбля ценовых траекторий с одинаковыми вероятностными характеристиками.
Основные цели работы:
• разработка методик построения математических моделей ценового ряда,
• исследование свойств полученных математических моделей ценового ряда,
• разработка программного обеспечения для предварительной обработки начальных данных и проведения математического моделирования ценовых рядов.
Ниже приведено краткое описание поэтапного решения данных задач.
В первой главе диссертации проведен статистический анализ исторической цены. Основная трудность такого анализа связана с тем, что фактически приходится определять вероятностные характеристики нестационарного случайного процесса по одной траектории. Следовательно, здесь нельзя использовать классические подходы статистики, когда оценки рассчитываются либо по ансамблю траекторий, либо по траектории эргодического процесса. Поэтому на основе ценового ряда предполагается строить временные ряды, имеющие почти стационарные характеристики, что достигается с помощью следующих преобразований исходного ценового ряда О -р) г Р ) ІР): —— -\ или s/tt- f. Для удобства анализа исходных данных использовалась Х \ Рп ) 1 РЛ процедура формирования баров. Баром периода К (обычно период указывается в минутах) исходного ценового ряда Рп на момент времени п называется совокупность {On,H„,Ln,Cn), где On - цена открытия бара, Сп - цена закрытия, #„,!„ - максимальная и минимальная цена внутри бара. Этот метод широко применяется при анализе ценовых рядов. Статистический анализ именно баров, а не исходных ценовых рядов, имеет большое практическое значение.
В §1.1 приведены основные определения и обозначения, используемые на протяжении всей работы, рассмотрены структуры, являющиеся основой современной теории финансовой математики.
В §1.2 приведены вероятностные характеристики ценовых рядов на примере рядов, соответствующих ценам российских акций, торгуемых на ММВБ. Причем на первом этапе ценовой ряд преобразован в бар, а затем исследованы его вероятностные характеристики. Для некоторых из анализируемых статистических распределений получены достаточно точные аппроксимации известными непрерывными распределениями.
Л Л
В §1.3 рассмотрена динамика статистических оценок ju, сг свободных параметров fi и 7 классической модели ценообразования. С помощью метода скользящего окна
Л Л
отслеживалась динамика изменения статистических оценок //, а.
§1.4 посвящен вопросу аппроксимации функций плотности вероятностей фактических распределений, рассмотренных в §1.1 и в §1.3, функциями плотности вероятностей двухпараметрических непрерывных распределений. Предварительный л анализ динамики изменения /і позволяет заключить, что аппроксимирующую функцию л плотности вероятностей распределения ju следует искать в классе симметричных непрерывных, с возможными значениями на R распределений. Совокупность двухпараметрических распределений, а именно: • распределение Чампернауна, • нормальное распределение, • логистическое распределение, • распределение Лапласа будем обозначать C {R). Целесообразность выбора этих распределений вытекает из л практических наблюдений выборок /л для ценовых рядов, соответствующих различным акциям, торгуемых на ММВБ. В отличие от задачи поиска аппроксимирующей функции л плотности вероятностей распределения ju, аппроксимирующую функцию плотности вероятностей а следует искать в классе несимметричных непрерывных распределений с возможными значениями на R+. Множество следующих распределений • гамма распределение, • логарифмически нормальное распределение, • распределение Рэлея, • распределение Вальда будем обозначать Cr(R+). А А Статистическая проверка гипотез о законе распределения для оценок /и и а из классов С(/?)и СД/?+) соответственно, была проведена с помощью критерия х2 Для случая, когда по выборке оцениваются свободные параметры непрерывных распределений. [10]
Результаты первой главы опубликованы в [14,27].
Вторая глава диссертации посвящена вопросу построения и исследования свойств математических моделей ценовых рядов. Один из способов получения модельных цен состоит в использовании стохастических дифференциальных уравнений (СДУ). Наиболее популярной (эта популярность обусловлена простотой расчетов) и полностью изученной в настоящее время моделью цены является модель (1). Однако результаты §1.3, 1.4 показали, что параметр роста // и коэффициент волатильности а не являются постоянными и ведут себя как стационарные случайные процессы на R и R+ соответственно. В этой связи возникает необходимость рассмотрения других, более адекватных, моделей ценового ряда.
В §2.1 рассмотрено нелинейное стохастическое дифференциальное уравнение вида dPt=juPtdt+crI?du{t) (2) 1 Р(0)=Р0 ° Т где Pt - значение ценового ряда в момент времени /, свободные параметры модели: JIGR, CTGR, ye R; w( )-стандартный винеровский процесс. Проведено исследование модели (2), которое включает в себя: • изучение динамики изменения оценки дисперсии Pt модели (2), • сравнение динамики изменения статистических оценок параметров /л, а для моделей (1)и (2), • разработку алгоритма выбора параметра у модели (2). В результате проведенных исследований установлено, что рост оценки дисперсии Pt прямо пропорционален изменению параметра у. Предполагая, что волатильность ценового ряда убывает с ростом ее значения, сужается интервал выбора у: 0 у 1. Также было выявлено, что для нелинейной модели (2) оценки параметров ц, а менее чувствительны к изменению периода рассматриваемых данных, чем для модели (1), причем эта чувствительность существенно зависит от параметра у. Решение задачи оптимизации параметра у (з)Д( м) = тіпд( где А(г) = тах(аі+і(г)- л(г)У ує(0,1] /=1. .N позволило добиться устойчивости оценок параметров ц, а относительно сдвига рассматриваемого временного интервала. Однако следует заметить, что воспроизвести л л динамику изменения // и т не удается ни при каких значениях параметра у, что является существенным недостатком модели (2). В §2.2 по аналогии с исследованиями, проведенными в §2.1, были изучены свойства модели Холла-Вайта, которая представляет собой систему СДУ вида dPt=/uPtdt+ vtPtdwx{t) (4) dvt =Xvtd+evt[pdw,{t)+ J2dw2{t)Y о т где Р{ - значение ценового ряда в момент времени /, свободные параметры модели: p.eR, /teR, 0eR, /?є[0,1], w,(•),vv2(•) - независимые стандартные винеровские процессы. Отличительная особенность модели (4) от моделей (1) и (2) заключается в том, что на л v( выписывается отдельное СДУ, что позволяет воспроизвести динамику а. Однако коэффициент// так же, как и в моделях (1) и (2), равен константе, что не позволяет л воспроизвести динамику изменения ju. Последнее обстоятельство значительно ограничивает круг практических задач, которые можно решать с помощью модели Холла-Вайта, и подталкивает нас к идее введения дополнительного СДУ на коэффициент//. В §2.3 изучен вопрос моделирования случайных стационарных процессов с заданным одномерным распределением. С этой целью рассмотрено нелинейное стохастическое дифференциальное уравнение в смысле Ито вида (5) WoKo Ь Т где а(х) - линейная функция, а(х) є C2(R), и ( )- стандартный винеровский процесс. Далее на основе теоремы о функции плотности решения нелинейного СДУ (5) сформулированы и доказаны утверждения вида: ( \ (6) У 2Р Д 2/3 2J3 2fi ta t T,AGR, а є R, р є R, А О, /? 0. Пусть - стационарное решение СДУ (6), тогда , - является стационарным процессом с одномерным логистическим распределением с параметрами а, /3. d=-Ag-)dt+J -drt$) (7) а " а , t0 t T,AeR,aeR,/3eR,A 0,a 0,p 0 №оНо Пусть , - стационарное решение СДУ (7), тогда - является стационарным процессом с одномерным гамма распределением с параметрами а, /?. а В работе сформулировано и доказано восемь утверждений для всех функций плотности вероятностей распределения из классов C (R) и С (/?+). Наконец, в §2.4 построена математическая модель, учитывающая переменную волатильность ценового ряда и эксцесс в приращениях ценового ряда. Это достигнуто за счет введения стохастических дифференциальных уравнений на /І и т. В классе CC(R) и Л Л CAR ) для аппроксимации распределений // и а соответственно, с использованием результатов, полученных в §1.4, выбраны наиболее подходящие распределения. Таким образом, обобщая модель цены (1) на случай, когда ц и а являются случайными стационарными процессами, получили систему нелинейных стохастических дифференциальных уравнений вида: (8) rdPt=titPtdt + GtPtdwx{t) tp, = -4 (M, - M; )dt+\- — { Аф{ (V,)} • dw2 (0 dat =-A2 (at - Mc )dt + I—- {-А2Ф (a,)} • dw3 (?) A] &R,A2eR,A] 0,A2 0, где w, ( ), 2( ), 3( )- независимые стандартные винеровские процессы. Далее рассмотрены все возможные варианты. Например, в случае, когда является стационарным процессом с одномерным логистическим распределением с параметрами а, р, уравнение на /л, принимает вид (6). Аналогично для а,, если д является стационарным процессом с одномерным гамма распределением с параметрами а, Р, то уравнение на ст, принимает вид (7). С помощью модифицированного метода Эйлера из (8) получена дискретная модель ценового ряда (именно она применяется в решении практических задач финансовой математики): Р =Р,АЬіипРп+ °ЛлпЛ м„+і= мп-Ч(м„- )+Jj {-A®M" } -Vnj (9) + = -H( - ) + Jy—y {-Л2Фс{с7п)}-гіп2 Д є R,A2 eR,At 0,А2 0, где 7nPVni Vn-s последовательности независимых между собой нормальных случайных величин с нулевым математическим ожиданием и единичной дисперсией, //- шаг равномерной сетки по времени, Рп - моделируемая цена в узле «временной сетки. Для некоторых уравнений разностная схема выписывается в явном виде с помощью х і аналитических функций, для других необходимо рассчитывать интеграл Ich(x)= \——dt lent г или erf(x)= \Q 2dt. Данные интегралы вычислялись с помощью формулы трапеции /(0) +ДАЛО "- +ХД//0 , где х = hN , с шагом h -10 2. /(х) = И С целью проведения верификации модели (9) были построены гистограммы л л (р _р Л функций плотностей распределений //, ст, \— —V , рассчитанные на основе I Рп-\ J ш исторических данных. Как показал численный анализ, функции плотностей распределений, построенные на модельных данных, достаточно хорошо аппроксимируют гистограммы, построенные на основе исторических данных. Для получения более точной численной оценки качества аппроксимации использовался критерий согласия %2 для случая, когда по выборке оцениваются свободные параметры распределения. Были Л получены следующие значения: 0,983 для плотности распределения //; 0,996 для \Р -Р плотности распределения а и 0,976 для плотности распределения — 1ч\1 [ ,!-! В заключение отметим, что усложнение исходной модели (1) оправдывается тем, что у новой модели (8) есть адекватность (с определенной степенью приближения) модельной и исторической ценам сразу по трем значимым вероятностным характеристикам, что выгодно отличает ее от исходной модели. §2.5 посвящен методике построения численной вероятностной модели ценового ряда, которая состоит в следующем: реальный ценовой ряд Р (tk) = Р (к), к = 1,... ,N , с шагом &t = tk+x k = const, представляется в виде (10) Р () = (к) + ф {к), где (&) - приближение сглаженного исторического ценового ряда Р (к) кусочно-линейной функцией дискретного аргумента, а (р {к) -отклонение ряда Р\к) от \к). Моделируемые цены Р(к) рассматриваются в виде аналогичной суммы (11) Р(к) - (к) + (р(к), где (к) - кусочно-линейный случайный процесс дискретного аргумента, соответствующий ряду {к), а (р{К) - аддитивный шум, соответствующий ф (к). В работе предложены алгоритм представления реального ценового ряда Р (к) в виде (10) и алгоритмы моделирования процессов (к) и (р(к), а также определены входные характеристики и характеристики для верификации модели (И).
Результаты второй главы опубликованы в [13,32].
Третья глава работы посвящена вычислительным алгоритмам, программному обеспечению, созданному на основе результатов, полученных в главах 1 и 2, а также описанию численных экспериментов.
В тесном сотрудничестве с финансистами - практиками компании ОАО «Обь-инвест» была разработана концепция создания и развития комплекса программ TechAn, направленного на эффективное решение широкого спектра практических задач финансовой математики.
В §3.1 сделан обзор современных программных комплексов, приведена логическая схема работы системы TechAN и дано краткое описание практических задач, которые решает данное программное обеспечение, а именно:
1. Создание базы исторических данных в различных форматах: Intraday, Daily.
2. Статистический анализ, классификация и преобразование исходных исторических данных.
3. Построение генераторов сигналов (сокращение - ГС) на основе математических моделей, представленных во второй главе диссертации.
4. Построение торговых стратегий (сокращение - ТС) на основе созданных ГС и наборе анализируемых данных, расчет основных характеристик ТС (например, доходность, риск, параметрическая устойчивость, устойчивость к изменениям ценового ряда и т.д.)
5. Поиск оптимального набора свободных параметров при решении оптимизационной задачи при определенных условиях на основные характеристики ТС.
6. Классификация ТС с оптимальными наборами параметров по заданным характери стикам.
7. Обеспечение работы на ММВБ через терминал QUIK в режиме реального времени, на основе разработанных и оптимизированных ТС.
В §3.2 описаны этапы компиляции программы, написанной на специализированном языке TAL, в исполняемый модуль dll:
• парсинг (разбор и построение дерева операций),
• генерация кода на языке "Object Pascal",
• компиляция результирующего проекта компилятором dcc32 в автоматическом режиме.
В §3.3 и §3.4 приводится описание функциональных возможностей универсального оптимизатора Opti. Кроме численного результата перебора параметров целевой функции, программа позволяет проследить зависимость функции от параметров, что достигается с помощью визуализации данных или графических отчетов. Графические отчеты могут быть трех типов: 2-х мерные, 3-х мерные, 3-х мерные анимированные. Подробное описание данных отчетов приведено в §3.5.
Алгоритм ускорения перебора в области определения целевой функции представлен в §3.6. Основная идея заключается в разбиении перебора на два этапа: первую проходку, более грубую, с увеличенным шагом, и вторую проходку, с мелким шагом, уточняющую найденный во время первой проходки локальный экстремум. Итоговое время складывается из двух составляющих: коэффициента ускорения к, то есть множителя шага для первой проходки, и размера области второй проходки Q. Чем больше будет к и меньше Q, тем быстрее пройдет перебор, но тем больше будет вероятность выйти не на ИСКОМЫЙ экстремум, а на другую точку локального экстремума.
В §3.7 описан алгоритм распараллеливания вычислений, который позволяет существенно повысить эффективность комплекса TechAN при решении задач оптимизации. В общем случае задача представляет собой поиск оптимальных параметров некоторой целевой функции, о которой, как правило, ничего не известно, что не позволяет воспользоваться аналитическими методами для упрощения задачи. Таким образом, остается только полный перебор вариантов. В такой ситуации ускорение возможно за счет распараллеливания вычислений на N процессоров и/или машин. В данном алгоритме оптимизируемые функции реализуются в виде интерфейсов динамически линкуемых библиотек, которые загружаются в адресное пространство процесса, занятого перебором, а далее используется подход, при котором каждый поток содержит свой объект.
В §3.8 приведены численные эксперименты для решения следующих практических задач финансовой математики:
• определение границ Stop loss, stop profit,
• расчет премии опциона,
• исследование торговых алгоритмов.
Данные задачи решались с помощью комплекса TechAN на основе математических моделей ценового ряда, рассмотренных во второй главе. Результаты третьей главы опубликованы в [15, 27].
Вероятностные характеристики ценового ряда
Многочисленные наблюдения финансовых аналитиков ценовых рядов говорят о том, что траектория ценовых рядов не является траекторией стационарного, а тем более эргодического случайного процесса. Поэтому обычные подходы для статистического анализа случайного процесса по одной траектории здесь мало пригодны. Необходимо выбрать ряд таких вероятностных характеристик, которые давали бы возможность сравнивать ценовые ряды между собой и позволять настраивать математическую модель цены так, чтобы в некотором вероятностном смысле историческая и модельная цены были адекватны на заданном временном периоде. В качестве набора характеристик ценовых рядов рассмотрим: 1. Распределение относительных приращений цен закрытия баров Здесь С(п) - значение цены закрытия n-го бара, то есть цена последней биржевой сделки на временном интервале (/„_,,f„], который может измеряться как минутами, так и торговыми днями. Наблюдения показывают, что практически у всех ценовых рядов распределение г{п) - одновершинное, симметричное, с положительным эксцессом.
Для низколиквидных ценовых рядов характерно наличие большого количества баров нулевой величины, то есть временных интервалов, в течение которых либо не заключалось ни одной сделки, либо одна сделка, либо несколько сделок по одной цене. Гистограмма плотности вероятностей распределения приращений низколиквидных рядов имеет высокий выброс в нуле. Особый интерес представляет динамика изменения оценки дисперсии выборки ](п), данная оценка называется «волатильностью» ценового ряда и отражает степень изменчивости цены. Распределения rj(n) и г(п) очень близки, в силу этого наблюдения для выборки г{п) справедливы и для выборки rj(n). 3. Распределение относительной величины бара д"" "!" "!-2оо%-"= -2..... . Н(п) + Цп) где Н(п) и L{n) - соответственно наибольшая и наименьшая цена сделки в течении /7-го бара. Гистограмма распределения относительной величины баров достаточно точно аппроксимируется логарифмически нормальным распределением. Так же, как и для приращения цен закрытия баров, для низколикивдных ценовых рядов характерно большое количество нулевых значений D(n). 4. Распределение длительностей и величин повышательных и понижательных трендов и длительности «бокового» движения цены. Алгоритм выявления трендов в исторических и модельных ценах можно построить следующим образом. Под трендом понимается монотонное значимое изменение цены в одном направлении. Для идентификации повышательного тренда следует использовать максимальные цены бара, для понижательного тренда - минимальные, для «бокового» движения - цены закрытия баров. Задается уровень значимого изменения цены є, например, 0.2%. Далее, строится По выборке г{ії) строится последовательность из 1, 0, -1 согласно условиям: если Ґ{УІ) Є, то 1; если 7 (#) Є, то 0; если v{n) —Є, то —1. При таком подходе тренд определяется последовательностью одинаковых цифр: 1,1,..,1 - повышательный тренд; -1,-1,..,-1 - понижательный тренд; 0,0,..,0 - «боковое» движение цены. Теперь для каждого тренда легко рассчитать его величину и продолжительность и построить их распределения. Как уже отмечалось выше, невозможно охарактеризовать поведение ценового ряда некоторым одним интегральным числовым показателем, который полностью решил бы проблему адекватности исторической и модельной цены. Необходимо рассматривать таблицы различных числовых показателей, включающих, например, моменты распределений и количество сделок, скачков, нулевых баров за определенный промежуток времени.
Для исторических цен данные характеристики могут меняться значительно, в зависимости от: выбранных временных интервалов, на которых производится расчет вероятностных характеристик, от длины баров, от уровней выделения скачков и значимого изменения цены при идентификации тренда. Например, графики гистограмм величин 5-минутных и часовых баров малоликвидных акций имеют совершенно различный вид. Для модельных цен также характерно некоторое расхождение вероятностных характеристик, полученных на разных моделируемых траекториях. Осреднение этих характеристик по ансамблю не принесет особой пользы, если дисперсия этих оценок велика. Кроме того, ценовой ряд имеет свои специфические особенности, такие, как периодические скачки при открытии торговой сессии, сезонная цикличность, периоды малой и высокой ликвидности. Эти особенности желательно учитывать при моделировании конкретного ценового ряда. Для практических целей тестирования торговых алгоритмов критерием адекватности может служить одинаковая доходность торговой программы на реальных и модельных ценах. В данном параграфе проводится анализ динамики вероятностных характеристик ценовых рядов, на основе которого строится стохастическая дифференциальная модель. В качестве примера таких данных рассматриваются цены российских акций, торгуемых на ММВБ. Структура данной модели учитывает поведение ряда значимых вероятностных характеристик исторических цен, что должно улучшить классическую модель ценообразования. Итак, вернемся к линейному стохастическому дифференциальному уравнению в смысле Ито вида На данный момент подробно изучены такие характеристики модели, как степень влияния параметров модели на плотность распределения Р,.
Получены статистические оценки свободных параметров /л и сг. Также хорошо известны недостатки данной модели, основным из которых является быстрый неограниченный рост дисперсии Р, с ростом /, что следует из точного решения уравнения (1.1): По сути, моделируемые Р, становятся неправдоподобными даже для небольших значений /, что в свою очередь ведет к неадекватности модели по большинству из представленных в 1.2 вероятностных характеристик. Так как в задачах финансовой математики время дискретно в силу специфики данной предметной области (котировки акций, индексов даются с определенной периодичностью, например, в одну минуту), то целесообразно перейти от модели (1.1) к дискретной модели где Ср - последовательность независимых между собой нормальных случайных величин с нулевым математическим ожиданием и единичной дисперсией, И- шаг равномерной сетки по времени, Рп - моделируемый ценовой ряд в узле п. Отметим, что выражение (1.2) является рекуррентным представлением точного решения уравнения (1.1). Из { л N In —— для " J /1=0 параметров // ис получаем: где ./V - число дискретных наблюдений. Далее исследуем динамику оценок параметров /І и с. Для этого воспользуемся методом «скользящего окна», который заключается в следующем: на интервале [t0,tfj]длины / оцениваются параметры ц и т по формуле (1.3). Обозначим значения Л Л получившихся оценок параметров как ju0 и сг0 соответственно. Далее сдвигаем интервал наблюдения на v є (0,JV) , в данной работе v = —, и на интервале [c w+.J рассчитываем
Моделирование стационарных случайных процессов с заданным одномерным распределением
При анализе динамики вероятностных характеристик ценового ряда (см.1.3) выяснилось, что параметр роста и коэффициент волатильности в классической модели ценообразования (1.1) не являются постоянными, а ведут себя как стационарные случайные процессы на R и R+ соответственно. В 1.4 были найдены наилучшие распределения относительно критерия j2, в качестве ценовых рядов рассматривались акции, торгуемые на ММВБ. Для данных ценовых рядов, при аппроксимации плотности л вероятностей распределения // в классе рассмотренных непрерывных двухпараметрических распределений с возможными значениями на R наилучшим А образом подходит распределение Чампернауна, для аппроксимации распределения а в классе рассмотренных непрерывных двухпараметрических распределений с возможными значениями на R+ - распределение Вальда. Для получения структуры новой модели ценообразования остается решить задачу моделирования стационарных случайных процессов с заданным одномерным распределением. Теорема 1 (о функции плотности решения нелинейного СДУ) Пусть , - стационарное решение (2.3), где а(х) = -А(х-а) ,A 0,A R,aeR, одномерной функцией плотности вероятностей ff(x) = g(x) и Мс = а. Доказательство: см. [1] Утверждение 2 Пусть - стационарное решение СДУ (2.10), тогда , - является гауссовским процессом с параметрами а,/3. Доказательство: Пусть - 1 удовлетворяют условиям теоремы 1. случайная величина с нормальным распределением, тогда ее функция (х-аГ 2/Г /ЗлЛтг e dy = л -( -g)2 х-а -у dy= J 2/Г J 1 тп2 , Г 1 /?V2;r р ІІтт P2 PJ r-« p -{x-af g2fi _ H_c IP таким образом, т2(х) = \-АФс(х)}=202Л= т(х) = лІ2А-0 = уравнение (2.3) принимает вид: d% --А{Е,- d)dt + ы1А fidw(t), что и требовалось доказать. Замечание 2 (2.10.1) ,L t T,A 0 d%=-Adt+УІЇАСЦІ) Пусть - стационарное решение СДУ (2.10.1), тогда єЛ (0,1), то есть является гауссовским процессом с параметрами 0,1. Доказательство: очевидное следствие утверждения 1 з Утверждение th- dw(t) (2.11) d=-A{-a)dt+2ylA-ch In ch (- х\ L„iJ a - .J-a 2J3 V -H J 2P 2J3 2P t0 t Т,А є R,a є R,p є R,A 0,/7 0 Пусть , - стационарное решение СДУ (2.11), тогда , - является стационарным процессом с одномерным логистическим распределением с параметрами а, р.
Доказательство: Пусть - случайная величина с логистическим распределением, тогда ее функция плотности fs (х) - 1 ,-оо х оо, где а- параметр положения Apch2 1 х-а к Р j (математическое ожидание); р - параметр масштаба (/? 0). В силу того, что а(х), а(х), определенные как 1 dy, у-сс Apch2 / (х) є С2 (R) и / (х) Ф О, при\/х є R, функции Ш а(х) = -А(х-а),а2(х) = —— {-АФ (х)}, Ф (х) = J (у - а) удовлетворяют условиям теоремы 1. Сделаем замену переменных в подынтегральном выражении t = - , тогда \ 2р t 1 2р \ ) Ф,(х) =— Г——dt-— \t tht - In cht LB силу того, что lim {tht-In cht] = 0, 2J3 і ch2t 2J3 \ J " . , x-or x-a , x-a In с/г — — tn ... 1 \x-ct . x-a , , x-a] 2 .2fx-a ф,(x) = fft Inch ,cr\x) = 4ch \ 2/? 2/? 2/? fx-a} V 2/? у x-a x-a , x-or In ch 2p{2p 2p 2(5 J 2/3 cr(x) = 2л/Л ch th Тогда уравнение (2.3) принимает 2j3 2/3 2/3 вид (2.11), что и требовалось доказать. Утверждение 4 d =-A{-a)dt+4ЇА Щ[ Л- М$) (2.12) tQ t T,A&R,cceR,PeR,A 0,/3 0 Пусть , - стационарное решение СДУ (2.12), тогда Е, - является стационарным процессом с одномерным распределением Лапласа с параметрами а, (3. Доказательство: Пусть - случайная величина с распределением Лапласа, тогда ее функция плотности fi(x) = — Ре г ,-оо х со, где а- параметр положения (математическое ожидание); р - параметр масштаба (Р 0). В силу того, что fi(x)GC2(R) и f4{x)фO,npu /xeR, функции а(х),сг(х), определенные как а(х) = -А(х-а), а2(х) = \-АФЛх)\, Ф,(х) = — \(у-а)Ре у ау, /f( ) 2_i удовлетворяют условиям теоремы 1. Сделаем замену переменных в подынтегральном выражении / s р(у-сс), тогда Р(х-а) Фс(х) = J /Л/ = , Р(х-а) — J te dt,a x -со п Г 0 Р(х-а) І — ]te dt+ J /e_ cfrkar x , в силу того, что jte dt = e (t-\), \te dt = -е"(/ +1), п Р(х-а) г \ e (t-\)=-emx-a)({](x-a)-\),a x Р(х-а) Р Р ФАХ) jte dt+ J te- dt\ = -(e p(x-a){P(a-x)-\)),a x = -l(e -\p\x-a\ + \)) Тогда уравнение (2.3) принимает вид (2.12),что и требовалось доказать. Утверждение (2.13) d=-A(-a)dt+ I— Jch/3(x-a)(fo2-Ich(/3\x-cty)-cM(t) to t T,AeR,aeR,PeR,A 0,p 0 Пусть - стационарное решение СДУ (2.13), тогда - является стационарным процессом с одномерным распределением Чампернауна с параметрами а, /3. Доказател ьство: Пусть - случайная величина с распределением Чампернауна, тогда ее функция Р плотности /Дх)= -,-оо х к , где а- параметр положения (математическое 7tchp(x-a) ожидание); р - параметр масштаба (/? 0). В силу того, что f,(x)eC2(R)u ft {х) 0, np\Nx є R , функции а{х), cr(x), определенные как ? х R а(х) = -А(х-а),а2(х) = —{-АФ(х)},Ф4(х)= \(у-а)—- -dy, 2 І .. . .і - . . \, . Р_ , , _м nchp{y-a) удовлетворяют условиям теоремы 1. Сделаем замену переменных в подынтегральном выражении t = Р(у-а), тогда , (x-a)fl . фс(х) = - f dt = л і cht я (x-a)P о о f -—dt + f —dt- \ —dt,if x a 0 (x-a)p I—dt + \ —dt,if x a cht , так как f dt = -\x\2. { cht то ( - ) p \ —dt-\x\2,if x a о (A-a)/? Ф,(і) = -{ cht і , . = — І /c/z(/Jx -or j -In 2J, тогда г / —dt \n2,if x a nJ с/г/ o-2W = 7r{- W}=—сЛЖ -«)(іп2-/сЛ( х-а)).
Тогда уравнение (2.3) принимает вид (2.13),что и требовалось доказать. Утверждение (2.14) "- Ф- АЦО /0 / Т, А є R,a є Л, Л 0,а О Пусть - стационарное решение СДУ (2.14), тогда Е, - является стационарным процессом с одномерным распределением Рэлея с параметром а. Доказательство: Пусть - случайная величина с распределением Рэлея, тогда ее функция плотности Г" У ——— I JT f(x) = —re 2of2,0 x co, где а - параметр масштаба, мода (а 0),М, =aJ—. В силу а V 2 того, что /,(х)єС2(/?+)и /Ах) 0,приУхє R+, функции а(х), т(х), определенные как 1/Т\ 2/ 2 а(х) = -Дх-а ), (х) = {- ФДх)},Ф,(х)=(7- -)4 2ф, удовлетворяют условиям теоремы 1. Сделаем замену переменных в подынтегральном выражении / = У 4г-а , тогда -/ Д-а ГГ [їг \ 1 Ф#(х) = 2 J (yf2at-ccJ-)te- 2dt; \t2e 2dt = —erf{t)--e 2/, Jfe 2df = --e
Компиляция программы, написанной на языке TAL
Компиляция программы, написанной на языке TAL в исполняемый модуль dll, выполняется в три этапа: /. парсинг (разбор и построение дерева операций) 2. генерация кода на языке "Object Pascal" 3. компиляция результирующего проекта компилятором dephi (dcc32) в автоматическом режиме. Ниже приведено краткое описание каждого из этих этапов: 1. Парсинг. Разбор программы выполняется объектом - парсером, осуществляющим разбор логических структур языка и построения по ним дерева операций. Основными структурами языка являются Секции (Sections), Команды (Statements), Выражения (Expressions). Команды делятся на декларации (описание переменных, функций и т.п) и выполняемые операторы (условия, присваивания, циклы и т.д.). Декларации (переменных, параметров) используют пространства имен (NameSpaces) для поиска и добавления имен. Пространство имен представляет собой древовидную структуру (связи типа Parent-Children), узлы которой имеют связи с объектами (Owner), несущими функциональность (секции, функции). Поиск в пространстве имен ведется от текущего (например, локальные переменные функций) к родительскому, вплоть до вершины дерева. Разбор секции представляет собой линейный разбор команд, входящих в нее (включая декларативные), завершающихся оператором end . Разбор Команд осуществляется в зависимости от типа команды. Команды, начинающиеся с ключевого слова, определяются списком ключевых слов и осуществляют разбор по индивидуальному алгоритму для каждого типа команды, определяемому синтаксисом языка. Команды, не имеющие ключевого слова, разбираются по следующей схеме: Exprl := Ехрг2; где на Exprl накладывается ограничение, требующее возможности записи в него нового значения (например, переменные).
Команды с ключевыми словами реализуют собственный алгоритм разбора. Например: Begin Statement Statement End. Здесь Statement означает рекурсивный вызов процедуры разбора команды. Синтаксис языка не требует разделителей команд разбор команды заканчивается в точке ее логического завершения. Для каждого разбираемого элемента создается объект - наследник Telement, в случае команд - наследник Tstatement, который занимает свое место в дереве с помощью связей и списков. К примеру, вышеприведенная команда описания блока приведет к созданию TblockStatement, имеющему список ссылок на команды (Statements), который сам, в свою очередь, будет возвращен процедурой разбора команд в виде наследника Tstatement. Большинство команд оперируют с выражениями. Выражение представляется в дереве операций объектом Texpression, имеющим тип выражения. Все операции осуществляются со строгим согласованием типов. Например, присвоение целочисленной переменной і значения Строка выдаст ошибку «несоответствия типов». Разбор выражений ведется рекурсивно с глубиной рекурсии, равной числу уровней приоритетов. - Первый уровень - уровень операций сравнения. То есть, каждое выражение представлено набором арифметических выражений, разделенных операциями сравнения. Например: а + 10 20 (тип Boolean), а+10 (при отсутствии операции сравнения результатом является само арифметическое выражение). Для каждой операции создается объект (узел дерева), имеющий код операции и ссылки на аргументы (два аргумента для бинарных операций, один для унарных). - Второй уровень (арифметическое выражение) состоит из слагаемых, разделенных аддитивными операциями (+, -, логическое OR). Например: a+10-b (тип результата - числовой); c d - при отсутствии аддитивных операций результатом является первое слагаемое. - Третий уровень (слагаемое) состоит из сомножителей, разделенных мультипликативными операциями ( , /, логическое AND). - Четвертый уровень (сомножитель) производит разбор сомножителя как структуры, состоящей из элементов, разделенных точками (отделяющими поля от структуры). Разбор структур производится линейно без рекурсивного вызова. Составными частями структуры являются элементы. Разбор элементов производится в следующем порядке: число (начинается с цифры); строковая константа (начинается с или «); переменная, параметр, вызов функции - поиск в пространстве имен. Разбор осуществляется в один проход одновременно с построением дерева операций, заканчивается при достижении конца текста программы или прерывается при обнаружении ошибки с указанием пользователю ее местоположения. 2. Генерация кода осуществляется в один проход путем рекурсивного обхода дерева. При генерации элементы языка преобразуются в соответствующие элементы языка ObjectPascal (при наличии таковых) или заменяются необходимыми конструкциями. Добавляется код декларации необходимых переменных и других объектов, передачи списка параметров в объекты создаваемого проекта.
Для генерации используется файл-шаблон с указанием места вставки необходимого кода, замены ключей (tag replacement). В результате генерируется файл analyser.pas, представляющий собой динамически изменяемую часть проекта Strategy. 3. Компиляция проекта Strategy с динамически созданным файлом проекта Analyser.pas. В результате получается динамическая библиотека (dll), описывающая стратегию, которая далее может быть использована в приложениях Opti и On-line trader. За счет реализации компилятора языка TAL (а не интерпретатора) удалось достигнуть ускорения вычислений относительно алгоритмических интерпретаторов в 3-10 раз (ускорение зависит от сложности ТС). 3.2.1. Конструкции языка TAL 1. Объекты: типизированные элементы (параметры, переменные, константы и т.д.). Например: PI, Instrl, 10.4 и т.д. 2. Операции по возрастанию приоритета: Сравнения ( , =, , =, = о); Аддитивные ( +, -, OR); Мультипликативные ( , /, AND); Префиксные (-, NOT). Например: a b+c d e/f. 3. Выражение (expression): вычисляемое значение, имеющее тип результата. В выражении используются операции (с учетом приоритетов), вызовы функций, объекты. Например: А+В 10+ fl(c) и т.д. Каждое выражение имеет возвращаемый тип. 4. Оператор (statement) - простейший элемент программы. Операторы выполняют действие (присваивание, проверка условий и т.д.). ; является пустым необязательным оператором. Синтаксис: OperatorKeyword ... (синтаксис определяется оператором) Либо VoidExpr - выражение не возвращающее значение (например процедуры) Либо VarExpr := expr , где varExpr - выражение, возвращающее модифицируемую переменную.
Распараллеливание вычислений
Общая задача представляет собой поиск оптимальных параметров некоторой целевой функции, о которой, как правило, ничего не известно, что не позволяет воспользоваться аналитическими методами для упрощения задачи. Поэтому остается только трудоемкий полный перебор вариантов. В такой ситуации на помощь может придти распараллеливание вычислений на N процессоров и/или машин. Для того чтобы запустить вычисления на N процессорах, необходимо создать либо N процессов, либо N потоков для вычисления значений оптимизируемой функции. Очевидно, что проще и эффективнее создавать потоки, нежели процессы, ввиду простоты взаимодействия между потоками. В разрабатываемом ПО оптимизируемые функции реализуются в виде интерфейсов динамически линкуемых библиотек, которые загружаются в адресное пространство процесса, занятого перебором. Далее возможны два подхода к распараллеливанию вычисления: 1. каждый поток содержит свой объект; 2. объект один на все потоки. В обоих случаях возникает проблема синхронизации общих данных, например, ценовых рядов, загружаемых с SQL, и проблемы синхронизации обращения к общим данным и загрузки общих данных между несколькими потоками исполнения. Данные задачи была успешно решены, что позволяет обеспечить поддержку многопроцессорных систем в комплексе TechAn. Ниже приведена статическая модель распараллеливания. Manager - N наборов параметров {IA },W Перебор: Manager. Evaluate (v,), і = 1, ..., N = Оптимальное значение Схема распараллеливания на двух Manager : Managerl - N/2 наборов параметров {і/}, Manager2 - її наборов параметров {i t }N Manager 1 .Evaluate (ц), і = 1,. 1 -е оптимальное значение /2 Manager2 . Evaluate (v,), і = /г+1, ... N =i 2-е оптимальное значение {1-е оптимальное значение, 2-е оптимальное значение} = Оптимальное значение Именно эта модель реализована в Opti.
Ее эффективность обусловлена простотой, но модель имеет одну особенность: в ней не предусмотрено динамического распределения или перераспределения частей задачи между Manager aMH, так как распределение подзадач происходит перед запуском цикла. Это влечет за собой следующие недостатки и ограничения: сложно равномерно распределить нагрузку, если Manager bi имеют разную производительность, при выходе из работы по какой-либо причине одного из Manager oe или существенном падении его производительности, или неравномерном распределении нагрузки невозможно перераспределить его задачу на остальных. Динамическая модель распараллеливания: Имеется N наборов параметров {v,}", п - величина "порции" параметров, не меняется, выбирается эмпирически. Параметры разбиваются на "порции": {iV,), " Циклы выполняются одновременно независимо друг от друга. Такая организация вычислений имеет следующие преимущества: возможность распределения задачи на неограниченное число Manager oe, динамическое распределение нагрузки на Manager oB в зависимости от их вычислительной мощности и занятости на основных задачах, возможность организации "горячего" подключения и отключения Manager oe (в т.ч. и аварийного). Приложение 1: Определение границ Stop loss, stop profit При решении задачи определения границ Stop loss, Stop profit требуется, что бы плотность вероятностей распределения моделируемой Pt была сконцентрирована в интервале [0.75-Ро, 1.25-Ро] на 80%. Проведем моделирование Pt с помощью рассмотренных в 2.1, 2.2, 2.4 СДМ ценового ряда при одинаковых начальных условиях, с применением полученных оценок для свободных параметров моделей и с применением рассмотренного метода адаптации модели (2.18) к начальным данным. В качестве исторического ценового ряда использовались данные изменения индекса DJIA за последние 10 лет.
Полученные результаты представлены в таблице 4. Здесь и далее результаты моделирования, подтвержденные историческими данными, выделены серым фоном. Как видно из таблицы 4, только адаптированная СДМ решает поставленную задачу с необходимой точностью. Ограничение на Т - границу интервала [0,Т], на котором возможно адекватное моделирование Pt, следует из требований к точности определенных в прикладной задаче.