Правельный код для индикатора?

 

Господа профессионалы подскажите пожалйста код чтобы индикатор:

пересчитывался полностью при появлении нового бара и пересчитывал только последнее значение при приходе тика.

 
Gutman >>:

Господа профессионалы подскажите пожалйста код чтобы индикатор:

пересчитывался полностью при появлении нового бара и пересчитывал только последнее значение при приходе тика.

datetime Last = 0;

int start()
{
   int toCount = 1;
   
   if (Last != Time[0])    
   {
      Last = Time[0];
      toCount = Bars;
   }
   
   for (int i = toCount - 1; i >= 0; i--)
   {
      // place your code here
   }
}
 
limit=Bars-IndicatorCounted()-1;

if(limt>0)limit=Bars-1;



for(i=limit;i>=0;i--){ 
 
TheXpert >>:

я так понял если у меня в коде есть циклы

for( j = 0; j <= k-1; j++ )

for( j = k-1; j >= 0; j-- )


то их надо исправить на

for( j = 0; j <=toCount - 1; j++ )

for( j = toCount-1; j >= 0; j-- )

 
Gutman >>:

я так понял если у меня в коде есть циклы

for( j = 0; j <= k-1; j++ )

for( j = k-1; j >= 0; j-- )


то их надо исправить на

for( j = 0; j <=toCount - 1; j++ )

for( j = toCount-1; j >= 0; j-- )

Да.

Но на Вашем месте я бы все-таки выложил код.

 

Integer писал

Integer >>:


ваш вариант короче! я вот только не пойму куда мне вписывать максимальное кол-во баров (iKolSnach) на котором рисуется индикатор и прокоментируйте если не сложно почему он пересчитывает 0 бар каждый тик, а все бары только с приходомнового бара, я немогу уяснить это никак
 
TheXpert >>:

Да.

Но на Вашем месте я бы все-таки выложил код.

да кода пока нет, просто тренируюсь писать индикаторы, мне бы образец индикатора, который в отдельном окне имеет и линии и стрелки, было бы неплохо посмотреть как на шаблон, а то с буферами никак не могу сообразить

 
Gutman писал(а) >>
ваш вариант короче! я вот только не пойму куда мне вписывать максимальное кол-во баров (iKolSnach) на котором рисуется индикатор и прокоментируйте если не сложно почему он пересчитывает 0 бар каждый тик, а все бары только с приходомнового бара, я немогу уяснить это никак
limit=Bars-IndicatorCounted()-1;

if(limt>0)limit=Bars-1;
limit=MathMin(limit,iKolSnach);


for(i=limit;i>=0;i--){ 
 

TheXpert >>:


TheXpert а не подскажите как в советнике сделать так чтобы с приходом нового бара он производил вычисления и если они совпадают с условиями для открытия позиции открывал её. И потом начинал работать только с приходом нового бара.

Причина обращения: