[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 273

 
Dikii:

Spiega come scoprire il Bid di 10 secondi fa, preferibilmente in codice.

Non ne ho bisogno, quindi non mi interessa come farlo. Cerca, forse troverai qualcosa! Buona fortuna!
 
gince:

C'è una divisione. E la funzione CMM (anche se è piena) dice che non ci sono abbastanza dati nell'array risultante nella funzione. Non riesco a capire perché. Ecco perché ottengo la divisione per zero.
Sono seduto nello stesso posto da giorni e non riesco a trovare l'errore
 
gince:
Sono seduto nello stesso posto da giorni e non riesco a trovare l'errore


quale linea esattamente, dove si trova la divisione per 0? e a quale valore dell'indice
 

questa funzione ArrayChLR(C, y, max) dà un errore ---ArrayChLR(): Non ci sono abbastanza elementi di fila! 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);
}

Quindi l'array s è vuoto e i suoi elementi sono vuoti.

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():not enough elements in the array! n=0

 

Altre domande

qual è il migliore o corretto filtro orario?

come questo

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

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

o

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

int start(){
if(TimeCurrent()>= StrToTime(startstartFlatMA) && TimeCurrent()<= StrToTime(endstartFlatMA)+24*60*60)
.
.
.
return
}
 
Potete dirmi per favore se tra gli ordini chiusi OrderSelect() inizia a controllare da dove, dalla fine o dall'inizio? Beh, o da 0 o quello che è...?
 
CYBOPOB:
Potete dirmi per favore se tra gli ordini chiusi OrderSelect() inizia a controllare da dove, dalla fine o dall'inizio? Beh, o da 0 o quello che è...?

Se si imposta il ciclo, è da lì che parte. Leggete attentamente la descrizione di questa funzione in F1 nell'editor ME.
 

Buona giornata.

Potreste dirmi se mql4 permette all'indicatore di disegnare una linea orizzontale sull'altro grafico (non su quello su cui è in hovering)?

 
Roman.:

Se si imposta il ciclo, è da lì che verrà. Leggete attentamente la descrizione di questo f-fi attraverso F1 nell'editor MU.


Beh, se fosse scritto in linguaggio umano... Così in ogni impresa, prima sembra che tutto sia chiaro, ma un po' più tardi si comincia a impazzire...))

O.K. Un esempio concreto:


L'ordine viene chiuso alla fine del movimento TP, ma poiché il segnale SELL non è stato cancellato, viene aperto un nuovo ordine, il che è inaccettabile.

Misuro 720 sec, dopo di che possiamo aprire un nuovo ordine. Quindi, in questo caso, da quale ordine saranno misurati questi secondi, dal primo ordine della storia o dall'ultimo?

E poi: e se è così, che cosa? Dal momento che io più z, viene a contare dall'inizio? Brrrr:))


Grazie mille!

 

Ho trovato il punto di errore.

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);
}

Queste pagine stampano degli zeri. PERCHE'?

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