GlobalVariables Help me!!!!

 

Здравствуйте!Объясните плиз, как работают GlobalVariables!Пытаюсь из индюка в советник передать значение вот таким образом.


код индюка:

if(( current > prev) && (Scurrent > Sprev) )
{
ELDER=1;
GlobalVariableSet("E",ELDER);

ExtBuffer1[i]=current; // Green
ExtBuffer2[i]=0.0;
ExtBuffer3[i]=0.0;
ExtBuffer4[i]=0.0;
}
else
if( ( current< prev) && (Scurrent < Sprev) ) // 7-е условие
{
ELDER=2;
GlobalVariableSet("E",ELDER);
ExtBuffer1[i]=0.0;
ExtBuffer2[i]=0.0;
ExtBuffer3[i]=current; // // Red
ExtBuffer4[i]=0.0;
}
else
if( (current > prev)&& (Scurrent < Sprev) )
{
ELDER=0;
GlobalVariableSet("E",ELDER);
ExtBuffer1[i]=0.0;
ExtBuffer2[i]=current; // MediumBlue
ExtBuffer3[i]=0.0;
ExtBuffer4[i]=0.0;
}
else
if( (current < prev)&& (Scurrent > Sprev) )
{
ELDER=0;
GlobalVariableSet("E",ELDER);
ExtBuffer1[i]=0.0;
ExtBuffer2[i]=current; // MediumBlue
ExtBuffer3[i]=0.0;

ExtBuffer4[i]=0.0;


Код советника


ELD=GlobalVariableGet("E");



Проблема в том,что в окне глобальных переменных всегда Е=1 и соответственно в советник тоже всегда передаётся 1.Условия в индикаторе чередуются,(не зациклены на 1).

Если Вам не трудно скажите в чём ошибка,или приведите кусок кода которым можно реализовать данную задачу.Учебник https://book.mql4.com/ru/variables/globals я читал,

но кажется что то упускаю.Заранее СПАСИБО!!!

 
В условиях отладки попробуй поставить коментарии и посмотришь что у тебя на саао деле пришется и в какие моменты
Print(TimeToStr(TimeLocal(),TIME_MINUTE);
if(( current > prev) && (Scurrent > Sprev) )
{
ELDER=1;
GlobalVariableSet("E",ELDER);
Print("Green ",ELDER);
ExtBuffer1[i]=current; // Green
ExtBuffer2[i]=0.0;
ExtBuffer3[i]=0.0;
ExtBuffer4[i]=0.0;
}
else
if( ( current< prev) && (Scurrent < Sprev) ) // 7-е условие
{
ELDER=2;
GlobalVariableSet("E",ELDER);
Print("Red",ELDER);
ExtBuffer1[i]=0.0; 
ExtBuffer2[i]=0.0; 
ExtBuffer3[i]=current; // // Red
ExtBuffer4[i]=0.0;
}
else
if( (current > prev)&& (Scurrent < Sprev) ) 
{
ELDER=0;
GlobalVariableSet("E",ELDER);
Print("MediumBlue",ELDER);
ExtBuffer1[i]=0.0; 
ExtBuffer2[i]=current; // MediumBlue
ExtBuffer3[i]=0.0; 
ExtBuffer4[i]=0.0;
}
else
if( (current < prev)&& (Scurrent > Sprev) ) 
{
ELDER=0;
GlobalVariableSet("E",ELDER);
Print("MediumBlue",ELDER);
ExtBuffer1[i]=0.0; 
ExtBuffer2[i]=current; // MediumBlue
ExtBuffer3[i]=0.0; 


ExtBuffer4[i]=0.0;




Код советника




ELD=GlobalVariableGet("E");

 
forte928 >>:
В условиях отладки попробуй поставить коментарии и посмотришь что у тебя на саао деле пришется и в какие моменты

Спасибо!Уже разобрался!Кста представленый мною код верный.