这个例子展示了如何连接到Trading Technologies®X_TRADER®创造一个市场秩序。
c = xtrdr;
为芝加哥商品交易所到期日期为2014年8月的CAISO NP15 EZ Gen Hub 5 MW Peak Calendar-Day Real-Time LMP期货合约创建一个工具。
createInstrument (c,“交换”,芝加哥商品交易所的,“产品”,“2 f”,...“ProdType”,“未来”,“合同”,“Aug14”,...“别名”,“SubmitOrderInstrument3”)
注册一个事件处理程序来检查订单服务器状态。
sExchange = c.Instrument.Exchange;c.Gate.registerevent ({“OnExchangeStateUpdate”,...@(变长度输入宗量)ttorderserverstatus(变长度输入宗量{:},sExchange)})
创建一个空订单集。然后,设置顺序设置属性。将第一个属性设置为true (1
)使X_TRADER API能够发送订单拒绝通知。将第二个属性设置为true (1
)允许X_TRADER API将所有订单更新的订单对添加到该订单集中的订单跟踪器列表中。将第三个属性设置为ORD_NOTIFY_NORMAL
将订单状态事件的X_TRADER API通知模式设置为正常。
c.OrderSet createOrderSet (c)(1)。EnableOrderRejectData = 1;c.OrderSet(1)。EnableOrderUpdateData = 1;c.OrderSet(1)。OrderStatusNotifyMode =“ORD_NOTIFY_NORMAL”;
c.OrderSet(1)这里(“NetLimits”假)
注册事件处理程序以跟踪与订单状态相关的事件。
registerevent (c.OrderSet (1) {“OnOrderFilled”,...@(变长度输入宗量)ttorderevent(变长度输入宗量{:},c)}) registerevent (c.OrderSet (1) {“OnOrderRejected”,...@(变长度输入宗量)ttorderevent(变长度输入宗量{:},c)}) registerevent (c.OrderSet (1) {“OnOrderSubmitted”,...@(变长度输入宗量)ttorderevent(变长度输入宗量{:},c)}) registerevent (c.OrderSet (1) {“OnOrderDeleted”,...@(变长度输入宗量)ttorderevent(变长度输入宗量{:},c)})
打开仪器进行交易,并使X_TRADER API在打开仪器时检索市场深度信息。
.Open c.OrderSet (1) (1)
orderProfile = createOrderProfile (c,“工具”, c.Instrument (1));
指定交易工具的客户违约。
orderProfile。客户=“默认> <”;
建立一个购买225股的市场订单。
orderProfile。集(“BuySell”,“买入”) orderProfile。集(“数量”,“225”) orderProfile。集(“订单类型”,“米”)
nCounter = 1;而~ (“bServerUp”,“var”) && nCounter < 20% bServerUp由ttorderserverstatus创建暂停(1)nCounter = nCounter + 1;结束
如果存在(“bServerUp”,“var”) & & bServerUp%提交订单submittedQuantity = c.OrderSet (1) .SendOrder (orderProfile);disp ([的发送数量:num2str (submittedQuantity)))其他的disp (订单服务器坏了。无法提交订单。”)结束
X_TRADER API将订单提交给交易所,并在输出参数中返回基于批的合约发送的合约数量或基于流的合约发送的流量数量submittedQuantity
.
关闭(c)
xtrdr
|createInstrument
|createOrderSet
|createOrderProfile
|关闭