Это гайд и инструкция по 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) УДПШ - универсальный двунаправленный программный шлюз
Всё это одно и тоже. И речь всегда идёт про один протокол. Меня это сейчас сильно забавляет, когда я это пишу, но поверьте, при первом знакомстве с этим делом, удивлению моему не было конца. Зачем, биржа?
Первое с чего следует начать, это письмо на биржу с просьбой выдать Вам тестовый доступ к этому подключению.
Идём на следующую страницу: http://moex.com/s443. Это место где биржа выложила основную информацию по этому способу подключения. Можно походить по ссылочкам, посмотреть, но нам вот сюда:
Где Вам предложат заполнить анкету для доступа. Вот так она выглядит:
* в цель подключения пишем: "тестирование своего бота"
*подключение к какому рынку: "фондовый"
*способ подключения: интернет
*протокол: шлюз
Ну и всё стандартное остальное. Имя и почту.
После того как Вам вышлют ответ с ключами, можно дополнительно попросить положить побольше денег на счёт для торговли акциями. Т.к. у меня там было вообще ноль, от чего я не мог долгое время понять почему не выставляются ордера.
В ответ на запрос тестового подключения нам вышлют параметры подключения, логин и пароль, а так же ссылку на дистрибутивы. Вот она: ftp://ftp.moex.com/pub/ClientsAPI/ASTS/
В ней мы качаем вот эту зипку:
В ней мы найдём всё что нам нужно. Вот эта папка:
1) примеры использования шлюза. В том числе прекрасный терминал доступа к ASTS Bridge с помощью которого можно следить за позициями и работой рынка. Чуть ниже мы его посмотрим поближе
2) документация по использованию шлюза. Это мы тоже посмотрим поближе.
3) ...
4) библиотека для подключения к проекту
5) сервер ASTS Bridge
Далее мы будем вращаться вокруг этих папочек. Здесь есть действительно все, что нам нужно.
Идём в папку сервер
и жмём ASTSBridge.exe
В открывшемся окне жмахаем на Configure:
Настройки берём из настроек таблицы из которую прислали с биржи.
Раз
Далее идём в другие настройки, вот так:
И вот так:
После этого всё сохраняем. И оставляем сервер во включенном состоянии.
После разворачивания сервера пытаемся подключиться стандартными средствами. Для этого идём в нашу папочку с биржи и выбираем demo:
и запускаем TEClient.exe.
В открывшемся окне жмём на кнопку Connect. После чего настраиваем подключение:
Опять же, берём хост, сервер, айди и пароль в таблице с биржи. Интерфейс воруем у меня.
После чего жмём ОК. Процесс подключения занимает много времени, минут пять бывает. Не пугайтесь. Это нормальная ситуация.
После подключения слева мы можем наблюдать три папки:
Первая нам не интересна. Во второй лежат таблицы с данными. В третьей лежит перечень транзакций которые мы можем предпринять.
С помощью этой не хитрой программулины можно, если Вы будете сами делать коннектор, следить за тем как на самом деле обстоят дела с портфелями и бумагами. Открывать и закрывать позиции.
Список типов, таблиц и транзакций есть по адресу: ftp://ftp.moex.com/pub/ClientsAPI/ASTS/Bridge_Interfaces/Currency/Currency26_Broker_Russian.htm#t0_36
Единственное, что-то в опере(браузере) страница с описанием с ошибками отображается. А так всё ок. Открывайте в Гугле или FireFoxe.
Документация по Asts Bridge лежит там же в архиве:
В ней нам интересны два документа:
1) Это инструкция по тому как пользоваться сервером, как его настраивать.
2) Как работать с Апи ASTS Bridge.
Данные из таблиц передаются через ссылки в память. В СиШарп это считается моветоном и я сам впервой глубоко с этим столкнулся. Что доставило мне очень сильно. Весь код коннектора получился unsafe. Хорошо я уже работал с Плазой и сделал обёртку на подобии той что Плаза даёт нам стандартно. Надо сказать, это самый низкоуровневый коннектор который я видел до сих пор.
Создание Managment версии функций библиотеки само по себе геморрой, и для многих чистая магия:
Но тут ещё и такое нужно кастовать:
Короче, это тебе не SmartCom(блин, в очередной раз убеждаюсь, что чем больше пишу под разные биржи, всё больше его любить начинаю).
Я понял теперь почему мне так и не удалось найти примеров использования этого коннектора вместе с СиШарп. Надеюсь после публикации наших исходников, роботов на ASTS Bridge станет больше.
Стандартно выбираем сервер ASTS Birdge в выборе серверов доступа и в настройках вбиваем настройки которые нам выслали с биржи:
Ничего сложного. Не забываем что в этот момент сервер ASTS должен быть развёрнут.
Единственное добавлю пару слов про "Расположение". У ASTS Bridge Есть ограничение на получение обновлений с биржи, если мы расположены вне зоны колокации. И тут мы должны указать, где же мы всё же находимся. Исходя из этого сервер будет выбирать то или иное кол-во обновлений в секунду для данных.
Выдаётся один раз почему-то и на одного робота всего. Т.ч. каждый кто захочет торговать в итоге в реале через этот коннект должен будет пройти процедуру одобрения биржи на подключение робота в торги. Когда всё будет готово, пишите в поддержку биржи просьбу дать добро, на что Вас попросят выслать логи работы программы за небольшое время. Это папка ASTSBridge что рядом с экзешником. И всё.)
Я даж в конце расстроился немного, получив скупое письмо с разрешением. Когда сертифицировал плазу то пришло прямо письмо с печатями, за подписью бога кого-то из главарей с Фортса. А тут. Эх...
Пользуйтесь господа. Дядя Лёша жрал камни изучал Маршаллинг ради Вас больше месяца. Тьфу-тьфу. Пару раз в холодный пот бросало, думал не вывезу. Но нет!
Удачных Алгоритмов!
P.S. Вторая часть
2 комментария
а это чё за маршалинг то? я в них путаюсь…
это маршалинг вызовов из между различными Apartment-ами,
или просто прикрепление сбоку счетчика ссылок к каждому кусочку неменджед памяти?
ЗЫ: это получается что в итоге — похоже на плазу для фондЫ… причем на старую плазу которая физического нахождения в коллокейшене не требует, да?
Да. Это Плаза для фонды, не требующая колокации.