В этом примере показано, как соединиться с CQG®задайте обработчики событий и запросите внутридневные и размеченные по времени торговые данные.
Создайте объект соединения CQG с помощью cqg
.
c = cqg;
Зарегистрируйте образец обработчика событий cqgconnectioneventhandler
для отслеживания событий, связанных со статусом подключения.
eventNames = {'CELStarted','DataError','IsReady', ... 'DataConnectionStatusChanged'}; for i = 1:length(eventNames) registerevent(c.Handle,{eventNames{i}, ... @(varargin)cqgconnectioneventhandler(varargin{:})}) end
cqgconnectioneventhandler
назначается событиям в eventNames
.
Установите свойства строения API. Для примера, чтобы установить часовой пояс восточным временем, введите следующее.
c.APIConfig.TimeZoneCode = 'tzEastern';
c.APIConfig
является объектом строения CQG. Для получения дополнительной информации об установке свойств строения API см. Руководство по Ссылке CQG API.
Создайте соединение CQG.
startUp(c)
CELStarted DataConnectionStatusChanged
Обработчик событий подключения отображает имена событий для успешного соединения CQG.
Зарегистрируйте обработчик событий, чтобы создать и инициализировать структуру выходных данных cqgTickData
используется для хранения внутридневных данных такта.
rawEventNames = {'TicksResolved','TicksAdded'}; for i = 1:length(rawEventNames) registerevent(c.Handle,{rawEventNames{i}, ... @(varargin)cqgintradayeventhandler(varargin{:})}) end
Передайте дополнительное необязательное свойство запроса путем создания структуры x
, и установка необязательного свойства. Чтобы увидеть только данные такты ставки, например, установите TickFilter
на 'tfBid'
.
x.TickFilter = 'tfBid';
TickFilter
и SessionsFilter
являются единственными допустимыми дополнительными необязательными свойствами для вызова timeseries
без размеченного по времени запроса. Для дополнительного свойства значений, которые можно задать, смотрите CQG API Ссылки Руководства.
Запросите внутридневные данные о такте для XYZ.XYZ
прибора за последние 2 дня с использованием дополнительного необязательного свойства запроса
x
. XYZ.XYZ
- имя инструмента для образца. Чтобы запросить внутридневные данные такты для вашего инструмента, замените имя символа на instrument
.
instrument = 'XYZ.XYZ';
startdate = now - 2;
enddate = now;
timeseries(c,instrument,startdate,enddate,[],x)
pause(1)
pause
вызывает MATLAB® подождать 1 секунду, прежде чем продолжать давать время CQG подписаться на инструмент. MATLAB записывает переменную cqgTickData
в браузер Рабочей области.
Отобразите 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}
Отобразите данные в Timestamp
свойство cqgTickData
.
cqgTickData.Timestamp
ans = '4/17/2013 2:14:00 PM' '4/18/2013 2:14:00 PM'
Зарегистрируйте обработчик событий, чтобы создать и инициализировать матрицу выходных данных cqgTimedBarData
используется для хранения размеченных по времени штриховых данных.
aggEventNames = {'TimedBarsResolved','TimedBarsAdded', ... 'TimedBarsUpdated','TimedBarsInserted', ... 'TimedBarsRemoved'}; for i = 1:length(aggEventNames) registerevent(c.Handle,{aggEventNames{i}, ... @(varargin)cqgintradayeventhandler(varargin{:})}) end
Передайте дополнительные необязательные свойства запроса путем создания структуры x
, и установка необязательного свойства.
x.UpdatesEnabled = false;
Запросите размеченные по времени штриховые данные для XYZ.XYZ
прибора для последней части дня с использованием дополнительного необязательного свойства запроса
x
. XYZ.XYZ
- имя инструмента для образца. Чтобы запросить размеченные по времени торговые данные для вашего инструмента, замените имя символа на instrument
.
instrument = 'XYZ.XYZ';
startdate = now - .1;
enddate = now;
intraday = 1;
timeseries(c,instrument,startdate,enddate,intraday,x)
pause(1)
MATLAB записывает переменную cqgTimedBarData
в браузер Рабочей области.
Отобразите 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
возвращает размеченные по времени штриховые данные для заданного инструмента. Столбцы cqgTimedBarData
отобразить данные, соответствующие временной метке, открытой цене, высокой цене, низкой цене, закрытой цене, средней цене, HLC3, средней цене и объему такта.
close(c)
close
| cqg
| createOrder
| history
| realtime
| shutDown
| startUp
| timeseries