Блог им. Tyam

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. Или было бы достаточно, если бы вы знали первичный курс, вторичный курс, тип и подтип актива и другие его параметры. Если какой-либо из них оказывается неверным, вы не получаете предложения. И не стоит думать, что эти курсы и другие параметры задокументированы где-либо. Вы, как предполагается, узнаете их методом проб и ошибок или расспрашивая коллег-программистов в Интернете.

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

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

★7
20 комментариев
очень полезный материал. 
avatar
брокерами Forex

нуб детектид))
avatar
nik, в статье идёт речь и про Форекс брокеров в том числе. 
В частности про Interactive brokers. Который предоставляет доступ как к фондовым рынкам, так и валютным.
На западе инфраструктура для адекватного алготрейдинга вообще нереально дорого обходится.
Это у нас терминалы бесплатные, язык встроен, всё на халяву. Тиковые данные с финама скачал и вперёд.
Там нормальная история котировок стоит несколько тысяч баксов (минимум). И почти везде ежемесячные расходы приличные.
а что все вышеописанное представляет какую-то большую сложную проблему для нормального программиста?

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

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

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

а если для создания робота требуется низкоквалифицированный программист, то это уже о чем-то говорит. и он Вам, кстати, не конкурент и таковым никогда не станет =) вопрос в том, насколько снизятся Ваши заработки…
avatar
Джонни Фунт, 
Для нормального программиста проработавшего с предметной областью проблему представляет прокачивание новой пушки в танках.
Вопрос в том почему брокеры делают неудобные сервисы.
Алексей Ван, потому что они не сильно заинтересованы в создании супер качественного сервиса по изложенной выше причине (возможно высокая стоимость одного из частей процесса разработки в цепочке проектирование-кодинг-тестирование, долгая окупаемость или низкая рентабельность, кому как интереснее не эти издержки смотреть, выгоднее открыть отделение в новом городе, объемы рынка не растут достаточно, чтобы данное направление приносило больше денег — вес2010 когда-то написал, что 10 крупных алготрейдеров с трудом умещаются в данном рынке). пока не заинтересованы. потому что люди из отдела разработки не особо заинтересованы в качественной разработке. потому что начальник отдела разработки не хочет брать себе в подчинение слишком головастого малого и трудоголика дабы не создавать угрозу своему положению.
avatar
IQFeed — стоит $75…
avatar
Joni2, потом устанешь прикручить данные из iQFeed к своей торговой платформе. За которую, кстати, платить придется отдельно.
avatar
ch5oh, ничего специально прикручивать не надо, есть несколько стандартных решений, чтобы объединить все в одну среду, платить конечно придется как и за любой качественный софт )
avatar
 никак не несколько тысяч ))
avatar
«И не стоит думать, что эти курсы и другие параметры задокументированы где-либо. Вы, как предполагается, узнаете их методом проб и ошибок или расспрашивая коллег-программистов в Интернете.» — именно так ))) То, что в коде опциона на api от IB должно быть два пробела, а не один, нигде в документации не указано и пришлось просто догадываться.
После знакомства с API буржуйских брокеров складывается устойчивое мнение, что наш рынок в этом плане значительно более развитый.
А когда начинаешь разбираться с требованиями ГО по опционным связкам у зарубежных брокеров — так вообще веселье ) Например, по проданным и купленным ГО считается вроде бы суммарно, но по проданным опционам есть особые условия, которые могут увеличить итоговое ГО в десятки раз.
avatar
ignat, 
да. IB прикольное Апи делают. Пару месяцев назад сам разбирался. Не знал смеяться или плакать) 
Получить список тикеров нельзя. Это в статье есть. Первый раз такое вижу.
Но мне больше всего понравилось получение трейдов по тикеру. Когда они идут без времени исполнения. Вот шутники) 
Действительно. После такого наш СмартКом кажется вершиной алгоритмической мысли.
раз брокеры не хотят предоставлять API, то необходимо идти путём:

1. алготрейдерам проще собраться и разработать собственную спецификацию для API (которая устроит всех)
с описанием:
  — функций
  — событий
  — возвращаемых значений.
 
2. под каждый терминал написать адаптер для взаимодействия
   QUIK <=> ALGOTRADER_API
   Transaq <=> ALGOTRADER_API
   MT5 <=> ALGOTRADER_API

3. алготрейдеры массово переходят на ALGOTRADER_API и становятся терминало-независимыми.

4. далее… пусть брокеры мучаются… и улучшают терминалы

avatar
nfc, 
алготрейдеры массово переходят на ALGOTRADER_API
И Москву переименовываем в Старые Васюки :)
avatar
nfc, попытки такого рода есть и в России (стокшарп тот же), и зарубежом (tradelink)
avatar
Шляпа :)
avatar

Причины такие:

1. Большинство амерских брокеров начинали давным-давно, когда даже нормального языка программирования не было.

Они как-то сделали апи — и успокоились.

Не нравится — не ешь.

 

2. Брокер делает основные деньги на другом.

Затраты на разработку API не окупаются напрямую.

Яркий пример: при упоминании о том, что хорошо бы подключаться через Плазу и за это надо платить 5 тырмес большинство наших «трейдеров» впадает в истерику и кричит «дорого». Дайте бесплатно.



3. Интересней найти интуитивного трейдера с депо 100 лямов и доить его годами, чем общаться с дотошными въедливыми алго, которые откроют минимальное депо на сотню, вынесут мозг тех.саппорту, потестят страты на истории, поймут, что «счастья нет» — и уйдут.

Брокеру с большинства алго выхлопа нет.

avatar
А чем FIX не устраивает Вас?
avatar
Платформы для девелоперов и другие (в том числе с FIX API) можно смело брать смотреть здесь: http://getanyplatform.com
avatar

теги блога Алексей Ван <o-s-a.net>

....все тэги



UPDONW
Новый дизайн