Главная Софт Анализ данных MATLAB – находим максимальную просадку капитала
MATLAB – находим максимальную просадку капитала
23.07.2011 16:59

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


Визуальный подход

На первый взгляд вычисление максимальной просадки кажется тривиальной задачей. Можно, напр., построить график и прикинуть ее визуально. Оказывается не все так просто. Давайте начнем с того, что импортируем данные – дневные уровни закрытия индекса ММВБ по конец второго квартала 2011 (файл с ними приложен в конце урока). Если при импорте принимать все диалоги по умолчанию, в итоге MATLAB создаст три массива данных: числовой – data и текстовые – textdata и rowheaders. В первом будут храниться уровни индекса, а во втором – даты. Последний массив можно удалить поскольку он дублирует по содержанию textdata. Теперь можно построить график, используя визуальный интерфейс или команду plot(data).


ММВБ30


На первый взгляд определение просадки не вызывает особых сложностей. Максимальная просадка была во время финансового кризиса, начавшись в районе 2500 наблюдения и закончившись примерно посередине между 2500 и 3000, – вот первая мысль, которая может возникнуть у неосведомленного в данном вопросе человека после изучения графика. Однако это лишь «обман зрения». Дело в том, что на обычном графике процентную просадку обнаружить практически невозможно, поскольку на глаз мы оцениваем разности цен (HIGH-LOW), а не частные (LOW/HIGH), которые требуются для нахождения максимальной процентной просадки. Для этих целей нужно использовать логарифмический график, который присутствует во многих программах теханализа. В MATLAB он строится очень просто: plot(log(data)).


ММВБ30


Изучая этот график, уже довольно просто определить даже визуально, что максимальная процентная просадка по индексу ММВБ наблюдалась в самом начале его расчета, когда разразился российский кризис 1998 года.


Точный расчет просадки

Графики – это прекрасно, но в таком деле, как риск-менеджмент требуется точность. Для точного измерения просадки в MATLAB есть специальная функция – maxdrawdown(). Эта функция очень удобна, поскольку возвращает не только значение максимальной просадки, но и даты ее начала и конца. Наберем в командной строке:

[Dv,Di]=maxdrawdown(data)

MATLAB выдаст:

Dv =

0.84

Di =

11

259

В переменную Dv записывается абсолютное значение просадки (без знака «минус»). В нашем случае оно составило 84%. В переменную Di – индексы, фиксирующие ее длительность. Здесь максимальная просадка длилась с 11 по 259 наблюдение, т.е. 248 дней. Имея индексы, легко получить и даты. Для этого наберем: textdata(Di). На экране появится:

ans =

'06.10.1997'

'05.10.1998'

Максимальная просадка, таким образом, длилась с 6 октября 1997 по 5 октября 1998, т.е. почти ровно год. Если бы кто-то инвестировал 6 октября 1997 в индекс ММВБ 1150300 рублей, через год он бы имел только 185300.


Иногда интерес может представлять не только процентная (относительная) просадка, но и денежная (абсолютная). Это как раз та просадка, которую можно визуально обнаружить на обычном графике. При помощи функции maxdrawdown() можно вычислить и ее. Для этого нужно указать в функции опцию 'arithmetic':

[aDv,aDi]=maxdrawdown(data,'arithmetic')

Арифметическая просадка по индексу ММВБ составляет 1456.29 пунктов. Если бы на момент начала его расчета (22 сентября 1997) кто-то инвестировал в него ровно миллион рублей, то на момент начала абсолютной просадки – 12 декабря 2007 – его капитал бы составил 19699100 рублей. К концу просадки – 24 октября 2008 – от них бы осталось лишь 5136200 рублей, а потери бы составили 14562900 рублей. Однако процентная просадка в МФК уступала процентной просадке в кризис 1998. Она составила только 74%.


