В этом примере показано, как соединиться с X_TRADER® и включите обработку событий для уровня два данных о рынке (например, предложите и спросите порядки на рынке для инструмента), и затем создайте окно рисунка, чтобы отобразить данные о глубине.
X = xtrdr;
Создайте событие notifier и включите обновления глубины. Событие notifier является механизмом X_TRADER, позволяет вам задать MATLAB® функции, чтобы использовать в качестве коллбэков для определенных событий.
createNotifier(X) X.InstrNotify(1).EnableDepthUpdates = 1;
createInstrument(X,'Exchange','CME','Product','2F','ProdType','Future',... 'Contract','Aug13','Alias','PriceInstrumentDepthUpdate')
Присвойте один или несколько notifiers инструменту. notifier может иметь один или несколько инструментов, присоединенных к нему.
X.InstrNotify(1).AttachInstrument(X.Instrument(1))
Присвойте коллбэки для проверки или лишения законной силы инструмента и обновления окна регистрационного журнала в качестве примера.
registerevent(X.InstrNotify(1),{'OnNotifyFound',... @ttinstrumentfound}) registerevent(X.InstrNotify(1),{'OnNotifyNotFound',... @ttinstrumentnotfound}) registerevent(X.InstrNotify(1),{'OnNotifyDepthData',... @ttinstrumentdepthupdate})
Настройте окно рисунка, чтобы отобразить данные о глубине.
f = figure('Numbertitle','off','Tag','TTPriceUpdateDepthFigure',... 'Name',['Order Book - ' X.Instrument(1).Alias]) pos = f.Position; f.Position = [pos(1) pos(2) 360 315]; f.Resize = 'off';
Создайте средства управления для последних ценовых данных.
bspc = 5; bwid = 80; bhgt = 20; uicontrol('Style','text','String','Exchange',... 'Position',[bspc 4*bspc+3*bhgt bwid bhgt]) uicontrol('Style','text','String','Product',... 'Position',[2*bspc+bwid 4*bspc+3*bhgt bwid bhgt]) uicontrol('Style','text','String','Type',... 'Position',[3*bspc+2*bwid 4*bspc+3*bhgt bwid bhgt]) uicontrol('Style','text','String','Contract',... 'Position',[4*bspc+3*bwid 4*bspc+3*bhgt bwid bhgt]) ui.Exchange = uicontrol('Style','text','Tag','',... 'Position',[bspc 3*bspc+2*bhgt bwid bhgt]); ui.Product = uicontrol('Style','text','Tag','',... 'Position',[2*bspc+bwid 3*bspc+2*bhgt bwid bhgt]); ui.Type = uicontrol('Style','text','Tag','',... 'Position',[3*bspc+2*bwid 3*bspc+2*bhgt bwid bhgt]); ui.Contract = uicontrol('Style','text','Tag','',... 'Position',[4*bspc+3*bwid 3*bspc+2*bhgt bwid bhgt]); uicontrol('Style','text','String','Last Price',... 'Position',[bspc 2*bspc+bhgt bwid bhgt]) uicontrol('Style','text','String','Last Qty',... 'Position',[2*bspc+bwid 2*bspc+bhgt bwid bhgt]) uicontrol('Style','text','String','Change',... 'Position',[3*bspc+2*bwid 2*bspc+bhgt bwid bhgt]) ui.Last = uicontrol('Style','text','Tag','',... 'Position',[bspc bspc bwid bhgt]); ui.Quantity = uicontrol('Style','text','Tag','',... 'Position',[2*bspc+bwid bspc bwid bhgt]); ui.Change = uicontrol('Style','text','Tag','',... 'Position',[3*bspc+2*bwid bspc bwid bhgt]);
Составьте таблицу, содержащую информацию для заказа.
data = {' '}; data = data(ones(10,4)); uibook = uitable('Data',data,'ColumnName',... {'Bid','Bid Size','Ask','Ask Size'},... 'Position',[5 105 350 205]);
setappdata(0,'TTOrderBookHandle',uibook) setappdata(0,'TTOrderBookUIData',ui)
Прислушайтесь к данным о событиях с включенными обновлениями глубины.
X.Instrument(1).Open(1)
Последняя команда дает X_TRADER команду начинать контролировать присоединенные инструменты с помощью заданных настроек события.
close(X)
xtrdr
| close
| createInstrument
| createNotifier
| getData