exponenta event banner

Создайте и управляйте интерактивным порядком брокеров

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

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

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

Свяжите с рабочей станцией торговца IB

Свяжите с Рабочей станцией Торговца 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.

Создайте рабочую станцию торговца 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)

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

| | | | | | |

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

Больше о

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