Содержание к диссертации
Введение
ГЛАВА I. Анализ различных подходов к моделированию рынка ценных бумаг -12 -
1.1. Рынок ценных бумаг - 12 -
1.1.1. Ценные бумаги и акции -12-
1.1.2. Оценка стоимости акций -13-
1.1.3. Фундаментальный анализ -17-
1.1.4. Технический анализ -19-
1.2. Теории функционирования рынка ценных бумаг - 22 -
1.2.1. Теория эффективного рынка -22-
1.2.2. Теория случайных блужданий -24-
1.2.3. Теория хаоса -28-
1.3. Классические и современные подходы к моделированию рынка ценных бумаг - 30 -
1.3.1. Классические модели рынка ценных бумаг -31-
1.3.2. Поведенческие модели рынка ценных бумаг -32-
1.3.3. «Эффект толпы» - 36 -
1.3.4. Эффект нерационального поведения трейдеров -39-
1.4. Мультиагентные системы - 42 -
1.4.1. Характеристики мультиагентных систем -44-
1.4.2. Принятие решений рациональным агентом -45-
1.4.3. Коллективное принятие решений в стратегических играх -49-
1.4.4. Координация совместных действий -52-
1.4.5. Обучение агентов -56-
1.4.6. Эффект эмерджентного интеллекта - 58 -
1.5. Модели рынка ценных бумаг, использующие мультиагснтный подход -60-
1.5.1. Модель «Santa Fe» и её вариации -60-
1.5.2. Модель «Genoa Artificial Stock Market» - 64 -
1.5.3. Библиотека «МоТог» и система «Имитрейд» -66-
1.5.4. Платформа «ArTificial Open Market» -69-
1.6. Требования к функциональности проектируемого программного
комплекса - 70 -
ГЛАВА II. Разработка архитектуры виртуального рынка ценных бумаг и мультиагентного программного комплекса - 73 -
2.1. Математическая модель виртуально рынка - 73 -
2.1.1. Виртуальный мир и виртуальные агенты -73-
2.1.2. Новостная среда -75-
2.1.3. Роли и стратегии -76-
2.1.4. Активы агентов -77-
2.1.5. Ордера и транзакции -79-
2.1.6. Система обработки ордеров - 80 -
2.1.7. Движение денежных средств при совершении транзакций -82-
2.1.8. Расчёт статистических характеристик рынка ценных бумаг -87-
2.1.9. Математическая формулировка задачи исследования -89-
2.2. Требования к архитектуре системы - 90 -
2.2.1. Концепция компонентной разработки -90-
2.2.2. Сокрытие деталей реализации -91-
2.1.2. Гибкость и модифицируемость -92 -
2.2.3. Масштабируемость и эксплуатационная надежность... -92-
2.2.4. Производительность -93-
2.3. Технологии и концепции, использованные при разработке программного комплекса - 94 -
2.3.1. Архитектурные концепции -94-
2.3.2. UML и визуальное моделирование -95-
2.3.3. Применение скриптовой системы -97-
2.4. Архитектура программного комплекса - 99 -
2.4.1. Выбор платформы для мультиагентной системы -99-
2.4.2. Взаимосвязь приложения, пакетов и компонентов -101-
2.4.3. Виртуальный мир -104-
2.4.4. Стандартные классы системы -108-
2.4.5. Планы и стратегии -114 -
2.4.6. Запросы и транзакции -121 -
2.4.7. Механизм формирования цен -123 -
ГЛАВА III. Анализ работы системы -125 -
3.1. Описание работы программного комплекса -125 -
3.1.1. Функциональность -126-
3.1.2. Входные данные -127-
3.1.3. Выходные данные -129-
3.1.4. Организация экспериментов -133-
3.2. Оценка степени соответствия виртуального рынка реальному -135 -
3.2.1. Соблюдение пропорций -136-
3.2.2. Наличие трендов и фигур -142-
3.2.3. Сходство статистических характеристик изменения цен и объёма торгов -147-
3.2.4. Фрактальность рыночных процессов -161 -
3.2.5. Реакция рынка на действия отдельных агентов -164-
3.3. Эксперименты, проведенные над виртуальным рынком -167 -
3.3.1. Зависимость размера спрэда от склонности к риску трейдеров -167-
3.3.2. Влияние фундаментальных трейдеров на динамику котировок акций -171-
3.4. Практическое применение программного комплекса -180 -
3.4.1. Архитектура системы поддержки принятия решений -180-
3.4.2. Математические критерии оценки качества прогнозов -184-
3.4.3. Анализ работы системы поддержки принятия решений -188-
3.4.4. Технико-экономическое обоснование -192 -
3.4.5. Преимущества и недостатки программного комплекса, выявленные в процессе эксплуатации -194 -
3.4.6. Другие перспективы практического применения -197 -
3.4.7. Перспективы для дальнейших исследований и разработок -199-
Заключение - 202 -
Литература -205-
Приложения -213-
- Поведенческие модели рынка ценных бумаг
- Библиотека «МоТог» и система «Имитрейд»
- Движение денежных средств при совершении транзакций
- Сходство статистических характеристик изменения цен и объёма торгов
Введение к работе
Актуальность темы исследования. Рынок ценных бумаг является незаменимым инструментом, позволяющим производить инвестиции в ценные бумаги и оценивать стоимость активов. Даже в период кризиса трудно преуменьшить его значение для экономики страны и мира, ведь акционерами различных компаний являются десятки миллионов жителей планеты.
Активную роль на рынке ценных бумаг играют банки и инвестиционные компании. Для них очень важна проблема прогнозирования цен на рынке ценных бумаг, особенно в период кризисов, когда возрастает волатильность и увеличиваются риски. Для лучшего понимания рыночных механизмов банкам необходимо программное средство, которое бы учитывало фундаментальные показатели компаний-эмитентов, технические индикаторы, постоянно поступающие новости, настроения других трейдеров. Это позволило бы повысить качество принимаемых банками решений, что укрепило бы их положение на рынке. А это основа развития экономики страны.
Степень разработанности проблемы. Существует ряд инструментов, призванных помочь инвесторам исследовать рыночные процессы и принимать решения о сделках на рынке ценных бумаг. Из них самыми известными являются MetaTrader, MetaStock, Ami Broker, Dynamic Trader, АЛОР-Трейд, Omni Trader, Omega TradeStation. Эти инструменты позволяют проводить мониторинг и анализ рынка в режиме реального времени, а также совершать сделки прямо со своего рабочего места. Некоторые системы снабжены встроенными языками программирования, которые позволяют расширять их функциональность и создавать программы-советники. Такие программы в нужный момент времени подсказывают, какие операции над ценными бумагами надо совершать, однако использование лишь технических индикаторов снижает качество их прогнозов.
Одним из методов решения задачи повышения качества прогнозов является разработка системы поддержки принятия решений, использующей
технологию мультиагентного моделирования. Программные агенты могут
имитировать реальных трейдеров, проводя операции на виртуальном рынке ценных бумаг. В результате их взаимодействия виртуальный мир по своим показателям становится похожим на реальный, что позволяет использовать результаты симуляции для задач прогнозирования.
Этим вопросом занимались, начиная с конца 80-х годов, LeBaron В., Palmer R., Cohen, Maier, Kim и Markowitz, Beltratti и Margarita, Marengo и Tordjman, Rieck, Giansante S., Yue W., Marchesi M., Raberto M. и другие. В последнее время этим вопросом заинтересовались и российские исследователи: Романов В.П., Воронцов К.В.. Несмотря на значительное количество работ по данной тематике, реальных проектов, использующих мультиагентный подход для моделирования рынка, очень мало. Разработки, на которые ссылаются авторы статей и книг, либо неопубликованы, либо опубликованы без исходного кода, либо имеют существенные архитектурные ограничения, не позволяющие дальше их развивать.
Целью исследования является разработка улучшенной модели рынка ценных бумаг, а также мультиагентного программного комплекса, реализующего эту модель. Эти разработки должны повысить точность прогнозов динамики цен акций, что улучшит качество принимаемых инвесторами решений и, в конечном итоге, принесёт дополнительную прибыль их работодателям: банкам и инвестиционным компаниям.
В соответствии с поставленной целью в работе были определены и решались следующие задачи:
На основе анализа существующих моделей разработана новая модель рынка ценных бумаг с применением мультиагентного подхода.
Разработан набор требований к новому, более совершенному программному комплексу, используемому для моделирования рыночных процессов.
Выполнено проектирование архитектуры приложения, позволяющего взаимодействовать с виртуальным рынком. На её основе разработан
программный комплекс, используя среду программирования Borland Developer Studio 2006 и CASE-средство ModelMaker.
Разработана система критериев степени соответствия виртуального и реального рынков, а также методологию проведения экспериментов над виртуальным рынком.
Выполнена серия экспериментов над виртуальным рынком с целью определения степени его соответствия реальному рынку. Изучено, как выбор стратегии принятия решений агентами влияет на динамику котировок акций и другие экономические показатели.
Выполнена интеграция программного комплекса в систему поддержки принятия решений для трейдеров. Проведена оценка точности прогнозов программного комплекса и экспертов по набору статистических критериев.
Изучены другие варианты практического применения программного комплекса, а также перспективы для дальнейших исследований и разработок.
Объектом исследования является рынок ценных бумаг и закономерности, которые проявляются на нём.
Предмет исследования - мультиагентные технологии, модель виртуального рынка ценных бумаг, программный комплекс «FIMAS».
Теоретической основой исследования послужили труды российских и зарубежных специалистов по виртуальным рынкам ценных бумаг, а также книги, статьи и тезисы конференций по экономической теории, финансам, рынкам ценных бумаг, мультиагентным системам, теории проектирования сложных программных комплексов.
Методы исследования. В работе применялись методы системного, экономико-статистического, фрактального анализа, модальной логики, теории вероятностей, математической статистики, теории графов.
Информационной базой обоснования концептуальных положений исследования явились статистические данные по итогам работы различных
рынков ценных бумаг, эмпирические данные, материалы периодических
изданий. Для обработки информации использовались общенаучные приёмы
анализа, обобщения и сравнения, системный подход, абстрактно-логический,
экономико-статистический и расчётно-конструктивный методы.
Научная новизна
Разработан новый тип модели рынка ценных бумаг и программный
комплекс «FIMAS», реализующий эту модель. Особенности архитектуры
виртуального рынка:
о Впервые реализован механизм обработки поступающих ордеров в
режиме реального времени. В других моделях используется «волновая»
модель обработки ордеров, которая менее соответствует процессам,
происходящим на реальном рынке ценных бумаг.
о Значительно расширена иерархия классов, что позволило реалистичнее
смоделировать взаимодействие агентов между собой и с внешней
средой. Например, в модели GASM всего 18 классов, тогда как в
«FIMAS» более 120 классов. В новой реализации биржа больше не
является ядром виртуального мира, она всего лишь одна из участников
экономических отношений.
о Алгоритмы, которые применяют виртуальные трейдеры для принятия
решений, более реалистичны по сравнению с алгоритмами
аналогичных систем. Агенты сохраняют историю своих сделок, могут
самообучаться и по мере приобретения опыта переходить на более
оптимальные стратегии принятия решений. В отличие от
существующих моделей, трейдеры принимают решения о покупке /
продаже акций не обязательно раз в день: некоторые могут целый день
играть на краткосрочных колебаниях, в то время как другие
предпочитают долгосрочные инвестиции. Всего было реализовано
девять различных стратегий поведения трейдера.
В результате существенно повысилась адекватность программного
комплекса по сравнению с аналогичными разработками.
Впервые на виртуальном рынке были зафиксированы следующие
закономерности, присущие реальному рынку ценных бумаг:
о эффект следования реальной цены за фундаментальной;
о полное соответствие графика распределения цены и объёма торгов;
о эффект банкротства 90% трейдеров-новичков и выживания остальных
10%; о классический пример из теории игр, когда в результате сговора агенты
могли получать большую прибыль. о виртуальный рынок отличался слабой и умеренной эффективностью.
Практическая значимость
Впервые мультиагентный программный комплекс данного класса был использован как инструмент поддержки принятия решений. До этого подобные модели разрабатывались лишь для академических целей. Существуют и другие возможные применения модели: расчет экономического эффекта от инвестиционных решений, обучение персонала стратегиям работы на рынках ценных бумаг, как инструмент поддержки принятия решений на валютных рынках.
Исходный код ядра программы, включая процессы обработки транзакций и алгоритмы принятия решений агентами, открыт для публичного ознакомления и использования. Это является ценным материалом для специалистов, которые хотели бы продолжить работу в данном направлении, так как большинство подобных программных комплексов опубликованы без исходного кода.
На защиту выносятся
Разработанная модель рынка ценных бумаг, алгоритмы принятия решений
агентами, механизм ценообразования на виртуальном рынке.
Мультиагентный программный комплекс, предоставляющий доступ к виртуальному рынку из внешней среды; система поддержки принятия
решений для трейдеров.
Методология и результаты сравнительного анализа виртуальных и реальных рынков ценных бумаг.
Апробация работы. Основные результаты диссертационного исследования были представлены на четырёх научных конференциях: «Ситуационные центры: модели, технологии, опыт практической реализации» (Москва, 2006; Москва, 2007) и «Computational Finance and its Applications» (Лондон, 2006; Кадиз, 2008).
Материалы диссертационного исследования отражены в шести публикациях (3 статьи в иностранных журналах, 3 в российских, 2 из которых входят в список ВАК) общим объёмом около 5,4 п.л.
Разработанный программный комплекс внедрён в систему поддержки принятия решений для трейдеров в ООО «ТК Фотон» и ООО «Таулинк», что подтверждают соответствующие акты о внедрении.
Объем и структура работы. Поставленная в работе цель позволила сформировать следующую структуру исследования. Диссертация состоит из введения, трех глав, выводов, списка литературы и приложений. Диссертация содержит 212 страниц основного машинописного текста, 100 формул, 56 рисунков, 13 таблиц, 28 приложений. Библиография включает 83 наименований, из них 37 иностранных источника.
Поведенческие модели рынка ценных бумаг
В дискуссиях и исследованиях по общественным наукам, науки, изучающие человеческое общество, традиционно придерживаются двух противоположных подходов. Первый стремится к объективности, а второй подход более описательный или интерпретативный. Первый подход пытается рассматривать "социальные факторы" как "материальные вещи" и ищет примеры, когда поведение групп людей очень похоже на поведение неодушевленной субстанции, например, поведение в толпе, очередях, дорожных пробках, на соревнованиях, аттракционах, во время беспорядков и на рынках. В отличие от первого, второй подход стремится, насколько это возможно, отличать поведение социальных агентов от поведения неодушевленной субстанции. В рамках этого подхода считается, что присущие людям свойства, такие как сознание, рефлексы, понятия, мораль и исторический опыт, не позволяют им переводить в гуманитарную область количественные методы, созданные физическими, техническими и другими, более общими, естественными науками.
В последних экономических и финансовых исследованиях проявляется растущий интерес к созданию из этих двух подходов единой концепции, вобравшей в себя концепции общественных наук, основанные на представлении, что рынки являются отражением мыслей, эмоций и действий конкретных людей, а не идеализированного экономического инвестора, опирающегося на теории эффективного рынка и случайных блужданий. Эта идея была схвачена в ставшем в наше время знаменитым утверждении Кейнса, что большую часть инвестиционных решений "можно считать ни чем иным, как проявлением животных инстинктов - спонтанного желания действовать, чтобы не оставаться пассивным, а не результатом взвешенного среднего из возможных преимуществ, умноженного на число потенциальных вариантов".
Реальный инвестор может иметь намерения быть рациональным и может пытаться оптимизировать свои действия, но этому стремлению к рациональности будут мешать когнитивные пристрастия, эмоциональные особенности и социальные воздействия. «Поведенческие» финансы становятся расширяющим полем исследований с использованием психологических, социологических и других бихевиористических теорий, имеющих целью объяснить поведение инвесторов и финансовых менажеров. Считается, что поведение финансовых рынков является результатом варьирующихся отношений к риску, неоднородности информационного обеспечения, когнитивных ошибок, самоконтроля и отсутствие такового, сожаления при принятии финансовых решений и влияния массовой психологии. Короче говоря, люди ведут себя не так, как хотелось бы рациональной экономике.
В ходе экспериментов, например, было обнаружено что субъекты, как правило, соглашаются заплатить за алкогольный напиток дороже, если им говорят, что это пиво было куплено в дорогом престижном отеле, а не в соседней бакалейной лавке. В этом случае им кажется несправедливым платить одну и ту же цену. Это нарушает закон единой цены, говорящий, что один и тот же напиток должен стоить одинаково, но позволяет сделать вывод, что людей больше беспокоит, чтобы с ними обращались должным образом, а не фактическая стоимость того, за что они платят.
Важным открытием, разбившим принцип рамочного подхода Канемана и Тверски (Tversky) стала теория "ментальной оценки" рисков. "Рамочный подход" утверждает, что позиционирование возможных вариантов предопределяет конечный результат. Теория "ментальной оценки" утверждает, что люди вырабатывают свои собственные рамки, и границы этих рамок незаметно влияют на их решения. Например, многие люди распределяют свои деньги по разным статьям таким как "текущий доход и "накопления", допуская с каждой из них расходы на определенные нужды. В применении к фондовому рынку некоторые поведенческие модели, например, "категоризация", могут создавать условия для арбитража. Например, когда акции Lucent Technologies котировались высоко, люди относили их к категории "хороших бумаг" и подсознательно доброжелательно интерпретировали новости по этой бумаге. Позже, когда Lucent стала "плохой бумагой", новости такого же рода интерпретировались с унынием. Еще одно отклонение, называемое "гиперболическим дисконтированием", относится к изменениям предпочтений. Например, когда люди ожидают денег, но еще их не получили, они в состоянии планировать и довольно рационально, какую часть этих денег, они истратят сразу и какую часть отложат.
Это согласуется с экономической теорией, приписывающей это свойство скромным побуждениям. Люди склонны копить деньги и откладывать расходы. Но когда деньги все-таки приходят, сила воли сдает, и деньги часто тратятся немедленно. Другими словами, когда дата жертвоприношения отдалена, в человеке преобладает настойчивость: я хочу / планирую / намерен начать делать зарядку со следующего месяца. Однако, когда следующий месяц наступает, намеченная жертва часто не приносится. Такие предпочтения, игнорируемые неоклассической экономикой, имеют важные последствия, особенно в принимаемых инвесторами решениях по использованию накоплений, создававшихся на протяжении всей жизни.
Одним из наиболее мощных открытий в психологии суждений является вывод о чрезмерной самоуверенности людей. Что касается стадности, то значительным проявлением в этом контексте является переоценка людьми надежности их знаний и возможностей. Превосходным примером служит результат опроса, показавший, что 90% водителей автомобилей в Швеции считают свой уровень вождения "выше среднего", хотя по самому определению (симметричного распределения) 50% должны быть ниже среднего, а 50% - выше среднего! Многие люди также оценивают выше среднего свои способности ладить с другими людьми. Такая самоуверенность возрастает в сферах деятельности, где люди сами оценивают свои способности, не имея возможности на основе сравнения определить свой фактический уровень способности к прогнозированию. Похоже, это позволяет сделать важный шаг к пониманию решений управленческого персонала в отношении развития компании и внешних приобретений, а таїоке активность управленческого аппарата большинства фондов. Теория чрезмерной самоуверенности предполагает, что все менеджеры уверены в своей способности определять выигрышные варианты.
Библиотека «МоТог» и система «Имитрейд»
В 2000 году Michele Marchesi и Marco Raberto разработали принципиально новый тип модели рынка ценных бумаг, которую они назвали GASM (Genoa Artificial Stock Market) [73]. В отличие от модели Sante Fe, в GASM запросы и транзакции являются автономными объектами, как в реальной жизни. Однако, в общем система продолжает быть очень примитивной: в ней только 18 классов, описывающих виртуальный мир (в разработанной мной модели около 120 классов). Также была упрощена модель принятия решений: теперь у всех трейдеров одинаковая стратегия, согласно которой они размещают запросы на покупку и продажу акций в произвольное время.
В модели GASM, как и в Santa Fe, время течёт дискретно, с шагом один день. Нет такого понятия, как время действия ордера: маркет-мейкер находит совпадения между имеющимися ордерами, и просто отбрасывает те, для которых не найдены совпадения. Маркет-мейкер «идеализирован»: он обладает неограниченными запасами денежных средств и акций, чтобы покрывать запросы трейдеров согласных с его ценой.
В результате, в данной модели график изменения дневных доходов выглядит достаточно реалистично (рис. 1.7), но его распределение - но его распределение почти повторяет нормальное распределение (рис. 1.8), что говорит о неадекватности данной модели. Также в рамках данной модели был проведён эксперимент с использованием двух типов трейдеров одновременно: оптимистов и пессимистов. Распределение стало больше похоже на распределение Коши, но у него не было толстых хвостов и характерного пика.
Инновационность данной модели заключается в том, что толстые хвосты на графике распределения доходов трейдеров удалось получить даже при отсутствии симуляции интеллекта у агентов, как следствие применения лимитных запросов без каких либо предположений о поведении агентов. В предыдущих экспериментах Michele Marchesi и Marco Raberto искусственный рынок с механизмом периодической обработки ордеров не показывал толстые хвосты на графике распределения доходов, если предварительно не было сделано предположений о высоких колебаниях на графике распределения активов трейдеров. Это открытие говорит о том, что архитектура рынка влияет ключевую роль в образовании толстых хвостов на графике распределения доходов.
Также авторы показали, что если заставить агентов предположить, что время ожидания между посылкой ордеров распределено по экспоненциальному закону, то оно в итоге таким и окажется. Более того, эмпирический анализ, проведённый Марко Роберто над акциями компании General Electric на Нью-йоркской бирже, показал, что время подачи запросов действительно распределено по экспоненциальному закону. Это является одной из закономерностей мультиагентных моделей: если подавляющее чисто агентов считает, что некий параметр должен иметь какое-то конкретное значение, то он чаще всего таким и становится. Другие трейдеры (которые находятся в меньшинстве) могут либо серьёзно заработать на этой предсказуемости, либо обанкротится, если не смогут вовремя адаптироваться. Michele Marchesi реализовал модель GASM на языке Smalltalk, но так и не опубликовал её исходный код. В связи с этим не было возможным провести опыты над этой моделью и каким-либо образом верифицировать результаты его исследований. Библиотека «МоТог» предназначена для имитационного моделирования биржевых торгов [8]. Она позволяет воспроизводить реальные торги и создавать новые игровые ситуации. Библиотека была разработана в 1999 году Воронцовым К.В. и др. в результате сотрудничества Московской Межбанковской Валютной Биржи (ММВБ), МИФИ, Вычислительного Центра РАН, МГУ им. М.В. Ломоносова и компании Forecsys [9]. Биржевые торги генерируются путем имитации действий участников реальных торгов. Для этого по каждому реальному участнику строится так называемый «робот» или модель участника — алгоритм, который «наблюдает» за ходом торгов и вырабатывает решения о подаче и снятии заявок. Функциональность Преобразование протоколов торговых сессий в имитационные модели. При этом из исходных данных корректно убирается вся конфиденциальная информация. Воспроизведение торговых сессий с любым заданным ускорением или замедлением. Обработка событий ввода и снятия заявок и заключение сделок в полном соответствии с правилами торгов на ММВБ. Возможность настройки модели торгов на точное воспроизведение заданной реальной сессии. При поступлении новых заявок, которых не было в протоколе на момент настройки (например, это могут быть заявки учащихся, если речь идет об учебном тренажере), ход торгов адекватно изменяется моделью. Вычисление в ходе торгов различных статистических характеристик финансовых инструментов и отдельных участников торгов. Библиотека «МоТог» легла в основу учебной имитационной торговой системы «Имитрейд», разработанной по заказу Московской Межбанковской Валютной Биржи (ММВБ) [11]. Уникальной особенностью данной модели является возможность точного воспроизведения реальных торговых сессий ММВБ. Процесс торговли основан на механизме двойного аукциона и в общих чертах состоит в следующем. В течение сессии участники торгов в произвольном порядке подают заявки, которые характеризуются направленностью (на покупку или на продажу), ценой и объемом. Встроенный в ИМТ торговый автомат сопоставляет заявки и генерирует сделки в строгом соответствии с правилами торгов на ММВБ [10].
Движение денежных средств при совершении транзакций
Во-первых, архитектура должна иметь строгую логическую структуру. Необходимо таким образом разделить систему на логически независимые части, чтобы каждая из подсистем могла быть разработана и оттестирована независимо от других. Данный подход называется компонентным (Component Of The Shelf или COTS).
Компоненты могут разрабатываться как в рамках данного проекта, так и покупаться у других фирм. Если на рынке существует несколько компонентов, выполняющих одну и ту же функцию, то предельно важно создавать для них некий абстрактный объектный слой, который бы позволил без труда заменять один компонент на другой. Примеров подобных компонентов могут служить BASS, FMOD и OpenAL; все три специализируются на обработке трёхмерного звука, но имеют совершенно разный внешний интерфейс.
Для того чтобы проверить, отвечает ли полученная архитектура данному требованию, разработчик должен продемонстрировать, что компоненты системы были разработаны и оттестированы независимо. Эти компоненты должны легко интегрироваться в итоговом приложении и не требовать для этого больших изменений кода. В идеале разработанные компоненты должны соединяться также легко, как если бы мы соединяли их на логическом уровне.
Архитектурное требование о сокрытии деталей реализации и доступности применения существует из-за различных возможностей, требуемых в различных приложениях. Например, в современных играх требуется высококлассная графика, реалистичная физика, человекоподобный искусственный интеллект, звук кинематографического качества. Даже если игровой разработчик использует COTS-компоненты для создания всего этого, он должен хорошо знать предметную область для того, чтобы использовать конкретный компонент корректно. Общеизвестно, что игровой разработчик вынужден быть экспертом в различных технических областях вместо того, чтобы сфокусироваться на создании собственно геймплея.
Требуемый уровень знаний предметной области будет лишь возрастать с усложнением технологий, поэтому необходимо попытаться разрешить эту проблему как можно скорее. В рамках данного проекта была предпринята попытка не только выявить общее в интерфейсах компонентов, но и спроектировать архитектуру таким образом, чтобы минимизировать объем знаний, требуемых для использования компонента, знаний о его интерфейсе и АРІ. Для того чтобы проверить, отвечает ли полученная архитектура данному требованию, разработчик должен продемонстрировать, что работа с API скрыта в самом компоненте. Программист не должен ничего знать о внутреннем устройстве компонента и о деталях предметной области для того, чтобы встроить компонент в своё приложение.
Гибкость - это основное требование к программному комплексу «FIMAS». Дано требование подразумевает, что с помощью данной системы можно моделировать совершенно разные ситуации на рынке. Например, один и тот же участник рынка может исполнять множество различных ролей одновременно или уметь пользоваться различными стратегиями, а не только одной. Гибкость позволит задавать поведение игроков как вручную через систему скриптов, либо жестко её кодировать в собственных модулях для увеличения скорости исполнения программного кода.
Также это требование подразумевает возможность легкого и безболезненного реинжениринга кода, в том числе путём замены одного программного компонента на другой.
Другими критическими требованиями к архитектуре являются масштабируемость и эксплуатационная надежность. Успешные приложения часто появляются заново с различными дополнениями и улучшенным качеством. Успешная архитектура должна легко позволять подобную эволюцию приложения и не мешать ей.
Для того чтобы проверить, отвечает ли полученная архитектура данному требованию, достаточно продемонстрировать, что архитектура с легкостью поддерживает новые или улучшенные технологии, а также позволяет легко добавлять новые функциональные схемы в приложение. Например, можно добавить систему учёта и активов участников рынка, которая позволит менять тип актива через определённых посредников за определённую цену. Или изменить новостную систему, сделать каждую новость отдельным объектом, ввести каналы распространения информации и механизмы нечёткого их трактовки. Такие достаточно глобальные изменения никак не должны повлиять на существующий код, в этом и заключается данное требование к архитектуре.
Приложение может быть очень требовательным к ресурсам, однако производительность не является главным требованием при проектировании архитектуры программ этого класса. Причина в том, что производительность в действительности играет несравнимо меньшую роль в вопросах межкомпонентного взаимодействия, чем производительность самих компонентов и подсистем. Например, в играх, обрисовка 10 миллионов треугольников одного объекта гораздо сильнее влияет на производительность, чем единичное межкомпонентное воздействие на графическую систему, вызывающее эту обрисовку. Производительность не будет игнорироваться при разработке архитектуры, даже будут введены специальные коофиценты и параметры, отвечающие за соотношение скорости и точности её работы, но требования, описанные выше, имеют более высокий приоритет и значимость.
Другие качественные параметры, такие как надежность или совместимость, также будут учитываться. Однако при проектировании программного комплекса «FIMAS» рассматриваются лишь те качественные параметры, которые могут быть проверены в заданные временные рамки. Последующая работа может включать в себя использование методов анализа с целью выбора компромиссного решения, например метод архитектурного анализа, для того чтобы установить как те или другие параметры поддерживаются данной архитектурой.
Сходство статистических характеристик изменения цен и объёма торгов
График изменения объёма торгов (рис. 3.32) начинается на высоком уровне, так как фундаментальная цена практически сразу начинает расти. Эта тенденция затухает и потом резкий пик - трейдеры все сразу избавляются от бесперспективной акции. Дальше торговля идёт вяло, пока акция вновь не становится привлекательной и трейдеры не «набрасываются» на неё. Так что такой внешний вид графика является вполне логичным.
Распределение объема торговли практически повторяет график распределения на реальных рынках ценных бумаг, что подтверждает высокую адекватность системы в целом (рис. 3.33).
В приложениях 18 и 19 представлено изменение доходов участников рынка со временем. Фундаментальные трейдеры (основные участники рьшка) держали постоянный уровень активов всё время. Несмотря на то, что цены акций постоянно менялись, они каждый раз вкладывали средства в наиболее перспективные и поэтому оставались на плаву. Даже брокерская комиссия не повлияла на уровень их активов.
Активы брокеров постоянно увеличивались, и это очень логично - ведь брокеры вели себя как простые посредники, которые зарабатывали только на комиссии и ничем не рисковали. В реальной жизни большую часть доходов брокеров обычно составляют не посреднические услуги, а собственные операции на рынке ценных бумаг. Брокеры тратят эти средства на свои повседневные расходы по найму персонала, аренду недвижимости и др.
Трейдеры-новички на протяжении всего эксперимента только теряли деньги до тех пор, пока совсем не выходили с рынка (с активами меньше 2-3 тыс. у.е.). Но не все: трейдер № 6 держался очень стабильно всё время; трейдеры № 4 и № 14 потеряли половину своих активов, но всё же сумели выжить. В реальном мире такие трейдеры приобретут опыт работы на рынке и сменят свои стратегии на более продвинутые. Также этот эксперимент подтвердил правило, что примерно 10% новичков выживают после первых несколько месяцев торговли на рынке ценных бумаг.
Очень интересным представляется график изменения активов маркет-мейкеров (рис. 3.34). Первоначально более эффективно действует первый трейдер - он сумел сыграть на массовом банкротстве новичков. Но потом он стабильно терял средства, в то время как второй маркет-мейкер, наоборот, научился эффективно их зарабатывать. Этот факт говорит о том, что очень важным является правильная настройка параметров стратегий, а также что одна и та же стратегия может оказаться эффективной или не эффективной в различных рыночных условиях. Оба этих вывода полностью применимы к реальному рынку ценных бумаг.
Эксперимент прошёл успешно. Как мы и ожидали, фундаментальные трейдеры действительно оказывают влияние на динамику котировок акций. Это происходит не потому, что итоговый курс каким-то образом рассчитывается из фундаментальной цены. В мультиагентной системе цена акции берётся из цены последней транзакции или усреднённых нескольких транзакций. Каждый виртуальный день трейдеры совершают тысячи транзакций, а объем торгов для системы из 500 трейдеров колеблется от 20 до 150 тыс. у.е. в день.
Но самое интересное в этом эксперименте то, что вместо данного метода расчёта фундаментальной цены можно было взять любой другой, например не учитывать краткосрочные обязательства компании. И трейдеры будут следовать за совершенно другой ценой. Таким образом, мы видим, что небольшие изменения в стратегии трейдеров могут существенно изменить ситуацию на рынке ценных бумаг. Это свидетельствует о том, что получившийся рынок отличается слабой эффективностью, что очень характерно для большинства реальных рынков ценных бумаг.
Также в рамках данного эксперимента надо отметить нереалистично большой спрэд (рис. 3.28, 3.29). Считаю, что он является следствием либо малого числа маркет-мейкеров, либо недостаточной проработанностью алгоритмов, по которым они принимают свои решения. В любом случае, его можно устранить при дальнейшей отладке системы; он не свидетельствует о неадекватности самой системы, скорее, о недостаточно точной её настройке.
Одной из задач исследовательской работы было расширить стандартный инструментарий трейдера с целью повышения точности прогнозов. Поэтому, с февраля по август 2008 года я вёл работы по внедрению разработанного ранее программного комплекса в систему поддержки принятия решений для трейдеров. Это стало возможным благодаря тому, что программный комплекс поддерживает систему подключаемых модулей (плагинов). С помощью них в систему можно вводить новые типы трейдеров и использовать более реалистичные алгоритмы принятия решений, не меняя исходного кода основного приложения.