客户端的全局变量问题

 
请教:MT4客户端的全局变量有数量限制吗?我在一个EA里声明了4个,可是从打印结果看只成功了一个,其它三个似乎被覆盖了。怎么回事?
 
Lin Luo:
请教:MT4客户端的全局变量有数量限制吗?我在一个EA里声明了4个,可是从打印结果看只成功了一个,其它三个似乎被覆盖了。怎么回事?

没听说有什么限制,应该是你自己的代码问题!

 

我是这样使用的。对吗?大神们来帮看下:

extern double m_mbbuy;
extern double m_mbsel;
extern double m_mbsymbol;
extern double m_mball;

string Global_m_mbbuy=" ";
string Global_m_mbsel=" ";
string Global_m_mbsymbol=" ";
string Global_m_mball=" ";
int OnInit()
  {
……
   if(!GlobalVariableCheck(Global_m_mbbuy))   GlobalVariableSet(Global_m_mbbuy,0); 
     m_mbbuy=GlobalVariableGet(Global_m_mbbuy);
   if(!GlobalVariableCheck(Global_m_mbsel))   GlobalVariableSet(Global_m_mbsel,0);  
     m_mbsel=GlobalVariableGet(Global_m_mbsel);
   if(!GlobalVariableCheck(Global_m_mbsymbol))   GlobalVariableSet(Global_m_mbsymbol,0);
     m_mbsymbol=GlobalVariableGet(Global_m_mbsymbol);
   if(!GlobalVariableCheck(Global_m_mball))   GlobalVariableSet(Global_m_mball,0);
     m_mball=GlobalVariableGet(Global_m_mball);
     Print("m_mbbuy=",m_mbbuy,"Global_m_mbbuy=",GlobalVariableGet(Global_m_mbbuy));
     Print("m_mball=",m_mball,"Global_m_mball=",GlobalVariableGet(Global_m_mball));
……
}
 
Lin Luo:

我是这样使用的。对吗?大神们来帮看下:

老实说,我还真从来没有用过这么高级的功能

 
Lin Luo:

我是这样使用的。对吗?大神们来帮看下:

正好刚才没事,简单研究了一下全局变量的确我没用过。

哈哈,今天的初步结论是:你这个代码啊是真坑啊,把我都给弄跑偏了,必须要被覆盖才是对的!

因为感觉你的用法就是要起到迷惑别人和覆盖的作用,哈哈。

我都是反应了一阵子,才发现被你带跑偏了的!

另外就是要注意:全局变量只支持double类型,总之不支持字符串!

(字符串会被强制转换成double问题可就大了,会莫名其妙的很难发现的,会有0.0值又未必对,还可能赶上0.0时候 碰巧又对)。

原因: