这个例子展示了如何连接到CQG®,定义事件处理程序、订阅安全性、定义帐户句柄并提交执行订单。
使用CQG.
.
c =她推出;
注册样本事件处理程序cqgconnectioneventhandler
跟踪与连接状态相关的事件。
eventNames = {'celstarted',“DataError”,“IsReady”,...“DataConnectionStatusChanged”,...“GWConnectionStatusChanged”,...“GWEnvironmentChanged”};为i = 1:长度(eventnames)注册经验(c.handle,{eventnames {i},...@(变长度输入宗量)cqgconnectioneventhandler(变长度输入宗量{:})})结束
cqgconnectioneventhandler
分配给赛事
.
设置API配置属性。例如,要将时区设置为东部时间,请输入以下内容。
c.apiconfig.timezonecode =.“tzEastern”;
C.apiconfig
是一个CQG配置对象。设置API配置属性请参见CQG API参考指南.
建立与CQG的连接。
启动(c)
CELStarted DataConnectionStatusChanged GWConnectionStatusChanged
连接事件处理程序显示成功的CQG连接的事件名称。
注册事件处理程序以跟踪与CQG仪器订阅相关联的事件。
Streameventnames = {'Instrumentsubscribed',“InstrumentChanged”,...“IncorrectSymbol”};为i = 1:length(streamEventNames), {streamEventNames {},...@(varargin)cqgrealtimeeventhandler(varargin {:})})结束
注册事件处理程序以跟踪与CQG订单和帐户关联的事件。
ORDEREVENTNAMES = {'accountchanged',“orderchange”,“AllOrdersCanceled”};为i = 1:length(orderEventNames), {orderEventNames {},...@(变长度输入宗量)cqgordereventhandler(变长度输入宗量{:})})结束
通过建立连接,订阅CQG仪器。在可用于交易之前,必须先订阅仪器。您必须在CQG长符号视图中格式化仪器名称。例如,要订阅与Euribor相关的安全性,请输入以下内容。
实时(c,“F.US.IE”)暂停(2)
F.US。IEK13订阅
暂停
MATLAB原因®等待2秒,然后继续给予CQG认购仪器的时间。
创建CQG仪器对象。
使用仪器createOrder
,导入仪器的名称cqgInstrumentName
进入当前的Matlab工作区。然后,创建CQGInstrument
对象cqgInst
.
cqgInstrumentName = evalin ('根据',“cqgInstrument”);cqgInst = c.Handle.Instruments.Item (cqgInstrumentName);
设置CQG标志以启用帐户信息检索。
设置(C.Handle,'compunionubscriptionLevel',“aslNone”)组(c。句柄,'compunionubscriptionLevel',“aslAccountUpdatesAndOrders”)暂停(2)
ans = cospectchanged.
CQG API显示帐户信息发生了变化。
设置CQG帐户凭据。
检索CQGAccount
对象进accountHandle
使用您的帐户信息createOrder
.有关创建一个的详细信息CQGAccount
对象,看到CQG API参考指南.
accountHandle = c.Handle.Accounts.ItemByIndex (0);
创建一个市场订单,购买认购证券的一股cqgInst
使用帐户凭据accountHandle
.
数量= 1;Omarket = CreateOrder(C,Cqginst,1,Accountthandle,数量);Omarket.Place
ANS = ORDERCHANGED.
的CQGOrder
对象oMarket
包含订单。CQG API使用CQG API函数执行市场订单的地方
.执行后,订单状态发生变化。
若要为安全性使用字符向量,请订阅安全性“EZC”
如上所示。然后,创建一个购买安全性的市场订单“EZC”
使用已定义的帐户凭据accountHandle
.
cqgInstrumentName =“EZC”;数量= 1;Omarket = CreateOrder(C,CQGinStrumentName,1,Accounthandle,数量);Omarket.Place
ANS = ORDERCHANGED.
的CQGOrder
对象oMarket
包含订单。CQG API使用CQG API函数执行市场订单的地方
.执行后,订单状态发生变化。
要创建限制订单,您可以使用出价价格。提取CQG BID对象qtbid.
从先前定义的CQGInstrument
对象cqgInst
.有关CQGInstrument
对象,看到CQG API参考指南.
qtBid = cqgInst.get ('出价');
创建一个限价订单,购买之前认购的证券的一股cqgInst
使用前面定义的帐户凭据accountHandle
和qtbid.
为了限价。
数量= 1;LimitPrice = Qtbid.get(“价格”);olimit = createOrder(c,cqginst,2,accountthandle,数量,limitPrice);olimit.place
ANS = ORDERCHANGED.
的CQGOrder
对象oLimit
包含订单。CQG API使用CQG API函数执行限制顺序的地方
.执行后,订单状态发生变化。
要创建止损订单,可以使用交易价格。提取CQG交易对象Qttrade.
从先前定义的CQGInstrument
对象cqgInst
.
qtTrade = cqgInst.get (“贸易”);
创建一个停止顺序,可以购买先前订阅安全的一份cqgInst
使用前面定义的帐户凭据accountHandle
和Qttrade.
停止价格。
数量= 1;stopprice = qttrade.get(“价格”);OSTOP = CreateOrder(C,Cqginst,3,Accountthandle,数量,StopPrice);ostop.place
ANS = ORDERCHANGED.
的CQGOrder
对象oStop
包含订单。CQG API使用CQG API函数执行停止顺序的地方
.执行后,订单状态发生变化。
要创建一个止损限价订单,请同时使用上面定义的买入价和交易价格。创建一个购买一股认购证券的止损限价单cqgInst
使用已定义的帐户凭据accountHandle
.
数量= 1;oStopLimit = createOrder (c, cqgInst 4 accountHandle、数量、...limitprice stopprice);oStopLimit。的地方
ANS = ORDERCHANGED.
的CQGOrder
对象oStopLimit
包含订单。CQG API使用CQG API函数执行停止限位命令的地方
.执行后,订单状态发生变化。
关闭(c)
关闭
|CQG.
|createOrder
|历史
|即时的
|关掉
|启动
|timeseries