This example shows how to connect to the IB Trader WorkstationSM, create IB Trader Workstation
IContract
objects, and request real-time data. For details about
the IContract
object, see Interactive Brokers API Reference Guide.
This example uses the sample event handler function ibExampleRealtimeEventHandler
to
handle events associated with requesting real-time data. Use this
event handler or write a custom event handler function. For details,
see Writing and Running Custom Event Handler Functions with Interactive Brokers.
Here, AAA
, BBB
, and DDDD
are
sample symbol names. EX
is a sample primary exchange
name. To create orders for your securities, substitute symbol names
in ibContract.symbol
and primary exchange names
in ibContract.primaryExchange
.
To access the code for this example, enter edit IBStreamingDataWorkflow.m
.
Connect to the IB Trader Workstation and create connection ib
using
the local host and port number 7496
.
ib = ibtws('',7496);
MATLAB® returns ib
as the connection
to the IB Trader Workstation with the Interactive Brokers® ActiveX® object,
the local host, and the port number that you choose.
To display real-time data, create an example figure.
This MATLAB code creates a MATLAB figure to contain the Interactive Brokers real-time data.
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 displays the empty figure.
IContract
ObjectsCreate the IB Trader Workstation IContract
object
for the first security. Here, this object describes a security with
these property values:
AAA
symbol
Stock security type
Aggregate exchange
Primary exchange
USD currency
ibContract1 = ib.Handle.createContract; ibContract1.symbol = 'AAA'; ibContract1.secType = 'STK'; ibContract1.exchange = 'SMART'; ibContract1.primaryExchange = 'EX'; ibContract1.currency = 'USD';
Create the IB Trader Workstation IContract
object
for the second security symbol BBB
.
ibContract2 = ib.Handle.createContract; ibContract2.symbol = 'BBB'; ibContract2.secType = 'STK'; ibContract2.exchange = 'SMART'; ibContract2.primaryExchange = 'EX'; ibContract2.currency = 'USD';
Create the IB Trader Workstation IContract
object
for the third security symbol DDDD
.
ibContract3 = ib.Handle.createContract; ibContract3.symbol = 'DDDD'; ibContract3.secType = 'STK'; ibContract3.exchange = 'SMART'; ibContract3.primaryExchange = 'EX'; ibContract3.currency = 'USD';
Display the data in the symbol
property
of ibContract1
.
ibContract1.symbol
ans = AAA
Request real-time data for the three securities. Set f
to
100
to retrieve the Option Volume tick type. For details
about other generic market data tick types, see Interactive Brokers API Reference Guide. Use the sample
event handler ibExampleRealtimeEventHandler
to process the
real-time data events or write a custom event handler function.
contracts = {ibContract1;ibContract2;ibContract3}; f = '100'; tickerID = realtime(ib,contracts,f,... @(varargin)ibExampleRealtimeEventHandler(varargin{:}));
MATLAB displays the figure populated with real-time data for stock
symbols AAA
, BBB
, and
DDDD
.
Close the IB Trader Workstation connection ib
.
close(ib)
close
| createOrder
| getdata
| history
| ibtws
| timeseries