前面有篇文章说过,有源码的EA是可以修改订单注释的,而如果没有源码且注释也没有被设置成输入变量,那么就不好修改其订单注释。所谓的输入变量是指在EA属性框中可以设置的那些参数变量。 今天我们就来说说,在有源码的情况下如何快速或者说一键批量修改订单注释。当然,这只是针对没有编程基础而言的。 对于EA订单注释的用途,无外乎两种,一种是对订单本身的交易做相关备注说明,一种是备注EA的版权或作者联系方式。要是第一种,也没必要修改。而对于第二种,一些有强迫症的人可能看的不舒服,要将它去掉,或者改成自己的ZB样式。 在MQL4语言中,不管是挂单还是现价单,都是由OrderSend()函数生成,我们还是先看一下OrderSend()的结构: OrderSend(品种,类型,手数,价格,偏差,止损,止盈,"注释",订单识别码,有效期(对于挂单),颜色); OrderSend()函数的第8个参数就是订单注释参数。为了便于修改,我们可以在EA头部找个空白处定义一个注释参数。以MT4自带的MACD Sample EA为例,用mt4自带的MQ语言编译器打开MQL4格式的EA文件后,在头部输入变量下方找个空白处定义 EAcom 参数即可。参考代码示范如下: input double TakeProfit =50;input double Lots =0.1;input double TrailingStop =30;input double MACDOpenLevel =3;input double MACDCloseLevel=2;input int MATrendPeriod =26;string EAcom = "我喜欢的EA";接下来,就可以在编译器的源码上面用 Ctrl+F 键搜索OrderSend,然后用 EAcom 替换其第8个注释参数。或者鼠标直接选中源码中的OrderSend函数后面的注释,然后一键全部替换成 EAcom。如下图所示:
全部替换完以后,点编译器上方的“编写”按钮,如果没有错误提示,即一切搞定。 mt4的EA源码是以其自带的MQ语言编译器修改为首选,修改好以后,如果有什么错误提示,那就挨个核实一下,会不会遗漏什么符号(如;“”)。 EA的订单注释不是一直不变的,有的时候,如果执行分批平仓,那么订单注释就会改变。这点和订单识别码不一样。 |