Гайд по ASTS Bridge

Гайд по ASTS Bridge

Это гайд и инструкция по ASTS Bridge. В этой статье вы найдёте всё что нужно знать об этом протоколе. В нём вы найдёте ответы на то как заказать тестовое подключение к торгам. Как правильно работать с этой системой и какие технологии придётся применять чтобы сделать свой собственный коннектор к Astst Bridge на СиШарп.


Сразу скажу, что в комплекте с этой статьёй вы можете найти исходные коды коннектора к ASTS Bridge и более тридцати готовых роботов к ним. Разбор памяти по ссылкам в C# и Маршалинг 80го уровня прилагается. Качаем на странице: http://o-s-a.net/os-engine.html


ASTS


Аббревиатура ASTS это программный комплекс составляющий ядро нашей биржи. Это электронная система торгов Московской Межбанковской Валютной Биржи. Первая версия разрабатывалась в 93 - 94 годах прошлого века и получила название ASTS - Automated Securities Trading System. Так и повелось... С тех пор, не без изменений конечно, но вся эта система существует до сих пор.


Вот так выглядит архитектурный концепт:



Ну, и как не трудно догадаться, ASTS Bridge - это первый и нативный способ с этим ядром общаться.


ASTS Bridge и как его называют


Отдельно надо остановиться на этом, т.к. в мануалах, инструкциях и на сайте биржи можно встретить ПЯТЬ! разных названий для этого протокола и всё это одно и тоже:


1) ASTS Bridge
2) TEAP
3)"шлюз"
4) кое где просто msterLib, по названию библиотеки доступа...
5) УДПШ - универсальный двунаправленный программный шлюз


Всё это одно и тоже. И речь всегда идёт про один протокол. Меня это сейчас сильно забавляет, когда я это пишу, но поверьте, при первом знакомстве с этим делом, удивлению моему не было конца. Зачем, биржа?


1. Тестовый доступ к ASTS Bridge


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


Идём на следующую страницу: http://moex.com/s443. Это место где биржа выложила основную информацию по этому способу подключения. Можно походить по ссылочкам, посмотреть, но нам вот сюда:

Где Вам предложат заполнить анкету для доступа. Вот так она выглядит:


* в цель подключения пишем: "тестирование своего бота"

*подключение к какому рынку: "фондовый"

*способ подключения: интернет

*протокол: шлюз


Ну и всё стандартное остальное. Имя и почту.


После того как Вам вышлют ответ с ключами, можно дополнительно попросить положить побольше денег на счёт для торговли акциями. Т.к. у меня там было вообще ноль, от чего я не мог долгое время понять почему не выставляются ордера.


2. Разбор дистрибутивов


В ответ на запрос тестового подключения нам вышлют параметры подключения, логин и пароль, а так же ссылку на дистрибутивы. Вот она: ftp://ftp.moex.com/pub/ClientsAPI/ASTS/


В ней мы качаем вот эту зипку:


В ней мы найдём всё что нам нужно. Вот эта папка:


1) примеры использования шлюза. В том числе прекрасный терминал доступа к ASTS Bridge с помощью которого можно следить за позициями и работой рынка. Чуть ниже мы его посмотрим поближе
2) документация по использованию шлюза. Это мы тоже посмотрим поближе.
3) ...
4) библиотека для подключения к проекту
5) сервер ASTS Bridge


Далее мы будем вращаться вокруг этих папочек. Здесь есть действительно все, что нам нужно.


3. Разворачиваем сервер ASTS Bridge


Идём в папку сервер


и жмём ASTSBridge.exe


В открывшемся окне жмахаем на Configure:


Настройки берём из настроек таблицы из которую прислали с биржи.


Раз


Далее идём в другие настройки, вот так:


И вот так:


После этого всё сохраняем. И оставляем сервер во включенном состоянии.


4. Следим за позициями и рынком


После разворачивания сервера пытаемся подключиться стандартными средствами. Для этого идём в нашу папочку с биржи и выбираем demo:


и запускаем TEClient.exe.



В открывшемся окне жмём на кнопку Connect. После чего настраиваем подключение:



Опять же, берём хост, сервер, айди и пароль в таблице с биржи. Интерфейс воруем у меня.


