Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2031

 
Tretyakov Rostyslav #:
Нажми на графике обновить

Теперь появилось)
А если обращаться через iCustom(), как тогда "Обновить" ?

Indicator1.mq4
  сразу выводит, как только накинешь на график, без обновления

 
Mikhail Tkachev #:

Теперь появилось)
А если обращаться через iCustom(), как тогда "Обновить" ?

При поступлении котировок - обновлять не надо.

Я не пойму зачем тебе использовать цикл с которым есть сложности?!

 
Tretyakov Rostyslav #:

При поступлении котировок - обновлять не надо.

Я не пойму зачем тебе использовать цикл с которым есть сложности?!

Потому что в штатных индикаторах они используются)
Зачем лепить что-то другое, если есть проверенное штатное?

 
Mikhail Tkachev #:

Потому что в штатных индикаторах они используются)
Зачем лепить что-то другое, если есть проверенное штатное?

Штатное не всегда лучшее.

И надо понимать подходит это штатное к твоим не штатным требованиям.

 
Tretyakov Rostyslav #:

Штатное не всегда лучшее.

И надо понимать подходит это штатное к твоим не штатным требованиям.

А у меня требования обычные, только ArrayCopy() делает не то, что нужно)
Либо про нее неправильно написано в справке...
Ростислав, большое спасибо за помощь)

 

Доброго времени суток) Вопрос про индикаторы, имеется индикатор который ставит стрелки вверх или вниз, т.е. подает сигнал на покупку или продажу. Работает, все хорошо, но я никак не пойму как сделать так чтобы условие проверялось на закрытой свече, а стрелка рисовалась уже на новой открытой? Как только появляется новая свеча, он мне рисует стрелку на уже закрытой, а мне нужно чтобы сигнал он поймал на закрытой и рисовал стрелку на открытой, которая только открылась. 

Что я упускаю? Помогите пожалуйста, вот код OnCalculate:

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int start;
   if(prev_calculated==0){
      start=3;
   }
   else{
      start=prev_calculated-1;
   }
   
   if(
     CopyBuffer(ind,0,0,rates_total-start,IND)==-1
      
   ){
      return(0);
   }   


   for(int i=start;i<rates_total-1;i++){
   
      buy[i]=0;
      sell[i]=0;
      

   if(IND[i-1]<=DnWPR && IND[i-2]>DnWPR) )
   {

      buy[i]=low[i]; 
      Print(low[i]);
   }
   
   if(IND[i-1]>=UpWPR && IND[i-2]<UpWPR)
   {
   
 
    sell[i]=high[i]; 
     Print(high[i]);
     
   }
      
   }

   return(rates_total);
  }
 
Fearnt #:

Доброго времени суток) Вопрос про индикаторы, имеется индикатор который ставит стрелки вверх или вниз, т.е. подает сигнал на покупку или продажу. Работает, все хорошо, но я никак не пойму как сделать так чтобы условие проверялось на закрытой свече, а стрелка рисовалась уже на новой открытой? Как только появляется новая свеча, он мне рисует стрелку на уже закрытой, а мне нужно чтобы сигнал он поймал на закрытой и рисовал стрелку на открытой, которая только открылась. 

Что я упускаю? Помогите пожалуйста, вот код OnCalculate:

Выложи весь код или файл
 
Tretyakov Rostyslav #:
Выложи весь код или файл
Прикрепил.
 
Fearnt #:
Прикрепил.

Правильно рисует.

Принтанул показания

      Print(low[i],"/",WPR[i]-DnWPR,"/",WPR[i-1]-DnWPR,"/",WPR[i-2]-DnWPR);
все как надо
 
Tretyakov Rostyslav #:

Правильно рисует.

Принтанул показания

все как надо

Вопрос не актуален, разобрался) 

Спасибо.