Проблема с работой с буфферами индикаторов

 
Уважаемые разработчики!
В коде (ниже) закомментированы две строки. Если их раскомментировать, и закомментировать две следующие за ними, линия индикатора не рисуется. В чем дело?

С уважением,
Кварк

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_minimum 0
#property indicator_maximum 1

int nDrawBeginBar;

// indicator buffers
double arrExtMapBuffer[];
double arrNoc[];
double arrRsi[];

int nExtCountedBars = 0;

////////////////////////
int init()
{
	// indicator buffers mapping
	SetIndexBuffer(0, arrExtMapBuffer);
	SetIndexBuffer(1, arrNoc);
	SetIndexBuffer(2, arrRsi);

	// drawing settings
	SetIndexStyle(0, DRAW_LINE);
	SetIndexShift(0, 0);
		
	IndicatorDigits(4);
		
	nDrawBeginBar = 10;
	SetIndexDrawBegin(0, nDrawBeginBar);

	string strIndicatorShortName = "Signal";  
	IndicatorShortName(strIndicatorShortName);

	return(0);
}
///////////////////////////
int start()
{
	if(Bars <= nDrawBeginBar) 
		return(0);
		
	nExtCountedBars = IndicatorCounted();
	if(nExtCountedBars < 0) 
		return(-1);

	// last counted bar will be recounted
	if(nExtCountedBars > 0) 
		nExtCountedBars--;
		
	Noc();

	Signal();  

	return(0);
}
///////////////////
void Signal()
{
	int nPos = Bars - nExtCountedBars;

	while(nPos >= 0)
	{
//		arrNoc[nPos] = 0.5;
//		arrExtMapBuffer[nPos] = arrNoc[nPos];
		arrNoc[nPos] = 0.5;
		arrExtMapBuffer[nPos] = 0.5;
		
		nPos--;
	}
}
///////////////
void Noc()
{
	int nPos = Bars - nExtCountedBars;

	while(nPos >= 0)
	{
		arrNoc[nPos] = 0.5;
		nPos--;
	}
}
///////////////////

 
попробуйте указать color2 и color3 явно.
в противном случае при каждой перекомпиляции эти цвета сбрасываются в 0 (то есть в чёрный цвет)
 
попробуйте указать color2 и color3 явно.
в противном случае при каждой перекомпиляции эти цвета сбрасываются в 0 (то есть в чёрный цвет)


Вообще-то говоря, исчезает индикатор, рисуемый цветом color1. Кроме того, Ваше объяснение не дает ответа на вопрос, почему, когда 0.5 присваивается явно, индикатор все же рисуется.
 
попробуйте указать color2 и color3 явно.
в противном случае при каждой перекомпиляции эти цвета сбрасываются в 0 (то есть в чёрный цвет)


Попробовал. Не работает.
 
попробуйте указать color2 и color3 явно.
в противном случае при каждой перекомпиляции эти цвета сбрасываются в 0 (то есть в чёрный цвет)


Вообще-то говоря, исчезает индикатор, рисуемый цветом color1. Кроме того, Ваше объяснение не дает ответа на вопрос, почему, когда 0.5 присваивается явно, индикатор все же рисуется.

у меня не исчезает. а просто рисуется чёрным цветом. значения индикаторов можно контролировать через DataWindow
 
Получилось, спасибо.
Причина обращения: