您需要 登录 才可以下载或查看,没有帐号?注册
//+------------------------------------------------------------------+
//| 断线自动重连脚本.mq4 |
//| ldj |
//| http://www.fxvip.net |
//+------------------------------------------------------------------+
//scripts//脚本文件
#property copyright ldj
#property link http://www.fxvip.net
#property show_inputs
//自动登录准备
//把要登录的账号添加到收藏夹,并保证列在第一位。
extern string 邮件标记字符串= EA
extern string 所有参数单位为秒= 以下参数均折算为妙
extern int 时差=18000; //本地时间与服务器时间的时间差,本地时间迟于服务器时间其值为负。单位秒。
extern int 允许时差=120;//允许服务器行情报价停滞的时间,建议设置2分钟即120秒。
extern int 检测间隔=20;//单位秒,不应小于20秒。
extern bool 邮件报警=false;
extern bool 声音报警=false;
//0、不自动登录。1、重新扫描服务器。2、重新登录第一个服务器。3、登录收藏夹第一个账号4、登录导航窗第一个账号
extern int 重连方式=1;
int ServerNum=0;
#include WinUser32.mqh
#import user32.dll
int GetParent( int hWnd );
int GetDlgItem( int hDlg, int nIDDlgItem );
int GetLastActivePopup( int hWnd );
int GetAncestor(int hWnd,int gaFlags);//GetAncestor(HWND hwnd,UINT gaFlags);
#import
#define VK_HOME 0x24
#define VK_DOWN 0x28
#define VK_ENTER 0x0D
#define PAUSE 1000
int LoginSleep=120; //不小于2分钟,避免频繁发送登录请求
int MailSleep=120; //不小于2分钟,避免频繁发送邮件
datetime LoginTime,MailTime;
//+------------------------------------------------------------------+
//| script program init function |
//+------------------------------------------------------------------+
void init()
{
LoginTime=TimeLocal();
MailTime=TimeLocal();
if(检测间隔 10)检测间隔=10; //避免频繁检测系统资源消耗过多!
return;
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
void start()
{
if ( !IsDllsAllowed() )
{
alert( 禁止调用DLL文件 );
return;
}
string 正文;
double T;
int week;
while(IsStopped()==false)//如果没有接到脚本终止命令则一直运行
{
正文= 服务器时间: +TimeToStr(TimeCurrent())+ n本地的时间: +TimeToStr(TimeLocal())+ n +AccountCompany()+ 平台 + 账号为: +AccountNumber()+ 的账户
T=(TimeLocal()-TimeCurrent())/360.0;
Comment( 服务器时间: ,TimeToStr(TimeCurrent(),TIME_SECONDS),
n本地的时间: ,TimeToStr(TimeLocal(),TIME_SECONDS),
n参考时差值: ,MathRound(T)*360);
week=TimeDayOfWeek(TimeLocal()-时差);
if(week =1 week =5)//服务器时间为 星期一 至 星期五,有星期天或星期六 K线的平台可适当修改。
{
if ((TimeLocal()-TimeCurrent()-时差) 允许时差)
{
if (LoginTime+LoginSleep TimeLocal())
{
LoginTime=TimeLocal();
switch(重连方式)
{
case 0 : break;
case 1 : ReConnecter();break;
case 2 : ReConnecterN(ServerNum);break;
case 3 : ReLogin(1);break;
case 4 : ReLogin2();break;
default : break;
}
}
//正文=AccountCompany()+ 平台 + 账号为: +AccountNumber()+ 的账户
if (声音报警==true) alert( 从服务器上获取行情数据超时
if (邮件报警==true MailTime+MailSleep TimeLocal())
{
SendMail( 从服务器上获取行情数据超时 ,正文+ n从服务器上获取行情数据超时及时处理n +邮件标记字符串);
MailTime=TimeLocal();
}
Sleep(检测间隔*1000);
}
}
if(IsConnected()==false)
{
if (LoginTime+LoginSleep TimeLocal())
{
LoginTime=TimeLocal();
switch(重连方式)
{
case 0 : break;
case 1 : ReConnecter();break;
case 2 : ReConnecterN(ServerNum);break;
case 3 : ReLogin(1);break;
case 4 : ReLogin2();break;
default : break;
}
}
//正文=AccountCompany()+ 平台 + 账号为: +AccountNumber()+ 的账户
if (声音报警==true) alert( 服务器断线
if (邮件报警==true MailTime+MailSleep TimeLocal())
{
SendMail( 服务器连接中断 ,正文+ n与服务器连接中断请及时处理n +邮件标记字符串);
MailTime=TimeLocal();
}
Sleep(检测间隔*1000);
}
Sleep(1*1000);
}
Comment(
return(0);
}
//+------------------------------------------------------------------+复制代码
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!