信息输出的用途
在MQL4中,信息输出可以根据需要输出不同类型的消息或通知,以便进行调试、显示信息等用途。以最常见的Print()函数为例,这是在调试中最有用的一个函数,当你在编写某一个逻辑代码块时,可以打印一段信息用于观察执行情况;在计算一个值的时候,为了检查是否是真你需要的值,同样可以用这种方式把信息输出到终端。学会使用信息输出,是EA编程中必不可少的一项技能。
终端信息输出函数有以下常见几个:
- Alert():在终端中显示一个弹出窗口,其中包含指定的文本消息。
- Comment():在图表上输出指定文本。
- MessageBox():显示一个模态对话框,其中包含指定的文本消息,并等待用户响应。
- Print():在“终端”标签页中输出指定的文本消息。
- PrintFormat() / printf():在“终端”标签页中使用格式化字符串输出指定的文本消息。
- SendNotification():向手机端发送通知消息,以提醒交易活动或其他重要信息。
信息输出实践
1、Alert():弹出式警报,这个函数可以直接在需要出现警报的地方调用,其作用就是弹出警报窗口,在消息列表中显示一条警报信息。是编程中最常用的函数之一。
2、Comment():简单文本输出到图表左上角,这是一个可以显示任何值的文本输出函数,用逗号分隔显示内容,为了将输出信息分隔行显示,可以使用换行符“ \ n”或“ \ r \ n”,参数的数量不能超过64个,文本长度不能超过2045个字符。
3、MessageBox():这是一个可以用于警告、交互提醒、内容输出等多功能的模态对话框,其中包含11种状态,和7种按钮排列方式。
- 7种按钮排列方式
- 11个状态码,每一个都代表了不同按键触发事件。
通过以上方式,我们可以根据点击的按钮来判断执行对应的任何事件,不过需要注意的是,这种方式会占用MT4终端的主线程,一旦弹窗,当前运行的进程会立即冻结,点击按钮后才会继续执行,使用的时候需逻辑缜密。
4、Print():这个函数相信大家一定不陌生,翻译过来就是打印的意思,下图就是这种形式产生的文本,最简单的文本输出功能,这里就不多介绍了。
5、PrintFormat()/printf():相对复杂的指定风格文本输出,两个函数的功能相似,使用特定方式(占位符)格式化字符串并输出文本消息在终端消息列表中。对于在图表对象上输出类似功能的文本,可以使用StringFormat()函数,使用方式差不多。
示例:
第一个和第二个参数都是格式字符串,其中 %d 表示整数的占位符, %.2f 表示保留两位小数的浮点数占位符。接下来的参数是要插入到格式字符串中的实际值。在输出结果中,%d 将被 value 的值替换,%.2f 将被 price 的值替换。
输出内容为:Value: 42, Price: 1.23
在MQL4中,占位符的种类也很多,根据不同的数据类型和应用场景而定。
6、SendNotification():将推送通知发送到在“通知”选项卡中指定其MetaQuotes ID的移动终端,这个函数的用法也非常简单,和Print一致。文本长度不得超过255个字符。
7、SendMail():给设置中指定的地址发送电子邮件,功能都差不多。