5.6 Checkup检查
一组可以检测当前客户端状态(包括MQL4程序的环境状态)的函数。
5.6.1 GetLastError()返回最后错误
int CetLastError()
函数返回最后生成错误编号,随后特殊值last_ error变量的代码归零。所以,下一个GetLastError)返回零。
【示例】

5.6.2 IsConnected()返回联机状态
bool sConnected()
在客户终端和服务器执行数据之间函数返回主要连接状态。如果连接服务器成功,返回TRUE;否则,返回FALSE。
【示例】
if(!IsConnected))
{
Print(”没有连接!”);
return ( 0 );
}
//需要打开连接
//…
5.6.3 IsDemo()返回模拟账户
bool IsDemo)
如果智能交易在模拟账户中运行,返回TRUE;否则,返回FALSE。
【示例】
if( IsI)emo( ) ) Print(”在模拟账户中运行”);
else Print(”在真实账户中运行”);
5.6.4 IsDIIsAIlowed()返回dll允许调用
boot IsD1lsAllowed()
如果智能交易函数DLL允许调用,返回TRUE;否则,返回FALSE 。
参见IsLibrariesAllowed)、IsTradeAllowed)。
【示例】

5.6.5 IsExpertEnabled)返回智能交易开启状态
bool lsExpertEnabled)
如果智能交易开启运行,返回TRUE;否则,返回FALSE。
【示例】
while(!IsStopped())
{
if(!IsExpertEnabled))break;
}
5.6.6 IsLibrariesAllowed()返回数据库函数调用
bool IsLibrariesAllowed()
如果智能交易允许调用数据库函数,返回TRUE;否则,返回FALSE。
参IsD1lsAllowed()IsTradeAllowed()。
【示例】

5.6.7 IsOptimization()返回策略测试中优化模式
bool IsOptimization)
如果在策略测试中智能交易为优化模式,返回TRUE;否则,返回FALSE。
【示例】
if( IsOptimization()return ( 0 );
5.6.8 IsStopped)返回终止业务
bool IsStopped)
如果程序(智能交易或脚本)得到命令中止业务,返回TRUE;否则,返回FALSE。在客户端中止执行之前程序业务会继续运行2. 5秒。
【示例】
while( expr!=false )
if( IsStopped()==true ) return ( 0);
//长运行时间循环
//......
5.6.9 IsTesting()返回测试模式状态
bool IsTesting)
如果智能交易在测试模式中运行,返回TRUE;否则,返回FALSE。
【示例】
if(IsTesting( ) ) Print("测试中”);
5.6.10 IsTradeAllowed)返回允许智能交易
bool IsTradeAllowed)
如果智能交易允许交易,返回TRUE;否则,返回FALSE。
参见IsD1lsAllowed)、IsLibrariesAllowed)、IsTradeContextBusy)。
【示例】
if( IsTradeAllowed( ) ) Print(”允许交易”);
5.6.11 IsTradeContextBusy)返回其他智能交易忙
boot IsTradeContextBusy)
如果其他智能交易交易忙,返回TRUE;否则,返回FALSE。
参见IsTradeAllowed)。
【示例】
if( IsTradeContextBusy( ) ) Print(”交易文本忙,请稍等”);
5.6.12 IsVisuaIMode()返回智能交易“图片模式”

5.6.13 UninitializeReason()返回智能交易初始化原因
int UninitializeReason()
返回智能交易、自定义指标和脚本的未初始化原因代码。返回值为未初始化原因代码之一。此函数同样可以在函数init()中调用分析先前开启初始化原因。
【示例】
