Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LXV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 14 мая 2018 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Сергеева М.В. РЕАЛИЗАЦИЯ ПОДДЕРЖКИ ДИНАМИЧЕСКИХ ПАНЕЛЕЙ ЗАКАЗОВ В ТРЕЙДИНГОВЫХ ПЛАТФОРМАХ С ИСПОЛЬЗОВАНИЕМ СТАНДАРТА FIXATDL // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LXV междунар. студ. науч.-практ. конф. № 5(64). URL: https://sibac.info/archive/technic/5(64).pdf (дата обращения: 23.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

РЕАЛИЗАЦИЯ ПОДДЕРЖКИ ДИНАМИЧЕСКИХ ПАНЕЛЕЙ ЗАКАЗОВ В ТРЕЙДИНГОВЫХ ПЛАТФОРМАХ С ИСПОЛЬЗОВАНИЕМ СТАНДАРТА FIXATDL

Сергеева Марина Владимировна

магистрант, кафедра ИС, факультет ИТИП, Университет ИТМО,

РФ, г. Санкт-Петербург

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

  1. Следить за состоянием рынка в реальном времени
  2. Анализировать поступающую информацию
  3. Отправлять заказы на рынок
  4. Расширять функциональность системы с помощью пользовательских приложений

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

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

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

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

Протокол FIX (Financial Information eXchange) - протокол передачи данных, являющийся международным стандартом для обмена данными между участниками биржевых торгов в режиме реального времени.

