Скачать MetaTrader 5

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

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

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

На пальцах:

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

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

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

Mihail Marchukajtes
4267
Mihail Marchukajtes  
ААА ну понятно теперь!!!!
Mihail Marchukajtes
4267
Mihail Marchukajtes  

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

 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();
Выдаёт ошибку функция возвращает нулевой результат......
Mikhail Kozhemyako
1267
Mikhail Kozhemyako  
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);
   }
Mihail Marchukajtes
4267
Mihail Marchukajtes  
Спасибо!!!!!
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий