X_Trader订单提交示例

这个例子展示了如何创建订单并提交它。请注意,X_Trader是一个32位的应用程序,只适用于32位Windows安装的MATLAB。

内容

启动或连接到XTrader

x = xtrdr;% %创建一个乐器x.createInstrument (“交换”“TTSIM-G”“产品”“IPE e-Brent”“ProdType”“未来”“合同”“Oct12”“别名”“Demo5a_OrderSubmit”);

为订单服务器注册事件处理程序

sExchange = x.Instrument.Exchange;x.Gate.registerevent ({“OnExchangeStateUpdate”@(变长度输入宗量)ttorderserverstatus(变长度输入宗量{:},sExchange)})

创建OrderSet

x.createOrderSet;%%设置订单集属性和订单状态事件的详细级别x.OrderSet(1)。EnableOrderRejectData = 1;x.OrderSet(1)。EnableOrderUpdateData = 1;x.OrderSet(1)。OrderStatusNotifyMode =“ORD_NOTIFY_NORMAL”%设置订单设置时是否检查自己强加的头寸限制%提交订单x.OrderSet(1)这里(“NetLimits”假)%设置事件以获取订单状态%的命令%事件(x.OrderSet)%显示了与OrderSet对象相关的事件x.OrderSet (1) .registerevent ({“OnOrderFilled”@(变长度输入宗量)ttorderevent(变长度输入宗量{:},x)}) x.OrderSet (1) .registerevent ({“OnOrderRejected”@(变长度输入宗量)ttorderevent(变长度输入宗量{:},x)}) x.OrderSet (1) .registerevent ({“OnOrderSubmitted”@(变长度输入宗量)ttorderevent(变长度输入宗量{:},x)}) x.OrderSet (1) .registerevent ({“OnOrderDeleted”@(变长度输入宗量)ttorderevent(变长度输入宗量{:},x)})% %启用发送命令x.OrderSet (1) .Open (1);使用现有工具构建订单概要文件orderProfile = x.createOrderProfile (“工具”, x.Instrument (1));%的代码% orderProfile = x.createOrderProfile;% orderProfile。仪器= x.Instrument (1);%执行相同的任务。%设置用户默认属性orderProfile。客户=“默认> <”%%将订单配置文件设置为购买100股的市场订单orderProfile。集(“BuySell”“买入”);orderProfile。集(“数量”“100”);% orderProfile.Set(“订单类型”,“M”);%限价订单,设置订单类型和限价订单价格orderProfile。集(“订单类型”“L”);orderProfile。集(“限制美元”“110.00”);%停止市场指令,设置指令限制以停止指令和停止价格% orderProfile.Set(“订单类型”,“M”);% orderProfile.Set(“OrderRestr”、“S”);% orderProfile.Set(“停止美元”,“110.00”);%停止限价指令,设置限价指令,型号,限价指令和停止指令% orderProfile.Set(“订单类型”、“L”);% orderProfile.Set(“OrderRestr”、“S”);% orderProfile.Set(“限制美元”,“110.00”);% orderProfile.Set(“停止美元”,“109.00”);
%在提交订单前检查订单服务器状态,添加计数器以便%demo永远不会卡住nCounter = 1;~ (“bServerUp”“var”) && nCounter < 20%bServerUp由ttorderserverstatus创建pause(1) nCounter = nCounter + 1;结束如果存在(“bServerUp”“var”) & & bServerUp%提交订单submittedQuantity = x.OrderSet (1) .SendOrder (orderProfile);disp ([的发送数量:num2str (submittedQuantity)))其他的disp (“订购服务器停机了。无法提交订单。”结束
发送数量:100
删除订单OrderObj = orderProfile.GetLastOrder;如果~ isempty (OrderObj)如果~ OrderObj。IsNull OrderObj.DeleteOrder;结束结束
disp (“关闭与X_Trader的通信。”)密切(x)
关闭与X_Trader的通信。