2.6 持仓单的精确识别

2.6 持仓单的精确识别

第一章预定义的22个控单变数均是针对当前货币对、当前EA有效的,它解决了大部分常见的订单识别问题。本节所讨论的是不常见的订单识别方法。

在开始前,有必要了解一下MQL4的订单规则。凡是经过EA建仓、加仓或者挂单的待仓单,不论是平仓、部分平仓、止损或者止盈,其订单特征码( OrderMagicNumber) 是不会变化的,而订单注释(OrderComment) 信息则会发生变化。

[情景一]我们需要查询历史订单中被止损/止盈的订单情况,见第一章图1 -1 ,订单注释在原有注释基础上增加了" [tp]" 内容,实际操作中我们只需要分析该订单注郭中是否有"[ tp]" 子字符串就可以精确定位,找到想要的订单。

[情景二]一张订单部分平仓,例如订单号为921795 的订单开仓量为1.00手,订单注得为" test" ,现将其中的0.1 手平仓,此时留在场内的成交持仓单注释将被改成"from #921795" ,同时新分配一个持仓单号, 例如"921812",在历史订单中出现"921795" 订单记录,该记录订单注释为" to #921812" 。MQL4将部分平仓分离出来的订单利用订单注得做了关联,我们了解这个原理就能实现订单的精确识别。记住,订单特征码( OrderMagicNumber) 不会发生变化。

[情景三] 有些时候我们需要对持仓单做顺序控制,例如建仓加仓挂单时,人为定义持仓单序号,这时就可以利用订单特征码(OrderMagicNumber) ,前提是订单操作不能有情景二的动作。当然,有也没关系,只要其他的EA处理订单时没有用到这些序号,同样也可以实现精确识别。

本章所讲述的方法不能照搬照抄,关键是理解原理,知其所以然,方能灵活运用各种策略。