Создайте порядки 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)

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

| | | | | | |

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

Больше о

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