Прислушайтесь к ценовым обновлениям глубины рынка X_TRADER

В этом примере показано, как соединиться с X_TRADER® и включить обработку событий для уровня два данных о рынке (например, предложите и спросите порядки на рынке для инструмента), и затем создайте окно рисунка, чтобы отобразить данные о глубине.

Соединитесь с X_TRADER

X = xtrdr;

Создайте событие Notifier

Создайте событие notifier и включите обновления глубины. Событие notifier является механизмом X_TRADER, позволяет вам задать функции MATLAB®, чтобы использовать в качестве коллбэков для определенных событий.

createNotifier(X)
X.InstrNotify(1).EnableDepthUpdates = 1;

Создайте инструмент

createInstrument(X,'Exchange','CME','Product','2F','ProdType','Future',...
               'Contract','Aug13','Alias','PriceInstrumentDepthUpdate')

Присоедините инструмент к Notifier

Присвойте один или несколько 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)

Смотрите также

| | | |

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте