В этом примере показано, как соединить с Торговцем IB WorkstationSM, запросите открытые данные о порядке, создайте Рабочую станцию Торговца IB IContract и IOrder объекты, и выполняют заказ. Для получения дополнительной информации о IContract и IOrder объекты, см. Интерактивный Справочник API Брокеров.
Этот пример использует демонстрационную функцию обработчика событий ibExampleOrderEventHandler заполнить фигуру промокательной бумаги порядка с Интерактивной информацией для заказа Brokers®. Используйте этот обработчик событий или запишите пользовательскую функцию обработчика событий. Для получения дополнительной информации смотрите Запись и Выполнение Пользовательских Функций обработчика событий с Интерактивными Брокерами.
Чтобы получить доступ к коду для этого примера, введите edit IBOrderWorkflow.m.
Свяжите с Рабочей станцией Торговца IB и создайте связь ib использование локального хоста и номера порта 7496.
ib = ibtws('',7496); Создайте промокательную бумагу порядка в качестве примера, которую заполняет обработчик событий.
Этот код MATLAB® создает фигуру MATLAB, чтобы содержать Интерактивную информацию для заказа Брокеров.
f = findobj('Tag','IBOrderBlotter'); if isempty(f) f = figure('Tag','IBOrderBlotter','MenuBar','none', ... 'NumberTitle','off','Name','IB Order Blotter') pos = f.Position; f.Position = [pos(1) pos(2) 687 335]; colnames = {'Status','Filled','Remaining','Avg Fill Price','Id', ... 'Parent Id','Last Fill Price','Client Id','Why Held'}; data = cell(15,9); uitable(f,'Data',data,'RowName',[],'ColumnName',colnames, ... 'Position',[10 30 677 300],'Tag','OrderDataTable') uicontrol('Style','text','Position',[10 5 592 20], ... 'Tag','IBOrderMessage') uicontrol('Style','pushbutton','String','Close', ... 'Callback','evalin(''base'',''close(ib);close(findobj(''''Tag'''',''''IBOrderBlotter''''));'')',... 'Position',[607 5 80 20]) end
MATLAB отображает Промокательную бумагу Порядка IB.

Запросите информацию для всех открытых порядков с помощью только этот клиент и демонстрационный обработчик событий ibExampleOrderEventHandler.
o = orders(ib,true,@ibExampleOrderEventHandler);
o пустое двойное потому что ibExampleOrderEventHandler отображает данные для всех открытых порядков в Промокательной бумаге Порядка IB.

IContract и IOrder ОбъектыСоздайте рабочую станцию торговца IB IContract объект ibContract. Здесь, этот объект описывает безопасность с этими значениями свойств:
XYZ символ
Тип безопасности запаса
Совокупный обмен
Первичный обмен
Долларовая валюта
XYZ демонстрационное имя символа и EX демонстрационное первичное обменное имя. Чтобы создать порядки для вашей безопасности, замените именем символа в ibContract.symbol и первичное обменное имя в ibContract.primaryExchange.
ibContract = ib.Handle.createContract; ibContract.symbol = 'XYZ'; ibContract.secType = 'STK'; ibContract.exchange = 'SMART'; ibContract.primaryExchange = 'EX'; ibContract.currency = 'USD'
ibContract = Interface.Tws_ActiveX_Control_module.IContract
Создайте рабочую станцию торговца IB IOrder объект ibOrder для покупки рынок заказывают для двух долей.
ibOrder = ib.Handle.createOrder; ibOrder.action = 'BUY'; ibOrder.totalQuantity = 2; ibOrder.orderType = 'MKT'
ibOrder = Interface.Tws_ActiveX_Control_module.IOrder
ibOrder содержит действие, общее количество и тип порядка.
Получите следующий допустимый идентификационный номер порядка с помощью связи Рабочей станции Торговца IB ib.
id = orderid(ib);
Выполните заказ рынка покупки для двух долей с помощью уникального идентификатора порядка id и демонстрационный обработчик событий ibExampleOrderEventHandler.
createOrder(ib,ibContract,ibOrder,id,@ibExampleOrderEventHandler)
MATLAB отображает информацию для заказа в Промокательной бумаге Порядка IB. Промокательная бумага Порядка IB показывает открытый порядок и выполненный заказ.

ib.Handle.cancelOrder(id)
После отмены существующего порядка создайте порядок путем изменения Рабочей станции Торговца IB IOrder объект ibOrder. Затем создайте порядок путем выполнения createOrder.
Отмените все открытые Интерактивные порядки Брокеров.
ib.Handle.reqGlobalCancel
Этот метод отменяет все открытые Интерактивные порядки Брокеров глобально. Порядок отменяется несмотря на то, где он создается.
Закройте связь Рабочей станции Торговца IB ib.
close(ib)
close | createOrder | getdata | history | ibtws | orderid | orders | timeseries