FIXatdl (FIX Protocol's Algorithmic Trading Definition Language) – это стандарт для обмена метаинформацией, необходимой для обеспечения алгоритмической торговой деятельности на финансовых рынках. FIXatdl ресурсы предоставляются финансовыми рынками и могут содержать одно или несколько определений стратегий. В рамках определения стратегии существуют четыре основных раздела:

  1. Раздел метаданных, определяющий, к каким географическим регионам, рынкам (биржам) и классам активов стратегия применима.
  2. Параметры. Перечисляются параметры, используемые стратегией, их типы данных, ограничения (например, минимальные и максимальные значения) и как они должны быть представлены в полученном FIX сообщении
  3. StrategyLayout, определяющий элементы управления пользовательским интерфейсом, которые будут использоваться для этой стратегии, как они должны быть размещены на экране и как они сопоставляются с параметрами, описанными в предыдущем разделе документа
  4. Раздел StrategyEdit, в котором описываются правила проверки, которые должны применяться к стратегии

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

FIXatdl ресурсы поставляются в виде файлов с расширением FIXatdl, в формате, основанном на XML. FIX trading community [1] предоставляет XML схему (XSD) для языка FIXatdl. XSD — это язык описания структуры XML документа. Его также называют XML Schema. При использовании XML Schema XML парсер может проверить не только правильность синтаксиса XML документа, но также его структуру, модель содержания и типы данных [2].

Такой подход позволяет объектно-ориентированным языкам программирования легко создавать объекты в памяти, что, несомненно, удобнее, чем разбирать XML как обычный текстовый файл. Кроме того, XSD есть встроенные средства документирования, что позволяет создавать самодостаточные документы, не требующие дополнительного описания.

Для создания объектов, определенных в FIXatdl ресурсе, можно использовать: сгенерированные из XML-схемы с помощью инструмента xsd.exe классы и класс XmlSerializer [3] (из стандартной библиотеки классов .NET Framework).

Предлагаемая архитектура модуля импорта ресурсов представлена на рисунке 1. Центральное место в предлагаемой архитектуре занимает класс FIXatdlResourceManager, который принимает и обрабатывает поступающие FIXatdl ресурсы, а также сохраняет импортированные параметры и стратегии для каждого ресурса с помощью класса FIXatdlResourceData.

 

Рисунок 1. Диаграмма классов модуля импорта FIXatdl ресурсов

 

Этот класс производит разбор ресурсов и создает корректные колонки, перечисления и отображения данных в системе. Создаваемые объекты отличаются от обычных объектов системы – стандартные колонки, данные и перечисления (например, поставляемые с приложением или создаваемые пользователем), хранятся на сервере и не удаляются между подключениями клиента. Однако FIXatdl колонки и другие объекты заново создаются каждый раз при запуске приложения или при добавлении ресурса, и хранятся только в памяти Front-end приложения и удаляются при выключении приложения.

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

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

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

Для оповещения заинтересованных классов о добавлении новых FIXatdl метаданных в ExtendedMetadataManager используется шаблон проектирования «Наблюдатель» [4], реализованный с помощью библиотеки Reactive Extensions [5]. В отличии от использования стандартных методов (с помощью подписки на события, например, добавления новой колонки), классы библиотеки Reactive Extensions позволяют настраивать обработку событий на конкретном потоке приложения. Кроме того, данная технология позволяет обрабатывать как события, поступающие после подписки на обновления, так и все предыдущие события (Snapshot). Возможность обработки событий на определенном потоке особенно важна для Front-end приложений трейдинговых платформ, так как для реализации пользовательского интерфейса часто используется несколько потоков [6]. Кроме того, при разработке ExtendedMetadataManager предлагается использовать шаблон проектирования «Одиночка» [4] для обеспечения целостности данных.

С помощью технологии Windows Forms [7], представленной компанией Microsoft, было успешно разработано и внедрено большое количество Windows-приложений, однако в настоящее время компоненты библиотеки Windows Forms перестали обеспечивать прямую поддержку появившихся технологий построения приложений, и, кроме того, мало поддаются настройке и изменениям из-за тесной взаимосвязи с частями внутреннего устройства Windows. [8] Недостатки библиотеки Windows Forms послужили предпосылками для создания альтернативного решения на базе платформы .NET Framework - Windows presentation foundation.

Windows presentation foundation (WPF) – это система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем [9, 10]. Технология WPF обладает широкими возможностями для программирования компьютерной графики. В отличии от технологии Windows Forms, WPF включает новую модель построения пользовательских приложений (в основе WPF лежит мощная инфраструктура, основанная на DirectX). DirectX использует аппаратное ускорение графики, это означает возможность применения развитых графических эффектов без платы за это производительностью. Благодаря масштабируемости интерфейса, WPF приложение отображается одинаково на мониторах с любым расширением. В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая язык XAML, элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление [9]. Сравнение двух технологий по некоторым показателям представлено в Таблице 1.

Таблица 1.

Сравнение технологий разработки графического интерфейса

 

Windows Forms

WPF

Графическая технология

GDI/GDI+

DirectX

Масштабируемость интерфейса

Нет

Есть

Перерисовка графики

Требуется

Не требуется

 

Таким образом, в качестве технологии для разработки модуля динамических панелей заказов с использованием стандарта FIXatdl предлагается использовать технологиюWPF.

 

Список литературы:

  1. FIX trading community// [Электронный ресурс]. URL: https://www.fixtrading.org/standards/fixatdl/ (дата обращения 25.12.2017)
  2. Thompson, H. S., Beech, D., Maloney, M., & Mendelsohn, N. XML schema part 1: Structures, 2001
  3. XmlSerializer // [Электронный ресурс]. URL: https://msdn.microsoft.com/ru-ru/library/system.xml.serialization.xmlserializer(v=vs.110).aspx (дата обращения 20.12.2017)
  4. Гамма, Эрих, Хелм Ричард, Джонсон Роберт, Влиссидес Джон. Приемы объектно-ориентированного проектирования. //"Издательский дом Питер", 2013.
  5. Reactive Extensions Class Library// [Электронный ресурс]. URL: https://msdn.microsoft.com/en-us/library/hh242986(v=vs.103).aspx (дата обращения 20.12.2017)
  6. Petzold, C. Programming Microsoft Windows with C# // (pp. 89-98). Redmond, Washington: Microsoft Press, 2002
  7. Windows Forms // [Электронная библиотека компании Microsoft]. URL: http://msdn.microsoft.com/enus/library/dd30h2yb.aspx (дата обращения 21.11.2017).
  8. Малдрик А.В., Азимова С.Т. Об особенностях разработки пользовательского интерфейса средствами Microsoft Presentation Foundation // Сборник материалов научно-практической конференции профессорско-преподавательского состава Сыктывкарского лесного института по итогам научно-исследовательской работы в 2011 году. 2012. С. 286-289.
  9. Введение в WPF // [Электронная библиотека компании Microsoft]. URL: https://msdn.microsoft.com/ru-ru/library/mt149842.aspx (дата обращения 10.11.2017)
  10. Мак-Дональд Мэтью. WPF. Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0.// – М.; СПб.; Киев, 2013. – 1015 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий