"Легкая" версия коннектора 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 отдельно.
Пример постановки, 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);
- файл settings.ini
- ini/mfix-fx.xml (всю папку кидайте просто с exe файлом. Этот файл никак не надо менять. Он универсален и для боевого и для тестового)
Основное - это логин (MD....) и пароль и TargetCompId. Вы получите настройки от биржи и сверите с теми, что я передаю для тестовой секции.
- Обязательно просите, чтобы ваш аккаунт был сразу с деньгами. Да, могут открыть счет без денег :)
- Заказывайте сразу терминал Moex Trade Currency. Биржа часто делает два аккаунта. Один для бота, другой для терминала.
Но таким образом вы не увидите свои заявки в терминале. Поэтому либо просите, чтобы дали терминал под уже существующий логин MD..., либо сами используйте логин MD..(для терминала) используйте для бота.
Терминал и бот одновременно с одним логином на тестовом работать не могут. Fix не подключиться, если у вас открыт терминал. И терминал не откроется, если работает бот. На боевом все работает хорошо. Там используется коло и брокеры как - то хитро делают аккаунты, чтобы можно было использовать и так и так.
_fastconnector = new MoexFastClient();
_fastconnector.NewLog += LogMessage;
_fastconnector.Connect();
var Instuments = new List<string>() { InstrumentA, InstrumentB, InstrumentC};
_fastconnector.AddInstrumentsToListen(Instuments);
- configuration (можете просто выбрать для тестового или боевого из папки)
- templates (одинаковые и для тестового и для боевого)
Fast для тестового работает только через VPN. Внимательно делайте все по инструкции от биржи. VPN очень чувствителен к бренд маузеру, поэтому отключайте или пишите специальные настройки, как указано в настройках от биржи.