全局变量
客户端全局变量
bool GlobalVariableCheck( string 全局变量名 )
检查全局变量存在
示例:
//--使用前先检查变量是否已存在
if(GlobalVariableCheck("MyG1")==false ) // 如果“ MyG1 ”这个全局变量不存的的话
GlobalVariableSet("g1",1); // 那么设置一个
bool GlobalVariableDel( string 全局变量名 )
删除指定名的全局变量
示例:
//--删除名为 "Gvar_1"的全局变量
GlobalVariableDel(" Gvar_1");
double GlobalVariableGet( string 全局变量名 )
获取全局变量的值
示例:
int init()
{
//--若未找到"多个"变量,则在该时间的设定一个变量值,否则将设定一个新的
if(GlobalVariableCheck("多个")==false){
GlobalVariableSet("多个", 1);
}
//--若找到,则再加一个
else{
double 个数= GlobalVariableGet("多个");
个数++;
GlobalVariableSet("多个", 个数);
}
return(0);
}
double GlobalVariableName( int 指定索引 )
获得在全局变量列表中指定索引的全局变量名
参数index -全局变量列表中索引号,该索引号必须大于等于0,或者小于 GlobalVariablesTotal() 返回的值。
示例:
int 全局变量总数= GlobalVariablesTotal();
string 变量名 ;
for(int i=0; i<全局变量总数; i++){
变量名= GlobalVariableName(i);
Print('第'i,"个全局变量名为 ",变量名);
}
datetime GlobalVariableSet( string 全局变量名 , double 新值)
设置 "客户端全局变量" 新的值。
如果它不存在,系统将创建个新的全局变量。
如果函数成功,其返回值将是最后存取时间,否则,返回值将是0
参数
name - 全局变量的名称
value - 新的全局变量的值
示例:
//----尝试设置新值
if(GlobalVariableSet("BarsTotal", Bars)==0)
return(false);
bool GlobalVariableSetOnCondition( string 全局变量名 ,double 新值, double 对比值)
按条件设置全局变量的值
如果 "客户端全局变量" 的当前值等于第三个参数check_value,就设置现有的全局变量的新值。
如果全局变量不存在,函数将产生错误ERR_GLOBAL_VARIABLE_NOT_FOUND(4058) 并且返回FALSE;
当函数执行成功,返回TRUE,否则,返回FALSE。
如果全局变量的当前值与check_value不同,函数将返回FALSE。
函数为 "客户端全局变量" 提供了强大的访问能力,这就是为什么在一个客户端内同时运行的几个智能交易程序用它作为通信信号进行相互通信的原因。
参数
name - 全局变量的名称
value - 新的数值
check_value - 与当前全局变量的值相比较的值
示例:
int init()
{
//--创建客户端全局变量
GlobalVariableSet("DATAFILE_SEM",0);
//...
}
int start()
{
//--尝试锁住公共资源
while(IsStopped()==false){
//--锁住
if(GlobalVariableSetOnCondition("DATAFILE_SEM",1,0)==true)
break;
//--可以删除变量吗?
if(GetLastError()==ERR_GLOBAL_VARIABLE_NOT_FOUND)
return(0);
//--等待5秒
Sleep(500);
}
//--资源被锁
//...做些工作
//--解锁资源
GlobalVariableSet("DATAFILE_SEM",0);
void GlobalVariablesDeleteAll( void 前缀)
删除全部客户端全局变量。
如果全局变量名称的前缀没有指定,所有全局变量将被删除,否则,只有那些符合指定前缀开头的变量被删除。
函数返回被删除的变量个数。
参量:
prefix_name - 要被删除的全局变量名称前缀。
示例:
Print( GlobalVariablesDeleteAll("test_") + " 个以test_为开头的变量被删除"); !!!
void GlobalVariablesTotal()
"客户端全局变量" 的总数。
示例:
Print("有"GlobalVariablesTotal(),"个全局变量被检测到");