Создайте связь с Рабочей станцией Торговца IB ℠ и создайте порядок рынка на основе исторических и текущих данных для безопасности. Можно также создать порядки для различного инструмента, такие как фьючерсный контракт.
Прежде, чем создать связь, необходимо ввести учетные данные и запустить Рабочую станцию Торговца IB ℠ приложение.
Чтобы запустить этот пример, необходимо было установить Financial Toolbox™.
Гарантируйте, что Рабочая станция Торговца IB ℠ приложение запускается, и тот API, который включены связи. Выполните эти шаги в Рабочей станции Торговца IB ℠.
Чтобы открыть диалоговое окно Trader Workstation Configuration (Simulated Trading), выберите File> Global Configuration.
Выберите API> Settings.
Гарантируйте, что флажок Enable ActiveX и Socket Clients устанавливается.
Соединитесь с Рабочей станцией Торговца IB ℠ и создайте связь ib с помощью локального хоста и номера порта по умолчанию 7496.
ib = ibtws('',7496);
Когда сообщение Accept incoming connection attempt появится в Рабочей станции Торговца IB ℠, нажать кнопку Да.
Создайте Рабочую станцию Торговца IB ℠ объект IContract ibContract. Этот объект задает безопасность. Получите данные для запаса Microsoft®. При определении SMART, когда обмен позволяет Интерактивному Brokers® определить который место проведения использовать для поиска данных. Чтобы разъяснить любую неоднозначность, установите первичный обмен для места назначения к NASDAQ. Чтобы получить выраженный в долларах запас, установите тип валюты на USD. Установка типа валюты полезна, когда запасы перечислены двойным образом или мультиперечислены через различную юрисдикцию.
ibContract = ib.Handle.createContract; ibContract.symbol = 'MSFT'; ibContract.secType = 'STK'; ibContract.exchange = 'SMART'; ibContract.primaryExchange = 'NASDAQ'; ibContract.currency = 'USD';
Задайте диапазон дат в течение прошлых 20 рабочих дней, исключая сегодня. Чтобы вычислить соответствующий запуск и даты окончания, этот код использует функцию daysadd от Financial Toolbox™.
bizDayConvention = 13; % i.e. BUS/252
currentdate = today;
startDate = daysadd(currentdate,-20,bizDayConvention);
endDate = daysadd(currentdate,-1,bizDayConvention);
Получите исторические данные в течение прошлых 20 рабочих дней.
histTradeData = history(ib,ibContract,startDate,endDate);
Функция history принимает дополнительные параметры, которые позволяют вам получить другие исторические данные, такие как подразумеваемая волатильность опции, историческая энергозависимость, цены предложения, запрашиваемые цены или средние точки. Если вы ничего не задаете, в последний раз проданные цены возвращаются по умолчанию.
Получите данные о текущей цене из контракта.
currentData = getdata(ib,ibContract)
currentData =
struct with fields:
LAST_PRICE: 62.8500
LAST_SIZE: 1
VOLUME: 41273
BID_PRICE: 62.8400
BID_SIZE: 17
ASK_PRICE: 62.8600
ASK_SIZE: 12
Рабочая станция Торговца IB ℠ поддерживает различные типы порядка, включая основные типы, такие как лимитные приказы, остановите порядки и порядки рынка.
Создайте Рабочую станцию Торговца IB ℠ объект Iorder ibMktOrder. Этот объект задает порядок. Чтобы купить доли, задайте действие BUY. Чтобы задать покупку 100 долей, установите totalQuantity на 100. Чтобы создать порядок рынка, задайте тип порядка как MKT.
ibMktOrder = ib.Handle.createOrder; ibMktOrder.action = 'BUY'; ibMktOrder.totalQuantity = 100; ibMktOrder.orderType = 'MKT';
Установите уникальный идентификатор порядка и отправьте заказ к Интерактивному Brokers®.
id = orderid(ib); result = createOrder(ib,ibContract,ibMktOrder,id)
result =
struct with fields:
STATUS: 'Submitted'
FILLED: 0
REMAINING: 100
AVG_FILL_PRICE: 0
PERM_ID: '1621177315'
PARENT_ID: 0
LAST_FILL_PRICE: 0
CLIENT_ID: 0
WHY_HELD: ''
Можно торговать различными инструментами с помощью Рабочей станции Торговца IB ℠ API, включая акции, фьючерсы, опции, опции фьючерсов и иностранные валюты.
ibFutures является электронным мини-фьючерсным контрактом Standard and Poor's 500 на CME Globex с истечением в декабре 2013. Задайте символ как ES, тип безопасности как фьючерсный контракт FUT, истечение как формат даты YYYYMM, обмен как GLOBEX и валюта как USD.
ibFutures = ib.Handle.createContract; ibFutures.symbol = 'ES'; ibFutures.secType = 'FUT'; ibFutures.expiry = '201312'; % Dec 2013 ibFutures.exchange = 'GLOBEX'; ibFutures.currency = 'USD';
Получите данные о фьючерсах и отправьте заказы с помощью функций createOrder и getdata.
close(ib)
close | createOrder | getdata | history | ibtws