exponenta event banner

Создайте порядки CQG

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

Создайте связь 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. Инструмент должен быть успешно подписан сначала, прежде чем это будет доступно для транзакций. Необходимо отформатировать инструментальное имя в 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);

Создайте рынок CQG, предел, остановитесь и остановите лимитные приказы

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

Закройте связь CQG

shutDown(c)

Смотрите также

| | | | | | |

Связанные примеры

Больше о

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