Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
bank
848
bank  

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

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

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

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

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

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

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

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

Комбинатор
16452
Комбинатор  
sabluk писал (а) >>

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

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

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

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

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

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

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

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

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

bank
848
bank  

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

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);
}

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

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

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

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

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




Комбинатор
16452
Комбинатор  
sabluk писал (а) >>


limit=1;


Это к чему?

bank
848
bank  
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);
}

Rashid Umarov
Админ
12608
Rashid Umarov  
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);
}

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

bank
848
bank  
Rosh писал (а) >>

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

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

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

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

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

Vasyl Nosal
19164
Vasyl Nosal  
sabluk:

 ...

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

...

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

 

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

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

Victor Nikolaev
Модератор
15308
Victor Nikolaev  
eevviill:

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

 

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

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

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