在开发我们自己的系统过程中,尤其是开发那种出箭头信号的指标的时候,经常会有发出通知的需求。不管是发出声音提醒交易者还是不在电脑前甚至是户外的时候提示我,这些需求始终是对于我们来说非常重要的。
那么如何才能及时的提示用户出现的交易信号呢?今天小编就给大家介绍几种方式,这些方式各有各的优缺点,只适合在特定的需求环境中使用。
1,发出声音。
MT4内置的函数中,有一个可以播放wav格式音频的函数(PlaySound),它的作用就是播放声音,参数是声音的文件名,示例代码如下:
if(达到发出信号的条件)
{
PlaySound("alert.wav");
}
alert.wav是MT4系统自带的声音文件,我们利用这个函数来实现播放声音,剩下的只需要电脑接上音箱并且把声音开大。该方法最为简单,但是只适合人在一个房间中这样的环境中使用。
2,发送邮件。
第二个介绍给大家的方法是利用MT4的发邮件功能来当通知。首先我们要配置下邮件设置,在MT4菜单中,选择工具->选项
在打开的对话框中,选择电邮选项卡
勾选启用复选框,并输入下面的内容:
(1)SMTP服务器。SMTP就是简单邮件传输协议(Simple Mail Transfer Protocol)的英文缩写,我们现在发电子邮件都是通过SMTP服务器来发邮件的,所以我们如果要发送邮件就需要指定SMTP服务器的地址和端口号(中间用冒号分隔),以163邮箱为例,则应该填写:smtp.163.com:465。
(2)电邮登陆账号。此项就是填写发送方的邮箱地址。
(3)电邮密码。发送方邮箱的密码。
(4)发件人。此项可以填写一个名字或者直接填写发送方的邮箱地址即可。
(5)收件人。填写接收方的邮箱地址。
填写完后,点击测试看看能不能收到一封邮件,如果没有问题点击确定,配置完成。
第二步我们在代码中调用MT4自带的发邮件的函数来发送邮件,示例代码如下:
if(达到发出信号的条件)
{
SendMail("要发送的邮件标题","邮件内容");
}
最后一步,我们在手机上装一个接收邮件的APP,当有新邮件时,手机就会有提示,这样即使我们在外面也可以收到交易信号的通知了。
3,发短信。
此方法需要一定的程序开发能力,适合专业的开发人员来使用。大体思路是开发一个发送短信的程序并部署到一个网站上,当出现交易信号时,发送一个HTTP请求到该服务器上,这样就发送了一个短信到我们的手机上来实现通知。
第一步我们需要在MT4中配置下发送网络请求的域名。出于安全的考虑,MT4发送网络请求时必须要在软件中配置好域名信息,这样才能发送成功。具体操作如下:
还是在菜单中选择工具->选项,然后选择EA交易选项卡:
勾选允许WebRequest用于所列URL,并在下面添加自己的网络域名。
第二步访问自己的网站来发送短信:
if(达到发出信号的条件)
{
char post[],result[];
string headers;
int ret = WebRequest("GET","您的服务器地址",NULL,NULL,5000,post,0,result,headers);
if(ret == -1)
{
//访问出现错误
}
else
{
string response = CharArrayToString(result);//response中是服务器返回的信息
}
}
本篇文章是介绍MT4的开发,至于如何发送短信则不在本篇的讨论范围内。目前短信平台可以购买阿里云等相关的服务。
该方法是最复杂一种的发送通知方法,但是它比较灵活,可以实现一套针对多个客户的信号服务,如果您的公司面向交易客户提供各种交易辅助服务,那么这种方法无疑是最好的解决方案。
4,MT4的APP通知。
利用MT4的通知函数(SendNotification)把消息发送给手机端。相信大多数的开发者都对这个功能很陌生,其实它就是利用了迈达克的社区功能实现的消息发送。此功能首先需要在社区(MQL5.community)里注册一个账号,并在MT4软件中做相应的设置,设置方法如下,
在菜单中选择工具->选项,然后选择社区选项卡:
填写自己的社区账号并登录。
在代码中编写如下代码:
if(达到发出信号的条件)
{
SendNotification("要发送的内容");
}
同时,在手机上安装MT4的软件并登录(MT4的PC端和APP端必须是同一个平台)即可实现接收信号的推送通知。
以上这四种方法对应不同的情况,如果在家或办公室盯盘,则可以使用播放声音的方法来提醒有新的交易信号。如果外出则需要使用后面的几种方法,我们推荐最后一种方法,开发设置较简单,普通交易者也可以轻松设置。