iMAOnArray может не успевать делать расчет?

 

создаю некий индикатор в котором использована функция OnArray

все нормально работает и рисует линию

затем нужно чтобы сторонний индюк делал свое построение на основе первого индюка (через iCustom естествено)

при первом запуске тоже все работает но рано или поздно iCustom получает рэндомноподобное значение для текущего бара

данная трабла возникает если в первом индюке для iMAOnArray Период усреднения состоит из нескольких баров

если period для двух баров то глюка замечено не было

можно сделать вывод что iMAOnArray не успевает усреднять?

или это iCustom виноват?

 
sabluk писал (а) >>

создаю некий индикатор в котором использована функция OnArray

все нормально работает и рисует линию

затем нужно чтобы сторонний индюк делал свое построение на основе первого индюка (через iCustom естествено)

при первом запуске тоже все работает но рано или поздно iCustom получает рэндомноподобное значение для текущего бара

данная трабла возникает если в первом индюке для iMAOnArray Период усреднения состоит из нескольких баров

если period для двух баров то глюка замечено не было

можно сделать вывод что iMAOnArray не успевает усреднять?

или это iCustom виноват?

99% виноват алгоритм этого самого кастома, так что скорей всего код в студию, хотя бы тот кусок с массивом.

 

да собственно код ведомого индюка незатейлевый

int start()
{
for(int i = 0; i < limit; i++)
{

имя_буфера_0[i] = iCustom("EURUSD",0,"имя_индюка",0,i); // первая линия (ведущего индюка) всегда дает нормальное значение т к там Период усреднения для iMAOnArray всего 2 бара

имя_буфера_1[i] = iCustom("EURUSD",0,"имя_индюка",1,i); // вторая линия порой гонет пургу т к там Период усреднения для нескольких баров

}

limit=1;
return(0);
}

и первая и вторая линия в ведущем индюке результат усреднения одного и того же буфера

 
индикатор от индикатора если первый тяжелый глючит конкретно:
-на несколько тиков тормозит с изображением одной из линий, а если изобразил то может потерять,
-не отображается в окне тестера, но работает.
разгружаешь - все ok
 

плюнул я на iCustom замучил он меня

пришлось немного упростить алгоритм первичного индюка (к сожалению с небольшим ущербом качества обработки трендоследящей линии) и вставить его в виде функции

но теперь боюсь как бы не возникли траблы на следущем уровне.. т к по замыслу предпологалось иметь индюки 3 уровней.. один уровень щас упразднил..




 
sabluk писал (а) >>


limit=1;


Это к чему?

 
TheXpert писал (а) >>


Это к чему?

#property indicator_separate_window

#property.......................

int limit;

//+------------------------------------------------------------------+

int init()
{
   limit=WindowFirstVisibleBar();
   SetIndexBuffer....................
   return(0);
}
//+------------------------------------------------------------------+  
int start()
{
   for(int i=0; i<limit; i++)
   {

   .....................
   }
   limit=1;
   return(0);
}

 
sabluk писал (а) >>

#property indicator_separate_window

#property.......................

int limit;

//+------------------------------------------------------------------+

int init()
{
limit=WindowFirstVisibleBar();
SetIndexBuffer....................
return(0);
}
//+------------------------------------------------------------------+
int start()
{
for(int i=0; i<limit; i++)
{

.....................
}
limit=1;
return(0);
}

Кривое решение.

 
Rosh писал (а) >>

Кривое решение.

в чем кривость?

limit=WindowFirstVisibleBar();  приведено для примера

для робота делаю поправки типа WindowFirstVisibleBar()+период_усреднения;

катировки все закачены и проверку количества баров не стал делать

 
sabluk:

 ...

WindowFirstVisibleBar()+период_усреднения;

...

Бл... а я уже 2 часа мучаюсь. Спасибо!

 

Есть вопрос. Если IMAonArray обсчитывает индикаторный буфер не весь а скажем количесвто елементов 40 то это 40 баров от 0-го бара или от  Bars?

И тот же вопрос если обсчитывается не индикаторный буфер. 

 
eevviill:

Бл... а я уже 2 часа мучаюсь. Спасибо!

 

Есть вопрос. Если IMAonArray обсчитывает индикаторный буфер не весь а скажем количесвто елементов 40 то это 40 баров от 0-го бара или от  Bars?

И тот же вопрос если обсчитывается не индикаторный буфер. 

Необходимо делать два цикла. В первом подготовка значений для второго. И лучше всего использовать оба буфера индикаторных.