5.6 Checkup检查

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()中调用分析先前开启初始化原因。

【示例】