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

    а если для создания робота требуется низкоквалифицированный программист, то это уже о чем-то говорит. и он Вам, кстати, не конкурент и таковым никогда не станет =) вопрос в том, насколько снизятся Ваши заработки…
      • Brad Tick
        29 мая 2016, 22:24
        Алексей Ван, потому что они не сильно заинтересованы в создании супер качественного сервиса по изложенной выше причине (возможно высокая стоимость одного из частей процесса разработки в цепочке проектирование-кодинг-тестирование, долгая окупаемость или низкая рентабельность, кому как интереснее не эти издержки смотреть, выгоднее открыть отделение в новом городе, объемы рынка не растут достаточно, чтобы данное направление приносило больше денег — вес2010 когда-то написал, что 10 крупных алготрейдеров с трудом умещаются в данном рынке). пока не заинтересованы. потому что люди из отдела разработки не особо заинтересованы в качественной разработке. потому что начальник отдела разработки не хочет брать себе в подчинение слишком головастого малого и трудоголика дабы не создавать угрозу своему положению.
  • Joni2
    29 мая 2016, 12:30
    IQFeed — стоит $75…
    • ch5oh
      30 мая 2016, 11:54
      Joni2, потом устанешь прикручить данные из iQFeed к своей торговой платформе. За которую, кстати, платить придется отдельно.
      • Joni2
        30 мая 2016, 14:07
        ch5oh, ничего специально прикручивать не надо, есть несколько стандартных решений, чтобы объединить все в одну среду, платить конечно придется как и за любой качественный софт )
  • Joni2
    29 мая 2016, 12:31
     никак не несколько тысяч ))
  • ignat
    29 мая 2016, 14:20
    «И не стоит думать, что эти курсы и другие параметры задокументированы где-либо. Вы, как предполагается, узнаете их методом проб и ошибок или расспрашивая коллег-программистов в Интернете.» — именно так ))) То, что в коде опциона на api от IB должно быть два пробела, а не один, нигде в документации не указано и пришлось просто догадываться.
    После знакомства с API буржуйских брокеров складывается устойчивое мнение, что наш рынок в этом плане значительно более развитый.
    А когда начинаешь разбираться с требованиями ГО по опционным связкам у зарубежных брокеров — так вообще веселье ) Например, по проданным и купленным ГО считается вроде бы суммарно, но по проданным опционам есть особые условия, которые могут увеличить итоговое ГО в десятки раз.
  • nfc
    29 мая 2016, 16:47
    раз брокеры не хотят предоставлять API, то необходимо идти путём:

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

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

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

    • Quant-Invest
      29 мая 2016, 19:31
      nfc, 
      алготрейдеры массово переходят на ALGOTRADER_API
      И Москву переименовываем в Старые Васюки :)
    • Brad Tick
      29 мая 2016, 22:31
      nfc, попытки такого рода есть и в России (стокшарп тот же), и зарубежом (tradelink)
  • matrix
    29 мая 2016, 19:38
    Шляпа :)
  • ch5oh
    30 мая 2016, 12:01

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

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

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

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

     

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

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

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



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

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

  • TVS
    31 мая 2016, 02:22
    А чем FIX не устраивает Вас?
  • Алимат Мирзо
    25 сентября 2016, 18:38
    Платформы для девелоперов и другие (в том числе с FIX API) можно смело брать смотреть здесь: http://getanyplatform.com

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

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