|
|
| TradeGenerator |
classdef TradeGenerator < handle
properties (SetAccess = private)
Running = false;
Period = .1;
end
properties (SetAccess = private, GetAccess = private, Hidden)
Timer
end
methods (Static)
function[obj] = getInstance()
persistent g
if isempty(g)
g = TradeGenerator();
end
obj = g;
end
end
methods
function start(obj)
obj.Running = true;
obj.Timer = timer('TimerFcn','TradeGenerator.getInstance().step', ...
'Period',obj.Period, ...
'ExecutionMode','fixedRate');
start(obj.Timer)
end
function stop(obj)
obj.Running = false;
if ~isempty(obj.Timer)
stop(obj.Timer)
delete(obj.Timer)
obj.Timer = [];
end
end
function step(obj)
if rand < .5
size = ceil(10*rand);
price = ceil(10*rand);
trade = Trade(size,price);
notify(obj,'NewTrade',trade)
%disp(char(trade))
end
end
function delete(obj)
try
stop(obj.Timer)
delete(obj.Timer)
catch %#ok
end
end
end
methods (Access = private)
function[obj] = TradeGenerator()
end
end
events
NewTrade
end
end
|
|
Contact us at files@mathworks.com