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 объекты IOrder и IContract

Создайте объект IB Trader Workstation 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 Trader Workstation 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 Trader Workstation IOrder ibOrder. Затем создайте порядок путем выполнения createOrder.

Отмените все открытые Интерактивные порядки Брокеров.

ib.Handle.reqGlobalCancel

Этот метод отменяет все открытые Интерактивные порядки Брокеров глобально. Порядок отменяется несмотря на то, где он создается.

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

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

close(ib)

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

| | | | | | |

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

Больше о

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