Блог им. Tyam
Нашли интереснейший пост в западных интернетах. В нём говориться про проблемы API и не очень хорошее отношение брокеров к алгоритмическим трейдерам.
Т.ч. проблемы АПИ актуальны не только в России. Это повсеместно...
Какое бы программное обеспечение мы не использовали для автоматизации торговли, всем нам нужна связь брокера с алгоритмом, чтобы получить ценовые предложения и места для торговли. Очевидно, простая задача. И почти любой брокер поддерживает её через такие протоколы, как FIX, на автоматизированной платформе типа MT4™, или через специальный API. Но если Вы уверены, что сможете быстро соединить торговое ПО с API брокера, то будете неприятно удивлены. Уважаемые брокеры – пожалуйста, прочтите этот пост и попытайтесь сделать жизнь программистов немного проще!
API брокера позволяет программному обеспечению торговать, получать ценовые предложения и загружать историю цены. Эти три функции являются неотъемлемой частью автоматизированной системы. Хорошо, когда имеются дополнительные функции, которые восстанавливают торговый статус, статус счета и параметры актива. Это шесть-семь функций, нужных, когда вы считаете вход/выход из системы. У API брокера зачастую же более 100 функций. Таким образом, следует предположить, что, по крайней мере, 6 из них должны быть охвачены. Но, к сожалению, это не так и неудачи начинаются уже с установки и запуска 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. Или было бы достаточно, если бы вы знали первичный курс, вторичный курс, тип и подтип актива и другие его параметры. Если какой-либо из них оказывается неверным, вы не получаете предложения. И не стоит думать, что эти курсы и другие параметры задокументированы где-либо. Вы, как предполагается, узнаете их методом проб и ошибок или расспрашивая коллег-программистов в Интернете.
продолжение читаем на смартлабике через неделю.
Удачных алгоритмов!
нуб детектид))
В частности про Interactive brokers. Который предоставляет доступ как к фондовым рынкам, так и валютным.
Это у нас терминалы бесплатные, язык встроен, всё на халяву. Тиковые данные с финама скачал и вперёд.
Там нормальная история котировок стоит несколько тысяч баксов (минимум). И почти везде ежемесячные расходы приличные.
и я бы хотел увидеть хоть одного начинающего, который сразу с ходу учитывает всякие там реквоты и реконнекты — это стараются учитывать те, кто мыслит на пару шагов вперед, и уже довольно нормально программируют и проектируют.
и чем это снижает количество желающих заняться алготрейдингом? потестит человек парочку избитых систем, найдет грааль переоптимизированный, получит убыток, откажется. останется в итоге 5%, которые и найдут все, и сделают правильно, и еще успеют переписать свою инфраструктуру несколько раз.
и как правильно заметили выше, этот сервис стоит денег. из-за того, что алготрейдингом с переменным успехом занимается 50-75-100 человек из 1000 ритейла, нет смысла вбухивать в это деньги. а кто планирует серьезно заняться этим и так заплатит. если там есть деньги, то индустрии не грех брать за это много.
а если для создания робота требуется низкоквалифицированный программист, то это уже о чем-то говорит. и он Вам, кстати, не конкурент и таковым никогда не станет =) вопрос в том, насколько снизятся Ваши заработки…
Для нормального программиста проработавшего с предметной областью проблему представляет прокачивание новой пушки в танках.
Вопрос в том почему брокеры делают неудобные сервисы.
После знакомства с API буржуйских брокеров складывается устойчивое мнение, что наш рынок в этом плане значительно более развитый.
А когда начинаешь разбираться с требованиями ГО по опционным связкам у зарубежных брокеров — так вообще веселье ) Например, по проданным и купленным ГО считается вроде бы суммарно, но по проданным опционам есть особые условия, которые могут увеличить итоговое ГО в десятки раз.
да. IB прикольное Апи делают. Пару месяцев назад сам разбирался. Не знал смеяться или плакать)
Получить список тикеров нельзя. Это в статье есть. Первый раз такое вижу.
Но мне больше всего понравилось получение трейдов по тикеру. Когда они идут без времени исполнения. Вот шутники)
Действительно. После такого наш СмартКом кажется вершиной алгоритмической мысли.
1. алготрейдерам проще собраться и разработать собственную спецификацию для API (которая устроит всех)
с описанием:
— функций
— событий
— возвращаемых значений.
2. под каждый терминал написать адаптер для взаимодействия
QUIK <=> ALGOTRADER_API
Transaq <=> ALGOTRADER_API
MT5 <=> ALGOTRADER_API
3. алготрейдеры массово переходят на ALGOTRADER_API и становятся терминало-независимыми.
4. далее… пусть брокеры мучаются… и улучшают терминалы
Причины такие:
1. Большинство амерских брокеров начинали давным-давно, когда даже нормального языка программирования не было.
Они как-то сделали апи — и успокоились.
Не нравится — не ешь.
2. Брокер делает основные деньги на другом.
Затраты на разработку API не окупаются напрямую.
Яркий пример: при упоминании о том, что хорошо бы подключаться через Плазу и за это надо платить 5 тырмес большинство наших «трейдеров» впадает в истерику и кричит «дорого». Дайте бесплатно.
3. Интересней найти интуитивного трейдера с депо 100 лямов и доить его годами, чем общаться с дотошными въедливыми алго, которые откроют минимальное депо на сотню, вынесут мозг тех.саппорту, потестят страты на истории, поймут, что «счастья нет» — и уйдут.
Брокеру с большинства алго выхлопа нет.