[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 273

 
Dikii:

Поясните, как узнать Бид 10 секунд назад желательно кодом.

Мне этого не надо, потому не интересовался, как это делать. Поищите по поиску, может, что найдёте! Удачи!
 
gince:

Там одно деление. И по функции КИМа (правдо даполненой) пишет, что в получаемом массиве в функцию мало данных. Почему не как не могу понять. Из за этого и получается деление на ноль.
Уже несколько дней сижу на том же месте и немогу найти ошибку
 
gince:
Уже несколько дней сижу на том же месте и немогу найти ошибку


какая строчка конкретно, где деление на 0? и при каком значении индекса
 

 в этой функции ArrayChLR(C, y, max)  выдается ошибка   ---       ArrayChLR (): Недостаточное количество элементов ряда! n=0      ----

void ArrayChLR(double& x[], double& y[], double& max) {
  double a, b, c, sx=0, sx2=0, sxy=0, sy=0;
  int    i, n=ArraySize(x);

  if (n>1) {
    for (i=0; i<n; i++) {
      sx+=i+1;
      sy+=x[i];
      sxy+=(i+1)*x[i];
      sx2+=(i+1)*(i+1);
    }
    a=sx*sy-n*sxy;
    c=sx*sx-n*sx2;
    if (c!=0) a=a/c; else a=0;
    b=(sy-a*sx)/n;
    ArrayResize(y, n);
    max = 0; 
    double dif[];
    ArrayResize(dif, n);
    for (i=0; i<n; i++) 
    {
      y[i]=a*(i+1)+b;
      dif[i] = MathAbs(Close[i] - y[i]);
      if(dif[i] > max) max = dif[i];      
    }
  } else Print("ArrayLR(): едостаточное количество элементов ряда n=", n);
}

 Значит дальше ы массив пустой , а его элементы пустые. 

2013.04.08 16:57:03 2013.03.29 20:45 naktinis fletas EURUSD,M15: zero divide
2013.04.08 16:57:03 2013.03.29 20:45 naktinis fletas EURUSD,M15: ArrayLR(): едостаточное количество элементов ряда ! n=0
 

 

Еще вопросы

какой лутше или правильнее временой филтр?

такой

extern int     startHourFlatMA        =  16;    
extern int     startMinFlatMA        =  00;

int start(){
if(Hour() >= startHourFlatMA && Minute() >= startMinFlatMA)
.
.
.
retorn
}

или

extern string  startstartFlatMA       = "16:00";
extern string  endstartFlatMA       = "00:00";

int start(){
if(TimeCurrent()>= StrToTime(startstartFlatMA) && TimeCurrent()<= StrToTime(endstartFlatMA)+24*60*60)
.
.
.
return
}
 
Подскажите пожалуйста, среди закрытых ордеров OrderSelect() откуда начинает проверку, с конца или с начала? Ну, или с 0 или еще как?..
 
CYBOPOB:
Подскажите пожалуйста, среди закрытых ордеров OrderSelect() откуда начинает проверку, с конца или с начала? Ну, или с 0 или еще как?..

Откуда цикл перебора зададите оттуда и будет. Читайте внимательно описание к данной ф-ии через F1  в редакторе МЕ.
 

Доброго времени суток.

скажите пожалуйста, в mql4 есть возможность чтоб индикатор рисовал н.п. горизонтальную линию на ндругом графике (не на катором он висит)? в 5-ке она есть.

 
Roman.:

Откуда цикл перебора зададите оттуда и будет. Читайте внимательно описание к данной ф-ии через F1  в редакторе МЕ.


Дык если б там было по-человечески написано...Так в любом начинании, сначала вроде бы всё ясно, а чуть позже начинаешь с ума сходить..))

О.К. Конкретный пример:


Ордер закрыт в конце движения по ТР , но т.к. сигнал на SELL не отменялся открывается новый ордер, что недопустимо.

Отмеряю 720 сек , по прошествии которых можно открыть новый ордер. Так вот в данном случае от какого ордера будут отмеряны эти секунды, от первого в истории или от последнего?

И тут же: А если так, то что тогда? Раз я плюсую z, то выходит считать будет с начала? Брррр:))


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

 

?Место ошибки нашел

int start()
 {
   double volMA11, volMA12, volMA21, volMA22;  
   double x[], y[]; 
   
   Print("******************STARTAS*****************************************");
   
   if(!TF_F_NewBar())return(0);
 
   volMA11 = iCustom(NULL, 15, "volumeMA",  2, 1);         
   volMA12 = iCustom(NULL, 15, "volumeMA",  2, 2);
   volMA21 = iCustom(NULL, 15, "volumeMA",  3, 1);
   volMA22 = iCustom(NULL, 15, "volumeMA",  3, 2);
    
   if(DayOfWeek()==1 || DayOfWeek()==2 || DayOfWeek()==3 || DayOfWeek()==4)                             //jei pirmadienis antradienis ar treciadienis, ar ketvirtadienis
   {         
      if(TimeCurrent()>= StrToTime(startstartFlatMA) && TimeCurrent()<= StrToTime(endstartFlatMA)+24*60*60)
      {
         //Print("fleto starto ieskojimo laikas prasidejo  "+TimeToStr(TimeCurrent())+" >= "+TimeToStr(StrToTime(startstartFlatMA))+
               //"  &&  "+TimeToStr(TimeCurrent())+" <= "+TimeToStr(StrToTime(endstartFlatMA)+24*60*60));
         bool laikas = true;
         Print("laikas = "+laikas);         
         if(volMA21 - volMA11 > 0 && volMA12 - volMA22 > 0)
         {                                                                                   //jei buvo susikirtimas
            susikirtimas = true;           
         }
         if(susikirtimas == true) 
         {
            if(zvakes_pabaiga)
            {
               if(iTime(NULL, BarEnd, 1)!= LastTime)
               {            
                  LastTime = iTime(NULL, BarEnd, 1);
                  flat = true;           
                  LastTime = iTime(NULL, BarEnd, 1);
              }
              else return(0);            
           }
           else flat = true;
           if(flat == true)
           {
               i++; 
             //Zinodami indekso eiles numeri galim keisti masyvo ilgi
            
            ArrayResize(avgPriceH,i); 
            ArrayResize(avgPriceL,i);
            ArrayResize(avgPriceO,i); 
            ArrayResize(avgPriceC,i);        
           Print("ArraySize     "+ArraySize(avgPriceC));
            //jei fletas prasidejo renkam duomenis i masyva zvakiu HL ir OC skaiciavimui
            
            avgPriceH[i] = High[1];    
            avgPriceL[i] = Low[1];     
            avgPriceO[i] = Open[1];   
            avgPriceC[i] = Close[1];
         
            j++; 
            
            ArrayResize(chPriceC,j); 
            ArrayResize(chTime,j);    
           } 
         for(int a=0; a<=i; a++)Print("avgPriceC["+a+"]="+avgPriceC[a]);
         
        }        
     }
  }
    
  return(0);
}

В этих стрках печатают нули. ПОЧЕМУ ?

2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[21]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[20]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[19]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[18]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[17]=0.00000000

.

.

.
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[2]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[1]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: avgPriceC[0]=0.00000000
2013.04.08 19:06:05 2013.03.28 20:00 testavimas naktini fleta EURUSD,M15: ArraySize 21
 

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