Проблем с MQL

 
Следующий код (привожу фрагмент) компилируется нормально, несмотря на то, что nSignal декларируется внутри фигурных скобок, а затем используется вне их. Больше нигде в этом эксперте nSignal не объявляется.

	if(nNumOfOpenedOrders == 0)
	{
		int nSignal = GetSignal();
		
		if(nSignal == OP_BUY) 
			Buy();
		else if(nSignal == OP_SELL) 
			Sell();

		nSignal = -1;
		
		return(0);
	}
	else
	{
		for(nCnt = 0; nCnt < OrdersTotal(); nCnt++)
		{
			OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES);
			if(OrderMagicNumber() == nMagic)
			{
				if(TimeSeconds(Time) - TimeSeconds(OrderOpenTime()) > nDaysToHold * 24 * 60 * 60)
				{
					if(OrderType() == OP_BUY)
					{	
						OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
						nSignal = -1;
						return(0);
					}
					else if(OrderType() == OP_SELL)
					{
						OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);
						nSignal = -1;
						return(0);
					}
				}
			}
		}
	}

 
в нынешней версии компилятора переменные объявленные внутри блока какой-либо функции могут быть использованы за пределами этого блока. более того, если Вы попытаетесь ниже объявить переменную с таким же именем, то получите ошибку. в данный момент идёт разработка новой версии компилятора, где многие проблемы такого плана будут решены