Алексей Ван <o-s-a.net>
Алексей Ван <o-s-a.net> личный блог
29 мая 2016, 11:17

Dear Brokers…

Нашли интереснейший пост в западных интернетах. В нём говориться про проблемы API и не очень хорошее отношение брокеров к алгоритмическим трейдерам.
Т.ч. проблемы АПИ актуальны не только в России. Это повсеместно...

Dear Brokers…


Введение



Какое бы программное обеспечение мы не использовали для автоматизации торговли, всем нам нужна связь брокера с алгоритмом, чтобы получить ценовые предложения и места для торговли. Очевидно, простая задача. И почти любой брокер поддерживает её через такие протоколы, как FIX, на автоматизированной платформе типа MT4™, или через специальный API. Но если Вы уверены, что сможете быстро соединить торговое ПО с API брокера, то будете неприятно удивлены. Уважаемые брокеры – пожалуйста, прочтите этот пост и попытайтесь сделать жизнь программистов немного проще!


API брокера позволяет программному обеспечению торговать, получать ценовые предложения и загружать историю цены. Эти три функции являются неотъемлемой частью автоматизированной системы. Хорошо, когда имеются дополнительные функции, которые восстанавливают торговый статус, статус счета и параметры актива. Это шесть-семь функций, нужных, когда вы считаете вход/выход из системы. У API брокера зачастую же более 100 функций. Таким образом, следует предположить, что, по крайней мере, 6 из них должны быть охвачены. Но, к сожалению, это не так и неудачи начинаются уже с установки и запуска API.

Запуск API

Установка и запуск API брокера могут быть крайне просты. Идеальный случай — брокер, который не предоставляет программного обеспечения, а только лишь протокол и URL для TCP/IP или связи UDP. Тогда можно пользоваться известными библиотеками, такими как curl или enet для связи с брокером. В худшем случае вы получаете API DLL, который можете перераспределить своим клиентам. Ваше программное обеспечение тогда просто обращается к функции логина этой DLL, предоставляя данные об аутентификации, и всё — связь установлена. Но по некоторым неизвестным причинам, многие брокеры чувствуют себя просто обязанными обеспечить связь с их API намного более сложными и креативными способами.

Брокеру А необходим пользователь, который бы запустил инсталляционный пакет API. После нескольких диалоговых окон с предупреждениями о несовместимости с Windows инсталлятор производит связку всех DLL. После этого вы проходите длинную процедуру с кучей шагов по созданию всех внутренних таблиц и структур данных, которые будут нужны для соединения с вашим аккаунтом. В предыдущей версии инсталлятор также изменял процесс регистрации так, чтобы вы не могли её обойти и предоставить DLL непосредственно вашим клиентам вместе с вашим ПО и они должны были проходить процесс установки сами. К счастью, с текущей версией этого больше не требуется.

Брокер B не предлагает прямой связи вообще. У Вас есть выбор: присоединиться к их раздутой платформе торговли на Java или к маленькой программе “Gateway". Когда Вы присоединяетесь к платформе Java, ваше ПО должно раз в день производить выход из системы, перезапуск платформы и вход, так как платформа автоматически прекращает работу каждые 24 часа. Когда вы соединяетесь через программу “Gateway", в это же время вы не сможете открыть их платформу даже с другого ПК, — так что можете даже не пытаться проверить свои позиции. Если все же решите это сделать, соеднинение Gateway будет разорвано и восстановление нужно будет производить вручную. Это не баг, а специально (по словам брокера) внедренная технология обслуживания их пользователей.
И брокер А и брокер В являются крупными, всемирно известными брокерами Forex и фондовой биржи.

Получение ценовых предложений

Брокер А держит цены актива в разделе “Сводка предложений" на своём сервере. Для получения ценового предложения вы должны сначала подписаться на этот актив. Для этого вы не просто вызываете функцию, а создаете “фабрику запросов" и производите запрос на подписку. После этого вы можете войти в процедуру получения ответа по вашему запросу, который включает создание “ответа на запрос". Подписка на актив таким способом займет приблизительно 30 основных линий кодировки C ++ – и это не включая вторичный код для отправки запроса, генерации ответа и всего дополнительного материала. Так что клиенты могут считать себя счастливчиками, если получение самой цены требует всего лишь поиска актива в разделе «сводка предложений» на сервере.

Брокер В делает всё проще: вы не можете подписаться рынок предложений API вообще. Вы должны сделать это вручную на их веб-сайте, и это не бесплатно (за исключением Форекса). Для получения цены достаточно простого соединения с API. Или было бы достаточно, если бы вы знали первичный курс, вторичный курс, тип и подтип актива и другие его параметры. Если какой-либо из них оказывается неверным, вы не получаете предложения. И не стоит думать, что эти курсы и другие параметры задокументированы где-либо. Вы, как предполагается, узнаете их методом проб и ошибок или расспрашивая коллег-программистов в Интернете.

продолжение читаем на смартлабике через неделю.

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

20 Комментариев
  • witwayer
    29 мая 2016, 11:46
    очень полезный материал. 
  • nik
    29 мая 2016, 11:47
    брокерами Forex

    нуб детектид))
  • На западе инфраструктура для адекватного алготрейдинга вообще нереально дорого обходится.
    Это у нас терминалы бесплатные, язык встроен, всё на халяву. Тиковые данные с финама скачал и вперёд.
    Там нормальная история котировок стоит несколько тысяч баксов (минимум). И почти везде ежемесячные расходы приличные.
  • Brad Tick
    29 мая 2016, 12:28
    а что все вышеописанное представляет какую-то большую сложную проблему для нормального программиста?

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

    и чем это снижает количество желающих заняться алготрейдингом? потестит человек парочку избитых систем, найдет грааль переоптимизированный, получит убыток, откажется. останется в итоге 5%, которые и найдут все, и сделают правильно, и еще успеют переписать свою инфраструктуру несколько раз.

    и как правильно заметили выше, этот сервис стоит денег. из-за того, что алготрейдингом с переменным успехом занимается 50-75-100 человек из 1000 ритейла, нет смысла вбухивать в это деньги. а кто планирует серьезно заняться этим и так заплатит. если там есть деньги, то индустрии не грех брать за это много.

    а если для создания робота требуется низкоквалифицированный программист, то это уже о чем-то говорит. и он Вам, кстати, не конкурент и таковым никогда не станет =) вопрос в том, насколько снизятся Ваши заработки…

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн