www.gusucode.com > trading工具箱matlab源码程序 > trading/trading/@emsx/modifyOrder.m
function r = modifyOrder(b,reqstruct,varargin) %MODIFYORDER Modify Bloomberg EMSX order. % R = MODIFYORDER(B,REQSTRUCT) modifies a Bloomberg EMSX order and returns % the order sequence number and status message using the default event % handler. % % MODIFYORDER(B,REQSTRUCT,'useDefaultEventHandler',false) modifies a % Bloomberg EMSX order. To process events, the user must invoke a % custom event handler. % % MODIFYORDER(B,REQSTRUCT,'timeOut',200) modifies a Bloomberg EMSX order % and returns the order sequence number and 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) % reqStruct.EMSX_TICKER = 'XYZ'; % reqStruct.EMSX_AMOUNT = int32(200); % r = modifyOrder(b,reqStruct) % % returns % % r = % % EMSX_SEQUENCE: 3335877 % MESSAGE: 'Order Modified' % % modifyOrder(b,reqStruct,'useDefaultEventHandler',false) % b.processEvent % % returns % % ModifyOrder = { % % EMSX_SEQUENCE = 335877 % % MESSAGE = Order Modified % % } % % 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; % modifyOrder(b,reqStruct,p) % % See also orders, createOrderAndRoute, createOrder, deleteOrder, routes. % Copyright 2012 The MathWorks, Inc. %imports import com.bloomberglp.blpapi.*; %get request fields orderFields = fieldnames(reqstruct); %parse name/value pair settings p.timeOut = 500; p.useDefaultEventHandler = true; if nargin > 2 p = b.parsenv(varargin); end %Modify order request = b.Service.createRequest('ModifyOrder'); for i = 1:length(orderFields) request.set(orderFields{i},reqstruct.(orderFields{i})); end %send request b.Session.sendRequest(request, []); %process events with default handler if p.useDefaultEventHandler r = processOrderRouteEvents(b,p.timeOut); elseif nargout == 1 r = []; end