Глюк MQL4?

 

Объявил в коде 26 переменных глобального уровня терминала. Отображается по нажатию F3 в терминале только 25. Ни где в документаци не удалось ни чего найти по этому поводу. В языке что, максимальное число переменных глобального уровня терминала = 25?

Ни где в коде я не использовал команду GlobalVariableDel(). У меня переменная сама по себе не могла ни куда исчезнуть.

Комментом снял дамп данных - переменная существует и её значение выводится комментом на экран. В окне глобальных переменных её попросту нет.

Вот код, который проверяет и создаёт переменные

Код перед блоком инициализации:

string     g_PriceStartaImp,g_KoefLota,g_TicketBuy1,g_TicketBuy2,g_TicketSell1,g_TicketSell2;
string     g_PriceBuy1,g_PriceBuy2,g_PriceSell1,g_PriceSell2;
string     g_LotBuy1,g_LotBuy2,g_LotSell1,g_LotSell2;
string     g_SLBuy1,g_SLBuy2,g_SLSell1,g_SLSell2;
string     g_TPBuy1,g_TPBuy2,g_TPSell1,g_TPSell2;
string     g_CommBuy1,g_CommBuy2,g_CommSell1,g_CommSell2;


Код внутри функции start()

	if(!GlobalVariableCheck(g_PriceStartaImp)) { GlobalVariableSet (g_PriceStartaImp,(-1));}
	if(!GlobalVariableCheck(g_KoefLota)) { GlobalVariableSet (g_KoefLota,KoefLota);}
  
	if(!GlobalVariableCheck(g_TicketBuy1)) { GlobalVariableSet (g_TicketBuy1,0);}
	if(!GlobalVariableCheck(g_PriceBuy1)) { GlobalVariableSet (g_PriceBuy1,0);}
	if(!GlobalVariableCheck(g_LotBuy1)) { GlobalVariableSet (g_LotBuy1,0);}
	if(!GlobalVariableCheck(g_SLBuy1)) { GlobalVariableSet (g_SLBuy1,0);}
	if(!GlobalVariableCheck(g_TPBuy1)) { GlobalVariableSet (g_TPBuy1,0);}
	if(!GlobalVariableCheck(g_CommBuy1)) { GlobalVariableSet (g_CommBuy1,1);}
	
	if(!GlobalVariableCheck(g_TicketBuy2)) { GlobalVariableSet (g_TicketBuy2,0);}
	if(!GlobalVariableCheck(g_PriceBuy2)) { GlobalVariableSet (g_PriceBuy2,0);}
	if(!GlobalVariableCheck(g_LotBuy2)) { GlobalVariableSet (g_LotBuy2,0);}
	if(!GlobalVariableCheck(g_SLBuy2)) { GlobalVariableSet (g_SLBuy2,0);}
	if(!GlobalVariableCheck(g_TPBuy2)) { GlobalVariableSet (g_TPBuy2,0);}
	if(!GlobalVariableCheck(g_CommBuy2)) { GlobalVariableSet (g_CommBuy2,1);}
	
	if(!GlobalVariableCheck(g_TicketSell1)) { GlobalVariableSet (g_TicketSell1,0);}
	if(!GlobalVariableCheck(g_PriceSell1)) { GlobalVariableSet (g_PriceSell1,0);}
	if(!GlobalVariableCheck(g_LotSell1)) { GlobalVariableSet (g_LotSell1,0);}
	if(!GlobalVariableCheck(g_SLSell1)) { GlobalVariableSet (g_SLSell1,0);}
	if(!GlobalVariableCheck(g_TPSell1)) { GlobalVariableSet (g_TPSell1,0);}
	if(!GlobalVariableCheck(g_CommSell1)) { GlobalVariableSet (g_CommSell1,1);}
	
	if(!GlobalVariableCheck(g_TicketSell2)) { GlobalVariableSet (g_TicketSell2,0);}
	if(!GlobalVariableCheck(g_PriceSell2)) { GlobalVariableSet (g_PriceSell2,0);}
	if(!GlobalVariableCheck(g_LotSell2)) { GlobalVariableSet (g_LotSell2,0);}
	if(!GlobalVariableCheck(g_SLSell2)) { GlobalVariableSet (g_SLSell2,0);}
	if(!GlobalVariableCheck(g_TPSell2)) { GlobalVariableSet (g_TPSell2,0);}
	if(!GlobalVariableCheck(g_CommSell2)) { GlobalVariableSet (g_CommSell2,1);}


Как видите, строка 

if(!GlobalVariableCheck(g_CommBuy2)) { GlobalVariableSet (g_CommBuy2,1);}


Присутствует.

А вот что в результате я вижу на экране

Как видите, переменная с именем "g_CommBuy2" отсутствует напрочь. (см. первые две строчки на скриншоте)

Поясните пожалуйста ситуацию.

 

Проверь. Маленький скрипт. Количество переменных произвольное

//+------------------------------------------------------------------+
//|                                          CheckGlobalVariable.mq4 |
//|                                Copyright © 2009, Victor Nicolaev |
//|                                                    vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Victor Nicolaev"
#property link      "vinin.ucoz.ru"
#property show_inputs

int CountVariable=30;

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start() {
   string name="Global";
   for (int i=0;i<CountVariable;i++) {
      if(!GlobalVariableCheck(name+i)) 
         GlobalVariableSet (name+i,-1.0);
   }


   return(0);
  }
//
 
Спасибо. Разобрался. Опечатка у меня в коде была.
Причина обращения: