Вопрос по индикатору, разработанному Евгением.
Добавлено: 16 апр 2020, 18:47
				
				Добрый день, друзья !
Вопрос , наверное , прежде всего к Евгению, но может кто подскажет.
Как-то давно Евгений помог разработать индикатор, подсчитывающий разницу между сигналами за весь день.
Возникла проблема - он не выдает нужное значение, если начало дня не попадает в видимую область на максимально сжатых барах.
На минутах бары за день входят в видимую область с начала дня, на секундах уже нет
ПОЧЕМУ?
не помогает
код показывает одинаково на любых MY.indicator
			Вопрос , наверное , прежде всего к Евгению, но может кто подскажет.
Как-то давно Евгений помог разработать индикатор, подсчитывающий разницу между сигналами за весь день.
Возникла проблема - он не выдает нужное значение, если начало дня не попадает в видимую область на максимально сжатых барах.
На минутах бары за день входят в видимую область с начала дня, на секундах уже нет
ПОЧЕМУ?
Код: Выделить всё
if (BarTime() >= AsTime(10,00,0) && BarTime() <= AsTime(23,50,0))
не помогает
код показывает одинаково на любых MY.indicator
Код: Выделить всё
function Initialize()
{ 
IndicatorName = "1"; 
AddInput("Input", Inputs.Candle); 
AddSeries("D", DrawAs.Custom, Color.Green, false);
AddSeries("U", DrawAs.Custom, Color.Red, false);
AddShadowSeries("Sum", DrawAs.Custom, Color.DarkSlateGray);
AddSeries("SUp", DrawAs.Custom, Color.Lime, false);
AddSeries("SDown", DrawAs.Custom, Color.HotPink, false);
AddGlobalVariable("SumUp", Types.Double, 0);
AddGlobalVariable("SumDown", Types.Double, 0);
AddGlobalVariable("LX", Types.Long, 0);
AddGlobalVariable("HX", Types.Long, 0);
PriceStudy = false; 
}
function Evaluate() 
{
var I =  MY.индикатор(Input, 0,0,0,1);
var Lx = 0; 
var Hx = 0;
var Ly = 0.0;
var Hy = 0.0;
for (var x = 0; x < 999; x++)
{
   if (I["L"][x] > 0) { Lx = CurrentIndex - x; Ly = I["L"][x]; } 
   if (I["H"][x] > 0) { Hx = CurrentIndex - x; Hy = I["H"][x]; } 
   if (Lx != 0 && Hx != 0) break;
}
if (Lx == 0 && Hx == 0 ) return;
if (BarDate(0) != BarDate(1)) 
{ 
   SumUp = 0; SumDown = 0; 
}
if ( Lx > Hx )
   D[1] = Hy - Ly;
else
   U[1] = Hy - Ly;
if (HX != Hx || LX != Lx)
{
   HX = Hx;
   LX = Lx;
   if (Hx > Lx) SumUp += Hy - Ly;
   if (Hx < Lx) SumDown += Hy - Ly;
}
SUp[0] = SumUp;
SDown[0] = SumDown;
Sum[0] = (SumDown + SumUp)*100;
}