Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1230

Добавлено: Den » 16 апр 2020, 18:42

Тема: Вопрос по индикатору, разработанному Евгением.

Текст сообщения:

Добрый день, друзья !
Вопрос , наверное , прежде всего к Евгению, но может кто подскажет.
Как-то давно Евгений помог разработать индикатор, подсчитывающий разницу между сигналами за весь день.

Возникла проблема - он не выдает нужное значение, если начало дня не попадает в видимую область на максимально сжатых барах.

На минутах бары за день входят в видимую область с начала дня, на секундах уже нет

ПОЧЕМУ?


Код: Выделить всё

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;

}


Вложения
ВЕРНО.jpg
НЕВЕРНО.jpg