提交X_TRADER订单
这个例子展示了如何连接到X_TRADER®并提交订单。
连接到X_TRADER
X = xtrdr;
创建一个仪器
createInstrument (X,“交换”,芝加哥商品交易所的,“产品”,“2 f”,...“ProdType”,“未来”,“合同”,“Aug13”,...“别名”,“SubmitOrderInstrument1”)
注册事件处理程序
为订单服务器注册事件处理程序。回调ttorderserverstatus
分配给事件OnExchangeStateUpdate
验证所请求仪器的交换订单服务器是否正在运行。否则,无法提交订单。
sExchange = X.Instrument.Exchange;registerevent (X。门,{“OnExchangeStateUpdate”,...@(变长度输入宗量)ttorderserverstatus(变长度输入宗量{:},sExchange)})
创建订单集
的OrderSet
对象向X_TRADER发送订单。
属性的设置OrderSet
对象,并详细说明订单状态事件的级别。启用订单更新和拒绝(失败)事件,以便您可以分配回调来处理这些条件。
createOrderSet (X) X.OrderSet(1)。EnableOrderRejectData = 1;X.OrderSet(1)。EnableOrderUpdateData = 1;X.OrderSet(1)。OrderStatusNotifyMode =“ORD_NOTIFY_NORMAL”;
设置头寸限制检查
设置订单集在提交订单时是否检查自我施加的位置限制。
X.OrderSet(1)这里(“NetLimits”假)
设置回调函数
设置一个回调来处理OnOrderFilled
事件。每次订单被填充(或部分填充)时,都会调用此回调。
registerevent (X.OrderSet (1) {“OnOrderFilled”,...@(变长度输入宗量)ttorderevent(变长度输入宗量{:},X)})
使订单提交
在向X_TRADER提交订单之前,必须首先启用订单提交。
.Open X.OrderSet (1) (1)
建立订单档案
使用现有工具构建订单配置文件。订单配置文件包含定义已提交订单的设置。有效的集
参数所示:
orderProfile = createOrderProfile (X);orderProfile。仪器= X.Instrument (1);orderProfile。客户=“默认> <”;
示例:创建一个市场秩序
创建一个购买100股的市场指令。
orderProfile。集(“BuySell”,“买入”) orderProfile。集(“数量”, 100) orderProfile。集(“订单类型”,“米”)
示例:创建一个限价订单
创建一个限价订单订单类型
限价。
orderProfile。集(“订单类型”,“L”) orderProfile。集(“限制美元”,“127000”)
示例:创建一个止损市场指令
创建一个止损市场订单,并设置订单限制为一个止损订单和一个止损价格。
orderProfile。集(“订单类型”,“米”) orderProfile。集(“OrderRestr”,“年代”) orderProfile。集(“停止美元”,“129800”)
示例:创建一个止损限价单
创建一个止损限价单,并设置订单限制、类型、限价和止损价。
orderProfile。集(“订单类型”,“L”) orderProfile。集(“OrderRestr”,“年代”) orderProfile。集(“限制美元”,“128000”) orderProfile。集(“停止美元”,“127500”)
检查订单服务器状态
在提交订单之前检查订单服务器状态,并添加计数器,以便示例不会延迟。
nCounter = 1;而~ (“bServerUp”,“var”&& nCounter < 20 pause(1) nCounter = nCounter + 1;结束
验证订单服务器的可用性
在提交订单之前,请验证交易所的订单服务器是否可用。
如果存在(“bServerUp”,“var”) && bServerUp submittedQuantity = X.OrderSet(1).SendOrder(orderProfile);disp ([的发送数量:num2str (submittedQuantity)))其他的disp (“订单服务器坏了。”无法提交订单”)结束
关闭连接
关闭(X)
另请参阅
xtrdr
|关闭
|createInstrument
|createOrderProfile
|createOrderSet