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