Программное обеспечение финансового анализа
Молодцов Д.А.

Программное обеспечение финансового анализа


Д.А. Молодцов



Введение

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

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

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

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

Основным недостатком современной портфельной теории является слишком узкий класс рассматриваемых стратегий. Здесь заранее отказываются реагировать на любые изменения рынка внутри инвестиционного периода. Это делает невозможным использование благоприятных ситуаций на рынке и извлечение дополнительной прибыли. Также

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

Естественно, возникает желание объединить положительные стороны этих двух подходов и построить подход для активного управления портфелем, свободный от указанных недостатков. Такой подход, реализованный в компьютерной системе MultiPortfolio [1-3] (http://portfolio.wallst.ru), и предлагается вниманию читателя.

Основа подхода

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

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

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

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

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

Сравнение стратегий

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

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

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

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

Если рассматривать активные стратегии, то в этом случае результат будет зависеть от всей траектории цен инструментов. Поэтому осреднение необходимо проводить по распределению вероятностей на траекториях цен. Решение этой задачи для произвольных стратегий возможно только на компьютере. Давайте оценим, с задачей какой сложности мы имеем дело. Предположим, рассматриваются траектории цен одного инструмента. Будем рассматривать только дневные котировки на интервале в один год, что составит примерно 250 чисел. Предположим, что соседние цены могут отличаться не более, чем на 10 пунктов, что является очень сильным предположением, т.к. это очень маленькие колебания. Тогда число возможных траекторий составит 20250. Пусть на подсчет результата по одной траектории компьютер затрачивает 10-9 секунды (реально сейчас он тратит 10-30 секунд). Тогда для подсчета всех траекторий необходимо более 20235 лет. Когда мы говорим о миллионе лет, то это число лишь с шестью нулями, а здесь их более 250!

но, для той, которая имела место в действительности. Подсчет результатов для выбранной стратегии мы будем называть прогонкой стратегии (Back Testing).

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

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

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

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

Таким образом, еще одним достоинством программы Multi-Portfolio, по сравнению с подходом Марковица, является то, что в программе MultiPortfolio не навязывается критерий сравнения для стратегий. Если в подходе Марковица предлагается сравнивать стратегии по двум показателям: по средней эффективности и неадекватному, с нашей точки зрения, риску, то в программе MultiPortfolio можно использовать любые из приведенных показателей. Более того, если какой-то пользователь закажет подсчет дополнительных характеристик, это легко может быть добавлено в программу.

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

Класс стратегий в программе MultiPortfolio

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

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

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

Рассмотрим теперь принципы переработки входной информации. Основная идея состоит в том, чтобы концентрировать свободные средства в инструментах с наиболее высокой текущей эффективностью. Для определения эффективности инструментов в программе предлагается набор различных функций, одна из которых заслуживает особого разговора. Это функция Dependence. Она строит эффективность инструмента как функцию от любых других факторов. При построении этой функции используется модель мягкой зависимости, которая формируется по скользящей базе данных. Скользящая база данных - это такая база данных, которая постоянно пополняется свежей информацией и которая забывает самую старую информацию, сохраняя при этом постоянный объем. Именно в функции Dependence и возможно использование любой числовой информации. Подробное описание мягких зависимостей можно найти в работе [4].

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

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

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

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

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

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

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

Рассмотрим теперь активную стратегию, которая ведет себя следующим образом. В точке 0 покупается первый инструмент на все средства, а в точке T/n продается. Далее в точке T(i-1 )/n покупается i-тый инструмент, а в точке Ti/n продается. Элементарные расчеты показывают, что прибыль при единичных вложениях составляет 2(1.999/1.001)n-1-1. При n=10 прибыль будет примерно равна 1009.272. Прибыль активной стратегии превысила прибыль стратегии, построенной на идеях технического анализа, и прибыль пассивной стратегии управления портфелем в соответствии с теорией Марковицаболее чем в тысячу раз.

Диверсификация портфелей

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

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

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

Как часто нужно принимать решения

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

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

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

Заключение

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

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

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

Литература

1. Стратегический подход к управлению портфелем / Д.А. Молодцов//Банковские технологии. - 1998. -№7(39).

2. Управление портфелем при манипулировании финансовыми потоками / Д.А. Молодцов // Аудит и финансовый анализ. - 1999. - №2.

3. Многопортфельное управление/Д.А. Молодцов//Банковские технологии. -2000. -№12.

4. Описание зависимостей при помощи мягких множеств / Д.А. Молодцов // Известия РАН: Теория и системы управления. - 2001. - № 6. - С. 166-173.


Молодцов Дмитрий Анатольевич - старший научный сотрудник Вычислительного центра Российской академии наук (ВЦ РАН), доктор физико-математических наук.


&copy Информационное общество, 2001, вып. 6, с. 22-25.