Выкладываю свою схему реализации (ТЗ) серверного обработчика потока.
Задача заключается в следующем:
1. Создать серверный сервис, получающий поток с запада (Rithmic) и востока (Tranzaq) по нескольким (4-5) инструментам;
2. Сервис будет предоставлять через сеть (интернет) котировки (не обязательно) и значения индикаторов для локальных терминалов;
3. Локальные терминалы могут быть любого производителя, имеющие возможность писать пользовательские индикаторы, обращающиеся за данными индикаторов на сервер;
Преимущества очевидны — собственная история индикаторов, нет необходимости писать свой терминал, нет зависимости от брокера и платформ.
Поток, с двух коннекторов должен записываться в базу. Формат должен быть оптимизирован для снятия нагрузки с сервера и ускорения выдачи данных по запросу.
Формат записи следующий:
Такой формат тестировался в авторском терминале Com X Trader.
Соответственно, от программиста требуется документация и пример для подключения индикаторов внешних терминалов к серверной базе индикаторов. Алгоритмы индикаторов, как и формат потока, изложены на скрине.
Необходим простенький интерфейс для работы с коннекторами (ввод логина/пароля), выбор инструмента для обработки и записи, лог событий, настройки соединений и интерфейс управления базой.
Пример использования:
Терминал МТ4-5: пишем индикатор обращающийся по сети (или локально) к базе за основными переменными — Остаток – Disbalance (D), снос – Shift (S), большой маркет – Big Volume (BV), Так же можно работать и с Quik, Ninja Trader, …
Структурная схема работы серверного варианта обработчика потока: