Индикаторы: Каналы - страница 2

 
kwentin:
o0Demon0o:

Индикатор отличный, но только что-то у меня комп силно грузит! С каждым тиком комп подвисает на пару сек, это только у меня или нет? сделать бы хоть чтобы он пересчитывал с появлением нового бара, а то у меня нервов не хватит!

лечится добавлением строчки

if(Volume[0]>1) return;

в начало процедуры start()


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

 
o0Demon0o:

Надо в конце цикла добавить

if(k==3 && m==3) break;

Так тормоза исчезают! Даже если с каждым тиком считает!

А для тех, кто не понимает, что такое конец цикла, можно показать между какими строчками вставить (верхнюю и нижнюю) ?

 
OZ0:
o0Demon0o:

Надо в конце цикла добавить

if(k==3 && m==3) break;

Так тормоза исчезают! Даже если с каждым тиком считает!

А для тех, кто не понимает, что такое конец цикла, можно показать между какими строчками вставить (верхнюю и нижнюю) ?

Вот сюда!

   for(i=3; i<iBars(NULL, period)-2; i++)      
   {
      if (iLow(NULL, period,i-2)>iLow(NULL, period,i)&&iLow(NULL, period,i+2)>iLow(NULL, period,i)
      &&iLow(NULL, period,i-1)>=iLow(NULL, period,i)&&iLow(NULL, period,i+1)>iLow(NULL, period,i)&&k<3)
      if (k==1){ tmin1=i;  min1=iLow(NULL, period,i);      k=k+1;}
      else 
      if(i>tmin1+2){ tmin2=i;  min2=iLow(NULL, period,i);k=k+1;}
      
      if (iHigh(NULL, period,i-2)<iHigh(NULL, period,i)&&iHigh(NULL, period,i+2)<iHigh(NULL, period,i)
      &&iHigh(NULL, period,i-1)<=iHigh(NULL, period,i)&&iHigh(NULL, period,i+1)<iHigh(NULL, period,i)&&m<3)
      if (m==1){ tmax1=i;  max1=iHigh(NULL, period,i);      m=m+1;}
      else 
      if(i>tmax1+2){ tmax2=i;  max2=iHigh(NULL, period,i);m=m+1;}
      if(k==3 && m==3) break;
      
    }
 
kwentin:
o0Demon0o:

Индикатор отличный, но только что-то у меня комп силно грузит! С каждым тиком комп подвисает на пару сек, это только у меня или нет? сделать бы хоть чтобы он пересчитывал с появлением нового бара, а то у меня нервов не хватит!

лечится добавлением строчки

if(Volume[0]>1) return;

в начало процедуры start() 


а еще лучше так:

datetime	LastTime;
if(Time[0] == LastTime) return;
   
period=period1;main();
period=period2;main();
period=period3;main();
   
LastTime = Time[0];
 

kwentin писал(а):

а еще лучше так:

datetime	LastTime;
if(Time[0] == LastTime) return;
   
period=period1;main();
period=period2;main();
period=period3;main();
   
LastTime = Time[0];

Насколько я понимаю надо добавить 'static':

static datetime	LastTime;
 

SDem писал(а):

Насколько я понимаю надо добавить 'static':

static datetime	LastTime;

да, вы правы.

 

Как говорил Гриша - "с людями нужно по-мягше, а смотреть - по-ширше". Остановимся на отутсвии широкого взгляда по этому индикатору. Добавляю видение каналов мной и вашим индикатором. Можете доработать до такого?

 

Спасибо

 

Добавьте пожайлуста пунктирную линию-середину канала.

 
Evdor:

Добавьте пожайлуста пунктирную линию-середину канала.

добавил

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