В этом примере показано, как соединиться с 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