Этот пример показывает, как соединиться с CQG®, задать обработчики событий, подписывается на безопасность, задает указатель учетной записи и представляет порядки для выполнения.
Создайте объект связи CQG использование cqg
.
c = cqg;
Укажите демонстрационный обработчик событий cqgconnectioneventhandler
к беговым соревнованиям, сопоставленным с состоянием связи.
eventNames = {'CELStarted','DataError','IsReady', ... 'DataConnectionStatusChanged', ... 'GWConnectionStatusChanged', ... 'GWEnvironmentChanged'}; 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, см. Справочник API CQG.
Установите связь с CQG.
startUp(c)
CELStarted DataConnectionStatusChanged GWConnectionStatusChanged
Обработчик событий связи отображает имена события для успешной связи CQG.
Укажите обработчик событий к беговым соревнованиям, сопоставленным с инструментальной подпиской CQG.
streamEventNames = {'InstrumentSubscribed','InstrumentChanged', ... 'IncorrectSymbol'}; for i = 1:length(streamEventNames) registerevent(c.Handle,{streamEventNames{i}, ... @(varargin)cqgrealtimeeventhandler(varargin{:})}) end
Укажите обработчик событий к беговым соревнованиям, сопоставленным с порядком CQG и учетной записью.
orderEventNames = {'AccountChanged','OrderChanged','AllOrdersCanceled'}; for i = 1:length(orderEventNames) registerevent(c.Handle,{orderEventNames{i}, ... @(varargin)cqgordereventhandler(varargin{:})}) end
С установленной связью подпишитесь на инструмент CQG. Инструмент должен быть успешно подписан сначала, прежде чем это будет доступно для транзакций. Необходимо отформатировать инструментальное имя в CQG долгое представление символа. Например, чтобы подписаться на безопасность, связанную к EURIBOR, введите следующее.
realtime(c,'F.US.IE')
pause(2)
F.US.IEK13 subscribed
pause
заставляет MATLAB® ожидать 2 секунды прежде, чем продолжить давать время для CQG, чтобы подписаться на инструмент.
Создайте инструментальный объект CQG.
Чтобы использовать инструмент в createOrder
, импортируйте имя инструмента cqgInstrumentName
в текущее рабочее пространство MATLAB. Затем создайте объект CQGInstrument
cqgInst
.
cqgInstrumentName = evalin('base','cqgInstrument'); cqgInst = c.Handle.Instruments.Item(cqgInstrumentName);
Установите флаги CQG включать извлечение сведений об аккаунте.
set(c.Handle,'AccountSubscriptionLevel','aslNone') set(c.Handle,'AccountSubscriptionLevel','aslAccountUpdatesAndOrders') pause(2)
ans = AccountChanged
API CQG показывает те измененные сведения об аккаунте.
Настройте учетные данные учетной записи CQG.
Получите объект CQGAccount
в accountHandle
, чтобы использовать ваши сведения об аккаунте в createOrder
. Для получения дополнительной информации о создании объекта CQGAccount
, см. Справочник API CQG.
accountHandle = c.Handle.Accounts.ItemByIndex(0);
Создайте порядок рынка, который покупает одну долю подписанной безопасности cqgInst
с помощью учетных данных учетной записи accountHandle
.
quantity = 1; oMarket = createOrder(c,cqgInst,1,accountHandle,quantity); oMarket.Place
ans = OrderChanged
Объект CQGOrder
oMarket
содержит порядок. API CQG выполняет заказ рынка с помощью API-функции CQG Place
. После выполнения, изменений статуса заказа.
Чтобы использовать вектор символов для безопасности, подпишите на безопасность 'EZC'
как показано выше. Затем создайте порядок рынка, который покупает одну долю безопасности 'EZC'
с помощью заданных учетных данных учетной записи accountHandle
.
cqgInstrumentName = 'EZC';
quantity = 1;
oMarket = createOrder(c,cqgInstrumentName,1,accountHandle,quantity);
oMarket.Place
ans = OrderChanged
Объект CQGOrder
oMarket
содержит порядок. API CQG выполняет заказ рынка с помощью API-функции CQG Place
. После выполнения, изменений статуса заказа.
Чтобы создать лимитный приказ, можно использовать цену предложения. Извлеките объект qtBid
предложения CQG от ранее заданного объекта CQGInstrument
cqgInst
. Для получения дополнительной информации об объекте CQGInstrument
, см. Справочник API CQG.
qtBid = cqgInst.get('Bid');
Создайте лимитный приказ, который покупает одну долю ранее подписанной безопасности cqgInst
с помощью ранее заданных учетных данных учетной записи accountHandle
и qtBid
за цену предела.
quantity = 1;
limitprice = qtBid.get('Price');
oLimit = createOrder(c,cqgInst,2,accountHandle,quantity,limitprice);
oLimit.Place
ans = OrderChanged
Объект CQGOrder
oLimit
содержит порядок. API CQG выполняет лимитный приказ с помощью API-функции CQG Place
. После выполнения, изменений статуса заказа.
Чтобы создать порядок остановки, можно использовать торговую цену. Извлеките объект qtTrade
торговли CQG от ранее заданного объекта CQGInstrument
cqgInst
.
qtTrade = cqgInst.get('Trade');
Создайте порядок остановки, который покупает одну долю ранее подписанной безопасности cqgInst
с помощью ранее заданных учетных данных учетной записи accountHandle
и qtTrade
за цену остановки.
quantity = 1;
stopprice = qtTrade.get('Price');
oStop = createOrder(c,cqgInst,3,accountHandle,quantity,stopprice);
oStop.Place
ans = OrderChanged
Объект CQGOrder
oStop
содержит порядок. API CQG выполняет заказ остановки с помощью API-функции CQG Place
. После выполнения, изменений статуса заказа.
Чтобы создать лимитный приказ остановки, используйте обоих предложение и торговые цены, заданные выше. Создайте лимитный приказ остановки, который покупает одну долю подписанной безопасности cqgInst
с помощью заданных учетных данных учетной записи accountHandle
.
quantity = 1;
oStopLimit = createOrder(c,cqgInst,4,accountHandle,quantity, ...
limitprice,stopprice);
oStopLimit.Place
ans = OrderChanged
Объект CQGOrder
oStopLimit
содержит порядок. API CQG выполняет лимитный приказ остановки с помощью API-функции CQG Place
. После выполнения, изменений статуса заказа.
shutDown(c)
close
| cqg
| createOrder
| history
| realtime
| shutDown
| startUp
| timeseries