Советник не для торговли - страница 3

 
Вообщем выход такой. В коменте советника вывел время за последние 30 баров. Ну и соотвественно подставляю это чило при оптимизации советника. Так работает. Всем добра, бобра и успехов!!!!
 
nikelodeon:
Вообщем выход такой. В коменте советника вывел время за последние 30 баров. Ну и соотвественно подставляю это чило при оптимизации советника. Так работает. Всем добра, бобра и успехов!!!!
Вдогонку.
Если есть два параметра, один из которых всегда должен быть больше другого, то чтобы не перебирать неприемлемых вариантов и не ставить дополнительных проверок можно сделать так:

extern int FastPeriod  = 12;       //оптимизируется
extern int DeltaPeriod = 14;       //оптимизируется
int SlowPeriod;                    //не оптимизируется
.....................
SlowPeriod=FastPeriod+DeltaPeriod; //всегда выполняется заданное соотношение между параметрами
 
Ну и в чём прикол??? Если чесно не до понял...... Каким образом при оптимизации первый период всегда будет меньше второго???
 
nikelodeon:
Ну и в чём прикол??? Если чесно не до понял...... Каким образом при оптимизации первый период всегда будет меньше второго???

На пальцах:

Первый оптимизируемый параметр индикатора (FastPeriod), который всегда должен быть меньше второго оптимизируемого параметра индикатора, равен FastPeriod

Второй оптимизируемый параметр индикатора (SlowPeriod), который всегда должен быть больше первого оптимизируемого параметра индикатора, равен FastPeriod+DeltaPeriod

В данном случае - DeltaPeriod - величина, на которую второй параметр будет больше первого параметра

 
ААА ну понятно теперь!!!!
 

Поднимаю тему !!! Вернее вопрос наверное от нуба... Потому как решил использовать процедуры. Я всегда сними плохо дружил, НО чюствую не понимаю совсем маленький момент. Может ктонить объяснить. Как вызывать процедуру????

 void SignalBuy (){
 bool QSignalUP=false;
       for (set=1; set<=20; set++){
            for (up1=1; up1<=20; up1++){
               up=set+up1;
               if (iCustom(NULL, 0, "Индикатор Власти",set,up,12,6,1)!=0) {
                     QSignalUP=true;
                     return(QSignalUP);
                     break; 
               }       
            }
      }
   }

Смысл в следующем. Мне нужно написать функцию, которая будет возвращать либо истина либо лож. Не могу понять как вызвать функцию без передачи параметров. Просто чтоб она прокрутилась и вернула 0 ил 1.....

Вызываю вот так, выдаёт ошибку.

   SignalUPE=SignalBuy();
Выдаёт ошибку функция возвращает нулевой результат......
 
nikelodeon:

Поднимаю тему !!! Вернее вопрос наверное от нуба... Потому как решил использовать процедуры. Я всегда сними плохо дружил, НО чюствую не понимаю совсем маленький момент. Может ктонить объяснить. Как вызывать процедуру????

Смысл в следующем. Мне нужно написать функцию, которая будет возвращать либо истина либо лож. Не могу понять как вызвать функцию без передачи параметров. Просто чтоб она прокрутилась и вернула 0 ил 1.....

Вызываю вот так, выдаёт ошибку.

Выдаёт ошибку функция возвращает нулевой результат......


int start() {
// .............
 bool SignalUPE=SignalBuy();
//........... 
 return(0); 
 }
bool SignalBuy (){
       for (int set=1; set<=20; set++){
            for (int up1=1; up1<=20; up1++){
               int up=set+up1;
               if (iCustom(NULL, 0, "Индикатор Власти",set,up,12,6,1)!=0) return(true);
            }
      }
    return(false);
   }
 
Спасибо!!!!!
Причина обращения: