Запрос данных внутридневного такта CQG

В этом примере показано, как соединиться с CQG®задайте обработчики событий и запросите внутридневные и размеченные по времени торговые данные.

Подключение к 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

Запрос данных внутридневного такта CQG

Передайте дополнительное необязательное свойство запроса путем создания структуры 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'

Запрос размеченных по времени штриховых данных CQG

Зарегистрируйте обработчик событий, чтобы создать и инициализировать матрицу выходных данных 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, средней цене и объему такта.

Закройте соединение CQG

close(c)

См. также

| | | | | | |

Похожие примеры

Подробнее о

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

Для просмотра документации необходимо авторизоваться на сайте