FinAlgoTrader.Fix-Fast

"Легкая" версия коннектора Fix/Fast MOEX.

Fix - выставление, перестановка, отмена заявки.
Fast - только BestBid/BestAsk. Позволяет следить за сколько угодным количество инструментов.

Создание и подписка на события FIX

_fixConnector = new FixConnector("settings.ini", "L00+4190B503", "5056542474");
_fixConnector.OnOrderSuspended += order => {};
...

_fixConnector.Start();

По умолчанию после подключения FIX сработает подключение FAST. Такой сценарий будет работать только на боевом коло аккаунте, где фикс и фаст могут запуститься в одном месте. На тестовом вам придется проверять подключение Fix или Fast отдельно.

Основной сценарий FIX

Пример постановки, move и отмены заявки. Fix работает с вашим уникальным клиентским ID для ордера, поэтому вы до того, как отправить заявку создаете уникальный код, который потом отправляется в систему. Fix не имеет обмена данными с FAST, поэтому я сделал свой инструмент, где вы указываете сами, сколько цифр после запятой, какой класс инструмента и его название.

Код инструмента может быть далеко не привлекательным. Его надо взять из терминала в разделе "все инструменты".

 var clientid = _fixConnector.GenerateNextOrderId();

           var instrument = new FixInstrument()
           {
               NumbersAfterComma = 4,
               SecCode = "CETS",
               Symbol = "USDCNY_TOM" 
           };

           _fixConnector.PlaceOrder(instrument,
               7.30m,
               1,
              ESides.Buy,
               clientid);

           var newreplaceid = _fixConnector.GenerateNextOrderId();

           Thread.Sleep(10);

           _fixConnector.ReplaceOrder(instrument, 7.20m, 2, clientid, ESides.Buy, newreplaceid);

           Thread.Sleep(10);

           Debug.WriteLine("Ордер отмена" + newreplaceid);

           _fixConnector.Cancel(newreplaceid);

Настройки для FIX (все настройки должны лежать с конечным exe файлом)

  • файл settings.ini
  • ini/mfix-fx.xml (всю папку кидайте просто с exe файлом. Этот файл никак не надо менять. Он универсален и для боевого и для тестового)

Основное - это логин (MD....) и пароль и TargetCompId. Вы получите настройки от биржи и сверите с теми, что я передаю для тестовой секции. image

Заказ тестового аккаунта FIX:

  1. Обязательно просите, чтобы ваш аккаунт был сразу с деньгами. Да, могут открыть счет без денег :)
  2. Заказывайте сразу терминал Moex Trade Currency. Биржа часто делает два аккаунта. Один для бота, другой для терминала.
    Но таким образом вы не увидите свои заявки в терминале. Поэтому либо просите, чтобы дали терминал под уже существующий логин MD..., либо сами используйте логин MD..(для терминала) используйте для бота.

Терминал и бот одновременно с одним логином на тестовом работать не могут. Fix не подключиться, если у вас открыт терминал. И терминал не откроется, если работает бот. На боевом все работает хорошо. Там используется коло и брокеры как - то хитро делают аккаунты, чтобы можно было использовать и так и так.

Fast

 _fastconnector = new MoexFastClient();
 _fastconnector.NewLog += LogMessage;
 _fastconnector.Connect();
 
 var Instuments = new List<string>() { InstrumentA, InstrumentB, InstrumentC};
 _fastconnector.AddInstrumentsToListen(Instuments);

Настройки Fast (все настройки должны лежать с конечным exe файлом)

  • configuration (можете просто выбрать для тестового или боевого из папки)
  • templates (одинаковые и для тестового и для боевого)

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