This example shows how to connect to CQG®, define event handlers, and request intraday and timed bar data.
Create the CQG connection object using cqg.
c = cqg;
Register the sample event handler cqgconnectioneventhandler to
track events associated with the connection status.
eventNames = {'CELStarted','DataError','IsReady', ...
'DataConnectionStatusChanged'};
for i = 1:length(eventNames)
registerevent(c.Handle,{eventNames{i}, ...
@(varargin)cqgconnectioneventhandler(varargin{:})})
end
cqgconnectioneventhandler is assigned to
the events in eventNames.
Set the API configuration properties. For example, to set the time zone to Eastern Time, enter the following.
c.APIConfig.TimeZoneCode = 'tzEastern';c.APIConfig is a CQG configuration object.
For details about setting API configuration properties, see CQG API
Reference Guide.
Create the CQG connection.
startUp(c)
CELStarted DataConnectionStatusChanged
The connection event handler displays event names for a successful CQG connection.
Register an event handler to build and initialize the
output data structure cqgTickData used for storing
intraday tick data.
rawEventNames = {'TicksResolved','TicksAdded'};
for i = 1:length(rawEventNames)
registerevent(c.Handle,{rawEventNames{i}, ...
@(varargin)cqgintradayeventhandler(varargin{:})})
end
Pass an additional optional request property by creating the
structure x, and setting the optional property.
To see only bid tick data, for example, set TickFilter to 'tfBid'.
x.TickFilter = 'tfBid';TickFilter and SessionsFilter are
the only valid additional optional properties for calling timeseries without
a timed bar request. For additional property values you can set, see CQG API
Reference Guide.
Request intraday tick data for instrument XYZ.XYZ for
the last 2 days using the additional optional request property x. XYZ.XYZ is
a sample instrument name. To request intraday tick data for your instrument,
substitute the symbol name in instrument.
instrument = 'XYZ.XYZ';
startdate = now - 2;
enddate = now;
timeseries(c,instrument,startdate,enddate,[],x)
pause(1)pause causes MATLAB® to wait 1 second
before continuing to give time for CQG to subscribe to the instrument. MATLAB writes
the variable cqgTickData to the Workspace browser.
Display cqgTickData.
cqgTickData
cqgTickData =
Timestamp: {2x1 cell}
Price: [2x1 double]
Volume: [2x1 double]
PriceType: {2x1 cell}
CorrectionType: {2x1 cell}
SalesConditionLabel: {2x1 cell}
SalesConditionCode: [2x1 double]
ContributorId: {2x1 cell}
ContributorIdCode: [2x1 double]
MarketState: {2x1 cell}
Display data in the Timestamp property
of cqgTickData.
cqgTickData.Timestamp
ans =
'4/17/2013 2:14:00 PM'
'4/18/2013 2:14:00 PM'
Register an event handler to build and initialize the output
data matrix cqgTimedBarData used for storing timed
bar data.
aggEventNames = {'TimedBarsResolved','TimedBarsAdded', ...
'TimedBarsUpdated','TimedBarsInserted', ...
'TimedBarsRemoved'};
for i = 1:length(aggEventNames)
registerevent(c.Handle,{aggEventNames{i}, ...
@(varargin)cqgintradayeventhandler(varargin{:})})
endPass additional optional request properties by creating
the structure x, and setting the optional property.
x.UpdatesEnabled = false;
Request timed bar data for instrument XYZ.XYZ for
the last fraction of a day using the additional optional request property x. XYZ.XYZ is
a sample instrument name. To request timed bar data for your instrument,
substitute the symbol name in instrument.
instrument = 'XYZ.XYZ';
startdate = now - .1;
enddate = now;
intraday = 1;
timeseries(c,instrument,startdate,enddate,intraday,x)
pause(1)MATLAB writes the variable cqgTimedBarData to
the Workspace browser.
Display cqgTimedBarData.
cqgTimedBarData
cqgTimedBarData =
1.0e+09 *
0.0007 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475
0.0007 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475
0.0007 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475
0.0007 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475
0.0007 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475 -2.1475
...
cqgTimedBarData returns timed bar data for
the specified instrument. The columns of cqgTimedBarData display
data corresponding to the timestamp, open price, high price, low price,
close price, mid-price, HLC3, average price, and tick volume.
close(c)
close | cqg | createOrder | history | realtime | shutDown | startUp | timeseries