很多学会了外汇EA编程的朋友应该知道基本所有EA软件中都会有订单识别码,订单识别码是订单自始至终不会改变的标识码,也有人称为魔术号码,其对应函数为OrderMagicNumber()。其赋值类型一般采用正整数类型。
日常手工交易中,我们看不到订单的识别码参数,在使用mt4平台交易中用手动开仓方面也没有提供设置订单识别码的接口。但这并不表示手工开的单子就没有订单识别码这个参数,手工开仓的订单的识别码默认为0。
在ea软件中,订单识别码并不是针对单一订单而言的,采用相同开平仓策略管理的订单是可以设置一个共同的订单识别码的。比如说一个ea交易三个货币对,如果三个货币对的开仓条件和平仓条件都相同,那么用一个共同的订单识别码来标识就可以,因为它在识别订单的时候可以采用货币对名称来区分。而如果ea要同时交易一个货币对的三个不同时间周期,那么最理想的就是不同周期用不同的订单识别码,这样每个周期开的单子就不会冲突。
我们加载ea到图表上执行交易的时候,首先要确认该ea有没有订单识别码参数,如果有的话就要根据自己的策略需求考虑是否需要设置不同的订单识别码。一般情况下,单一图表、单一策略交易是不需要变更订单识别码的,默认就行。如果同一ea要用不同的策略在不同的时间周期交易,则不同的图表加载ea时就需要设置不同的订单识别码,以防止订单冲突。
比如说采用挂单宝进行网格挂单交易时,如果在欧元兑美元15分钟图表采用一套参数挂buystop,而同时又需要在四小时4H图表采用另外一套参数挂buystop,那么这两个图表加载ea时就要设置不同的订单识别码(如下图所示)。在比如说你手头有一套三均线ea,你想在日线图表采用10、20、50三条均线组合进行交易,而同时又想在一小时图表采用20、75、144三条均线组合进行交易,那么加载到两个图表时设置不用的订单识别码予以区分就可以。
总的来说订单识别码在外汇ea中的主要作用是非常重要的,它主要是用来标识特定类型的订单,ea程序通过设置的订单识别码获取该类型的订单数量、盈亏等参数然后在根据相关条件执行开仓、加仓、平仓等交易操作。
|