Учебная работа. Модели портфельного инвестирования

Модели портфельного инвестирования

Введение

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

Основную часть работы занимает рассмотрение вопросов определения параметров модели Марковица, таких как:

·Какой длинны необходимо использовать временной (исторический) ряд для каждой из бумаг (акций) для достоверного определения доходности/риска бумаги в портфеле бумаг?

·Портфель с каким соотношением риска/доходности необходимо выбрать на кривой Марковица в каждом из моментов времени?

·Как часто необходимо производить переформирование портфеля акций?

Кроме того, ставится вопрос определения критериев оценки эффективности полученных результатов.

В данной работе анализ стабильности портфеля ценных бумаг понимается как стабильность его двух главных характеристик: доходности и риска. Так же рассматривается вопрос стабильности состава (структуры) портфеля во времени.

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

В качестве инструментов анализа, в работе преимущественно использован язык программирования Python 3.5 позволяющий проводить статистические исследования, а так же дополнительные модули статистической обработки данных. Программный код, использованный в исследовании, приведен в приложениях к работе и может быть использован для продолжения исследования или уточнения полученных результатов.

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

Объектами исследования является портфели ценных бумаг.

Предметами исследования стабильность требуемой доходности и состава портфеля во времени во времени

Основными методологическими источниками являются работы У.Ф. Шарпа, публикации в научных журналах (в т.ч. Высшей Школы экономики), а так же публикации исследований на иностранных языках. В качестве источника данных (котировок финансовых инструментов) для анализа выступают интернет сервисы Yahoo Finance [#»justify»>Работа, помимо введения, заключения и др. разделов, содержит три основные главы, рассматриваемые последовательно:

·Глава 1. Модели портфельного инвестирования. Приводятся основные теоретические материалы, понятия, формулы и алгоритмы расчета, используемые в дальнейшем.

·Глава 2. Расчет портфеля ценных бумаг методом Марковица. Данная глава занимает центральное место в работе, в ней выполняется построение портфелей ценных бумаг с различными параметрами, выполняется их сравнение и анализ. Исходя из проведенного исследования предлагается и обосновывается методология расчета оптимальных параметров модели.

·Глава 3. Построение риск нейтрального портфеля. Рассматривается альтернативный метод формирования инвестиционных портфелей, приводятся примеры структуры и динамики портфелей.

Глава 1. Модели портфельного инвестирования

1.1Обозначения, понятия и сокращения

Портфель ценных бумаг — это совокупность ценных бумаг, принадлежащих юридическому или физическому лицу [34]

Скальпинг (от англ. scalping — снимать скальп, срезать верхнюю часть),- одна из стратегий внутридневных спекулятивных операций на фондовом, валютном, товарном рынках, особенностью которых является закрытие сделки при достижении небольшой прибыли в несколько пунктов («пипсов»)

Биржевой индекс (фондовый индекс) — это индикатор состояния рынка ценных бумаг, рассчитанный определенным образом на основе корзины наиболее ликвидных обыкновенных акций или облигаций. Биржевые индексы позволяют оценить состояние фондового рынка в едином целом, определить текущий момент в экономическом цикле [31]

1.2 Модель Марковица

Основная идея модели Марковица заключается в том, чтобы статистически рассматривать будущий доход, приносимый финансовым инструментом, как случайную переменную, т.е. доходы по отдельным инвестиционным объектам случайно изменяются в некоторых пределах. Тогда, если неким образом определить по каждому инвестиционному объекту вполне определенные вероятности наступления, можно получить распределение вероятностей получения дохода по каждой альтернативе вложения средств. В модели Марковица полагается, что доходы по альтернативам инвестирования распределены нормально [6].

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

Имеется некоторый рынок активов. Совокупность активов, орошающихся на рынке, обозначим через А. Отдельный актив будем обозначать строчной буквой а.

Мы можем перенумеровать активы:

и вместо символа актива использовать его номер (индекс).

множество различных состояний рынка (значений цен активов) обозначим через S, а отдельное состояние будем обозначать строчной буквой j или буквой s с индексом

и т.п.

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

Каждому состоянию s припишем некоторую вероятность — неотрицательное число р(s).

На языке теории вероятностей это означает, что пара , состоящая из множества S и вероятностей меры p, образует дискретное вероятностное пространство. Мера p дает вероятности лишь отдельных (элементарных) состояний. Ее можно продолжить на произвольные множества состояний.

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

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

Так же возможно вместо распределений доходности использовать лишь важнейшие количественные характеристики случайной величины — ее математическое ожидание, дисперсия и стандартное отклонение.

Если R — случайная величина, заданная на дискретном вероятностном пространстве , то ее математическим ожиданием называется число, определяемое выражением:

В теории Марковица математическое ожидание есть формальный аналог понятия «ожидаемой доходности» [16].

Следующей важнейшей характеристикой случайных величин является дисперсия, которая характеризует «степень отклонения» (разброс) случайной величины от ее среднего значения. Ее также называют (особенно в финансовой литературе) вариацией. Дисперсия задается выражением:

Дисперсию можно вычислить и по распределению случайной величины:

здесь — математическое ожидание случайной величины R.

Из определения дисперсии видно, что она имеет размерность квадрата размерности величины R [35]. Для того чтобы использовать в качестве меры разброса характеристику той же размерности, вместо дисперсии часто используют среднеквадратичное или стандартное отклонение:

В модели Марковица дисперсия или, что, по существу, то же самое, стандартное отклонение служит мерой риска актива. При этом принимается важное соглашение, состоящее в том, что инвестор при принятии инвестиционных решений основывается лишь на упомянутых двух характеристиках активов и их портфелей: ожидаемой доходности, представляемой математическим ожиданием, и риске, представляемом дисперсией. такой подход получил в англоязычной финансовой литературе название mean — variance approach» (mean — среднее, variance — вариация, дисперсия). Следует отчетливо понимать, что упомянутое соглашение есть постулат портфельной теории Марковица [17]

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

На основании этого можно говорить о задачах оптимизации портфеля ценных бумаг

.Минимизация риска при заданном уровне доходности

2.Получение максимальной доходности при заданном риске

Где — доля инвестиций в i-ую акцию, — среднеквадратичное отклонение доходности акции i, значения корреляционной матрицы.

Предположим, инвестора удовлетворяет любая доходность превышающая минимальную ставку r, но не устраивает большой риск имеющихся активов. В этом случае инвестор вместо выбора одного актива, скорее всего, составит портфель из них, стремясь по возможности «диверсифицировать» (перераспределить) риск с целью уменьшения его количественной оценки. Степень возможности такой диверсификации зависит от характеристики, служащей мерой связи (в вероятностном статистическом смысле) между случайными величинами, представляющими доходности активов. Речь идет о ковариации. Для любых двух случайных величин и , определенных на вероятностном пространстве , эта характеристика определяется следующим образом:

Заметим, что в случае совпадения случайных величин, т.е. , ковариация превращается в дисперсию:

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

Параметрическая модель рынка, или рынок по Марковицу описывается тройкой [16]:

где — конечный набор активов, составляющих Рынок,

— вектор ожидаемых доходностей, т. е. — математическое ожидание случайной величины , представляющей доходность актива за выбранный инвестиционный период Т, а — ковариационная матрица порядка n,где — ковариация случайных величин и причем в случае i=j: т. е. диагональные элементы задают дисперсию (риск) активов. Марковиц разработал очень важное для современной теории портфеля ценных бумаг положение, которое гласит: совокупный риск портфеля можно разложить на две составные части. С одной стороны, это так называемый рыночный (систематический) риск, который нельзя исключить, и которому подвержены все ценные бумаги практически в равной степени. С другой — собственный (или несистематический) риск для каждой конкретной цепной бумаги, который можно избежать при помощи управления портфелем ценных бумаг.

В рамках данной работы будет использован метод формирования эффективных портфелей Марковица, предложенный Хуаном Литценбергером [31]. метод предполагает возможность открывать как длинные так и короткие позиции. Для всех предложенных акций будет рассчитана предполагаемая доля в составе эффективного портфеля, при этом данное случае при фактическом конструировании портфеля значение будет игнорировано) [36]

1.3 Экспонента Хёрста

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

Основным достоинством критерия Херста является его устойчивость к априорному распределению временного ряда. Э. Петерс выделяет три различных интервала для показателя Херста:

2.0 <= H < 0,5

3.0,5 < H <= 1

Рассматривается одномерный временной ряд x(n), где номер n некоторого элементарного события отвечает случайному моменту времени t(n), что параметрически определяет функцию действительного переменного x(t) на некотором дискретном множестве точек — теоретически счетном, но на практике конечном. В качестве ряда x(n) обычно берется ряд первых разностей изучаемого процесса x(n)=c(n+1)-c(n) или, как вариант, ряд логарифмических приростов x(n)=ln(c(n+1)/c(n)) [8]

Показатель Херста для ряда c(n) определяется следующим образом [5]. Вводится скользящее среднее приростов x(n) на шаге n по выборке длины k

(n, k)= (1)

и вычисляется накопленное отклонение от среднего для выборки длины k:

R(n, k)=. (2)

Вычисляется также скользящая дисперсия рассматриваемого временного ряда по выборке длины k :

,(3)

после чего вычисляется логарифм отношения размаха к шуму

ξ(n,k)= (4)

Фиксируется некоторая минимальная длина выборки k0 и максимальная длина N, которая отвечает временному горизонту анализа. Описанная процедура (1-4) делается для выборок длин k таких, что 1k0kN. Показатель Херста HN(n) по выборке длины N на шаге n определяется как коэффициент регрессии величины ξ(n,k) на логарифм длины выборки:

ξ(n,k) —N(n) ,

N(n)=,(5)

