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的通信。