Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 877

 
evillive:

Тут опять неправильно записан вызов индикатора.

Правильно я уже писал как будет вот здесь. Не надо выдумывать ничего от себя, всё есть в справочнике.

Ещё раз:

Ну, с третьего раза понял. Кажется.

Значит, в МВ_2 ошибка в том, что отсутствует обозначение вызываемой линии, да? Но я пока не нашел, как вызвать среднюю линию Боллингера. Или просто как скользящую среднюю? MODE_SMA ?

 
rapid_minus:

Ну, с третьего раза понял. Кажется.

Значит, в МВ_2 ошибка в том, что отсутствует обозначение вызываемой линии, да? Но я пока не нашел, как вызвать среднюю линию Боллингера. Или просто как скользящую среднюю? MODE_SMA ?

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - на нулевой бар (последняя цифра в скобках - смещение до нужного бара).

Не надо спешить, читайте внимательно справку.

 
evillive:

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0); - на нулевой бар (последняя цифра в скобках - смещение до нужного бара).

Не надо спешить, читайте внимательно справку.

Спасибо!

Только как Это найти в справке, когда не знаешь, как сформулировать вопрос - вот вопрос!

Еще раз спасибо. Пошел ковыряться дальше. 

 
rapid_minus:

Спасибо!

Только как Это найти в справке, когда не знаешь, как сформулировать вопрос - вот вопрос!

Еще раз спасибо. Пошел ковыряться дальше. 

Научиться правильно задавать вопросы - наполовину найти ответ, так как-то ;)
 
mario065:
Вот пример,где показал как замерит сколко бар после пересечения 2х мувок.

попрбовал ваш код подставить

вопрос эф это номер бара? 

закоментил его значение он на часовике рисует разные цифры включая ноль

попробовал через тестер прогнать такая ж ерунда

потом приравнял если значения одной равно другой эф стала рисовать цифры вроде те что нужно

спасибо 

 
sannin:

попрбовал ваш код подставить

вопрос эф это номер бара? 

закоментил его значение он на часовике рисует разные цифры включая ноль

попробовал через тестер прогнать такая ж ерунда

потом приравнял если значения одной равно другой эф стала рисовать цифры вроде те что нужно

спасибо 

Написал как для пример.Да f ето сколко баров после пересечения мувинг.

Вижу,что Вы справилис :)

Ну вот и код:

//+------------------------------------------------------------------+
//|                                                    count bar.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

extern int limit = 300;
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    static datetime time,timeup,timedn;
    double spread=MarketInfo(Symbol(),MODE_SPREAD);
    double maslow1,mafast1,maslow2,mafast2;
    int    shift,shift1,shift2,f,j;
    
    for(shift=limit;shift>0;shift--){
        shift1=shift+1;shift2=shift+2;
        maslow1 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift1);
        mafast1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift1);
        maslow2 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift2);
        mafast2 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift2);
 
     if(mafast2<maslow2 && mafast1>maslow1){
        timeup=Time[shift1];
       } 
     if(mafast2>maslow2 && mafast1<maslow1){
        timedn=Time[shift1];
       } 
     
     if(timeup > timedn){
        time = timeup;
       } else {
        time = timedn;
       }
     }
 
      int b1=iBarShift(Symbol(), 0, time);      
      int b2=iBarShift(Symbol(), 0, TimeCurrent());
//Преброяване на баровете-от нулевия до началната дата
    for(j=b2;j<=b1;j++){
        f=b1-b2;
       }
      
   Comment("\n Време на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS)," Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
           "\n Текущ спред: ",DoubleToStr(spread/10,1),
           "\n=====================",
           "\n Начална дата:           ",TimeToStr(time,TIME_DATE|TIME_SECONDS), 
           "\n Брой барове:            ",f,
           "\n=====================" 
             ); 
   return(0);
  }
//+------------------------------------------------------------------+

 
mario065:

Написал как для пример.Да f ето сколко баров после пересечения мувинг.

Вижу,что Вы справилис :)

Ну вот и код:

спасибо большое 

разбогатею поделюсь

 

 
sannin:

спасибо большое 

разбогатею поделюсь

 

Кофе угостиш и ето хватит,после того,как разбогатеешь ;)
 

SOS! Вот фрагмент включаемого файла глобальных переменных. Остальная часть абсолютно в том же духе.

И что я только ни делал: менял параметры, убирал переменные из файла по отдельности и группами, что бы найти, где ошибка - все едино:

пишет предупреждение "not all control paths return a value". Но ведь вроде все значения извлекаются правильно. В чем же тогда причина? 

//|Включаемый файл "Глобальные переменные"                           |
//+------------------------------------------------------------------+
int Variables()
{
//-----Объявляем Глобальные переменные:------------------------------------------

double High_0, High_1, High_2;             // Значение верхней линии Bollinger на 0, 1 и 2 барах
   double Low_0, Low_1, Low_2;                // Значение нижней линии Bollinger на 0, 1 и 2 барах
   double Delta_0, Delta_1;                   // Разница межу значениями верхней и нижней ...
                                              // ...линий Bollinger на 0 и 1 барах

High_0=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_UPPER,0);
     High_1=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_UPPER,1);
     High_2=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_UPPER,2);
     Low_0=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_LOWER,0);
     Low_1=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_LOWER,1);
     Low_2=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_LOWER,2);
     Delta_0=(High_0-Low_0);
     Delta_1=(High_1-Low_1);
}
//------------------------------------------------------------------------------------------
Ну прям крыша едет: вроде все просто, а не получается.
 
rapid_minus:

SOS! Вот фрагмент включаемого файла глобальных переменных. Остальная часть абсолютно в том же духе.

И что я только ни делал: менял параметры, убирал переменные из файла по отдельности и группами, что бы найти, где ошибка - все едино:

пишет предупреждение "not all control paths return a value". Но ведь вроде все значения извлекаются правильно. В чем же тогда причина? 

Ну прям крыша едет: вроде все просто, а не получается.

 

А попользоваться переводчиком не позволяет религия?

Функция int обязательно должна возвращать значение.

Хотя вопросов ещё не мало к этой функции.