exponenta event banner

Создайте порядок Используя флаер FIX

В этом примере показано, как создать FIX связь Flyer™, данные о событиях процесса для отправки сообщений FIX, и представить различные порядки с помощью сообщений FIX.

FIX является протоколом финансовой индустрии, который упрощает низкую торговлю задержкой. Для получения дополнительной информации о протоколе FIX, смотрите, что FIX Торгует Сообществом.

Чтобы получить доступ к примеру кода, введите edit FixFlyerExample.m в командной строке.

Соединитесь с флаером FIX

Импортируйте библиотеки 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

Добавьте прослушиватель события 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

Создайте два сообщения 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'};

Отправьте сообщения FIX

Используйте связь 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')

Получите сообщение FIX

Используйте демонстрационный прослушиватель обработки событий fixExampleListener прислушиваться к сообщениям FIX от Engine Флаера FIX. Прослушиватель fixExampleListener возвращает необработанное сообщение FIX в таблице fixResponse. Отобразите первые три столбца таблицы. Имена столбцов fixResponse содержите имена тега FIX из возвращенного необработанного сообщения FIX. Данные в столбцах содержат значения возвращенного необработанного сообщения FIX.

fixResponse(:,1:3)
ans = 

    BeginString    BodyLength    MsgType
    ___________    __________    _______

    'FIX.4.4'      '219'         '8'    

Закройте связь флаера FIX

close(c)

Смотрите также

| | | |

Внешние веб-сайты