В Части 1 введения в протокол FIX я объяснил основные концепции протокола и коснулся его возможностей. Если вы здесь, я предполагаю, что вы ищете больше! Во второй части я поделюсь некоторыми мыслями о том, на что обращать внимание при выборе FIX-совместимого брокера. Я также напишу о первых шагах к созданию собственного торгового приложения — это выбор движка FIX.

Выбор вашего брокера

Я упоминал, что есть улов? Итак, допустим, вы можете общаться со своим брокером по протоколу FIX 4.4. Однако это не означает, что брокер поддерживает всю спецификацию протокола. Проще говоря, он может поддерживать не все операции, указанные в данной версии протокола. Вам нужно найти тот, который поддерживает важные для вас функции. Вы можете быть заинтересованы только в получении обновлений рыночных данных или возможности отправлять/изменять/отменять ордера. Чтобы узнать, какие функции протокола FIX поддерживает ваш брокер, спросите у них «Правила взаимодействия FIX» или «Руководство по обмену сообщениями FIX». Как только вы поймете, что ищете, вы сможете быстро найти подходящего брокера. Стоит знать, что некоторые брокеры предоставят вам информацию о подключении для двух разных конечных точек. Один используется для информации о рыночных данных и один для торговли. Еще одно предостережение заключается в том, что брокер может потребовать более высокий минимальный депозит по сравнению с обычными счетами только для того, чтобы вы могли торговать с помощью обмена сообщениями FIX. Как правило, вы можете бесплатно открыть тренировочные счета и играть с FIX на демо-счете. Это также даст вам доступ к правилам взаимодействия или руководству по FIX для брокера.

Подготовка к созданию торгового приложения FIX

Существует несколько вариантов создания торгового приложения с поддержкой FIX. Итак, вам нужно общаться с брокером с помощью FIX-сообщений, устанавливать сеанс и обрабатывать входящие сообщения. Хорошей новостью является то, что FIX существует уже довольно давно, и существует множество движков FIX с открытым исходным кодом. Это означает, что вам НЕ нужно начинать с нуля! Еще лучше услышать, что есть движки, написанные на нескольких языках программирования. Например, QuickFIX имеет реализации, написанные на C++, Python, Ruby, Java — QuickFIX/J, .Net. Есть много других. Вы также можете выбрать коммерческие решения, которые могут предложить вам более высокую скорость выполнения, меньший объем памяти, более высокую пропускную способность сообщений и т. д. Если вы только начинаете, я бы не стал беспокоиться и выбрал QuickFIX. За ним стоит довольно большое сообщество, поэтому достаточно легко получить помощь или найти примеры. Вы всегда можете пойти по пути реализации собственного движка (но я бы спросил почему?). Один важный совет: если вы выбираете механизм FIX, имейте в виду, что некоторые брокеры могут использовать свои собственные наборы тегов FIX в сообщениях или использовать теги FIX в некоторых сообщениях, которые не указаны в версии. протокола, который поддерживает брокер! Звучит безумно? Ну, это так. Поэтому мой совет следующий: убедитесь, что выбранный вами движок позволяет обрабатывать нестандартные сообщения. Таким образом, вы не ограничены в использовании посредников, которые выполняют pure (точно указанные) реализации протокола FIX. Я просто рекомендую QuickFIX (в частности, QuickFIX/J), который я использую в данный момент и на котором буду основывать свои примеры в следующих частях этой серии. Если вы решите использовать другой механизм FIX, убедитесь, что он включает исчерпывающую документацию и примеры, если он не перейдет на что-то другое.

Теперь вам нужно сделать два выбора — выбрать своего брокера (вы можете использовать своего текущего?) и выбрать механизм FIX, на котором будет построено ваше решение. Я могу сообщить, что в части 3 этой серии я собираюсь продемонстрировать и поделиться рабочим решением движка, основанного на QuickFIX/J и взаимодействующего с FXCM (это брокер) через FIX 4.4. На самом деле это FIX 4.4 + некоторые дополнения от FXCM ;-)

Первоначально опубликовано на afxrds.io 28 января 2018 г.