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