www.gusucode.com > trading工具箱matlab源码程序 > trading/tradingdemos/EMSXOrderAndRouteManagementWorkflow.m
%% Make initial connection to Bloomberg b = emsx('//blp/emapisvc_beta'); b.processEvent %% Set up order and route subscription [o,osubs] = b.orders({'EMSX_TICKER','EMSX_AMOUNT','EMSX_FILL'}) [r,rsubs] = b.routes({'EMSX_BROKER','EMSX_WORKING'}) %% Create request structure reqStruct.EMSX_TICKER = 'IBM'; reqStruct.EMSX_AMOUNT = int32(400); reqStruct.EMSX_ORDER_TYPE = 'MKT'; reqStruct.EMSX_BROKER = 'EFIX'; reqStruct.EMSX_TIF = 'DAY'; reqStruct.EMSX_HAND_INSTRUCTION = 'ANY'; reqStruct.EMSX_SIDE = 'BUY'; %For Limit orders, limit price can be set %reqStruct.EMSX_LIMIT_PRICE = 150; %% Create order and route rCreateOrderAndRoute = b.createOrderAndRoute(reqStruct) %% Modify order on route modStruct.EMSX_SEQUENCE = rCreateOrderAndRoute.EMSX_SEQUENCE; modStruct.EMSX_ROUTE_ID = rCreateOrderAndRoute.EMSX_ROUTE_ID; modStruct.EMSX_TICKER = 'IBM'; modStruct.EMSX_AMOUNT = int32(250); modStruct.EMSX_ORDER_TYPE = 'MKT'; modStruct.EMSX_TIF = 'DAY'; rModifyRoute = b.modifyRoute(modStruct) %% Delete order % note that the structure returned from the createOrderAndRoute call can be used as % the input to delete the order or the user can create a new structure % where the field EMSX_SEQUENCE contains the order number to be cancelled delStruct.EMSX_SEQUENCE = rCreateOrderAndRoute.EMSX_SEQUENCE; delStruct.EMSX_ROUTE_ID = rCreateOrderAndRoute.EMSX_ROUTE_ID; rDeleteOrder = b.deleteRoute(delStruct) %% Unsubscribe from orders and routes b.Session.unsubscribe(osubs) b.Session.unsubscribe(rsubs) %% Close the connection close(b) b.processEvent