常规函数 (如报警等)
常规函数
void Alert( ... ) 弹出一个显示信息的警告窗口
弹出一个包含用户提示信息的警告窗口。参数可以是任意类型,总数不得超过64个。
数组不能作为参数传递给 Alert() 函数。
双精度型数据可以输出到小数点后4位。要想输出更高精度的数据,请使用 DoubleToStr() 函数。
布尔型、日期时间型和颜色型数据作为数值型数据输出。
使用 TimeToStr() 函数将日期时间型数据转换成字符串,再以字符串形式输出。
:: 输入参数
... - 任意值,如有多个可用逗号分割
示例:
if(Close[0]>SignalLevel)
Alert("Close price coming ", Close[0],"!!!");
void Comment( ... ) 显示信息在走势图左上角
:: 输入参数
... - 任意值,如有多个可用逗号分割
示例:
double free=AccountFreeMargin();
Comment("Account free margin is ",DoubleToStr(free,2),"\n","Current time is ",TimeToStr(CurTime()));
void Print( ... ) 将文本信息及结果值打印输出到智能交易日志里
:: 输入参数
... - 任意值,复数用逗号分割
示例:
Print("Account free margin is ", AccountFreeMargin());
Print("Current time is ", TimeToStr(CurTime()));
double pi=3.141592653589793;
Print("PI number is ", DoubleToStr(pi,8));
// Output: PI number is 3.14159265
// Array printing
for(int i=0;i<10;i++)
Print(Close[i]);
void PlaySound( string 音乐名) 播放音频文件
文件必须放在 terminal_dir\sounds 目录或子目录内
:: 输入参数
filename - 音频文件名
示例:
if(IsDemo()) PlaySound("alert.wav");
double MarketInfo( string 指定币种, int 查找类型) 指定货币对的相关信息数据
当前货币对的部分信息已经存储在 预定义变量 中
:: 输入参数
symbol - 通货代码
type - 返回结果的类型
示例:
double var;
var=MarketInfo("EURUSD",MODE_BID);
int GetTickCount() 获取运行时间.
该函数取回自从系统被启动以来已经过去的毫秒数。它的值取决于系统时间的设定。
示例:
int start=GetTickCount();
// do some hard calculation...
Print("Calculation time is ", GetTickCount()-start, " milliseconds.");
int MessageBox( string text=NULL, string caption=NULL, int flags=EMPTY) 弹出消息框
该函数可以创建、显示和控制信息框。
信息框内包含应用程序定义的信息内容和标题,也可以足预定义的图标和按钮的任意组合。如果函数成功运行,返回值就是MessageBox函数返回码的其中之一。
由于本函数在接口线程内执行,而且还不能放慢速度,所以本函数不能从自定义指标中调用。
:: 输入参数
text - 窗口上显示的文字。
caption - 窗口上显示的标题。如果参数为 NULL, 智能交易名称将显示在标题上。
flags - 决定窗口类型和操作的可选项。它们可用为 messagebox函数标志常量 的一种组合。
示例:
include
if(ObjectCreate("text_object", OBJ_TEXT, 0, D'2004.02.20 12:30', 1.0045)==false)
{
int ret=MessageBox("ObjectCreate() fails with code "+GetLastError()+"\nContinue?", "Question", MB_YESNO|MB_ICONQUESTION);
if(ret==IDNO) return(false);
}
// continue
bool SendFTP( string 文件名, void 指定路径) 发送文件到FTP服务器
其通信参数在“工具>选项>公开”标签内设置。如果发送失败,返回FALSE。
本函数在测试模式下不起作用,也不能从自定义指标中调用。
发送的文件必须在 terminal_directory\experts\files 目录或子目录下,如果未设置FTP地址,或未提供访问密码,文件不会发送成功。
:: 输入参数
filename - 发送的文件。
ftp_path - FTP路径。如果没有指定路径,则使用设置中说明的路径。
示例:
int lasterror=0;
if(!SendFTP("report.txt"))
lasterror=GetLastError();
void SendMail( string 标题, string 内容) 发送邮件到指定信箱
需要到菜单 "工具>选项>EMail” 标签内设置邮件地址
(此项功能可以在客户端设置为禁用,或者省略指定的邮件地址。)
:: 输入参数
subject - 邮件标题
some_text - 邮件内容
示例:
double lastclose=Close[0];
if(lastclose<MY_SIGNAL)
SendMail("from your expert", "Price dropped down to "+DoubleToStr(lastclose));
bool SendNotification( string 信息) 发送推送通知
向选项窗口的“通知”标签上指定的MetaQuotes ID的移动程序端发送推送通知。
可以在设置中禁止发送通知。也可以省略ID。
注意: 该函数具有严格的使用限制:每秒钟不得调用2次以上并且每分钟调用不超过10次。动态控制频繁调用,如若违背函数会被封锁!
:: 输入参数
message - 发送的信息,最多255个字符。
示例:
double lastclose=Close[0];
if(lastclose<my_signal)
SendNotification("价格更改 "+DoubleToStr(lastclose,Digits));
void Sleep( int 毫秒) 线程暂停时间
Sleep()函数可以临时暂停运行当前智能交易程序一段时间。
由于Sleep()函数运行在接口线程中,而且又不能减速,所以本函数不能在自定义指标内调用。
当Sleep()函数运行时,智能交易每隔0. 1秒会自动检测一次停止标志的状态。
:: 输入参数
milliseconds - 暂停时间 1000 = 1秒
示例:
Sleep(5);