from
Order book simulation
by Dimitri Shvorob
(a naive artificial stock market)
|
| RandomOrderStrategy |
classdef RandomOrderStrategy < Strategy
methods
function eval(obj,trader)
if Settings.Verbose
fprintf('%s evaluated by %s\n',class(obj),char(trader))
end
if ~isempty(trader.TradeConfirmationsToReview)
if Settings.Verbose
fprintf('Trade confirmations reviewed by %s (listed below)\n',char(trader))
for t = trader.TradeConfirmationsToReview.Values
disp(t)
trader.ArchivedTradeConfirmations.put(t);
end
disp('--------------------------------------------------')
end
trader.TradeConfirmationsToReview = Queue();
end
if ~isempty(trader.TradeAnnouncementsToReview)
if Settings.Verbose
fprintf('Trade announcements reviewed by %s (listed below)\n',char(trader))
for t = trader.TradeAnnouncementsToReview.Values
disp(t)
trader.ArchivedTradeAnnouncements.put(t);
end
disp('--------------------------------------------------')
end
trader.TradeAnnouncementsToReview = Queue();
end
if rand < 1
if rand < .5
side = 'BUY';
else
side = 'SELL';
end
if rand < .5
type = 'MKT';
else
type = 'LIM';
end
size = ceil(10*rand);
price = ceil(10*rand);
order = Order(trader,side,type,size,price);
trader.processOrder(order)
end
end
end
end
|
|
Contact us at files@mathworks.com