Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 563

 
Roman Sharanov:

et obtenir des données à partir des indicateurs, du graphique ?

Tout est possible. Mais pour ce faire, vous devez au moins maîtriser les deux langues.

 
Artyom Trishkin:

Tout est possible. Mais pour ce faire, vous devez au moins maîtriser les deux langues.

Je possède

 
Roman Sharanov:

Je possède

Alors vous ne devriez pas avoir de problème pour écrire du code multiplateforme.

 

Situation amusante

Une ligne de code, provoque parfois l'erreur ci-dessous.

Dans quelles conditions cette erreur peut-elle se produire ?


   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:

Situation amusante

Une ligne de code, provoque parfois l'erreur ci-dessous.

Dans quelles conditions cette erreur peut-elle se produire ?


Hors de portée d'un tableau. L'indice passé dans le tableau est soit supérieur à la taille maximale du tableau (si le tableau est 10, alors l'indice maximal d'un tel tableau = 9, car son premier élément a un indice de 0), soit inférieur à zéro. Soit le tableau a une taille de zéro.

 
Artyom Trishkin:

Hors de portée du tableau. L'indice passé dans le tableau est soit supérieur à la taille maximale du tableau (si le tableau a une taille de 10, l'indice maximal d'un tel tableau = 9, car son premier élément a l'indice 0), soit inférieur à zéro. Soit le tableau a une taille de zéro.

Merci, bien sûr, je le sais.

Dans quelles conditions cette erreur peut-elle se produire lors de l'accès au tableauTime[0] ?

Le tableau est donc nul ? Et comment cela peut-il être le cas avec les séries chronologiques ?

 
Sergey Likho:

Situation amusante

Une ligne de code, provoque parfois l'erreur ci-dessous.

Dans quelles conditions cette erreur peut-elle se produire ?

Ancien bug de MT4 (le tableau de temps semble avoir une taille nulle). Il y a environ deux ans, il est apparu constamment sur un de mes clients. Mais il s'est avéré irréel de reproduire ce bug. Le Service Desk reconnaît le problème mais n'est pas en mesure de le résoudre. Depuis lors, je n'utilise jamais l'accès direct aux séries chronologiques, uniquement par le biais de iTime, iOpen, etc.

 
Ihor Herasko:

Ancien bug de MT4 (le tableau de temps semble avoir une taille nulle). Il y a environ deux ans, il est apparu chez un de mes clients. Mais il s'est avéré irréel de reproduire ce bug. Le Service Desk reconnaît le problème mais n'est pas en mesure de le résoudre. Depuis lors, je n'utilise jamais d'accès direct aux séries chronologiques, mais uniquement des wrappers : iTime, iOpen, etc.

Oui, c'est ce que j'ai fini par faire, remplacé par iTime. Merci !

 

Bonjour. Hors limites, comment le réparer ?

 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:

Bonjour. Hors limites, comment le réparer ?

Les valeurs des variables shift et iy dans le code ci-dessus ne sont pas vérifiées pour voir si elles sortent des tableaux Time et santa1. Par conséquent, c'est logique. Vérifiez leurs valeurs avant utilisation, l'erreur disparaîtra.

Et pour être plus précis, vous devez savoir comment les variables CountBars et TimeFrame sont générées.