www.gusucode.com > trading工具箱matlab源码程序 > trading/trading/@emsx/deleteOrder.m
function r = deleteOrder(b,reqstruct,varargin) %DELETEORDER Delete Bloomberg EMSX order. % R = DELETEORDER(B,REQ) deletes a Bloomberg EMSX order and returns % a status message using the default event handler. REQ can be a request % structure or EMSX_SEQUENCE number. % % DELETEORDER(B,REQ,'useDefaultEventHandler',false) deletes a % Bloomberg EMSX order. To process events, the user must invoke a % custom event handler. % % DELETEORDER(B,REQ,'timeOut',200) deletes a Bloomberg EMSX order % and a status message using the default event handler specifying a timeOut % value in milliseconds for the event handler. The default timeOut value % is 500 milliseconds. % % For example, % % reqStruct.EMSX_SEQUENCE = int32(335877) % r = deleteOrder(b,reqStruct) % % returns % % r = % % STATUS: '0' % MESSAGE: 'Order deleted' % % deleteOrder(b,int32(335877),'useDefaultEventHandler',false) % b.processEvent % % returns % % DeleteOrder = { % % STATUS = 0 % % MESSAGE = Order deleted % % } % % Note that the name/value pairs can be input as a single input structure % containing some or all of the property fields, for example, % % p.timeOut = 1000; % deleteOrder(b,reqStruct,p) % % See also orders, createOrderAndRoute, createOrder, modifyOrder, routes. % Copyright 2012 The MathWorks, Inc. import com.bloomberglp.blpapi.*; %parse name/value pair settings p.timeOut = 500; p.useDefaultEventHandler = true; if nargin > 2 p = b.parsenv(varargin); end %Delete order request = b.Service.createRequest('DeleteOrder'); if isstruct(reqstruct) numOrders = length(reqstruct.EMSX_SEQUENCE); structFlag = true; else numOrders = length(reqstruct); structFlag = false; end for i = 1:numOrders if structFlag sequenceId = reqstruct.EMSX_SEQUENCE(i); else sequenceId = reqstruct(i); end request.getElement('EMSX_SEQUENCE').appendValue(int32(sequenceId)); end b.Session.sendRequest(request, []); %process events with default handler if p.useDefaultEventHandler r = processOrderRouteEvents(b,p.timeOut); elseif nargout == 1 r = []; end