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