Содержание к диссертации
Введение
ГЛАВА 1. Информационное обеспечение аналитической системы участника финансового рынка . 6
1.1. Информационное обеспечение процесса принятия решений на финансовом рынке. 6
1.2. Проблемы автоматизации задач анализа в инвестиционных компаниях . 13
1.3. Инструментальные средства разработки информационных систем 19
1.4. Выводы. 21
ГЛАВА 2. Инструментальный метод обеспечения аналитических модулей достоверной информацией 25
2.1. Функциональная модель конвертера. 25
2.2. Принципы построения конвертера. 35
2.2.1 Настройка словаря. 38
2.2.2. Задание семантических связей. 46
2.2.3. Загрузка данных из внешних систем . 50
2.2.4. Преобразование данных. 54
2.2.5. Настройка выгрузки. 57
2.2.6. Передача данных в аналитическую систему. 61
2.2.7. Просмотр отчетов. 62
2.2.8. Общие требования. 62
2.3. Выводы 66
ГЛАВА 3. Структура хранилища данных конвертера и интерфейсная оболочка пользователя . 69
3.1. Структура базы хранилища данных конвертера. 69
3.2. Архитектура приложения. 72
3.3. Сценарии работы в программе. 73
3.3.1. Создание информационной единицы . 73
3.3.2. Создание семантической связи. 74
3.3.3. Настройка процедуры загрузки данных. 76
3.3.4. Принудительная загрузка. 76
3.3.5. Принудительный расчет. 77
3.3.6. Поиск ошибок в данных. 78
3.4. Пользовательский интерфейс программы. 79
3.4. 1. Создание информационных единиц. 80
3.4.2. Создание семантических связей. 82
3.4.3. Настройка таймера. 83
3.4.4. Принудительная загрузка данных. 83
3.4.5. Принудительный расчет. 84
3.4.6. Отчет-схема о семантических связях . 85
3.4.7. Отчет по данным 86
3.4.8. Отчет по проверке данных 87
3.5. Определение текущей позиции. 88
3.5. Выводы. 91
Заключение 92
Список использованной литературы 94
Приложения. 100
- Проблемы автоматизации задач анализа в инвестиционных компаниях
- Загрузка данных из внешних систем
- Создание информационной единицы
- Отчет-схема о семантических связях
Введение к работе
В условиях современной конкурентной борьбы на финансовом рынке выигрывает тот, кто принимает правильные решения за максимально короткий срок. В то же время, качество принятого управленческого решения напрямую зависит как от оперативности получения, так и от объема используемой для принятия решения информации, поскольку, чем больше объем исходной информации, тем меньше неопределенность в принятии решения.
В свою очередь, объем информации, необходимой для своевременного анализа, планирования и контроля проводимых операций, зависит как от величины периода, за который информация была получена, так и от разнообразия используемой информации.
Успешная деятельность на финансовом рынке в настоящее время невозможна без применения информационных технологий, которые, с одной стороны, предоставляют средства регистрации и хранения больших объемов информации, а с другой стороны позволяют проводить сложные расчеты за короткое время. Ключевое значение в настоящий момент приобретают методы, позволяющие своевременно обрабатывать исходную и получать результирующую информацию в объеме и в разрезе, необходимом для принятия управленческого решения.
В компаниях - участниках рынка ценных бумаг, FOREX, рынка драгоценных металлов и пр. существует ряд специфичных проблем, связанных с автоматизацией аналитической работы. На финансовом рынке принятие решений в значительной степени осуществляется с использованием методов финансовой математики, которые положены в основу процедур оценки стоимости рыночных активов, разработки торговой стратегии и оценки финансовых результатов деятельности. Эти методы формируются в виде аналитических модулей поддержки решений. Их практическое применение
б предполагает использование специализированных программных продуктов1 для осуществления расчетов на больших объемах исходной информации (данные программных модулей информационных систем участников финансового рынка, котировки финансовых инструментов, курсы валют, волатильности и т.п.). Разнородность источников и большие объемы информации в условиях ограниченного времени принятия решений на финансовом рынке порождают проблему обеспечения достоверности и скорости передачи данных в аналитические модули, а также отрицательно сказываются на возможности быстрого нахождения источников ошибок в передаваемой информации.
В настоящее время на рынке программных продуктов предлагаются средства гарантированной доставки информации, которые позволяют передать информацию от источника к приемнику без искажений. Но, если информация была искажена на стороне источника данных, то ошибки передаются в приемник данных и не могут быть выявлены программными средствами. Задача локализации ошибки возлагается на аналитика, который, однако, не располагает ни достаточным количеством времени, ни инструментальными средствами для ее решения. Пропущенная ошибка может привести к неправильно принятым управленческим решениям, что в дальнейшем отразится на результатах деятельности компании. Таким образом, используемые в настоящий момент средства гарантированной доставки информации не снижают операционные риски, обусловленные ошибками, возникающими в источнике данных.
В связи с этим, существует насущная необходимость в разработке инструментальных методов передачи информации, позволяющих снизить подобные риски и повысить достоверность данных, передаваемых в аналитический модуль информационных систем участников финансового
При дальнейшем рассмотрении будем называть такие программные продукты - аналитическими модулями информационных систем участников финансового рынка или же просто аналитическими модулями.
рынка. Эти разработки направлены на повышение качества принимаемых решений при проведении операций на финансовом рынке.
В настоящей работе предлагается подход к передаче данных в аналитический модуль, основанный на классификации информации в процессе ее передачи. В первой главе рассмотрены существующие подходы к обеспечению аналитического модуля данными, проведен их анализ и выявлены основные нерешенные проблемы. Во второй главе приведена функциональная модель, архитектура и шаблоны классов конвертера данных. В третьей главе рассматриваются аспекты практического применения архитектуры конвертера, такие как структура базы данных конвертера и интерфейсная оболочка пользователя.
Проблемы автоматизации задач анализа в инвестиционных компаниях
В компаниях - участниках рынка ценных бумаг, FOREX, рынка драгоценных металлов и пр. существует ряд специфичных проблем, связанных с автоматизацией. Далеко не везде применяются программные продукты для ведения внутреннего учета, и не всегда внутренний учет позволяет получить информацию для анализа в необходимой детализации ([38]). Результатом является то, что отчетные и аналитические модули часть информации для расчетов (или всю, в случае отсутствии автоматизированного внутреннего учета) получают напрямую из базы данных сделок. Наряду с учетной информацией используются данные из внешних источников рыночной информации (котировки, курсы, волатильности). При большом объеме проводимых операций это сильно сказывается на скорости работы, в силу того, что возрастает нагрузка на аппаратное обеспечение. Компаниям, действующим на рынках FOREX или ценных бумаг приходится принимать решения в условиях нехватки времени и «медлительность» аналитической системы будет являться серьезным недостатком. Разнородность источников и большие объемы информации в условиях ограниченного времени принятия решений на финансовом рынке порождают проблему обеспечения достоверности и скорости передачи данных в аналитические модули, а также отрицательно сказываются на возможности быстрого нахождения источников ошибок в передаваемой информации.
В настоящее время на рынке программных продуктов предлагаются средства гарантированной доставки информации, которые позволяют передать информацию от источника к приемнику без искажений. Но, если информация была искажена на стороне источника данных, то ошибки передаются в приемник данных и не могут быть выявлены программными средствами. Задача локализации ошибки возлагается на аналитика, который, однако, не располагает ни достаточным количеством времени, ни инструментальными средствами для ее решения. Пропущенная ошибка может привести к неправильно принятым управленческим решениям, что в дальнейшем отразится на результатах деятельности компании. Таким образом, используемые в настоящий момент средства гарантированной доставки информации не снижают операционные риски, обусловленные ошибками, возникающими в источнике данных.
В случае, когда для анализа используются данные напрямую из базы данных сделок, начало проведения новых операций потребует доработки аналитического модуля даже в том случае, когда методологически возможно использование уже работающих моделей, в силу привязки последних к конкретным источникам данных.
Еще одна серьезная проблема такой архитектуры - отсутствие классификации и структурирования данных. В случае возникновения необходимости проверки достоверности информации, выдаваемой в отчетах, сделать это весьма затруднительно. Модели используют как информацию о сделках и их статусах прохождения, так и информацию из внешних источников (курсы, котировки). Количество сделок велико (например на рынке FOREX число следок в день может превышать тысячу), как и разнообразны типы заключаемых сделок. Источников котировок может быть несколько, так что найти источник искажения будет затруднительно.
Внедрение системы внутреннего учета может улучшить ситуацию, но не снимет проблему полностью. Ведь основная задача внутреннего учета регистрация и агрегирование информации о сделках и их состоянии, а этого может не хватить для сложной аналитической системы. Также нерешенной остается проблема оптимизации подготовки информации из внешних источников.
Рассмотрим проблему отсутствия структурированности данных на примере передачи данных в аналитический модуль. Для ее иллюстрации обратимся к задаче расчета торгового P&L (финансового результата) по сделкам на рынке FOREX. В целях упрощения рассмотрения взята информация по части сделок только по одной валютной паре EUR/USD за один день. Исходными данными для расчета являются данные по сделкам и рыночные котировки. Часть данных хранится в системе исполнения сделок и операций (Таблица 1), часть в системе заключения сделок (Таблица 2), часть получается из внешних источников (котировка на дату расчета отчета).
Загрузка данных из внешних систем
В условиях современной конкурентной борьбы выигрывает тот, кто принимает правильные решения за максимально короткий срок. Для принятия правильного решения, необходимо минимизировать возможную неопределенность среды принятия решения. Информацию, используемую при принятии решения, можно подразделить на внешнюю (получаемую из внешней среды и обладающую максимальной степенью неопределенности) и внутреннюю (получаемую непосредственно в компании и, при отлаженном учете, максимально достоверную).
Ключевое значение приобретают методы моделирования, позволяющие обработать информацию и на основании результата принять решения. Модели, использующие внешнюю информацию характеризуются сложностью проведения расчетов. Модели, использующие внутреннюю информацию менее сложны для расчетов, но требуют аккуратно собранной и достоверной информации в необходимой детализации.
Таким образом, эффективное использование любых моделей в процессе управления предприятием невозможно без применения информационных технологий, которые, с одной стороны, предоставляют средства регистрации и хранения больших объемов информации, а с другой стороны позволяют проводить сложные расчеты за короткое время.
Современные методологии моделирования позволяет создавать сложные системные и глобальные модели, характеризующиеся многомодельностыо и наличием формализованных и неформализованных элементов. Моделирование в экономике позволяет использовать сложные модели в прогнозировании и принятии решений. Даже такая сложная и, казалось бы, непостижимая система как рынок (еще Адам Смит говорил о «невидимой руке», не поддающейся объяснению) сейчас моделируется с помощью систем, основанных на использовании свободных агентов (методология АСЕ).
Учет в компании - как единственное средство сбора и группировки информации, в своем развитии пришел к сложным и многообразным видам учета, служащим разным целям. На настоящий момент, в мире существуют такие основные виды учета, как: управленческий учет, служащий для информационной поддержки принятия решений; финансовый учет для внешних пользователей, налоговый учет, депозитарный и внутренний учет.
Компании, действующие на финансовых рынках, используют сложные методы, для которых необходимо проведение сложных расчетных процедур на больших объемах разнородной информации. Эти методы формируются в виде аналитических модулей поддержки решений. Их практическое применение предполагает использование специализированных программных продуктов для осуществления расчетов на больших объемах исходной информации (данные программных модулей информационных систем участников финансового рынка, котировки финансовых инструментов, курсы валют, волатильности и т.п.). Разнородность источников и большие объемы информации в условиях ограниченного времени принятия решений на финансовом рынке порождают проблему обеспечения достоверности и скорости передачи данных в аналитические модули, а также отрицательно сказываются на возможности быстрого нахождения источников ошибок в передаваемой информации.
Как было показано выше, необходим настраиваемый конвертер для сбора и первичной обработки (агрегирования) информации, используемой аналитическим модулем, который позволит повысить достоверность передаваемых данных. Конвертером является средством информационной интеграции систем учета и аналитического модуля. В процессе передачи информация должна группироваться и преобразовываться. Преобразование осуществляется в соответствии с тезаурусом, «словарем» которым оперируют используемые в аналитическом модуле модели. При этом учетная и аналитическая системы остаются изолированными друг от друга. Это позволяет корректнее управлять потоком информации из одной системы в другую, то есть дает гарантию того, что передана достоверная информацию в необходимом виде.
Основные преимущества такого подхода - повышение достоверности информации и адаптивность. По «словарю» легче отслеживать возможность возникновения ошибок при изменении в информационных системах -источниках данных (системы ввода сделок, торговые площадки). Обладая «словарем» аналитической системы всегда можно определить какая информация понадобится при изменении расчетных процедур, а какая уже есть в системе. Также, при добавлении новых типов сделок и новых финансовых инструментов есть возможность использовать существующие расчетные процедуры, что обеспечивает адаптивность и настраиваемость системы.
Современный уровень проектирования и разработки программных средств позволяет на основе формализованной архитектуры (шаблона) сгенерировать код на языке высокого уровня. Таким образом, при наличии шаблона средства интегрирования систем учета и моделирования можно в короткий срок разработать приложение, реализующее описанный конвертер. Разработке такой архитектуры конвертера между источниками информации и аналитической системой для инвестиционных компаний и посвящена настоящая работа.
Создание информационной единицы
Все таблица базы данных соответствуют классам, определенным во второй главе со следующими допущениями: 1. Как внешние, так и внутренние информационные единицы хранятся в одной таблице. Для их различения служит специальное поле типа. 2. Все данные хранятся в одной таблице. При ее заполнении для каждой конкретной записи заполняется только одно поле значения, в зависимости от типа данных. 3. Выгрузка данных во внешнюю систему не предполагается (аналитическая система сама будет забирать информацию их хранилища конвертера) и поэтому таблицы с сохраненными настройками и критериями выгрузки в базе нет. Информационные единицы хранятся в таблице [IE]. В поле [Name] содержится наименование единицы, в поле [Exp_Flag] - флаг выгрузки. Поле [Туре] указывает на тип информационной единицы (внешняя/внутренняя). Также, записи таблицы могут содержать ссылку на запрос, хранящуюся в поле [ID_Query]. Ссылка указывает на таблицу запросов [Queries], Таблица [Queries] служит для хранения запросов. В поле [Source] содержится имя процедуры загрузки внешней библиотеки процедур. Семантические связи хранятся в таблице [Semantics]. Каждая запись состоит из трех ссылок на информационные единицы из таблицы [IE]. В полях [IE_ID_Entity] и [IE2_ID_Entity] хранятся ссылки на влияющие информационные единицы, в поле [IDEntity] - на зависимую. Поле [Semantics] содержит имя расчетной процедуры внешней библиотеки, реализующей семантическую связь. Все внешние данные загружаются в таблицу [Data]. Каждое значение записывается в определенное поле в соответствии с типом значения. Также обязательно заполняется дата значения в поле [Date_Value]. В поле [Processed] проставляется дата, когда значение было обработано. Под обработкой понимается либо использование значения в перерасчете, либо выгрузка во внешние системы. Поле работает также в качестве флага, который указывает, было ли обработано значение или нет. Каждая запись ссылается на информационную единицу из таблицы [IE].
Настройка таймера хранится в таблице [Timers]. В поле [Timer] содержится периодичность, с которой осуществляется загрузка данных, а поле [Туре] указывает, активен таймер или нет. В таблице [Errors] регистрируются все ошибки, зафиксированные программой конвертера. Указываются: время ошибки, в поле [Error_Date], и код ошибки, в поле [Error_Code].
Приложение реализовано в соответствии с шаблоном конвертера, описанным во второй главе. Модули системы реализованы следующим образом:
Все расчетные процедуры и процедуры загрузки данных реализованы как внешние библиотеки. Одна библиотека отвечает за преобразование данных, вторая за загрузку данных. Каждая из библиотек содержит функцию String GetName(), которая возвращает массив строк, содержащий перечень имен функций реализованных в библиотеке.
При загрузке данных, метод «Загрузить» объекта класса «Запрос», осуществляет вызов функции из библиотеки, имя которой равно значению атрибута «Источник». Все функции библиотеки, отвечающей за загрузку данных, имеют одинаковый набор параметров вызова. Параметры - дата и время последней загрузки. Возвращает функция массив данных, которые появились в регистрирующей системе после даты последней загрузки вместе с их датами и временем появления в регистрирующей системе. При загрузке данных, метод «Загрузить» объекта класса «Запрос», в цикле сохраняет полученные значения.
При преобразовании данных, метод «Осуществить связь» объекта класса «Семантическая связь» последовательно в цикле передает тройки значений двух влияющих единиц и одной зависимой в расчетную функцию, имя которой содержится в атрибуте «Семантика». Все функции библиотеки, отвечающей за преобразование данных, имеют одинаковый набор параметров вызова. Параметры - значения влияющих и зависимой единиц. Возвращает функция значение, которое было получено в результате расчета. Метод «Осуществить связь» объекта класса «Семантическая связь» сохраняет полученное значение в хранилище.
Отчет-схема о семантических связях
На форме предоставляет возможность выбрать нужный отчет, и после нажатия на кнопку «Запустить проверку» посмотреть его результат. В приведенном примере реализации конвертера реализованы два отчета для проверки данных. Первый отчет показывает все ошибки, зарегистрированные при загрузке данных. Второй - показывает все значения, которые были загружены, но не обработаны объектом класса «Преобразователь».
Форма реализует use-case «Просмотр отчетов». Форма оперирует объектами классов «Информационная единица», «Внешняя ИЕ» и «Внутренняя ИЕ».
В настоящем разделе рассмотрен пример практического применения конвертера для расчета текущей позиции. Источником информации служит учетная система - в ней содержится база сделок и их статусы, а также котировки по инструментам и курсы валют, получаемые из системы REUTERS. Для задачи определения текущей позиции на рынке акций в реализованном конвертере предусмотрены следующие информационные единицы:
Между информационными единицами установлены следующие семантические связи: текущая позиция по инструменту рассчитывается как наличная позиция, умноженная на котировку. Реализуется это процедурой int CalcPosition(string Ш1, string Ш2, string IU3), которой передаются в качестве параметров наименования влияющих единиц (наличной позиции и котировки) и зависимой единицы (текущей позиции). Результатом работы процедуры являются записи в базе хранилища интерфейса, содержащие рассчитанные значения зависимой единицы.
Аналитический модуль забирает информацию из хранилища интерфейса самостоятельно. Полученные данные используются как для отчетов по текущей позиции, так и для расчета финансового результата и контроля лимитов. В настоящей главе были рассмотрены основные аспекты практического использования шаблона конвертера для связи регистрирующих информацию систем и аналитической системы - структура хранилища конвертера и интерфейсная оболочка пользователя. Время разработки приложения было сокращено за счет проектирования конвертера с помощью CASE-средств: Rational Rose компании IBM. PowerDesigner DataArchitecht компании Sybase Inc. Модель базы данных была экспортирована в SQL-скрипт для создания базы данных. На основе готовых моделей Rational были сгенерированы заголовочные файлы с описанием классов на языке высокого уровня C++, которые были потом включены в проект C++ Builder. Разработка приложения свелась к реализации пользовательского интерфейса, который разрабатывался в соответствии с use-case шаблона. Также были реализованы процедуры загрузки и преобразования данных. 1. В настоящей работе разработан инструментальный метод, позволяющий повысить достоверность информации, передаваемой в аналитический модуль информационных систем участников финансового рынка. 2. Сформулированы основные требования к работе инструментального средства (конвертера данных), реализующего разработанный метод, и создана его функциональная модель. Конвертер загружает данные из всех внешних источников информации для аналитической системы, группирует их в соответствии с системой понятий аналитического модуля (информационными единицами), производит преобразование данных в соответствии с заданными правилами (семантическими связями) и выгружает данные в аналитическую систему. 3. Разработана архитектура конвертера и библиотека шаблонов классов для реализации этой архитектуры. Работа конвертера осуществляется через взаимодействие объектов классов информационных единиц, семантических связей, запросов к внешним источникам данных и утилит комплексной загрузки, обработки и передачи данных. 4. Разработана структура хранилища конвертера для хранения передаваемой информации и настроек конвертера. Реализовано хранилище как структура таблиц реляционной базы данных. Набор таблиц и связи между ними соответствуют иерархии классов шаблона конвертера. 5. Разработана интерфейсная оболочка для организации работы финансового аналитика с конвертером. Набор экранных форм позволяет выполнять сценарии работы в программе, необходимые для настройки и мониторинга работы конвертера. 6. Разработана схема связи систем, которая может быть использована не только для обеспечения информацией аналитических систем. Подобная архитектура и классы могут быть использованы при решении задач, где необходимо передавать данные между модулями, реализующими разную функциональность на одной и той же информации, например для связи складской системы и системы нормативов производства с системой планирования закупок. 7. Разработанный метод решает текущие проблемы передачи данных в информационных системах участников финансового рынка, а также обладает потенциалом к дальнейшему развитию и использованию в решении разнообразных задач организации связи между информационными системами.