Create and Manage Bloomberg EMSX Order Using Bloomberg EMSX C++ Interface
This example shows how to connect to Bloomberg® EMSX with the Bloomberg EMSX C++ interface, create an order, and interact with the order.
For details about Bloomberg EMSX, see the EMSX API Programmer’s Guide using the WAPI <GO> option from the Bloomberg terminal.
Connect to Bloomberg EMSX
Connect to the Bloomberg EMSX test service using the Bloomberg EMSX C++ interface.
c = bloombergEMSX('//blp/emapisvc_beta');
c =
bloombergEMSX with properties:
Session: [1×1 datafeed.internal.BLPSession]
Service: '//blp/emapisvc_beta'
Ipaddress: "111.222.333.44"
Port: 8194.00
User: []
MATLAB® returns c as the connection to the Bloomberg EMSX test service with the following:
Bloomberg EMSX session object
Bloomberg EMSX service object
IP address of the machine running the Bloomberg EMSX test service
Port number of the machine running the Bloomberg EMSX test service
Set Up Order Subscription
Subscribe to order events using the Bloomberg EMSX connection c associated with these Bloomberg EMSX fields.
fields = {'EMSX_TICKER','EMSX_AMOUNT','EMSX_FILL'};
events = orders(c,fields)events =
MSG_TYPE: {'E'}
MSG_SUB_TYPE: {'O'}
EVENT_STATUS: 4
...
events contains fields for the events associated with the existing
Bloomberg EMSX orders.
Create Order
Create an order request structure order for a buy market order of
400 shares of IBM®. Specify the broker as EFIX, use any hand instruction,
and set the time in force to DAY.
order.EMSX_ORDER_TYPE = 'MKT'; order.EMSX_SIDE = 'BUY'; order.EMSX_TICKER = 'IBM'; order.EMSX_AMOUNT = int32(400); order.EMSX_BROKER = 'EFIX'; order.EMSX_HAND_INSTRUCTION = 'ANY'; order.EMSX_TIF = 'DAY';
Create the order using the Bloomberg EMSX connection c and the order request structure
order.
events = createOrder(c,order)
order_events =
EMSX_SEQUENCE: 354646
MESSAGE: 'Order created'The default event handler processes the events associated with creating the order.
createOrder returns events as a structure that
contains these fields:
Bloomberg EMSX order number
Bloomberg EMSX message
Modify Order
Define the structure modorder that contains these fields:
Bloomberg EMSX order sequence number
EMSX_SEQUENCEBloomberg EMSX ticker symbol
EMSX_TICKERBloomberg EMSX number of shares
EMSX_AMOUNT
This code modifies order number 354646 for 200 shares of
IBM. Convert the numbers to 32-bit signed integers using
int32.
modorder.EMSX_SEQUENCE = int32(354646);
modorder.EMSX_TICKER = 'IBM';
modorder.EMSX_AMOUNT = int32(200);
Modify the order using the Bloomberg EMSX connection c and modify order structure
modorder.
events = modifyOrder(c,modorder)
events =
EMSX_SEQUENCE: 354646
MESSAGE: 'Order Modified'
The default event handler processes the events associated with modifying an order.
modifyOrder returns events as a structure that
contains these fields:
Bloomberg EMSX order number
Bloomberg EMSX message
Delete Order
Define the structure ordernum that contains the order sequence
number 354646 for the order to delete. Delete the order using the
Bloomberg EMSX connection c and the delete order number structure
ordernum.
ordernum.EMSX_SEQUENCE = 354646; events = deleteOrder(c,ordernum)
events =
STATUS: '0'
MESSAGE: 'Order deleted'The default event handler processes the events associated with deleting an order.
deleteOrder returns events as a structure that
contains these fields:
Bloomberg EMSX status
Bloomberg EMSX message
Stop Order Subscription
Unsubscribe from order events using the Bloomberg EMSX subscriptions.
c.Session.stopSubscriptions
Close Bloomberg EMSX Connection
close(c)
See Also
Objects
Functions
orders|close|createOrder|modifyOrder|deleteOrder
Topics
- Create Bloomberg EMSX Order and Route Using Bloomberg EMSX C++ Interface
- Create and Manage Bloomberg EMSX Route Using Bloomberg EMSX C++ Interface
- Manage Bloomberg EMSX Order and Route Using Bloomberg EMSX C++ Interface