В этом примере показано, как подключиться к Bloomberg® EMSX, настройка порядка и маршрута подписки, создание и маршрутизация порядка, а также взаимодействие с маршрутом.
Для получения дополнительной информации о Bloomberg EMSX смотрите Руководство программиста EMSX API с помощью опции WAPI <GO> от терминала Bloomberg.
Подключитесь к тестовой службе Bloomberg EMSX. Отображение текущего содержимого очереди событий с помощью processEvent
.
c = emsx('//blp/emapisvc_beta');
processEvent(c)
c = emsx with properties: Session: [1x1 com.bloomberglp.blpapi.Session] Service: [1x1 com.bloomberglp.blpapi.impl.aQ] Ipaddress: 'localhost' Port: 8194 SessionConnectionUp = { server = localhost/127.0.0.1:8194 } SessionStarted = { } ServiceOpened = { serviceName = //blp/emapisvc_beta }
MATLAB® возвращает c
как подключение к тестовому сервису Bloomberg EMSX со следующими:
Объект сеанса EMSX Bloomberg
Объект услуги Bloomberg EMSX
IP-адрес машины, работающей под тестовым сервисом Bloomberg EMSX
Номер порта машины, выполняющей тестовую службу Bloomberg EMSX
processEvent
отображает события, связанные с подключением к Bloomberg EMSX.
Подпишитесь на события заказа с помощью c
подключения Bloomberg EMSX связана с этими полями Bloomberg EMSX.
fields = {'EMSX_TICKER','EMSX_AMOUNT','EMSX_FILL'}; [events,osubs] = orders(c,fields)
events = MSG_TYPE: {'E'} MSG_SUB_TYPE: {'O'} EVENT_STATUS: 4 ... osubs = com.bloomberglp.blpapi.SubscriptionList@4bc3dc78
events
содержит поля для событий, связанных с существующими порядками Bloomberg EMSX. osubs
содержит объект списка подписок Bloomberg EMSX.
Подпишитесь на маршруты событий для полей Bloomberg EMSX EMSX_BROKER
и EMSX_WORKING
использование Bloomberg EMSX- c
. Возврат статуса существующих маршрутов.
fields = {'EMSX_BROKER','EMSX_WORKING'}; [events,rsubs] = routes(c,fields)
events = MSG_TYPE: {5x1 cell} MSG_SUB_TYPE: {5x1 cell} EVENT_STATUS: [5x1 int32] ... rsubs = com.bloomberglp.blpapi.SubscriptionList@463b9287
events
содержит поля для событий, находящихся в очереди событий. rsubs
содержит объект списка подписок Bloomberg EMSX.
Создайте структуру запроса на заказ order
для определения параметров порядка. Этот код создает порядок рынка покупок на 100 акций IBM®. Этот код использует брокер BB
с установленным временем в DAY
и любая ручная инструкция. Преобразуйте количество общих ресурсов в 32-битное целое число со знаком с помощью int32
.
order.EMSX_TICKER = 'IBM'; order.EMSX_AMOUNT = int32(100); order.EMSX_ORDER_TYPE = 'MKT'; order.EMSX_BROKER = 'BB'; order.EMSX_TIF = 'DAY'; order.EMSX_HAND_INSTRUCTION = 'ANY'; order.EMSX_SIDE = 'BUY';
Создайте и маршрутизируйте порядок с помощью c
подключения Bloomberg EMSX и структуру запроса порядка
order
.
events = createOrderAndRoute(c,order)
events = EMSX_SEQUENCE: 335877 EMSX_ROUTE_ID: 1 MESSAGE: 'Order created and routed'
Обработчик событий по умолчанию обрабатывает события, связанные с созданием и маршрутизацией порядка. createOrderAndRoute
возвращает events
как структура, содержащая эти поля:
Блумберг Номер порядка EMSX
Идентификатор маршрута EMSX Bloomberg
Сообщение Bloomberg EMSX
Определите modroute
структура, содержащая следующие поля:
Блумберг EMSX порядка порядковый номер EMSX_SEQUENCE
Блумберг EMSX тикер символ EMSX_TICKER
Количество акций Bloomberg EMSX EMSX_AMOUNT
Идентификатор маршрута EMSX Bloomberg EMSX_ROUTE_ID
Этот код изменяет маршрут к 50 акциям IBM для порядкового номера порядка 335877
и идентификатор маршрута 1
. Преобразуйте числа в 32-битные целые числа со знаком с помощью int32
.
modroute.EMSX_SEQUENCE = int32(335877)
modroute.EMSX_TICKER = 'IBM';
modroute.EMSX_AMOUNT = int32(50);
modroute.EMSX_ROUTE_ID = int32(1);
Измените маршрут с помощью c
подключения Bloomberg EMSX и измените запрос маршрута
modroute
.
events = modifyRoute(c,modroute)
events = EMSX_SEQUENCE: 0 EMSX_ROUTE_ID: 0 MESSAGE: 'Route modified'
Обработчик событий по умолчанию обрабатывает события, связанные с изменением маршрута. modifyRoute
возвращает events
как структура, содержащая эти поля:
Блумберг Номер порядка EMSX
Идентификатор маршрута EMSX Bloomberg
Сообщение Bloomberg EMSX
Определите структуру routenum
который содержит порядковый номер порядка EMSX_SEQUENCE
для маршрутизируемого порядка и номера маршрута EMSX_ROUTE_ID
.
routenum.EMSX_SEQUENCE = 0; routenum.EMSX_ROUTE_ID = 0;
Удалите маршрут с помощью c
подключения Bloomberg EMSX и удалите структуру номера маршрута
routenum
.
events = deleteRoute(c,routenum)
events = STATUS: '1' MESSAGE: 'Route cancellation request sent to broker'
Обработчик событий по умолчанию обрабатывает события, связанные с удалением маршрута. deleteRoute
возвращает events
как структура, содержащая эти поля:
Блумберг Статус EMSX
Сообщение Bloomberg EMSX
Отменить подписку на события порядка и маршрутизации с помощью объектов списка подписки Bloomberg EMSX osubs
и rsubs
. Этот код принимает, что orders
создает osubs
и routes
создает rsubs
.
c.Session.unsubscribe(osubs) c.Session.unsubscribe(rsubs)
close(c)
close
| createOrderAndRoute
| deleteRoute
| emsx
| modifyRoute
| orders
| routes