В этом примере показано, как соединиться с 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{:})})
endcqgconnectioneventhandler присвоен событиям в 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.Placeans =
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.Placeans =
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.Placeans =
OrderChanged
CQGOrder объект oStop содержит порядок. API CQG выполняет заказ остановки с помощью API-функции CQG Place. После выполнения, изменений статуса заказа.
Чтобы создать лимитный приказ остановки, используйте обоих предложение и торговые цены, заданные выше. Создайте лимитный приказ остановки, который покупает одну долю подписанной безопасности cqgInst использование заданных учетных данных учетной записи accountHandle.
quantity = 1;
oStopLimit = createOrder(c,cqgInst,4,accountHandle,quantity, ...
limitprice,stopprice);
oStopLimit.Placeans =
OrderChanged
CQGOrder объект oStopLimit содержит порядок. API CQG выполняет лимитный приказ остановки с помощью API-функции CQG Place. После выполнения, изменений статуса заказа.
shutDown(c)
cqg | close | createOrder | history | timeseries | startUp | shutDown | realtime