Mikhail Sukhov
|
Дата: 15.09.2011
guest Так у цериха все уже есть. Это dll ка написанная на дельфях (ммвб-шная), к ней пишется несложный wrapper на C# вот и весь шлюз. Насколько мне известно в самом церихе даже есть C# wrapper Пообщался с Церихом. Решение добротное, с плечами. Но эта dll посылает сигналы только в Церих. С другими брокерами работать не будет.
|
|
Спасибо:
|
|
|
|
|
VovaM
|
Дата: 15.09.2011
Mikhail Sukhov guest Так у цериха все уже есть. Это dll ка написанная на дельфях (ммвб-шная), к ней пишется несложный wrapper на C# вот и весь шлюз. Насколько мне известно в самом церихе даже есть C# wrapper Пообщался с Церихом. Решение добротное, с плечами. Но эта dll посылает сигналы только в Церих. С другими брокерами работать не будет. Насколько мне известно: Эта DLL как и соответственно клиент-серверный протокол совершенно НЕ Цериховский(-ская). Это исключительно продукт ММВБ. Церих просто предлагает чуть усложненное решение. Он м\у вами и ММВБшным шлюзом вставляет свою прослойку, и вы получаете возможность шортить. Но саму ДЛЛку можно, если захочется, просто перенаправить на нативный ММВБшный шлюз (без прослойки) - и без плечей все будет работать. Поэтому, по идее, если другой брокер дает шлюз ммвб, то эта длл-ка будет прекрасно к нему коннектится (без плечей и шортов).
|
|
Спасибо:
|
|
|
|
|
VovaM
|
Дата: 15.09.2011
ПРОГРАММНЫЙ ИНТЕРФЕЙС ПОДКЛЮЧЕНИЯ ВНЕШНИХ СИСТЕМ К ТОРГОВО-ДЕПОЗИТАРНЫМ КОМПЛЕКСАМ ММВБ (Библиотека MTESRL.DLL, v. 3.8)
|
|
Спасибо:
|
|
|
|
|
VovaM
|
Дата: 15.09.2011
|
|
|
|
Принцип разработки приложений для шлюза
Для подключения внешнего программно-технического средства (ВПТС) к программно-техническому комплексу ЗАО ММВБ используется ”Универсальный двунаправленный программный шлюз для подключения внешних систем к Торговой системе ММВБ” (MICEX Bridge).
Шлюз MICEX Bridge обеспечивает двунаправленную связь с торговой системой и содержит программный интерфейс (API), который предназначен как для получения информации из торговой системы (сделки, котировки, инструменты и т.п.), так и для выполнения активных транзакций (постановка/снятие заявок и т.п.).
Программа реализована в виде двух программных компонентов, которые исполняются на двух физически различных компьютерах, работающих под управлением операционной системы Microsoft Windows NT/2000/XP. Один из компонентов (MICEX Bridge Server) подключается к ТС ММВБ по проприетарному протоколу и выполнен в виде самостоятельного приложения. Второй компонент (MICEX Bridge Client) выполнен в виде Windows DLL (mtesrl.dll) и предоставляет приложению-приёмнику внешней системы прикладной программный интерфейс (API). Между собой компоненты обмениваются информацией с использованием последовательного интерфейса (RS-232) или по протоколу TCP/IP. Вариант подключения через последовательный порт является низкопроизводительным и устаревшим – в ближайшем будущем возможно прекращение поставок данной версии шлюза.
Подобная клиент-серверная архитектура применяется для осуществления коммуникации между двумя сетями с поддержанием достаточного уровня безопасности: серверная часть устанавливается на сервере, подключенном к закрытой торговой сети ММВБ, а клиентская часть запускается на компьютере, подключенном к офисной сети клиента.
Таким образом, разработка внешнего приложения заключается в использовании предоставляемых библиотекой mtesrl.dll функций для получения данных из Торговой системы ММВБ и выполнения активных транзакций. Получение данных осуществляется по технологии client pull, т.е. клиентское приложение должно всегда само опрашивать таблицы Торговой системы для получения актуальной рыночной информации.
Разработка внешней системы обычно выполняется по следующему сценарию:
Ознакомление с требованиями ММВБ к ВПТС. Установка шлюза MICEX Bridge и его подключение к тестовой/разработческой Торговой системе ММВБ. Разработка собственного приложения, использующего API mtesrl.dll. Тестирование и отладка. Приобретение коммерческой версии MICEX Bridge, оформление всех необходимых для подключения документов и переключение на ”боевую” Торговую систему.
В общих чертах логика работы программы с Торговой системой следующая:
Устанавливается соединение с авторизацией участника торгов. Из ТС запрашивается структура информационных объектов. Из ТС запрашиваются необходимые для работы таблицы с данными. Ответ приходит в виде буфера данных. Основываясь на полученной ранее структуре информационных объектов осуществляется распаковка буфера для разделения табличных данных на строки, а затем – на поля. В случае, если таблицы являются обновляемыми (о чём сигнализирует соответствующий флаг в структуре объектов), задаётся интервал и последовательность запроса из ТС обновлённых данных. Следует учитывать, что обновляемые таблицы также бывают двух типов – для одних приходят только обновившиеся со времени последнего запроса строки, а по другим (например, для котировок) каждый раз приходит полная таблица. При выполнении внешней системой транзакций, состав полей транзакции также формируется на основе структуры информационных объектов. Необходимо предусмотреть наличие механизма восстановления состояния открытых таблиц после сбоев или потери связи.
|
|
Спасибо:
|
|
|
|
|
VovaM
|
Дата: 15.09.2011
|
|
Спасибо:
|
|
|
|
|
VovaM
|
Дата: 15.09.2011
Кстати если ввести mtesrl.dll в яндекс, можно найти как кучу народу на разных форумах (посвященных C# и DllImport например) обсуждают разнообразные мелкие и крупные сложности связанные с подключением. даже сюда добрались: http://stackoverflow.com...while-calling-dll-method
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 15.09.2011
VovaM Кстати если ввести mtesrl.dll в яндекс, можно найти как кучу народу на разных форумах (посвященных C# и DllImport например) обсуждают разнообразные мелкие и крупные сложности связанные с подключением. даже сюда добрались: http://stackoverflow.com...while-calling-dll-method Немного уточнение. Церих сказал, что он взял библиотеку от ММВБ, переработал ее (наверное, скомпилировал)... Я вот не совсем понял, он тот же контракт (внешний интерфейс) оставил, или же у Цериха как-то отличаются названия и сигнатуры функций? Если различий нет, то лучше, конечно, библиотека. Так клиенты Цериха могут свою подсунуть и торговать с плеча.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 16.09.2011
Mikhail Sukhov Немного уточнение. Церих сказал, что он взял библиотеку от ММВБ, переработал ее (наверное, скомпилировал)... Я вот не совсем понял, он тот же контракт (внешний интерфейс) оставил, или же у Цериха как-то отличаются названия и сигнатуры функций? Если различий нет, то лучше, конечно, библиотека. Так клиенты Цериха могут свою подсунуть и торговать с плеча. Из документа: Цитата:Идея реализации продукта состоит в замене mtesrl.dll производства ММВБ на свою библиотеку, повторяющую интерфейс один-в-один, таким образом, чтобы приложение, разработанное для работы с ТС ММВБ, было способно без изменений работать с нашей длл. Вообщем, если это так и до сих пор, то я за mtesrl.dll. Осталось только получить 2 dll, одну от Цериха, другую от Биржи. И сравнить через dumpbin. В аттаче примеры что прислал Церих. Теперь что скажет Саша. Подойдет ли такое решение?
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 16.09.2011
Да, mtersl.dll - то что нам нужно.
Я бы не сказал что там просто wrapper будет. Надо учитывать, что те же заявки поступают текстом. В прочем, нам не привыкать, Квик поддержали, и тут поддержим. :)
|
|
Спасибо:
|
|
|
|
|
VovaM
|
Дата: 19.09.2011
Mikhail Sukhov Вообщем, если это так и до сих пор, то я за mtesrl.dll. Осталось только получить 2 dll, одну от Цериха, другую от Биржи. И сравнить через dumpbin.
Биржевые вроде см. вверху (их просто estock в открытый доступ положила).
|
|
Спасибо:
|
|
|
|