image thumbnail
from Order book simulation by Dimitri Shvorob
(a naive artificial stock market)

Order
classdef Order < handle
    
    properties (SetAccess = private)
        Trader
        Side
        Type
        Size
        Price
        Time
    end    
    
    methods        
              
        function[obj] = Order(trader,side,type,size,varargin)                               
            obj.Trader = trader;
            obj.Side   = side;
            obj.Type   = type;
            obj.Size   = size;            
            if strcmp(type,'LIM')
               obj.Price = varargin{1};
            else
               obj.Price = 'MKT';
            end            
            obj.Time = now;    
        end 

        function[out] = clone(obj)                               
            out = Order(obj.Trader,obj.Side,obj.Type,obj.Size,obj.Price);
            out.Time = obj.Time;    
        end 
                     
        function[out] = char(obj)
            if strcmp(obj.Type,'LIM')
               p = sprintf('%6.2f or better',obj.Price);
            else
               p = 'MKT';
            end
            out = sprintf('Order by %s: %s %d at %s, time %s',char(obj.Trader),obj.Side,obj.Size,p,datestr(obj.Time,13));
        end
        
        function disp(obj) 
            disp(class(obj))
            disp(struct('Trader',obj.Trader.Name, ...
                        'Side',obj.Side, ...
                        'Type',obj.Type, ...
                        'Size',obj.Size, ...
                        'Price',obj.Price, ...
                        'Time',datestr(obj.Time,13)))         
        end
        
    end 
  
end

Contact us at files@mathworks.com