exponenta event banner

Запросите интерактивные данные реального времени брокеров

Этот пример показывает, как соединить с Торговцем IB WorkstationSM, создать Рабочую станцию Торговца IB объекты IContract и запросить данные реального времени. Для получения дополнительной информации об объекте IContract, см. Интерактивный Справочник API Брокеров.

Этот пример использует демонстрационную функцию обработчика событий ibExampleRealtimeEventHandler, чтобы обработать события, сопоставленные с запросом данных реального времени. Используйте этот обработчик событий или запишите пользовательскую функцию обработчика событий. Для получения дополнительной информации смотрите Запись и Выполнение Пользовательских Функций обработчика событий с Интерактивными Брокерами.

Здесь, AAA, BBB и DDDD являются демонстрационными именами символа. EX является демонстрационным первичным обменным именем. Чтобы создать порядки для ваших ценных бумаг, замените именами символа в ibContract.symbol и первичными обменными именами в ibContract.primaryExchange.

Чтобы получить доступ к коду для этого примера, введите edit IBStreamingDataWorkflow.m.

Соединитесь с рабочей станцией торговца IB и создайте фигуру отображения данных реального времени

Соединитесь с Рабочей станцией Торговца IB и создайте связь ib с помощью локального хоста и номера порта 7496.

 ib = ibtws('',7496); 

MATLAB® возвращает ib как связь с Рабочей станцией Торговца IB с объектом Interactive Brokers® ActiveX®, локальным хостом и номером порта, который вы выбираете.

Чтобы отобразить данные реального времени, создайте фигуру в качестве примера.

Этот код MATLAB создает фигуру MATLAB, чтобы содержать Интерактивные данные реального времени Брокеров.

f = findobj('Tag','IBStreamingDataWorkflow');
if isempty(f)
    f = figure('Tag','IBStreamingDataWorkflow', ...
        'MenuBar','none','NumberTitle','off')
    pos = f.Position;
    f.Position = [pos(1) pos(2) pos(3)+37 109];
    colnames = {'Trade','Size','Bid','BidSize', ...
        'Ask','AskSize','Total Volume'};
    rownames = {'AAA','BBB','DDDD'};
    data = cell(3,6);
    uitable(f,'Data',data,'RowName',rownames, ...
        'ColumnName',colnames,'Position',[10 30 582 76], ...
        'Tag','SecurityDataTable')
    uicontrol('Style','text','Position',[10 5 497 20], ...
        'Tag','IBMessage')
    uicontrol('Style','pushbutton','String','Close', ...
        'Callback', ...
        'evalin(''base'',''close(ib);close(findobj(''''Tag'''',''''IBStreamingDataWorkflow''''));'')', ...
        'Position',[512 5 80 20])
end

MATLAB отображает пустую фигуру.

Создайте рабочую станцию торговца IB объекты IContract

Создайте объект IB Trader Workstation IContract для первой безопасности. Здесь, этот объект описывает безопасность с этими значениями свойств:

  • Символ AAA

  • Тип безопасности запаса

  • Совокупный обмен

  • Первичный обмен

  • Долларовая валюта

ibContract1 = ib.Handle.createContract;
ibContract1.symbol = 'AAA';
ibContract1.secType = 'STK';
ibContract1.exchange = 'SMART';
ibContract1.primaryExchange = 'EX';
ibContract1.currency = 'USD';

Создайте объект IB Trader Workstation IContract для второго символа безопасности BBB.

ibContract2 = ib.Handle.createContract;
ibContract2.symbol = 'BBB';
ibContract2.secType = 'STK';
ibContract2.exchange = 'SMART';
ibContract2.primaryExchange = 'EX';
ibContract2.currency = 'USD';

Создайте объект IB Trader Workstation IContract для третьего символа безопасности DDDD.

ibContract3 = ib.Handle.createContract;
ibContract3.symbol = 'DDDD';
ibContract3.secType = 'STK';
ibContract3.exchange = 'SMART';
ibContract3.primaryExchange = 'EX';
ibContract3.currency = 'USD';

Отобразите данные в свойстве symbol ibContract1.

ibContract1.symbol
ans =
    AAA

Запросите данные реального времени для этих трех ценных бумаг. Установите f на 100 получать тип метки деления Объема Опции. Для получения дополнительной информации о других типичных типах метки деления данных о рынке, см. Интерактивный Справочник API Брокеров. Используйте демонстрационный обработчик событий ibExampleRealtimeEventHandler, чтобы обработать события данных реального времени или записать пользовательскую функцию обработчика событий.

contracts = {ibContract1;ibContract2;ibContract3};
f = '100';

tickerID = realtime(ib,contracts,f,...
                    @(varargin)ibExampleRealtimeEventHandler(varargin{:}));

MATLAB отображает фигуру, заполненную с данными реального времени для символов запаса AAA, BBB и DDDD.

Закройте связь

Закройте связь Рабочей станции Торговца IB ib.

close(ib)

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

| | | | |

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

Больше о

Внешние веб-сайты