В этом примере показано, как соединиться с 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 см. Руководство по Ссылке CQG API.
Установите соединение с 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
CQG API показывает, что информация о счете изменилась.
Настройка учетных данных учетной записи CQG.
Извлечение CQGAccount
объект в accountHandle
использовать сведения о вашей учетной записи в createOrder
. Для получения дополнительной информации о создании CQGAccount
объект см. Справочное руководство CQG API.
accountHandle = c.Handle.Accounts.ItemByIndex(0);
Создайте рыночный порядок, который покупает одну долю подписанного cqgInst безопасности
использование учетных данных accountHandle
.
quantity = 1; oMarket = createOrder(c,cqgInst,1,accountHandle,quantity); oMarket.Place
ans = OrderChanged
The CQGOrder
oMarket объекта
содержит порядок. CQG API выполняет рыночный порядок с помощью функции CQG API Place
. После выполнения статус порядка изменяется.
Чтобы использовать вектор символов для безопасности, подпишитесь на 'EZC'
безопасности как показано выше. Затем создайте рыночный порядок, который покупает одну акцию ценной
'EZC'
использование определенных учетных данных accountHandle
.
cqgInstrumentName = 'EZC';
quantity = 1;
oMarket = createOrder(c,cqgInstrumentName,1,accountHandle,quantity);
oMarket.Place
ans = OrderChanged
The CQGOrder
oMarket объекта
содержит порядок. CQG API выполняет рыночный порядок с помощью функции CQG API Place
. После выполнения статус порядка изменяется.
Для создания предела порядка можно использовать цену предложения. Извлечение объекта предложения CQG qtBid
из ранее заданного CQGInstrument
cqgInst объекта
. Для получения дополнительной информации о CQGInstrument
объект см. Справочное руководство CQG API.
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
The CQGOrder
oLimit объекта
содержит порядок. CQG API выполняет предельный порядок с помощью функции CQG API Place
. После выполнения статус порядка изменяется.
Для создания порядка на остановку можно использовать торговую цену. Извлечение торгового объекта CQG qtTrade
из ранее заданного 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
The CQGOrder
oStop объекта
содержит порядок. CQG API выполняет порядок на остановку с помощью функции CQG API Place
. После выполнения статус порядка изменяется.
Чтобы создать порядок на предел остановки, используйте и цену предложения, и торговую цену, определенную выше. Создайте порядок на предел остановки, который покупает одну долю подписанного cqgInst
безопасности использование определенных учетных данных
accountHandle
.
quantity = 1;
oStopLimit = createOrder(c,cqgInst,4,accountHandle,quantity, ...
limitprice,stopprice);
oStopLimit.Place
ans = OrderChanged
The CQGOrder
oStopLimit объекта
содержит порядок. CQG API выполняет порядок предела остановки с помощью функции CQG API Place
. После выполнения статус порядка изменяется.
shutDown(c)
close
| cqg
| createOrder
| history
| realtime
| shutDown
| startUp
| timeseries