где ξ(k) представляет собой остаток регрессии. Угол наклона прямой регрессии и равен показателю Херста ряда . таким образом, полагая для краткости k0=2 (минимальная длина выборки), имеем по формулам регрессионного анализа

HN(n)= .(6)

поскольку длина выборки , то в формуле (6) можно использовать формулу Стирлинга для аппроксимации факториала, и в пренебрежении отличием N-1 от N получить более компактное выражение

HN(n)= (7)

В результате при фиксированной длине выборки N получаем набор показателей Херста на последовательности шагов с номерами n. Для маркированного же временного ряда можно ввести несколько аналогов показателя Херста, совпадающих в случае эквидистантного ряда, но имеющих различное вероятностное содержание в общем случае.

Во — первых, показатель Херста, зависящий от продолжительности τ времени накопления размаха, можно определить непосредственно по выборке, заключенной внутри соответствующего промежутка. Для этого зададим промежуток времени T, внутри которого вычисляется показатель Херста, и снабдим номер события n указанием на момент времени t, когда это событие произошло. Время T естественно измерять в единицах времени агрегирования данных, поскольку наблюдаемый процесс не является непрерывным в строгом смысле этого понятия. Предполагается, что единичный шаг по времени выбран таким, чтобы эмпирическая вероятность наличия в нем минимального числа событий была бы отлична от нуля. Пусть, например, единицей агрегирования по времени будет 1 минута. Тогда величина τ, как и в случае с длиной выборки, будет целочисленной величиной, изменяющейся от до T. Формально определения всех величин (1-4) остаются прежними, но в этих формулах следует положить n=n(t), а k=k(τ) есть число событий за промежуток τ, отсчитанный назад от момента t. Логарифм накопленного размаха в новых переменных обозначим ŋ(t,τ)=. После этого временной показатель Херста hT(t) определяется как коэффициент в регрессионном приближении

ŋ(t,τ) — T(t) =hT(t)*(T(t) = (8)

недостаток определения (8) состоит в том, что в разные моменты времени t в промежутках одинаковой длительности содержится различное число событий, иногда различающееся на порядки, а тогда коэффициенты hT(t), строго говоря, не сопоставимы.

Второй вариант анализа накопленного размаха как функции времени состоит в усреднении регрессии (5) по интенсивности событий. поскольку промежутки времен наступления k-ых событий случайны, естественно ввести вероятность того, что в промежутке времени τ произошло ровно k событий. Например, для стационарного пуассоновского потока событий с интенсивностью µ эта вероятность дается формулой

() = .(9)

Введем среднюю по распределению (9) величину накопленного размаха за время с учетом перенормировки на число событий, начинающееся с двух,

(t,)= ,(10)

и усредним регрессионное соотношение (5) по распределению (9). Тогда получаем

(t,)- T(t)=T(t)*(ɑ()-T)(11)

где

T(t)=, ɑ()=, T=. (12)

Величина T(t) является коэффициентом регрессии на модифицированное логарифмическое время , связанное со средневзвешенным логарифмом числа событий. Рассматривая вместо величины величину b()=exp(), получаем, что аналогом длины выборки в терминах времени является величина b(), т.е. рассматривается регрессияS на ln b. такой подход отвечает рассмотрению процесса во времени, которое течет с разной скоростью в зависимости от интенсивности потока событий. однако это может быть не очень удобно, если требуется анализировать динамику в реальном времени.

Третий вариант определения аналога показателя Херста состоит в пересчете показателя HN(n) использованием вероятности числа событий, произошедших за время T. В соответствии с (9) полагаем, что

T(t)= ,(13)

где Nmin, Nmax представляют диапазон, в котором заключено число событий за интересующее нас время T.

1.4 Дельта нейтральная стратегия

Хеджирование — это уменьшение чувствительности портфеля к движению цены базового актива путем занятия противоположных позиций в различных финансовых инструментах. Величина называется дельтой опциона и показывает на сколько изменится цена опциона при изменении цены базового актива. Эта величина имеет большое важное свойство дельты заключается в том, что она аддитивна, то есть трейдеру, управляющему портфелем опционов, не нужно хеджировать по отдельности каждый опционный контракт. Достаточно определить всего портфеля, которая будет равна n = n11 + n22 + …nmm , где nm,m — соответственно количество и дельта m-го опционного контракта, которую и следует использовать при хеджировании.

Дельта-хеджирование может использоваться в двух направлениях:

1.Маркет-мейкерами, которые обязаны поддерживать свои позиции в опционах, для защиты от рыночных рисков.

.крупными участниками, которые имеют низкие транзакционные Издержки, для увеличения прибыли.

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

В реальности цена опциона зависит от большого количества факторов. Здесь, как и ранее, делается упрощающее предположение, что она зависит только от следующих переменных факторов: времени до истечения контракта t, спотовой цены базового актива S, ставки без риска r и волатильности базового инструмента. То есть при тех же предпосылках, при которых выведена формула Блэка — Шоулза, для цены опциона колл на акцию можно записать: C = f (S, r, t, ). Для опциона на фьючерсный контракт величина S будет заменена спотовой ценой базового фьючерса F: C = f (F, r, t, ).

Основной фактор риска — это спот цена базового актива. При выводе формулы Блэка-Шоулза устанавливается, что владение опционом эквивалентно владению долей базового актива, когда величина этой доли динамически изменяется во времени, и некоторыми безрисковыми облигациями.

Для опциона колл при росте спотовой цены величина позиции в базовом активе увеличивается, при снижении цены — уменьшается. Можно показать[8,9], что для европейского опциона колл на фьючерсный контракт:

(d1) , где d1= .

Дельта для опциона колл всегда положительна и меньше единицы.

Аналогично для опциона пут на фьючерсный контракт можно показать:

(d1)-1)

дельта в данном случае всегда отрицательна и больше -1. Владение пут-опционом эквивалентно короткой позиции по базовому активу в размере D в сочетании с некоторыми облигациями [11]

Глава 2. Расчет портфеля ценных бумаг методом Марковица