Таким образом, процентная просадка измеряет риск события покупки точно на пике и продажи точно на дне, а денежная фиксирует максимальную денежную сумму, теряемую на том или ином временном интервале. Так, инвестировав в индекс ММВБ миллион рублей, мы бы сначала понесли максимальную процентную просадку (6 октября 1997 – 5 октября 1998), затем, если бы мы не стали выводить капитал, мы бы испытали максимальную просадку в деньгах этой выросшей суммы (12 декабря 2007 – 24 октября 2008). Однако если бы на момент начала максимальной процентной просадки (6 октября 1997) мы бы инвестировали ту же сумму (19.6991 млн.), которая у нас была накоплена к моменту денежной просадки (12 декабря 2007), то просадка в деньгах была бы еще больше. Этот пример иллюстрирует важность именно процентной просадки, поскольку она измеряет риск независимо от размера капитала.


Ожидаемая средняя просадка

На этом возможности MATLAB по расчету просадок не ограничиваются. Кроме просадки по историческим данным, можно еще и оценить теоретическую ожидаемую просадку. Она зависит от доходности, волатильности и горизонта инвестирования. Чем больше волатильность и срок вложения, тем выше просадка. Высокая доходность, напротив, снижает ее размер. Чтобы рассчитать ожидаемую просадку, необходимо иметь прогноз или оценку доходности и волатильности. Функция emaxdrawdown() использует для оценки просадки модель арифметического броуновского движения для логарифма цены, поэтому в нее следует вводить среднюю логдоходность и ее волатильность. Давайте посмотрим, насколько согласуется теория и практика. Для этого оценим среднюю логдоходность (m) и ее стандартное отклонение (s) по индексу ММВБ при помощи следующих команд: m=mean(price2ret(data)) и s=std(price2ret(data)). Здесь мы сначала переходим при помощи функции price2ret() от ряда цен к логдоходностям, а затем вычисляем искомые статистики функциями mean() и std(). Итак, как можно убедиться, дневная логдоходность по индексу ММВБ составляет примерно 0.08%, а волатильность 3.02%. Теперь имеется все необходимое для расчета ожидаемой просадки. Введем в командной строке:

D=emaxdrawdown(m,s,numel(data))

Функция numel() возвращает число элементов в массиве. В нашем случае это количество торговых дней в истории индекса. MATLAB выдаст: 1.40. Это просадка, также выраженная в логарифмическом формате, поэтому она и превышает 100%. Переведем ее в привычный простой процентный формат: 1-exp(-D) и получим результат 75%. Теоретическая модель, таким образом, в целом согласуется с реальными данными. Разницу в 9% можно для таких экстремальных уровней просадки считать не очень большой.


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

Удачной вам торговли и поменьше просадок!



© q-trader

[обсудить на форуме]


Вложения:
ФайлОписаниеРазмер файлаЗагрузки
Скачать файл (micex30.xls)micex30.xlsИндекс ММВБ 22.09.1997-30.06.2011162 Kb879
 

Добавить комментарий


Защитный код
Обновить



© 2010–2012. Все права защищены.
Копирование материалов, размещенных на сайте, разрешается только с рабочей ссылкой на источник.



| О проекте |  Правовая информация |
|  Напишите нам |  Карта сайта |



  

 Новости
главные новости экономики и финансовых рынков: события, мнения, прогнозы.

 Статьи
материалы по теханализу, фундаментальному анализу, управлению капиталом (манименеджмент) и др.

 Рынки
фондовый, валютный, товарный рынки: исторические обзоры, динамика, доходность, корреляции.

 Калькуляторы
xls-калькуляторы для оптимизации размера и структуры торговой позиции; опционные калькуляторы.

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

 Архив котировок
индексы, валюты, сырье: многолетние истории котировок в форматах .xls и .txt.

 Индикаторы
ºSiX – индикатор настроения рынка на основе расчета соотношения количества опционных контрактов put и call.

 Библиотека
собрание книг, которые рекомендуется прочесть каждому трейдеру в первую очередь.

 Словарь
толкование основных экономических, финансовых терминов, трейдерский сленг.

 Форум
обсуждение материалов сайта и любых вопросов трейдинга и инвестирования.