MQL4常用基础函数详解与使用指南

本文介绍MQL4中一些常见的常规用途函数,这些函数不涉及特定交易策略,适用于多种编程场景。

Alert() – 弹出警告窗口

Comment() – 在图表上显示信息

Print() – 输出文本信息至日志

PlaySound() – 播放声音文件

MarketInfo() – 获取市场相关数据

GetTickCount() – 获取系统运行时间

MessageBox() – 显示信息对话框

SendFTP() – 发送文件至FTP服务器

SendMail() – 发送电子邮件

SendNotification() – 发送推送通知

Sleep() – 程序暂停运行

Alert() – 弹出警告窗口

void Alert(...) 弹出一个包含提示信息的警告窗口。参数可以是任意类型,但总数不得超过64个。

注意:数组不能作为参数传递给 Alert() 函数。

双精度型数据默认输出到小数点后4位。若需更高精度,请使用 DoubleToStr() 函数进行转换。

布尔型、日期时间型和颜色型数据会以数值形式输出。

可使用 TimeToStr() 函数将日期时间型数据转换为字符串后再输出。

相关函数请参考 Comment() 和 Print()。

参数说明:

... - 任意值,多个参数用逗号分隔,最多64个。示例:

if(Close[0]SignalLevel) Alert("收盘价进入 ", Close[0],"!!!");Comment() – 在图表上显示信息

void Comment(...) 该函数可在图表左上角显示相关信息。参数可以是任意类型,最多64个。

请注意:数组不能作为参数传递给 Comment() 函数。

双精度型数据默认输出到小数点后4位。若需更高精度,请使用 DoubleToStr() 函数。

布尔型、日期时间型和颜色型数据会以数值形式输出。

可使用 TimeToStr() 函数将日期时间型数据转换为字符串后再输出。

相关函数请参考 Alert() 和 Print()。

参数说明:

... - 任意值,多个参数用逗号分隔,最多64个。示例:

double free=AccountFreeMargin(); Comment("账户自由保证金 ",DoubleToStr(free,2),"/n","Current time is ",TimeToStr(TimeCurrent()));Print() – 输出文本信息到日志

void Print(...) 本函数向智能交易日志输出文本信息。参数可以是任意类型,最多64个。

数组不能作为参数传递给 Print() 函数。

双精度型数据默认输出到小数点后4位。若需更高精度,请使用 DoubleToStr() 函数。

布尔型、日期时间型和颜色型数据会以数值形式输出。

可使用 TimeToStr() 函数将日期时间型数据转换为字符串后再输出。

相关函数请参考 Comment() 和 Print()。

参数说明:

... - 任意值,多个参数用逗号分隔,最多64个。示例:

Print("当前可用保证金 ", AccountFreeMargin()); Print("当前时间 ", TimeToStr(TimeCurrent())); double pi=3.141592653589793Decode官网; Print("PI number is ", DoubleToStr(pi,8)); // 输出: PI number is 3.14159265 for(int i=0;iPlaySound() – 播放声音文件

void PlaySound(string filename) 该函数用于播放一个声音文件。文件需放在 terminal_dir/sounds 目录或其子目录内。

参数说明:

filename - 音频文件的名称。示例:

if(IsDemo()) PlaySound("alert.wav");MarketInfo() – 获取市场相关信息

double MarketInfo(string symbol, int type) 返回市场观察窗口中列出的不同货币对的相关信息。当前货币对的部分信息已存储在预定义变量中。

参数说明:

symbol - 货币对名称。type - 请求返回的信息类型标识符,可以是请求标识符中的任意值。示例:

double bid =MarketInfo("EURUSD",MODE_BID); double ask =MarketInfo("EURUSD",MODE_ASK); double point =MarketInfo("EURUSD",MODE_POINT); int digits=MarketInfo("EURUSD",MODE_DIGITS); int spread=MarketInfo("EURUSD",MODE_SPREAD);