Будем учиться подключать OsEngine к боевому серверу Мосбиржи по протоколам FIX и FIX/FAST для фондового рынка на примере DMA АЛОР брокер.
1. Что делаем на сайте брокера.
1. Подключаем услугу DMA (Direct Market Access), или по-русски прямой доступ к рынкам.
Не у всех брокеров такая услуга доступна. О наличии лучше сразу спросить у специалистов техподдержки. Обычно прямой доступ предоставляют брокеры с уклоном в «большую профессиональность». Например, у АЛОРа прямой доступ есть, поэтому будем рассматривать на их примере.
У прямого доступа есть два основных варианта подключения и размещения торгового терминала:
1. Торгуем через интернет прямо со своего рабочего компьютера или с арендованного удаленного сервера. В случае с FIX/FAST, работающем на технологии UDP, это весьма плохая идея, так как в этом протоколе нет контроля доставки пакетов, и часть данных будет теряться. Даже если у вас хорошая связь, и теряется 0.5-1% пакетов, то это все равно почти гарантированно сведет на нет смысл от прямого подключения. Если вы все-так выберете этот способ, вам понадобится дополнительно настройка VPN (этот не запрещен) для подключения к сети Мосбиржи/брокера.
2. Второй вариант – торгуем с сервера, размещенного в колокации Мосбиржи. То есть компьютер физически стоит в «соседней комнате» от серверов биржи. Это обеспечивает практически нулевой уровень потерь пакетов (они летают в пределах одной подсети) и быструю связь с FIX-сервером для управления торговыми заявками. Если коротко, то это и есть нужный нам вариант.
Что нам в итоге нужно:
1. Заключенный договор на DMA – брокер просит открыть отдельный договор для этого. В личном кабинете у вас появятся новые счета для фондового рынка и для срочного. Здесь мы рассматриваем только фондовый.
2. Арендованная виртуальная машина в колокации Мосбиржи. Брокер предоставляет такую машину. Чем более крутые характеристики, тем это дороже стоит. В итоге вам пришлют адрес для подключения и пароль.
3. Торговые логины. Вы должны сообщить брокеру, что вам требуется подключение по FIX и FAST. Это платно, но большинство брокеров, в том числе и АЛОР, продадут вам эти логины по цене, по которой их предоставляет Мосбиржа. На сегодняшний день это 4000 рублей/месяц за FIX. Полную информацию по цене всех логинов можно посмотреть на сайте Мосбиржи.
4. Также по почте придет остальная нужная информация:
a. Торговый логин (это как раз тот для FIX) и пароль к нему.
b. Код клиента (в случае АЛОРа это номер счета в ЛК вида D124567).
c. Номер торгового счета вида L00-***1234567
2. Что делаем на сервере.
1. Запускаем подключение к удаленному рабочему столу и вводим предоставленные брокером реквизиты.
2. Копируем папку с OsEngine на рабочий стол удаленного сервера (или куда удобно).
3. Запускаем терминал.
3. Подключаем osengine.
1. В главном меню идём в Роботы Light и переходим в «Сервера подключения»:
2. Выбираем подключение «MoexFixFastSpot».
Откроется окно для подключения к Мосбирже по протоколам FIX/FAST:
Вводим данные:
1. Ip-адрес MFIX Trade сервера (с сайта Мосбиржи, это на сегодня правильный сервер);
2. Порт MFIX Trade сервера (с сайта Мосбиржи, это на сегодня правильный сервер);
3. FIX-идентификатор MFIX Trade сервера (с сайта Мосбиржи, это на сегодня правильный сервер);
4. Логин для MFIX Trade сервера (это тот, что прислал в письме брокер);
5. Пароль для MFIX Trade сервера (пароль, который прислал в письме брокер);
6. MFIX Trade счет (из письма брокера);
7. Код клиента (в случае АЛОРа это номер счета вида D12345);
8. Указываем папку, в которой лежат настройки для FIX/FAST UDP Multicast сервера;
8.1. Заходим по адресу https://ftp.moex.com/pub/FAST/ASTS/ - здесь Мосбиржа разместила все инструкции и настройки для подключения.
8.2. Из папки config скачиваем xml файл config_production.xml.
8.3. Переименовываем config_production.xml в config.xml и сохраняем в папку, например, Alor_FIXFAST_Config – эту папку мы и будем указывать в качестве места для хранения конфигурации.
8.4. Из папки template скачиваем файл шаблонов FAST-сообщений самую последнюю версию.
На картинке это FIX50SP2-2021-Dec.xml.
8.5. Переименовываем этот файл в template.xml и кладем в нашу папку конфигурации.
8.6. В результате мы получили два файла конфигурации в одной папке:
Итак, выбираем папку Alor_FIXFAST_Config в качестве параметра в настройках коннектора.
9. Указываем лимит количества операций в секунду для нашего логина. По умолчанию это 30 операций в секунду.
10. Новый пароль для сервера MFIX Trade – задаем, только если хотим изменить пароль. Оставляем пустым в обычной ситуации. Если брокер прислал вам пароль вида «password», то торговый сервер при попытке подключения сразу скажет, что пароль истек и надо установить новый. Так что при первом подключении рекомендуется сразу делать новый пароль.
11. Разделитель для тега 11. У разных брокеров могут быть разные требования для «тега 11». Например, АЛОР просит, чтобы тег 11 был равен «код_клиента/код_клиента» для корректной работы. У других брокеров может быть по-другому. Поэтому для АЛОРа этот параметр должен быть «/».
12. Указывать в теге 11 номера заявок. Как и в предыдущем пункте, этот параметр нужен для настройки тега 11. В АЛОРе не нужно указывать в этом теге номера заявок, поэтому по умолчанию ставится Fasle (выкл).
13. Skip trades with same price – False (выкл), так как сделки с одинаковой ценой вполне возможны в реальном мире.
Жмём на кнопку «Подключить», и коннектор начинает подключение!
Включаем любого робота и торгуем!
ВАЖНЫЕ НЮАНСЫ.
1. Мосбиржа определяет «стандартный» режим подключения к торгам. Это когда мы подключаемся до начала торгов. Если подключение происходит после начала торгов, то у коннектора может занять весьма продолжительное время (до 10 минут) для получения всех пропущенных с начала торгов рыночных данных.
2. В коннекторе нет возможности получить информацию о позициях по деньгам и ценным бумагам, подключение MFIX не обладает этой информацией.
3. В коннекторе нет возможности запросить рыночные данные за прошедшие периоды. То есть историю сделок до текущего торгового дня можно получить, только если вы ее сохранили сами (OsEngine сохраняет историю сделок в файл на диске).
Удачных алгоритмов!
Поддержка OsEngine: https://t.me/osengine_official_support
Комментарии