Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 563

 
Roman Sharanov:

e ottenere dati dagli indicatori, il grafico?

Tutto è possibile. Ma per farlo, è necessario essere abili in entrambe le lingue almeno.

 
Artyom Trishkin:

Tutto è possibile. Ma per farlo, è necessario essere abili in entrambe le lingue almeno.

Possiedo

 
Roman Sharanov:

Possiedo

Allora non dovresti avere problemi a scrivere codice multipiattaforma.

 

Situazione divertente

Una linea di codice, a volte causa l'errore qui sotto.

In quali condizioni potrebbe verificarsi questo errore?


   ChartTimePriceToXY(0,0,Time[0],price,x1,y_cord);


2018.06.08 13:41:39.021    program name XAUUSDcheck,H1: array out of range in 'DrawInterfaceLib.mqh' (47,31)


 
Sergey Likho:

Situazione divertente

Una linea di codice, a volte causa l'errore qui sotto.

In quali condizioni potrebbe verificarsi questo errore?


Fuori dalla portata di un array. L'indice passato nella matrice è maggiore della dimensione massima della matrice (se la matrice è 10, allora l'indice massimo di una tale matrice = 9, perché il suo primo elemento ha un indice di 0), o meno di zero. O l'array ha una dimensione pari a zero.

 
Artyom Trishkin:

Fuori dalla portata dell'array. L'indice passato nella matrice è o maggiore della dimensione massima della matrice (se la matrice ha dimensione 10, l'indice massimo di una tale matrice = 9, perché il suo primo elemento ha indice 0), o minore di zero. O l'array ha una dimensione pari a zero.

Grazie, naturalmente, lo so.

In quali condizioni potrebbe verificarsi questo errore quando si accede all'arrayTime[0]?

Quindi l'array è zero? E come può essere questo il caso delle serie temporali?

 
Sergey Likho:

Situazione divertente

Una linea di codice, a volte causa l'errore qui sotto.

In quali condizioni potrebbe verificarsi questo errore?

Vecchio bug di MT4 (l'array del tempo sembra avere dimensione zero). Circa due anni fa, è apparso costantemente su uno dei miei clienti. Ma sembrava irreale riprodurre questo bug. Service Desk riconosce il problema ma non è in grado di risolverlo. Da allora non uso mai l'accesso diretto alle serie temporali, solo attraverso iTime, iOpen, ecc.

 
Ihor Herasko:

Vecchio bug di MT4 (l'array del tempo sembra avere una dimensione zero). Circa due anni fa, continuava a spuntare su uno dei miei clienti. Ma si è rivelato irreale riprodurre questo bug. Service Desk riconosce il problema ma non è in grado di risolverlo. Da allora non uso mai l'accesso diretto alle serie temporali, solo attraverso i wrapper: iTime, iOpen ecc.

Sì, è quello che ho finito per fare, sostituito con iTime. Grazie!

 

Salve. Fuori dai limiti, come risolvere il problema?

 if(TimeFrame>Period()) 
     {
      ArrayCopySeries(santa1,5,Symbol(),TimeFrame);
      summ=CountBars+TimeFrame/Period();
      shift=0;
      for(int iy=0; shift<summ; shift++) 
        {
         if(Time[shift]<santa1[iy]) iy++;//вот эта строка "array out of range" 
         list[shift]=bufbuy[iy];
        }
     }
 
PolarSeaman:

Salve. Fuori dai limiti, come risolvere il problema?

I valori delle variabili shift e iy nel codice precedente non sono controllati per vedere se vanno fuori dagli array Time e santa1. Pertanto, ha senso. Controllate i loro valori prima dell'uso, l'errore scomparirà.

E per essere più specifici, dovete sapere come vengono generate le variabili CountBars e TimeFrame.

Motivazione: