Это серверная часть системы биржевой торговли.
Сервер выполняет следующие функции:
- накопление исторических данных по биржевым торгам
Исторические данные загружаются по расписанию из внешнего источника. Данные включают в себя котировки вплоть до последней прошедшей торговой сессии и содержат как тиковую информацию (данные по каждой сделке), так и информацию по более крупным таймфреймам.
- получение и обработка данных текущей торговой сессии в режиме реального времени
Текущие данные по биржевым сделкам сервер получает от компонента Leech в режиме реального времени. Обмен данными происходит по протоколу WebSocket. Далее данные распределяются по другим модулям сервера - модулю отслеживания позиций и плагинам.
- отслеживание позиций по бумагам в реальном времени (время открытия, цена, размер позиции, текущая цена и текущая прибыль/убыток)
Этот модуль хранит данные об открытых позициях, а также получает котировки в реальном времени. Таким образом формируется таблица, которая содержит текущую информацию по открытым позициям.
- список закрытых позиций (цена и время открытия, размер позиции, цена и время закрытия, итоговая прибыль/убыток)
Таблица закрытых позиций пополняется новыми записями в момент закрытия позиции. Если позиция закрывается не полностью, происходит дробление позиции - появляется новая закрытая позиция, а у открытой позиции корректируется количество.
- механизм плагинов (плагины имеют доступ как к историческим данным, так и к данным текущей торговой сессии в реальном времени)
Сервер предоставляет специальный программный интерфейс для работы плагинов. Плагин может получать как исторические данные о котировках, так и текущие данные в реальном времени. Далее, плагин может реализовать различные алгоритмы обработки информации, например, организовать автоматическую торговлю. Плагины разрабатываются в виде отдельных модулей, подключаются к серверу и могут централизованно им управляться.
- работа Telegram-бота, который в реальном времени выдает информацию по изменению текущих открытых позиций при изменении цен
Отдельный модуль сервера поддерживает работу Telegram-бота для информирования об изменении открытых позиций. При помощи бота можно получить список текущих позиций и информацию о них - дату/время открытия, цену открытия, размер позиции в бумагах/лотах, текущую цену, текущую прибыль/убыток. Также при движении какой-либо позиции вверх или вниз на установленный шаг (по умолчанию это 0.5%, шаг можно настраивать) бот присылает пользователю оповещение.
Для администрирования сервера помимо Web-интерфейса используется также CLI (утилита pulxer-cli.exe). При помощи CLI можно выполнять такие действия, как управление пользователями, настройка и выполнение фоновой загрузки исторических данных и т.д. В дальнейшем большинство действий будет перенесено в Web-интерфейс.