В рамках темы магистерской диссертации произведен расчет оптимальной границы портфелей ценных бумаг методом Марковица на основе исторической волатильности, а так же с учетом подразумеваемый (implied) волатильности полученной из стоимостей производных финансовых инструментов. Был проведен ретроспективных анализ (на исторических данныхи формирование портфеля ценных бумаг с отслеживанием динамики и устойчивости портфелей к рыночным колебаниям.

При тестировании предполагается проводить фильтрацию инструментов (акций) с сильно негативным движением в пределах короткого временного промежутка. На графике ниже можно наблюдать изменение размера моделируемого депозита с применением подобной фильтрации и без.

Рис. 1. График построен на основании требуемой ежедневной доходности 0,22% длине периодов 200 торговых дней, фильтрации акций (игнорирование торговых сигналов) при изменении стоимости более чем на 3% в негативную сторону в день. Российский рынок

2.1 Выбор параметров модели

Для построения и практического применения портфелей, построенных по теории Марковица, необходимо определить ряд параметров:

.Длина исторических данных. используются для расчета коэффициентов корреляции и стандартного отклонения.

.Частота переформирования портфеля. Как часто необходимо переоценивать кривую эффективных портфелей и переформировать портфель.

.Требуемая доходность портфеля. Определяет выбор портфеля на кривой и соответствующий ему риск.

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

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

Рис. 2. гистограмма наблюдений логарифма изменения дневной цены закрытия акции компании Аэрофлот за период с 2010-02-08 по 2016-02-08

Для оценки минимально необходимой истории воспользуемся экспонентой Хёрста. Как видно на графике ниже, при расчете коэффиента последовательно для временных рядов, состоящих из значений логарифмической доходности от T до T+500 предыдущих значения.

Рис. 3. Показатель Хёрбста для часовых котировок акции Сбербанка в зависимости от длинны временного ряда

используется следующий алгоритм расчета коэффициента Хёрста:

.Строим временной ряд для акции, состоящий из N последних значений

.Вычисляем показатель Хёрста для данного отрезка временного ряда

.Прибавляем дополнительно историческое значение (N+1) к исследуемому временному ряду и повторяем шаги 1-3. До тех пор, пока общая длина временного ряда не составит 500 периодов. (На графике выше использовалась длина временного ряда равная 1000 периодам)

одной из особенностей экспоненты Хёрста является требование к минимальной длине временного ряда. Как видно на графике приобретают системный вид (небольшое стандартное отклонение относительно прошлых периодов), начиная со 140 значений.

Для построения эффективных портфелей ценных бумаг были выбраны цены в конце торговых дней 30 акций немецких компаний торгуемых на Франкфуртской фондовой бирже с 01.02.2010 по 05.02.2015, то есть для каждой компании было выбрано 1277 результатов торгов. Источником данных являлся портал Yahoo Finance. Список компаний представлен в таблице ниже. компании, акции которых использованы в работе, входят в разные сферы услуг и производства. Целью использования широкого круга отраслей является диверсификация активов, попытка уйти от системного риска одной отрасли и расширение множества доступных параметров доходности/дисперсии, которые будут использованы при построении портфелей Марковица.

Таблица 1. Акции компаний для построения портфеля ценных бумаг по теории Марковица

название компанииДоходностьНазвание компанииДоходностьAdidas72%HeidelbergCement242%Allianz85%Henkel142%BASF96%Infineon Technologies185%Bayer161%K+S-33%Beiersdorf83%Lanxess116%BMW244%Linde96%Commerzbank-63%Lufthansa173%Continental147%Merck-29%Daimler94%Munich Re66%Deutsche Bank-31%RWE-64%Deutsche Börse44%SAP-62%Deutsche Post22%Siemens79%Deutsche Telekom132%ThyssenKrupp47%E.ON73%Volkswagen0%Fresenius Medical Care-51%

Доходность акций в таблице выше рассчитана за весь рассматриваемый период (5 лет), значения меньше 0 говорят о снижении цены рассматриваемой акции, больше нуля наоборот. Программный код расчета доходности представлен в Приложении.

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

В соответствии с теорией Марковица был рассчитан риск портфелей в соответствии с заданной (требуемой) доходностью, которая изменялась от 1 до 20% с шагом в один процент.

Исторические данные были разделены на 19 пересекающихся временных отрезков методом скользящего окна с шагом 20 дней. Кривые изменения риска для каждого портфеля представлена на графике ниже.

График 1. Изменение риска во времени для фиксированного портфеля ценных бумаг

По оси Oy на графике представлен риск, Oz — доходность, Ох — «Ряд 1 -10» — наборы портфелей ценных бумаг в зависимости от временного промежутка (применяется метод скользящего окна для составление временных рядов из исходного временного ряда).

Из графика видно, что риск возрастает с разной скоростью для каждого временного промежутка (ряда), но в целом с небольшим стандартным отклонением. Так как был выбран значительный временной промежуток для анализа (около 5ти лет) и поверхность возрастания риска не содержит значительных изменений, можно сделать вывод об отностительной стабильности рынка и сохранения структурных зависимостей и поведения курсов внутри данного временного промежутка.

На следующем графике представлена поверхность риска для российских ценных бумаг. За основу были взяты дневные динамики 15ти наиболее ликвидных российских корпораций. Так же как и для предыдущего графика, «Ряд 1-23» представляют собой кривые риска, рассчитанные для заданной доходности в разные промежутки времени.

Рис. 4. Кривые риска во времени для 15ти корпораций российского рынка ценных бумаг

На графике видно как существенно изменяется риск в зависимости от временного периода, достигая своего максимума в 125% годовых при доходности 20% годовых и минимума 33% риска при доходности 20%. Как и на предыдущей фигуре обозначения «Ряд 1-23» означают временные ряды полученные методом скользящего окна из исходного.

2.2.1 Вычисление структуры оптимальных портфелей с доходностью 0.5% в день

Так как на данном этапе работы используются дневные цены акций, то в соответствии с методом конструирования портфеля, применяется дневная доходностью. структура портфелей с требуемой дневной доходностью в 0,5% ежедневно рассмотрена в таблице ниже.

Кривая эффективных портфелей рассмотрена ниже

Рис. 5. Граница эффективности для портфелей ценных бумаг построенных по теории Марковица. Величина доходности от 0.01% до 1% ежедневно

Проведем расчет отношения доходность/риск для каждого из построенного портфеля на кривой выше. На графике видно существенное возрастание коэффициента до максимума 2162% при доходности 0,22% ежедневно, что соответствует риску 0,01% и плавное снижение в последующем. Следовательно, в исторической перспективе, портфели с требуемой доходностью 0,22% в день обеспечили бы наибольшую ожидаемую доходность (что не говорит о том, что данное значение требуемой доходности будет оптимальным в дальнейшем).

Рис. 6. Отношение доходности к риску для точек на графике портфеля Марковица

Выполним историческое тестирование с использованием предложенного метода вычисления требуемой доходности. Для этого разделим исходный временной ряд на отрезки по 200 торговых дней в каждом методом скользящего окна с шагом 1 день. В практическом плане это означает, что портфель будет перестраиваться на ежедневной основе, так же на ежедневной основе будет пересматриваться требуемая доходность. Программный код представлен в приложении №3.

рассмотрим динамику исторического портфеля с учетом фильтрации негативных (более 3%) доходностей в день, а так же с учетом предложенного алгоритма выбора требуемой доходности. Предположим начальную стоимость портфеля ценных бумаг равной 10 000 руб.

Рис. 7. сравнение динамики с различными параметрами расчета

Как видно, основной вклад даёт фильтрация негативных значений, происходит игнорирование торговых сигналов по таким бумагам. Тем не менее, в обоих случаях динамическое определение уровня доходности показало положительный результат. Соответственно лучший результат принадлежит системе с фильтрованием негативных значений, а так же с динамическим определением требованием доходности.

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

Рис. 8. сравнение динамики стоимости портфелей ценных бумаг на российском рынке с различными параметрами

Как видно из графика выше, разрешение только негативных позиций при сильных отрицательных движениях цены акции увеличивает итоговую стоимость портфеля. Так же и разрешение длинных позиций при сильных положительных движениях стоимости ценных бумаг увеличивает итоговую стоимость портфеля ценных бумаг. Различия в итоговой стоимости между наиболее и наименее дорогими портфелями составляет 14297-6930 = 7367 руб.

Таблица 3. Риск и структура портфеля для 0,5% дневной доходности

22.04.1508.04.1525.03.1511.03.1524.02.1509.02.1526.01.1512.01.1523.12.1409.12.1425.11.1411.11.1427.10.1413.10.1429.09.14 08.02.1625.01.1611.01.1622.12.1508.12.1524.11.1510.11.1526.10.1512.10.1529.09.1514.09.1531.08.1517.08.1503.08.1520.07.15Риск0.03%0.03% 0.029%0.036%0.042%0.051%0.058%0.087%0.075%0.1%0.093%0.1%0.088%0.08%0.078%AFKS0,005-0,0370,14-0,202-0,1530,031-0,263-0,483-0,508-0,376-0,217-0,2-0,205-0,154-0,145AFLT-0,196-0,218-0,219-0,297-0,317-0,313-0,214-0,364-0,0750,2050,5250,4530,2170,3180,432DIXY1,0040,910,8540,7290,6970,6180,7150,7420,6720,7520,6920,4820,4010,2580,318GAZP0,5240,3790,1090,4430,3010,3560,7810,690,4520,330,5040,3150,4120,3620,267GMKN0,1890,1650,3050,1390,2920,350,3610,293-0,0370,2650,0810,1690,1580,0880,142HYDR-0,075-0,054-0,102-0,137-0,0440,0590,085-0,0450,2210,0320,520,5920,6940,5590,535LKOH0,0480,160,3470,2480,3410,3670,3180,4020,1950,12-0,135-0,227-0,342-0,304-0,149MTLR-0,11-0,09-0,0670,129-0,034-0,063-0,086-0,196-0,149-0,212-0,207-0,194-0,141-0,13-0,16PIKK0,0710,0490,019-0,02-0,020,066-0,0180,0490,1050,0360,019-0,1470,084-0,122-0,141RSTI0,2230,2860,1630,40,5220,1840,0910,4570,5930,158-0,121-0,044-0,061-0,115-0,09SBER-0,279-0,492-0,211-0,546-0,508-0,478-0,627-0,507-0,2460,3940,3620,3620,1120,1740,07SBERP-0,276-0,017-0,2040,002-0,141-0,51-0,358-0,587-0,911-0,707-0,698-0,505-0,091-0,094-0,046SIBN0,1840,2420,1560,4090,3320,3740,3890,3690,4370,4090,5970,7680,806-0,0120,733TRNFP-0,275-0,303-0,342-0,145-0,113-0,177-0,225-0,187-0,105-0,287-0,343-0,256-0,3-0,19-0,153VTBR-0,0360,020,052-0,152-0,1550,1350,0490,3660,355-0,12-0,58-0,569-0,743-0,69-0,613

2.2.2 Вычисление структуры эффективных портфелей с требуемой доходностью 10% в день

рассмотрим структуру портфелей построенных с использованием акций российских эмитентов более подробно. Ниже представлена структура портфеля построенного для временного ряда с 2015.04.22 по 2016.02.08 Портфель строится таким образом, что бы достичь доходности 10%. В соответствии со стратегией инвестирования, разрешены как длинные, так и короткие позиции без покрытия (показаны с отрицательным знаком в таблице ниже). В данном методе подразумевается заём бумаг у брокера для непокрытой продажи, и реинвестирование полученных средств в покупку ценных бумаг. При этом используем допущение о беспроцентном займе бумаг (в реальной торговле величина дохода будет уменьшена на стоимость займа). кроме того, не ограничена сумма займа, это позволяет конструировать портфели с большим риском вызванным левереджем. Для проверки правильности результатов расчета сложим доли всех бумаг в портфеле, их сумма равна 1, следовательно, при инвестировании суммы N мы распределим все средства без остатка.

При позиции представленной ниже, риск равен 11,75%

Таблица 4. Состав портфеля (российский рынок) для временного промежутка 2015.04.22 по 2016.02.08, риск 11,75% доходность 10%

АкцияВес в портфелеАкцияВес в портфелеAFKS-1,871PIKK0,677AFLT-5,455RSTI3,371DIXY17,47SBER-3,499GAZP13,54SBERP-6,782GMKN2,173SIBN-7,162HYDR-1,274TRNFP-6,803LKOH1,388VTBR-2,986MTLR-1,788

Построим эффективную границу портфелей с разным значением риска для данного временного интервала.

Рис. 9. Граница эффективных портфелей для российского рынка акций, для временного промежутка 2015.04.22 по 2016.02.08

Построим эффективный портфель с доходностью 10% для временного периода с 2015.04.08 по 2016.01.25 и добавим полученные значения в сравнительную таблицу.

Таблица 5. Сравнительная таблица эффективных портфелей для различных временных периодов для российского рынка акций

22.04.1508.04.1525.03.1511.03.1524.02.1509.02.1526.01.1512.01.1523.12.1409.12.1425.11.1411.11.1427.10.1413.10.1429.09.1408.02.1625.01.1611.01.1622.12.1508.12.1524.11.1510.11.1526.10.1512.10.1529.09.1514.09.1531.08.1517.08.1503.08.1520.07.15Риск11,75%12,85%11,29%14,37%18,49%19,34%19,35%29,40%25,84%27,39%34,72%28,49%28,11%24,92%22,52%AFKS-1,871-2,611,514-5,63-4,162-0,778-6,22811-10,13968-10,30869-7,829571-4,242548-3,70139-3,539319-2,5497192-2,32719AFLT-5,455-6,358-5,998-7,585-8,057-7,82-5,44510-8,222141-2,9501432,3136218,41992146,3735632,33680634,286972626,4519147DIXY17,4716,53114,36111,62212,41610,17611,4724811,7617410,0860313,86095911,8764927,5088245,62473343,232088914,4174186GAZP13,5410,5263,89310,6457,8319,1916,1814113,967019,3210876,6091599,1532744,9884436,05058025,013472772,9090671GMKN2,1732,0255,1741,8775,4145,9116,0348704,642204-1,7560534,6751330,69367212,2231262,20979540,946318891,9374355HYDR-1,274-0,73-1,867-2,49-0,2612,0682,243024-0,531794,36481720,52105379,761470910,6151112,0283469,805971369,3954201LKOH1,3883,9247,9185,6447,9777,1794,9386066,7143902,55017691,9931196-2,880729-4,33943-6,533213-5,8434318-2,695252MTLR-1,788-1,343-0,7923,23-0,26-1,458-1,71789-3,619338-2,597097-4,223842-3,838619-3,41721-2,403068-2,2576551-2,847386PIKK0,6770,448-0,055-0,752-1,2240,136-1,56470-0,730890,3628578-1,529279-2,090098-5,22611-0,841404-4,8185243-5,712404RSTI3,3714,9192,4767,57810,5113,9581,8522478,88118211,6463984,0891502-1,4424250,1178-0,364062-1,5248949-1,024253SBER-3,499-8,916-2,8-9,766-9,373-10,234-12,6356-9,966376-4,4714136,32309275,49592585,072040,88314662,121719240,0768462SBERP-6,782-1,526-5,772-1,599-5,439-11,012-7,04891-10,96449-16,73163-12,89271-12,04881-7,59022-0,515251-0,75607360,1623668SIBN-7,162-6,185-7,536-2,037-3,5410,9481,7661231,4468512,37125250,98126984,62694687,956098,483081312,96533417,5283812TRNFP-6,803-7,729-8,361-4,281-4,457-6,586-6,93610-5,944355-3,82507-7,56833-7,826925-5,88917-6,347034-4,4922404-3,773571VTBR-2,986-1,973-1,155-5,454-6,373-0,679-1,911973,7056712,9374818-6,322829-14,65755-13,6914-16,07314-15,129339-13,49879

Рис. 10. Риск и Доход (на основе таблицы №5) на трехмерной диаграмме

На графике ниже можно наблюдать структуру портфеля и его риск в динамике. основной (широким штрихом) выделена линия отображающая риск всего портфеля во времени. Как видно, происходит значительное снижение риска, сочлененное с высоким разбросом.

График 7. доли бумаг в совокупном эффективном портфеле и риск портфеля

Как можно наблюдать на графике выше, риск портфелей изменяется в пределах от 12 до 35% (на графике отмечено широкой линией). При этом тренд изменения своей доли в структуре портфеля сильно коррелирует с графиком риска всего портфеля. Одними из таких бумаг являются акции компаний «Роснефть» и «Русгидро» (так же выделены жирной линией на графике). Так, позиция по бумаге «Роснефть» изменилась с более чем 7 полных размеров изначального депозита до -7 (непокрытая продажа)

2.3анализ стабильности структуры портфеля ценных бумаг

модель портфель ценные бумаги

рассмотрим динамику структуры портфеля ценных бумаг, рассчитанного для 20 акций российских компаний на основании дневных цен закрытия с 2010.02.08 по 2011.02.08 Результаты представлены на графике ниже. Для наглядности с графика были удалены кривые акций, не составляющих значимую часть портфеля.

Рис. 11. Динамика структуры портфеля ценных бумаг для 20ти акций российского фондового рынка

Рассчитаем стандартное отклонение, среднее параметры.

Таблица 2. Параметры динамики весов акций в эффективном портфеле

Стнд отклСреднее значениеМедианаМаксимумМинимумДоходность акцииAFKS0,1173580,3160,2860,637260,163606-0,01591AFLT0,1198530,0270,0719580,186884-0,125910,525266CHMF0,082607-0,11518-0,118380,033886-0,30454-0,09409DIXY0,048801-0,0426-0,052130,073595-0,11116-0,32659GAZP0,0931070,1345390,1375170,302952-0,02693-0,10583GMKN0,1661930,0111370,0571550,177221-0,36458-0,21864HYDR0,1067660,861220,8748211,1288720,714240,264985LKOH0,1570750,0340030,0529650,21358-0,34732-0,17689MGNT0,1042620,0488750,0390750,273301-0,10951-0,08118MTLR0,147638-0,22459-0,269440,069428-0,415730,476279MVID0,142213-0,06649-0,107320,131009-0,270050,623479PIKK0,133140,227320,2083810,4855060,0141340,027586RSTI0,17738-0,04909-0,10340,312474-0,293660,033876SBER0,117505-0,1175-0,125450,089101-0,303360,444258SBERP0,0746070,1448590,164860,254306-0,009950,514474SIBN0,184597-0,1068-0,127530,195532-0,38766-0,11446SNGS0,1667280,0909740,082240,394277-0,23933-0,00315TRNFP0,0501980,0540850,0484130,145805-0,036060,330935URKA0,0389070,0029920,0140070,048528-0,08874-0,04823VTBR0,068181-0,18314-0,1915-0,07689-0,362570,025735

Как видно из таблицы выше стандартное отклонение долей ценных бумаг в портфеле не велико, что говорит об отсутствии необходимости к частому переформированию портфеля. С другой стороны, для некоторых акций стандартное отклонение достигает 15% и более, следовательно, возможно рассмотреть сценарий при частичном переформировании портфеля с поиском новых весов только для неустойчивых бумаг. В таком случае будет решать задача нахождения долей в портфеле, сумма которого будет составлять 1-(сумма долей устойчивых бумаг).

Глава 3. Построение риск нейтрального портфеля

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

Основная идея построения «риск нейтрального» портфеля, рассмотренная в данной работе состоит в хеджирование позиций на основе взаимной корреляции инструментов и агрегации функций payoff по инструментам (дельта хеджирование, гамма скальпинг). Другими словами, предлагается построить такой портфель взаимно коррелированных ценных бумаг, при котором суммарная стоимость портфеля ценных бумаг будет стабильной. При этом, если используются инструменты с положительной корреляцией, то происходит покупка одного инструмента и продажа другого.

Классический «риск нейтральный» портфель предполагает покупку опциона call/put и продажу/покупку базового актива в количестве, равном дельте опциона умноженное на количество опционов. В данном случае возможно обойтись без подбора скоррелированных инструментов так как опцион и его базовый актив идеально (близко к идеальному) скоррелированы.

В рамках доступных инструментов площадки ММВБ предполагается использовать следующие инструменты:

.Преимущество отдается обыкновенным и привилегированным акции компаний первого эшелона (рассматриваются как однотипные бумаги)

.Фьючерсы на акции, валюты и товары. (используются для дополнительного анализа)

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

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

В данном подходе предполагается построить корреляционные матрицы для акций, входящих в первый эшелон российского фондового рынка для различных временных периодов. Для моделирования предполагается выбирать ограниченное количество торговых периодов для анализа, затем смещать данное окно с определенным шагом. На основании полученных матриц возможно будет отследить изменение степени корреляции (стандартного отклонения корреляции) между многими инструментами на протяжении длительного срока. Данный анализ позволит определить инструменты с наиболее устойчивой зависимостью. Итоговым результатом данного анализа представляется матрица с усредненными/взвешенными результатами корреляции за определенный промежуток времени, либо матрица содержащая коэффициенты корреляции только для наиболее стабильных (с наименьшим коэффициентом стандартного отклонения бумагами) инструментов.

3.1 Выбор данных для анализа

Для проведения данного анализа были выбраны наиболее ликвидные фьючерсы и акции ММВБ. Выбор именно фьючерсов как инструментов для включения в портфель связан со сложностями моделирования корректной биржевой позиции, так как необходимо оперировать полными лотами, торгующимися на бирже. При этом минимальный размер лота и количество ценных бумаг, составляющих его рассчитывается и публикуется биржей для каждого инструмента отдельно. В том случае если мы используем фьючерсы возможно использовать только 1 бумагу для симуляции, таким образом мы повышаем практическую значимость вычислений. Шаг фиксирования цены — 1 час, это позволит учесть внутридневные движения цен и чаще проводить изменение структуры портфеля. Среди различных цен (открытие, наименьшая, наибольшая, цены закрытия) общепринято использовать цену закрытия периода как основную. использование цены закрытия обусловлено тем, что расчет торговых итогов строится основываясь на заключительных ценных периода. Данные были получены из открытых источников [33]

Таблица 6. Акции компаний, используемые в исследовании

Название компанийТикер компанииАФК Система OAOAFKSАэрофлот российские авиалинииAFLTАлросаALRSАптечная сеть 36,6APTKБанк АвангардAVANБашнефтьBANEБурЗолото ОАОBRZLЧМК ПАОCHMKПАО Центральный ТелеграфCNTLДИКСИ АОDIXYОАО Э.ОНРоссиEONRГАЗПРОМ АОGAZPПАО ГМКНорНикGMKNПАО НК ЛУКОЙЛLKOHПАО МегаФонMFONПАО МагнитMGNTБанкМосквыMMBMМечел ОАО апMTLRPМТС ПАО аоMTSSМ.видео ПАОMVIDПИК ПАО аоPIKKПолюсЗолот ПАОPLZLРБК ПАО аоRBCMРосбанк ПАО аоROSBОАО НК РоснефтьROSNРОСИНТЕР ПАО аоROSTРоссети ПАО аоRSTIГазпРнД ПАО аоRTGZРостелеком ПАО аоRTKMСбербанк ПАОSBERГазпром нефть ПАОSIBNСургутнефтегаз ОАОSNGSПАО Татнефть АОTATNОАО АК ТранснефтьTRNFPБанк УралСиб ПАОUSBNПАО .2 Подготовка данных

Исходные данные нуждаются в предварительной обработке. Основной проблемой представляется различная глубина данных, вследствие того что компании в разные года проходили листинг, а так же пропуски в данных, возникшие как по техническим причинам, так и вследствие например остановки торгов по инструменту из-за высокой волатильности.

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

В качестве примера для сравнения используется значения индекса MICEX, рассчитанного за тот же период.

Для построения портфелей по теории Марковица для российского рынка, были так же загружены акции российских компаний с периодом в один день.

3.3 Моделирование дельта нейтральной стратегии

Для формирования графика ниже была проведена симуляция движений рынка с моделированием исполнения стратегии дельта хэджирования.

Для моделирования использовался следующий алгоритм:

.Для каждого фьючерсного инструмента, в каждый из дней рассчитывается историческая корреляция с имеющимися курсами акций.

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

.Для выбранного фьючерсного контракта выбираются такие акции сумма коэффициентов, которых стремится к единице

.В зависимости от цены фьючерса рассчитывается доля денежных средств, приходящаяся на каждую из бумаг (акций) в соответствии с коэффициентом корреляции.

.Для выделенной суммы средств и стоимости бумаги для каждой из бумаг рассчитывается необходимое количество полных бумаг (округление в большую сторону) для покупки/продажи.

.Производится сравнение стоимости фьючерсного инструмента и суммы стоимостей акций.

.производится короткая (не покрытая) продажа более дорогой позиции (инструмента) и контр покупка менее дорогого.

.Переоценка позиции и фиксирование разницы происходит по ценам закрытия дня

Рис. 12. Динамика индекса MICEX и дельта нейтральной стратегии построенной на акциях российских компаний2010-02-08-2010-05-20

При этом используются следующие допущения:

.При невозможности построить контр портфолио (чаще всего по техническим причинам) позиция пролонгируется до момента, когда образуется необходимое портфолио.

.Не учитывается комиссия за операции

.Не учитывается минимальный объем лота

.Допускается использование неполных лотов

Реализация алгоритма на языке Python 3.5 представлена в Приложении 2

.4 Построение корреляционной матрицы

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

Таблица 7. Корреляционная матрица. По горизонтальной оси — тикеры фьючерсов, по вертикальной — тикеры акций компаний

SPFB. CHMFSPFB. GAZRSPFB. GMKRSPFB. GOLDSPFB. LKOHSPFB. MGNTSPFB. MTSISPFB. PLDSPFB. ROSNSPFB. SBRFSPFB. TATNSPFB. TRNFSPFB. URKASPFB. VTBRSPFB. YNDX AFKS -0,65 0,11 -0,49 0,10 -0,41 -0,12 0,70 0,54 0,03 0,39 -0,48 -0,42 -0,01 -0,23 0,60 AFLT -0,41 0,47 -0,32 -0,02 -0,44 -0,04 0,48 0,41 0,06 0,61 -0,35 -0,45 0,12 0,43 0,47 ALRS 0,81 -0,11 0,93 -0,74 0,92 0,40 -0,30 -0,26 0,45 -0,59 0,86 0,85 -0,54 0,52 0,20 APTK -0,08 0,67 -0,31 0,05 -0,58 0,10 -0,20 0,22 -0,21 0,23 -0,58 -0,67 0,77 0,72 -0,10 AVAN 0,19 0,24 -0,02 0,17 -0,12 -0,07 -0,11 0,29 -0,11 0,04 0,06 -0,01 0,08 0,10 nan BANE -0,15 -0,27 -0,07 -0,16 0,08 0,32 0,44 0,28 0,36 0,35 0,08 0,10 -0,08 -0,08 -0,04 BRZL 0,80 0,27 0,54 -0,21 0,38 0,32 -0,54 -0,57 0,28 -0,06 0,65 0,57 0,07 0,88 -0,44 CHMK 0,46 0,65 -0,14 -0,10 -0,41 0,44 -0,47 -0,17 -0,17 0,24 0,13 -0,47 0,45 0,89 -0,41 CNTL 0,16 0,81 0,07 0,25 -0,31 0,49 -0,45 0,06 0,09 0,48 -0,41 -0,44 0,70 0,76 -0,25 DIXY -0,19 -0,12 0,07 -0,05 0,35 -0,16 0,56 0,65 0,40 0,29 0,06 0,13 -0,26 -0,22 -0,21 EONR 0,57 -0,01 0,47 -0,16 0,53 0,35 -0,08 -0,14 0,41 0,25 0,69 0,49 -0,17 0,25 0,03 GAZP 0,20 1,00 -0,04 0,35 -0,35 0,43 -0,18 -0,04 -0,03 0,32 -0,30 -0,51 0,53 0,71 0,88 GMKN 0,87 -0,01 1,00 -0,45 0,82 0,50 -0,38 -0,31 0,46 -0,41 0,84 0,73 -0,42 0,23 0,04 LKOH 0,71 -0,31 0,82 -0,46 1,00 0,41 -0,08 -0,17 0,62 -0,26 0,91 0,87 -0,55 -0,11 0,79 MFON -0,58 0,04 -0,48 -0,03 -0,29 -0,30 0,78 0,36 -0,05 0,26 -0,46 -0,43 -0,20 -0,64 0,76 MGNT0,48 -0,57 0,69 -0,62 0,87 0,99 0,11 -0,12 0,53 -0,30 0,85 0,91 -0,82 -0,38 0,74 MMBM-0,31 0,43 -0,11 -0,09 -0,30 -0,43 0,08 0,40 -0,05 0,03 -0,32 -0,49 -0,01 0,42 -0,28 MTLR-0,04 0,83 -0,26 0,73 -0,56 0,47 -0,33 0,00 -0,38 0,25 -0,54 -0,62 0,79 0,55 -0,12 MTLRP-0,02 0,79 -0,25 0,16 -0,57 0,38 -0,23 0,19 -0,21 0,28 -0,53 -0,69 0,76 0,80 0,08 MTSS-0,51 -0,20 -0,27 -0,24 0,04 -0,04 0,99 0,55 0,34 0,37 -0,10 -0,05 -0,36 -0,37 0,86 MVID-0,46 0,12 -0,31 0,33 -0,14 0,17 0,52 0,21 0,21 0,82 -0,32 -0,07 0,30 -0,09 0,58 PIKK0,90 0,03 0,83 -0,64 0,63 0,44 -0,46 -0,41 0,35 -0,39 0,87 0,61 -0,42 0,44 -0,13 PLZL0,73 0,30 0,45 -0,18 0,17 0,37 -0,53 -0,49 0,16 0,12 0,53 0,30 0,18 0,69 0,14 RBCM-0,06 0,84 -0,15 0,51 -0,47 0,37 -0,26 0,11 -0,10 0,40 -0,57 -0,63 0,80 0,70 -0,29 ROSB-0,10 0,64 -0,44 0,26 -0,70 -0,22 -0,33 0,21 -0,35 0,25 -0,59 -0,81 0,89 0,71 -0,39 ROSN0,34 0,01 0,41 -0,31 0,57 0,40 0,38 0,19 0,99 0,27 0,60 0,48 -0,39 -0,02 0,78 ROST0,04 0,68 -0,12 -0,09 -0,43 0,41 -0,21 0,24 -0,09 0,28 -0,50 -0,57 0,68 0,83 0,13 RSTI-0,17 0,76 -0,38 0,28 -0,65 -0,13 -0,22 0,21 -0,29 0,34 -0,65 -0,76 0,83 0,75 -0,27 RTGZ-0,42 -0,19 -0,44 0,60 -0,45 0,36 0,20 0,54 -0,18 0,34 -0,43 -0,46 0,50 -0,29 -0,66 RTKM-0,21 0,80 -0,35 0,60 -0,61 -0,28 -0,10 0,23 -0,21 0,47 -0,66 -0,69 0,73 0,52 0,54 SBER-0,37 0,30 -0,42 0,32 -0,29 0,13 0,39 0,31 0,22 1,00 -0,31 -0,26 0,41 0,18 0,52 SIBN0,43 0,03 0,34 -0,09 0,48 0,13 0,05 -0,27 0,45 -0,04 0,44 0,41 -0,20 -0,19 0,78 SNGS0,81 0,10 0,66 -0,41 0,66 0,58 -0,18 -0,32 0,52 0,04 0,85 0,58 -0,24 0,43 0,88 TATN0,76 -0,42 0,78 -0,46 0,92 0,58 -0,15 -0,30 0,60 -0,21 1,00 0,95 -0,54 -0,20 0,68 TRNFP0,71 -0,50 0,74 -0,53 0,87 0,36 -0,19 -0,36 0,53 -0,24 0,93 1,00 -0,60 -0,21 0,76 USBN0,01 0,32 -0,36 0,45 -0,35 0,03 -0,31 -0,33 -0,09 0,66 -0,11 -0,09 0,64 0,31 -0,20 VTBR0,73 0,73 0,22 -0,03 -0,13 0,41 -0,60 -0,32 -0,03 0,19 0,33 -0,24 0,35 1,00 -0,23 VZRZ0,21 0,69 -0,14 -0,00 -0,50 0,29 -0,44 0,04 -0,16 0,25 -0,30 -0,59 0,71 0,84 0,06 VZRZP0,11 0,75 -0,29 0,03 -0,58 0,39 -0,39 -0,08 -0,23 0,25 -0,28 -0,63 0,58 0,81 -0,14 YNDX-0,62 0,02 -0,52 0,41 -0,30 -0,31 0,34 -0,05 -0,16 0,15 -0,51 -0,45 -0,52 -0,59 0,48

3.5 Проведение ретроспективного анализа

В целях испытания рассмотренных в работе предложений возможно уменьшение объема данных путем смещение крайней правой (наиболее близкая к настоящему времени) границы временного ряда подверженного анализу глубже в историю, освобождая новейшие данные для проведения тестирования моделей. крайней датой для загруженных данных является 5 февраля 2016 года, начальная точка 08 февраля 2010 года. Разделим временной ряд на анализируемую и тестовую выборку 08 февраля 2010 — 6 февраля 2015 и 9 февраля 2015 — 05 февраля 2016 соответственно (разница в датах между периодами обусловлена выходными днями 7,8 февраля 2015 года). Дополнительная тестовая выборка необходима для тестирования полученной на тренировочной выборке стратегии для того, что бы избежать подгонки параметров.

Построим корреляционную матрицу для анализируемого периода, исключив из временного ряда данные после 08 февраля 2015

Так же, построим матрицу стандартного отклонения корреляции рассчитанной за даты с 08.02.2010 по 06.02.2015 с периодом для расчета корреляции равным 60 торговым дням и шагом (смещением) 1 торговый день.

Таблица 8. Корреляционная матрица. Горизонтальная ось — фьючерсы, вертикальная — опционы. Для периода 08.02.2010 — 06.02.2015

SPFB. CHMFSPFB. GAZRSPFB. GMKRSPFB. GOLDSPFB. LKOHSPFB. MGNTSPFB. MTSISPFB. PLDSPFB. ROSNSPFB. SBRFSPFB. TATNSPFB. TRNFSPFB. URKASPFB. VTBRSPFB. YNDX AFKS -0,53-0,01-0,20-0,20-0,05-0,550,710,420,360,34-0,09-0,05-0,22-0,170,60 AFLT -0,260,46-0,01-0,26-0,24-0,230,540,630,280,52-0,21-0,38-0,010,560,47 ALRS 0,47-0,160,85-0,630,820,27-0,110,640,17-0,590,710,85-0,65-0,060,20 APTK 0,480,65-0,06-0,16-0,570,35-0,37-0,04-0,070,16-0,60-0,770,760,85-0,10 AVAN 0,200,51-0,160,48-0,140,90-0,13-0,43-0,450,120,08-0,270,070,56nan BANE -0,63-0,28-0,33-0,07-0,07-0,200,610,620,350,46-0,13-0,15-0,01-0,34-0,04 BRZL 0,440,77-0,130,78-0,350,09-0,56-0,22-0,200,14-0,34-0,480,610,86-0,44 CHMK 0,420,68-0,09-0,17-0,54-0,10-0,370,07-0,130,22-0,59-0,780,730,93-0,41 CNTL 0,670,810,490,14-0,170,03-0,490,040,210,45-0,62-0,540,700,81-0,25 DIXY -0,22-0,190,13-0,140,550,110,520,600,500,500,490,51-0,31-0,20-0,21 EONR -0,010,170,090,200,200,060,260,300,190,510,250,050,120,180,03 GAZP 0,651,000,240,26-0,320,69-0,31-0,220,080,32-0,38-0,570,540,810,88 GMKN 0,660,261,00-0,130,550,45-0,310,260,20-0,310,530,37-0,340,170,04 LKOH 0,24-0,280,57-0,191,000,360,180,530,48-0,030,890,87-0,57-0,390,79 MFON -0,280,18-0,17-0,630,030,030,740,230,110,170,010,14-0,38-0,410,76MGNT-0,18-0,590,39-0,440,810,990,460,580,37-0,180,800,93-0,88-0,680,74MMBM0,030,370,22-0,34-0,07-0,31-0,090,180,120,040,08-0,32-0,190,49-0,28MTLR0,490,780,03-0,02-0,55-0,28-0,37-0,04-0,070,23-0,61-0,800,760,940,08MTLRP0,450,84-0,030,72-0,600,17-0,47-0,33-0,300,21-0,67-0,780,790,90-0,12MTSS-0,58-0,30-0,17-0,470,32-0,050,990,530,540,430,380,34-0,49-0,340,86MVID-0,440,10-0,200,310,120,140,610,270,360,80-0,170,080,23-0,080,58PIKK0,710,360,64-0,470,140,53-0,400,15-0,03-0,430,49-0,04-0,340,50-0,13PLZL0,490,760,080,27-0,490,28-0,50-0,07-0,180,23-0,60-0,730,730,890,14RBCM0,490,840,180,41-0,420,25-0,43-0,220,050,39-0,63-0,750,790,93-0,29ROSB0,390,61-0,220,11-0,68-0,52-0,52-0,26-0,240,22-0,62-0,890,900,83-0,39ROSN-0,160,100,18-0,150,430,210,680,570,990,440,450,32-0,34-0,100,78ROST0,480,660,11-0,24-0,390,23-0,310,110,030,27-0,52-0,650,650,910,13RSTI0,450,76-0,070,08-0,59-0,09-0,44-0,15-0,130,29-0,64-0,830,830,94-0,27RTGZ-0,08-0,05-0,270,52-0,320,410,040,500,080,38-0,22-0,450,470,14-0,66RTKM0,480,830,070,46-0,430,15-0,32-0,130,020,42-0,58-0,610,720,720,54SBER-0,340,31-0,310,26-0,07-0,090,510,460,411,00-0,25-0,180,380,240,52SIBN0,350,080,180,050,410,740,12-0,220,360,060,480,38-0,18-0,250,78SNGS0,330,470,16-0,040,140,490,190,140,260,460,33-0,140,070,520,88TATN0,10-0,440,40-0,090,880,460,320,400,45-0,041,000,91-0,63-0,650,68TRNFP0,00-0,570,38-0,230,880,470,250,510,35-0,180,861,00-0,79-0,680,76USBN0,000,62-0,600,89-0,58-0,51-0,21-0,51-0,240,52-0,64-0,770,850,67-0,20VTBR0,710,810,170,07-0,400,22-0,56-0,10-0,120,25-0,44-0,690,691,00-0,23VZRZ0,530,690,09-0,14-0,51-0,47-0,430,06-0,060,18-0,56-0,770,760,920,06VZRZP0,430,76-0,03-0,18-0,61-0,04-0,40-0,20-0,050,22-0,72-0,830,720,90-0,14YNDX-0,010,460,00-0,27-0,010,570,290,010,430,380,09-0,010,17-0,170,48

Таблица 9. стандартное распределение корреляции за 60дневный период, с шагом в 1 день. С 08.02.2010 по 06.02.2015

SPFB. CHMFSPFB. GAZRSPFB. GMKRSPFB. GOLDSPFB. LKOHSPFB. MGNTSPFB. MTSISPFB. PLDSPFB. ROSNSPFB. SBRFSPFB. TATNSPFB. TRNFSPFB. URKASPFB. VTBRSPFB. YNDX AFKS 0,490,440,490,530,400,380,310,510,450,400,440,520,420,470,49 AFLT 0,510,470,410,570,450,590,420,460,470,420,400,480,390,370,51 ALRS 0,530,480,450,560,450,430,420,440,460,490,430,550,360,500,52 APTK 0,450,460,500,590,450,240,500,510,470,440,400,490,420,450,56 AVAN 0,760,730,690,650,600,020,720,290,730,690,720,610,790,75 BANE 0,480,450,430,500,390,470,430,510,460,380,400,440,360,350,49 BRZL 0,410,420,450,440,430,340,460,540,440,430,400,430,390,320,63 CHMK 0,530,480,510,590,460,390,510,520,470,400,440,530,400,420,64 CNTL 0,450,430,380,470,410,290,460,520,470,420,440,460,320,320,62 DIXY 0,470,420,500,540,360,390,440,410,470,350,490,480,370,480,46 EONR 0,470,410,470,530,430,380,390,420,480,340,360,470,380,470,46 GAZP 0,430,020,440,540,250,270,400,480,380,350,240,460,370,520,40 GMKN 0,400,440,040,540,430,370,480,440,460,470,430,520,410,420,51 LKOH 0,370,210,410,490,030,390,330,450,340,350,200,420,360,450,37 MFON 0,540,440,510,410,440,430,270,480,470,400,410,440,420,600,47MGNT0,430,500,490,530,400,020,420,540,480,390,430,420,460,460,35MMBM0,410,440,390,450,420,430,470,470,450,440,420,430,410,430,51MTLR0,520,340,470,580,320,230,470,470,390,360,470,500,410,470,46MTLRP0,520,370,570,550,460,310,520,520,510,470,470,550,410,470,51MTSS0,540,440,490,550,420,540,200,520,490,300,380,460,420,490,36MVID0,570,460,470,520,390,260,320,480,490,320,440,490,420,460,50PIKK0,440,420,500,520,450,500,460,470,490,470,480,520,440,430,48PLZL0,490,500,530,480,470,340,480,530,530,530,450,540,400,530,50RBCM0,550,540,580,570,520,400,540,490,600,510,510,560,380,510,65ROSB0,530,490,460,500,410,440,500,460,460,410,500,470,380,420,62ROSN0,490,360,440,530,330,360,490,480,020,440,440,420,420,530,45ROST0,450,480,490,530,420,390,530,410,520,460,480,500,430,380,51RSTI0,510,420,490,580,450,410,520,460,480,370,450,500,350,440,54RTGZ0,510,520,440,440,340,740,470,580,440,460,430,410,370,540,42RTKM0,440,370,450,540,370,180,420,550,470,350,390,490,410,450,52SBER0,460,330,460,490,350,430,270,470,440,010,300,460,350,450,44SIBN0,420,270,440,470,330,220,370,450,410,350,320,450,380,480,40SNGS0,380,340,430,510,300,250,370,460,380,300,380,430,330,440,38TATN0,390,240,420,520,210,360,310,470,380,330,030,410,350,460,39TRNFP0,420,440,510,540,400,420,460,500,420,460,390,010,440,440,43USBN0,560,550,530,460,440,480,490,530,470,490,450,450,430,560,57VTBR0,480,490,420,570,440,500,500,500,540,450,450,450,390,010,61VZRZ0,470,480,500,580,450,490,430,590,530,390,500,540,370,400,44VZRZP0,550,410,470,480,470,370,460,550,440,460,490,520,410,460,50YNDX0,510,200,510,220,330,340,320,350,380,410,430,330,250,480,50

Как видно из последней таблицы, корреляция между инструментами не постоянна и обладает высоким стандартным отклонением. Вследствие этого в процессе построения портфеля необходимо делать переоценку корреляции, а так же делать поправку на потенциальное смещение зависимостей в процессе существования портфеля и как следствие изменение возможностей хэджирования.

Заключение

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

Кроме того, по результатам работы можно сделать вывод о целесообразности дополнительной коррекции структуры портфеля в зависимости от краткосрочной конъектуры. В частности воздержание от операций с ценными бумагами, которые подвержены существенным ценовым изменениям в предыдущие торговые периоды.

анализ динамики портфелей отображенный на рисунке 8 иллюстрирует эффективность предложенного метода динамического определения уровня требуемой доходности. Данный метод может быть использован как альтернативный методу построенному на использовании CML (Capital Market Line).

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

Рассматривая результаты реализации дельта нейтральной (корреляционной) стратегии можно говорить об увеличении волатильности портфеля относительно рынка в целом. Так же при реализации стратегии возрастает общая доходность всего портфеля. Как показано на рисунке №12 вследствие использования акций российского рынка системный риск присущ также и получившемуся портфелю, так, при увеличении волатильности рынка в целом, увеличивается и волатильность всего портфеля. В данном случае для успешной работы стратегии возможно рассмотреть более диверсифицированный портфель бумаг, включить бумаги разных бирж (географическая распределенность), увеличить количество используемых бумаг.

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

список использованной литературы

1.Галанов В.А. Рынок ценных бумаг: Учебник Р93 А.И. Басова. — 2- е изд., перераб. и доп. — М.: финансы и статистика, 2006. — 448 с: ил.

.Гончаренко Л.П. «Риск-Менеджмент» Под. ред. д.э.н., проф. -М.: издательство КНОРУС. 2007 г.

.Есипов Е.В. учебное пособие Ипотечно — инвестиционный анализ -М.: издательство Санкт-Петербургского государственного университета экономики и финансов, 1998

.Кесиян Г.А. «АНАЛИЗ методов ГЕНЕРАЦИИ ВРЕМЕННЫХ РЯДОВ С ДОЛГОВРЕМЕННОЙ КОРРЕЛЯЦИОННОЙ СТРУКТУРОЙ» // Научный журнал КубГАУ, No 74(10), 2011 года

.Пронина Н.Н. «финансы». Магистерская программа, — М.: издательство учебно-методическое пособие. (РЭА им. Г.В. Плеханова, 2004)

.Иванов А.Н. обращение и регистрация ценных бумаг — М.: издательство ИНФРА-М, 1996

.Идрисов А. Планирование и анализ эффективности инвестиций -М.: Издательство «Про-Инвест-ИТ» 1995, Москва

.Кириллов Д.С., Короб О.В., Митин Н.А., Орлов Ю.Н.Плешаков «Распределения показателя Херста нестационарного маркированного временного ряда», — М.: издательство Р.В ИПМ им.М.В.Келдыша ран

.Кныш М.И., Б.А. Перекатов, Ю.П. Тютиков Стратегическое планирование инвестиционной деятельности — М.: издательство БИЗНЕС-ПРЕССА, 1999, Санкт-Петербург

.Кузнецов Б.Т. — Инвестиции: Учебное пособие, 2-е изд., перер. и доп., 624 стр., -М.: издательство «Юнити-Дана», Москва, 2010

.Коркунов А.В. «Оценка опционов и дельта-хэджирование применительно к фьючерсным контрактам на российском рынке». // Экономический журнал НИУ ВШЭ, 1999 г.

.Липсиц, И.В. В.В. Коссов инвестиционный проект — М.: издательство БЕК, 1996

.Симонова М.Н. Ценные бумаги: операции с ценными бумагами, бухгалтерский учет и налогообложение. Примеры — М.: издательство информационно-издательский дом ФИЛИНЪ, 1997

.Чекулаев М.В. Стресс тестирование (историческое тестирование), проектирование сценариев различной сложности «Риск-менеджмент: Управление финансовыми рисками на основе анализа волатильности»

.Четыркин Е.М. Финансовый анализ производственных инвестиций -М.: издательство ДЕЛО, Москв, 1998

.Шарп У.Ф. Инвестиции, -М.: издательство ИНФРА-М, 1997

.Шомполов А.И. «Приближенные методы в задачах оптимального управления инвестициями», МФТИ, Москва, 2000

.Шумилов Б.М. «Статистические методы в мониторинге: методологические указания» — М.: издательство «ТГАСУ»

.Федеральная комиссия по рынку ценных бумаг Базовый курс по рынку ценных бумаг, Москва, 1998

.Гражданский Кодекс РФ (действующая редакция)

21.Кодекс РФ об административных правонарушениях <#"justify">приложение 1. Вычисление стандартного отклонения коэффициента корреляции

import pandas as pdtimeos, mathdateutil.rrule import *datetime import datetimenumpy as np

# returns the pandas dateFrame with all close prices

# sorted by ascended order (newest on bottom)allDF(Path):filename in os.listdir(path):= pd.read_csv(Path+filename, parse_dates = [[0, 1]], index_col = 0)= stock.drop([‘‘, ‘‘, ‘‘, ‘‘], axis = 1)= filename.replace(‘.csv’,»).columns = [‘CLOSE_’+filename]

‘allData’ not in locals():

allData = stock:

allData = allData.join(stock, how = ‘outer’)allData

calcCorrel(stocks, futures, dateStart, dateEnd):= []future in futures.columns:.append([])stock in stocks.columns:

corCoef = futures.loc[dateStart.strftime(‘%Y%m%d’):dateEnd.strftime(‘%Y%m%d’)][future].corr(stocks.loc[dateStart.strftime(‘%Y%m%d’):dateEnd.strftime(‘%Y%m%d’)][stock])

correlation[len(correlation)-1].append(corCoef)correlation

= allDF(‘Data/Stocks/’)= allDF(‘Data/Futures/’)

= datetime(2010,2,8).date()= rrule(DAILY, dtstart = dateStart, byweekday=(MO,TU,WE,TH,FR))[60].date()

= []True:.append(calcCorrel(stocks, futures, dateStart, dateEnd))(dateStart)dateEnd >= datetime(2015,2,6).date():;= rrule(DAILY, dtstart = dateStart, byweekday=(MO,TU,WE,TH,FR))[1].date()= rrule(DAILY, dtstart = dateEnd, byweekday=(MO,TU,WE,TH,FR))[1].date()

= open(‘corr.csv’, ‘w’)= []n in timeCorrel: #for each day= 0n2 in n: #for each futuresn3 in n2: #for each stock coefficient

if len(stdev) <= i:

stdev.append([])

if math.isnan(n3) == False:

stdev[i].append(n3)

i += 1

file.write(str(n3)+’;’).write(‘n’);.write(‘n’);

= open(‘stdev.csv’, ‘w+’)= []= 1n in stdev: #for each sequence.append(np.std(n)).write(str(np.std(n))+’;’)i == 40:.write(‘n’)

i=0+= 1

приложение 2. Алгоритм моделирования дельта нейтральной позиции

import correlation as cor #custom module for correlation calculationdatetime import datetimedateutil.rrule import *numpy as np

sum2one(corCoefList):= [v if (v > 0 and v < 0.9) else 0 for v in corCoefList]= corCoefList[:].sort(reverse = True)

= 0 #total correlation= []= []k, v in enumerate(corCoefList):sumOfElements + v < 1 and v != 0:

sumOfElements += v

selectedCorrelation.append(v)

useStocks.append(saveKeysCorCoefList.index(v))

useStocks, selectedCorrelation, sumOfElements

getPrices(sliceDate, dataFrame):= []index, row in dataFrame.ix[sliceDate.strftime(‘%Y%m%d’):sliceDate.strftime(‘%Y%m%d’)].iteritems():= 0val in row:

if np.isnan(val) == False and val != 0:

securityPrice = val.append(securityPrice)prices

= cor.allDF(‘Data/Stocks/’)= cor.allDF(‘Data/Futures/’)

= datetime(2010,2,8).date()= rrule(DAILY, dtstart = dateStart, byweekday=(MO,TU,WE,TH,FR))[60].date()

# [[stock, stock, stock ..], [stock, stock, stock, ..] ]= []= 0= []= []= 0; deltaFuturePrice = 0;= []= [0 for n in stocks.columns.values]; futuresPortfolio = [0 for n in futures.columns.values]# lists with full amount of securities

# where key = number of security in initial list, value = amount and direction= [] #type=0= 1= open(‘logs.txt’, ‘w’)= open(‘stat.csv’, ‘w’)True:= cor.calcCorrel(stocks, futures, dateStart, dateEnd)= []

#count the amount of nans in the listfutureCor in corList:.append(np.count_nonzero(np.isnan(futureCor)))= min(countNan)= [k for k, v in enumerate(countNan) if v == m]

#portfolio = [n, n2, n3] where n, n2, n3 … are the keys

#of stocks in the initial list, hedgeCorel, sumCorel = sum2one(corList[m[0]])

= getPrices(dateStart, stocks) # prices for all stocks in a list [10, 20, 0, 0, 14. …]= getPrices(dateStart, futures)

= [stockPrices[stock] for stock in portfolio] #stock prices that we will operate with= futurePrices[m[0]]= [a*futPrice for a in hedgeCorel]= [a/b for a,b in zip(stockValueCalculation, portfolioPrices)] # amount of stocks we required to buy= np.floor(stockValueCalculation) # amount of stocks exactly to buy

sum([1 if np.isnan(n) == False and np.isinf(n) == False and n != 0 else -500 for n in stockValueCalculation]) <= 0: #The portfolio for some reasons is not constructed= rrule(DAILY, dtstart = dateStart, byweekday=(MO,TU,WE,TH,FR))[1].date()= rrule(DAILY, dtstart = dateEnd, byweekday=(MO,TU,WE,TH,FR))[1].date()

#close all open positions+= sum([amount*price for amount, price in zip(stockPortfolio, stockPrices)])+= sum([amount*price for amount, price in zip(futuresPortfolio, futurePrices)])= [0 for n in stocks.columns.values]= [0 for n in futures.columns.values]

#futures are less expensive than shares

#buy futures!futPrice < sum(stockValueCalculation*portfolioPrices):.write(dateStart.strftime('%Y%m%d')+' Buy '+futures.columns.values[m[0]]+' for '+("%.2f"%futurePrices[m[0]])+' total '+(str(stockValueCalculation[key]*portfolioPrices[key]))+'rn')[m[0]] = 1-= futurePrices[m[0]]

key, stock in enumerate(portfolio):

logs.write(‘{} Sell {} {} for {} {}’.format(dateStart.strftime(‘%Y%m%d’),

stockValueCalculation[key],

stocks.columns.values[stock],

(«%.2f»%stockPrices[stock]),

(«%.2f»%stockValueCalculation[key]*portfolioPrices[key])

))

stockPortfolio[stock] = (-1)*stockValueCalculation[key] #sell some stocks

profitDelta += stockValueCalculation[key]*portfolioPrices[key]:.write(dateStart.strftime(‘%Y%m%d’)+’ Sell ‘+futures.columns.values[m[0]]+’ for ‘+(«%.2f»%futurePrices[m[0]])+’rn’)[m[0]] = -1+= futurePrices[m[0]]

key, stock in enumerate(portfolio):

logs.write(‘{} Buy {} {} for {} {}’.format(dateStart.strftime(‘%Y%m%d’),

stockValueCalculation[key],

stocks.columns.values[stock],

(«%.2f»%stockPrices[stock]),

stockValueCalculation[key]*portfolioPrices[key]

))

stockPortfolio[stock] = stockValueCalculation[key] #sell some stocks

profitDelta -= stockValueCalculation[key]*portfolioPrices[key]

logs.write(‘rn’).write(‘%.2f’%profitDelta).write(dateStart.strftime(‘%Y%m%d’)+»;»+’%.2f’%profitDelta+»rn»).write(‘rn’)(dateStart.strftime(‘%Y%m%d’), profitDelta)

= futPricedateEnd >= datetime(2015,2,6).date():;= rrule(DAILY, dtstart = dateStart, byweekday=(MO,TU,WE,TH,FR))[1].date()= rrule(DAILY, dtstart = dateEnd, byweekday=(MO,TU,WE,TH,FR))[1].date()+= 1i == 600:();

Вычисление оптимального инвестиционного портфеля

from os import listdir

import math, numpy as npos.Path import isfile, join

= [ f for f in listdir(«Data\Stocks_reduced») if isfile(join(«Data\Stocks_reduced»,f)) ]=[]; testData=[]=[]

#place all values in one list 0 value is the farthesti in range(len(onlyfiles)):.append([]); testData.append([]);open(«Data\Stocks_reduced\»+onlyfiles[i]) as f:=0line in f.readlines():

if n > 0:

testData[i].append(float(line[5].replace(‘,’,’.’)))

n+=1[i].reverse()[i].reverse()

markowitz(data, reqReturn):i in range(len(data)):.append(sum(data[i])/len(data[i]))

#calculate day returns=[]=[]i in range(len(data)):.append([])n in range(1,len(data[i])):

dataReturn[i].append(data[i][n]/data[i][n-1]-1).append(sum(dataReturn[i])/len(dataReturn[i]))

#count covariance=[]i in range(len(dataReturn)):.append([])n in range(len(dataReturn)):

covar[i].append(sum([(dataReturn[i][f]-expectedReturn[i])*(dataReturn[n][f]-expectedReturn[n]) for f in range(len(dataReturn[n]))])/len(dataReturn[i]))

#inverse the matrix=np.linalg.inv(np.array(covar))

#create matrix with one column of ones=np.array([[1] for i in range(len(covarInverse))])

#create the matrix (one row) with ones=np.ones(len(covarInverse))

#multiply two prev. matrices=np.dot(uT,covarInverse)

#calculate value A=np.dot(uTxCovInv,np.array(expectedReturn))

#calculate value B=np.dot(covarInverse,np.array(expectedReturn))=np.dot(eTxCovInv,np.array(expectedReturn))

#calculate value C=np.dot(uTxCovInv,u)

#calculate value D=B*C-A*A

#intermediate coefficients=np.dot(covarInverse,u)=np.dot(covarInverse,np.array([[x] for x in expectedReturn]))

#calculating the portfolio coordinates (g and h are points)=(B*m-A*l)/D

#calculating the return of the portfolio g=sum(g*np.array([[x] for x in expectedReturn]))

#calculating portfolio h=(C*l-A*m)/D

#calculating the return of the portfolio h=sum(h*np.array([[x] for x in expectedReturn]))

#calculate the efficient portfolio depending on the predetermined return=g+h*reqReturn

=np.dot(np.dot(np.array([x[0] for x in weights]),np.array(covar)),weights)

#convert numpy array to simple list=[x[0] for x in weights][portfolioRisk[0],weights]

positions(balance, weights, data):=[]w in range(len(weights)):

#value in money equivalent; weeight*balance/last (newest) price, 2.1=3(len(data[w]), w).append(math.ceil(weights[w]*balance/data[w][len(data[w])-1]))position

sliseData(step,period,data):=[]i in range(math.trunc((len(data[0])-period)/step)):

slised.append([])

for n in range(len(data)):

slised[i].append(data[n][i*step:period+i*step])slised

maxreturn(data):= 0= 0i in range(1,100):

port = markowitz(data, i/10000)

if (i/10000)/port[0] > mCoef:

mCoef = (i/10000)/port[0]

mReturn = i/10000mReturn

= open(‘risk.txt’,’a+’)

=1; period=200; depo=0=sliseData(step, period, testData);

# i-len(testData[0])-1 step to the future :)= 10000i in range(len(slicedTest)-1, 50, -1):= maxreturn(slicedTest[i])(ret)= markowitz(slicedTest[i],ret)n in range(len(port[1])):

#if Current price/previous price <= 0.97 => through out the stocktestData[n][i-len(testData[n])/testData[n][i-len(testData[n])+1 <= 0.97:

port[1][n] = 0= math.fabs(port[1][n]*depo)= port[1][n]/math.fabs(port[1][n])= math.floor(allocateForStock / slicedTest[i][n][0])+= directionOfTrade*( amountToBuy*testData[n][i-len(testData[n])-1] — amountToBuy*slicedTest[i][n][0]).write(str(depo) + «;» + str(ret) + «n»)(i, depo)

()

i in range(1,100):= markowitz(slicedTest[len(slicedTest)-1], i/10000).write(str(i/10000)+»;»+str(port[0])+»n»)()

= []; ris =[]i in range(len(slicedTest)):= markowitz(slicedTest[i], 0.005).append(port[1]).append(port[0])i == 15:;= 0

i,v in enumerate(st[0]):i2, v2 in enumerate(st):.write(str(round(st[i2][i],3)) + ‘;’).write(‘rn’)

»’=positions(10000,mark[1],slicedTest[i])n in range(len(pos)):+=(testData[n][period+(i+1)*step-1]-testData[n][period+i*step-1])*pos[n](depo)

»’

=[]step in range(10,20): #prediction.append([])period in range(100,200): #change the history period=sliseData(step,period,data)=0i in range(len(slc)):

mark=markowitz(slc[i],0.0022)

pos=positions(10000,mark[1],slc[i])

for n in range(len(pos)):

depo+=(data[n][period+(i+1)*step-1]-data[n][period+i*step-1])*pos[n](str(step)+» «+str(period)+» «+str(depo))[step-2].append(depo)

приложение 3. Расчет доходности ценной бумаги

os import listdir

from os.Path import isfile, join

Return(timeSer):(timeSer[0]-timeSer[-1])/timeSer[-1]

= open(‘return.txt’,’a+’)= [ f for f in listdir(«Data\dailyDataDeutsche») if isfile(join(«Data\dailyDataDeutsche»,f)) ]= []i in range(len(onlyfiles)):.append([]);open(«Data\dailyDataDeutsche\»+onlyfiles[i]) as f:=0line in f.readlines():

line=line.split(‘;’)

data[i].append(float(line[4].replace(‘,’,’.’)))

n += 1

i in range(len(data)):.write(str(Return(data[i]))+»;»)

Учебная работа. Модели портфельного инвестирования