www.gusucode.com > trading工具箱matlab源码程序 > trading/trading/@xtrdr/createOrderSet.m

    function createOrderSet(x,varargin)
%CREATEORDERSET Order set for X_TRADER.
%   CREATEORDERSET(X,S) creates the XTRDR order set defined by the input
%   structure S.  X is the XTRDR object. 
%   
%   CREATEORDERSET(X,'Property1','Value1','Property2','Value2',...)
%   creates the XTRDR order set defined by the given name/value pairs.
%
%   See also XTRDR, CREATEINSTRUMENT, CREATENOTIFIER, CREATEPROFILE.

%   Copyright 2011-2012 The MathWorks, Inc. 

%Instantiate the X_TRADER XTAPI instrument object
ttOrderSet = actxserver('Xtapi.TTOrderSet');

%Get valid properties of instrument object
ttOrderSetProperties = fields(ttOrderSet);

%Create instrument from input structure
if ~isempty(varargin) && isstruct(varargin{1})
  
    %Get field names in structures
    structFields = fields(varargin{1});
    
    %Set properties of ttInstrObj
    for i = 1:length(structFields)
      
        if any(strcmp(structFields{i},ttOrderSetProperties))
          
          ttOrderSet.(structFields{i}) = varargin{1}.(structFields{i});
          
        end
        
    end
 
else   %Create instrument from name/value pairs
    
  numInputs = length(varargin);
  
  if mod(numInputs,2)
    error(message('trading:xtrdr:nameValuePairMismatch'))
  end
  
  for i = 1:2:numInputs
     
    ttOrderSet.(varargin{i}) = varargin{i+1};
    
  end
end

%Add instruments to xtrdr object OrderSet property
nLengthOrderSets = length(x.OrderSet);
if nLengthOrderSets
  x.OrderSet(nLengthOrderSets + 1) = ttOrderSet;
else
  x.OrderSet = ttOrderSet;
end