В этом примере показано, как создать FIX связь Flyer™, данные о событиях процесса для отправки сообщений FIX, и представить различные порядки с помощью сообщений FIX.
FIX является протоколом финансовой индустрии, который упрощает низкую торговлю задержкой. Для получения дополнительной информации о протоколе FIX, смотрите, что FIX Торгует Сообществом.
Чтобы получить доступ к примеру кода, введите edit FixFlyerExample.m
в командной строке.
Импортируйте библиотеки FIX Flyer Java®.
import flyer.apps.*; import flyer.apps.FlyerApplicationManagerFactory.*; import flyer.core.session.*;
Создайте связь Engine Флаера FIX c
использование этих аргументов:
Имя пользователя username
Пароль password
IP-адрес ipaddress
Номер порта port
Номер порта информации для заказа orderport
username = 'guest'; password = 'guest'; ipaddress = 'example.fixcomputeserver.com'; port = 12001; orderport = 13001; c = fixflyer(username,password,ipaddress,port,orderport);
Добавьте прослушиватель события FIX Flyer связи Engine Флаера FIX. Прислушайтесь и отобразите данные о событиях Engine Флаера FIX в браузере Рабочей области при помощи демонстрационного прослушивателя обработки событий fixExampleListener
.
Чтобы получить доступ к коду для прослушивателя, введите edit fixExampleListener.m
. Или, чтобы обработать данные о событиях в другом отношении, можно записать пользовательскую функцию прослушивателя обработки событий. Для получения дополнительной информации смотрите, Создают Функции в Файлах (MATLAB).
Обработайте события FIX Flyer Engine e
использование демонстрационного прослушивателя обработки событий fixExampleListener
. Задайте e
как любая буква. fixExampleListener
возвращает указатель на прослушиватель lh
.
lh = addListener(c,@(~,e)fixExampleListener(e,c));
Подпишитесь на сеансы FIX и настройте Администратор приложений Флаера FIX. Укажите с сеансом Флаера FIX. Соедините Администратор приложений Флаера FIX с Engine Флаера FIX и запустите внутренний поток получения.
c.SessionID = flyer.core.session.SessionID('Alpha',... 'Beta','FIX.4.4'); c.FlyerApplicationManager.setLoadDefaultDataDictionary(false); c.FlyerApplicationManager.registerFIXSession(... flyer.apps.FixSessionSubscription(... c.SessionID,true,0)); c.FlyerApplicationManager.connect; c.FlyerApplicationManager.start;
Создайте два сообщения FIX с помощью массива структур order
. Каждая структура в массиве представляет одно сообщение FIX. Оба сообщения обозначают продать транзакцию стороны для долей 1000 IBM®. Тип порядка является ранее заключенным в кавычки порядком. Инструкция по обработке порядка является частным автоматизированным выполнением. Время транзакции порядка является текущим моментом. Версия протокола THE FIX 4.4.
Установите MsgType
к 'D'
обозначить новый порядок.
order.BeginString{1,1} = 'FIX.4.4'; order.CLOrdId{1,1} = '338'; order.Side{1,1} = '2'; order.TransactTime{1,1} = datestr(now); order.OrdType{1,1} = 'D'; order.Symbol{1,1} = 'IBM'; order.HandlInst{1,1} = '1'; order.MsgType{1,1} = 'D'; order.OrderQty{1,1} = '1000'; order.HeaderFields{1,1} = {'OnBehalfOfCompID','TRADER'}; order.BodyFields{1,1} = {'NoPartyIDs','3'; ... 'PartyID','1'; ... 'PartyRole','BBVA'; ... 'PartyID','1'; ... 'PartyRole','CVGX'; ... 'PartyID','1'; ... 'PartyRole','GSAM'}; order.BeginString{2,1} = 'FIX.4.4'; order.CLOrdId{2,1} = '339'; order.Side{2,1} = '2'; order.TransactTime{2,1} = datestr(now); order.OrdType{2,1} = 'D'; order.Symbol{2,1} = 'IBM'; order.HandlInst{2,1} = '1'; order.MsgType{2,1} = 'D'; order.OrderQty{2,1} = '1000'; order.HeaderFields{2,1} = {'OnBehalfOfCompID','TRADER'}; order.BodyFields{2,1} = {'NoPartyIDs','3'; ... 'PartyID','1'; ... 'PartyRole','BBVA'; ... 'PartyID','1'; ... 'PartyRole','CVGX'; ... 'PartyID','1'; ... 'PartyRole','GSAM'};
Используйте связь Engine Флаера FIX, чтобы отправить сообщения FIX. status
содержит логический нуль для успешной доставки сообщений.
status = sendMessage(c,order);
Возвратите и отобразите информацию для заказа o
для всех порядков. Редактор Переменных отображает содержимое o
.
o = orderInfo(c);
openvar('o')
Замените порядок. Создайте сообщение FIX replace
с обновленным количеством 3 378 долей. Установите поле MsgType
к 'G'
задавать порядок замены.
replace.BeginString{1,1} = 'FIX.4.4'; replace.CLOrdId{1,1} = '338_REPLACE'; replace.origClOrdId{1,1} = '338'; replace.Symbol{1,1} = 'IBM'; replace.OnBehalfOfCompID{1,1} = 'TRADER'; replace.OrdType{1,1} = 'D'; replace.OrderQty{1,1} = '3378'; replace.MsgType{1,1} = 'G'; replace.Text{1,1} = 'REST API REPLACE';
Отправьте сообщение FIX. Чтобы видеть замененный порядок, получите и отобразите информацию для заказа. Редактор Переменных отображает содержимое o
.
status = sendMessage(c,replace);
o = orderInfo(c);
openvar('o')
Теперь отмените порядок. Создайте сообщение FIX cancel
с номером заказа 338
. Установите поле MsgType
к 'F'
задавать порядок отмены.
cancel.BeginString{1,1} = 'FIX.4.4'; cancel.CLOrdId{1,1} = '338_CANCEL'; cancel.origClOrdId{1,1} = '338_REPLACE'; cancel.Symbol{1,1} = 'IBM'; cancel.OnBehalfOfCompID{1,1} = 'TRADER'; cancel.OrdType{1,1} = 'D'; cancel.MsgType{1,1} = 'F'; cancel.Text{1,1} = 'REST API CANCEL';
Отправьте сообщение FIX. Затем получите и отобразите отмененную информацию для заказа. Редактор Переменных отображает содержимое o
.
status = sendMessage(c,cancel);
o = orderInfo(c);
openvar('o')
Используйте демонстрационный прослушиватель обработки событий fixExampleListener
прислушиваться к сообщениям FIX от Engine Флаера FIX. Прослушиватель fixExampleListener
возвращает необработанное сообщение FIX в таблице fixResponse
. Отобразите первые три столбца таблицы. Имена столбцов fixResponse
содержите имена тега FIX из возвращенного необработанного сообщения FIX. Данные в столбцах содержат значения возвращенного необработанного сообщения FIX.
fixResponse(:,1:3)
ans = BeginString BodyLength MsgType ___________ __________ _______ 'FIX.4.4' '219' '8'
close(c)
addListener
| close
| fixflyer
| orderInfo
| sendMessage