После чего жмём ОК. Процесс подключения занимает много времени, минут пять бывает. Не пугайтесь. Это нормальная ситуация.


После подключения слева мы можем наблюдать три папки:


Первая нам не интересна. Во второй лежат таблицы с данными. В третьей лежит перечень транзакций которые мы можем предпринять.


С помощью этой не хитрой программулины можно, если Вы будете сами делать коннектор, следить за тем как на самом деле обстоят дела с портфелями и бумагами. Открывать и закрывать позиции.


Список типов, таблиц и транзакций есть по адресу: ftp://ftp.moex.com/pub/ClientsAPI/ASTS/Bridge_Interfaces/Currency/Currency26_Broker_Russian.htm#t0_36
Единственное, что-то в опере(браузере) страница с описанием с ошибками отображается. А так всё ок. Открывайте в Гугле или FireFoxe.


5. Документация к ASTS Bridge


Документация по Asts Bridge лежит там же в архиве:


В ней нам интересны два документа:

1) Это инструкция по тому как пользоваться сервером, как его настраивать.
2) Как работать с Апи ASTS Bridge.



6. Пару слов о использовании ASTS Bridge через СиШарп (C#)


Данные из таблиц передаются через ссылки в память. В СиШарп это считается моветоном и я сам впервой глубоко с этим столкнулся. Что доставило мне очень сильно. Весь код коннектора получился unsafe. Хорошо я уже работал с Плазой и сделал обёртку на подобии той что Плаза даёт нам стандартно. Надо сказать, это самый низкоуровневый коннектор который я видел до сих пор.


Создание Managment версии функций библиотеки само по себе геморрой, и для многих чистая магия:


Но тут ещё и такое нужно кастовать:


Короче, это тебе не SmartCom(блин, в очередной раз убеждаюсь, что чем больше пишу под разные биржи, всё больше его любить начинаю).


Я понял теперь почему мне так и не удалось найти примеров использования этого коннектора вместе с СиШарп. Надеюсь после публикации наших исходников, роботов на ASTS Bridge станет больше.


7. Подключение Os.Engine.


Стандартно выбираем сервер ASTS Birdge в выборе серверов доступа и в настройках вбиваем настройки которые нам выслали с биржи:


Ничего сложного. Не забываем что в этот момент сервер ASTS должен быть развёрнут.
Единственное добавлю пару слов про "Расположение". У ASTS Bridge Есть ограничение на получение обновлений с биржи, если мы расположены вне зоны колокации. И тут мы должны указать, где же мы всё же находимся. Исходя из этого сервер будет выбирать то или иное кол-во обновлений в секунду для данных.


8. Разрешение биржи на подключение


Выдаётся один раз почему-то и на одного робота всего. Т.ч. каждый кто захочет торговать в итоге в реале через этот коннект должен будет пройти процедуру одобрения биржи на подключение робота в торги. Когда всё будет готово, пишите в поддержку биржи просьбу дать добро, на что Вас попросят выслать логи работы программы за небольшое время. Это папка ASTSBridge что рядом с экзешником. И всё.)


Я даж в конце расстроился немного, получив скупое письмо с разрешением. Когда сертифицировал плазу то пришло прямо письмо с печатями, за подписью бога кого-то из главарей с Фортса. А тут. Эх...


В заключении


Пользуйтесь господа. Дядя Лёша жрал камни изучал Маршаллинг ради Вас больше месяца. Тьфу-тьфу. Пару раз в холодный пот бросало, думал не вывезу. Но нет!


Удачных Алгоритмов!


P.S. Вторая часть

18:53
390

2 комментария

16:00
ага!.. а то привыкли блин понимаешь к менеджед коду то…
а это чё за маршалинг то? я в них путаюсь…
это маршалинг вызовов из между различными Apartment-ами,
или просто прикрепление сбоку счетчика ссылок к каждому кусочку неменджед памяти?

ЗЫ: это получается что в итоге — похоже на плазу для фондЫ… причем на старую плазу которая физического нахождения в коллокейшене не требует, да?
16:32
+1
В данном случае маршалинг как работа с неуправляемым кодом и памятью в СиШарп.

Да. Это Плаза для фонды, не требующая колокации.