Erreurs, bugs, questions - page 750

 
Sur les indicateurs graphiques en temps réel multi-trames, le testeur devient bien sûr fou... Tout est de plus en plus serré.
 
x100intraday:
Sur les indicateurs graphiques en temps réel multi-trames, le testeur devient bien sûr fou... Tout est effilé.
Je peux vous donner un exemple ? Je me demande à quoi cela ressemble, car rien n'est clair dans l'explication.
 
tol64:
Je peux vous donner un exemple ? Je me demande à quoi cela ressemble, car d'après l'explication, rien n'est clair.

Bien sûr que vous pouvez. Dès que je l'aurai terminé, je le mettrai à disposition gratuitement... mais en attendant...

Le problème est que, selon mes soupçons, le testeur n'a jamais pensé à fonctionner parfaitement sur toutes les échéances prédéfinies, il ne suit de manière adéquate que l'échéance sélectionnée pour le test. Mais ce n'est qu'un sentiment, je n'ai aucune idée de comment cela fonctionne dans la réalité.

D'ailleurs, je vais devoir passer beaucoup de temps à le corriger sans une exécution correcte dans le testeur car je vais devoir tout tester en temps réel sans aucune accélération.

 

Aux développeurs

Je ne comprends pas la logique de ChartIndicatorDelete. Quelle est l'astuce pour travailler avec des noms courts ?

Ajouter par poignée et supprimer par nom court, est-ce logique ?

Je suppose que je devrais soit changer le paramètre de nom à poignée, soit ajouter une duplication de la fonction avec poignée.

 

Aux développeurs de

Quelqu'un peut-il expliquer pourquoi ce code fonctionne dans le terminal sans erreurs, mais dans le testeur avec des erreurs ?

  if((FirstStart)&&(Handle_JRSX==INVALID_HANDLE))
  {
  Handle_JRSX = iCustom(NULL,PERIOD_D1,"3c_JRSX_H",20,240);
  
    if(Handle_JRSX==INVALID_HANDLE)ChartIndicatorAdd(0,1,Handle_JRSX);
  
  }

Dans le testeur,ChartIndicatorAdd renvoie false et l'erreur 4014 est affichée.

En même temps,le mode visuel dans le testeur montre que l'indicateur est sur le graphique et est rendu normalement.

 
victorg:

Aidez-moi à comprendre !

Au cours de mes calculs, j'obtiens des chiffres dont la signification n'est pas claire pour moi.

J'attribue un tel nombre à la variable a et je l'imprime :

Résultat :

Mais selon la documentation, le type double ne peut pas avoir de pouvoirs inférieurs à -308. Qui sait de quel genre de chiffres il s'agit?

C'est une forêt sombre...

J'essaie d'alimenter

     double x,z;
     int y;
     x=-7.56414503782948460000;
     y=MathPow(
     10,         // основание 
     321      // показатель степени
     );
     z=x*y;
     Print("z = ",z);

Je reçois

2012.06.11 09:55:30     dbl (EURUSD,M4) z = 16243877779.83916

mais

     double a=-7.56414503782948460000 e-321;
     int b=a;
     Print("b = ",b);

semble juste, déborde et

2012.06.11 09:55:30     dbl (EURUSD,M4) b = 0

rejoignant la question.

 

Existe-t-il une fonctionnalité permettant de définir/modifier la hauteur du graphique?

Si une telle fonctionnalité n'existe pas, j'aimerais l'obtenir.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
Silent:

Forêt noire...

D'après ce que j'ai compris de la norme IEEE 754, la plus petite valeur de nombre positif pour le double est environ 2.3-10-308. Mais cette valeur correspond aux nombres normalisés, c'est-à-dire les nombres qui ont une mantisse au moins égale à un. Cependant, il existe aussi des nombres non normalisés, des nombres dont la valeur de la mantisse est inférieure à un. Pour ces nombres, le plus petit nombre positif pour le double est approximativement 5,0-10-324. La prise en charge de nombres non normalisés soulève toujours beaucoup de questions. Il semble que MQL5 supporte les opérations avec des nombresnon normalisés, bien que le manuel ne dise rien à ce sujet. La question se pose donc de savoir comment la fonction MathIsValidNumber() doit réagir à de tels nombres.

Nous pouvons nous assurer que MQL5 ne considère pas les nombres non normalisés comme égaux à zéro.

double a=-7.56414503782948460000 e-321;
PrintFormat("a = %.18e",a);
if(a==0.0)Print("a == 0.0");
else Print("a != 0.0");

obtenir

  a != 0.0
  a = -7.564145037829484600 e-321
Pour ce qui est devotre exemple

     double a=-7.56414503782948460000 e-321;
     int b=a;
     Print("b = ",b);

Le nombre a est beaucoup plus petit que un en valeur absolue, de sorte que le nombre entier b est également égal à zéro. C'est probablement correct.

 
Interesting:

Aux développeurs

Je ne comprends pas la logique de ChartIndicatorDelete. Quelle est l'astuce pour travailler avec des noms courts ?

Ajouter par poignée et supprimer par nom court, est-ce logique ?

Je suppose que je devrais soit changer le paramètre de nom à poignée, soit ajouter une duplication de la fonction avec poignée.

Toutes les fonctionnalités nécessaires sont déjà présentes, voir l'exemple pour IndicatorParameters().
 
Interesting:

Existe-t-il une fonctionnalité permettant de définir/modifier la hauteur du graphique?

Si une telle fonctionnalité n'existe pas, j'aimerais l'obtenir.

Voir EA_OBJPROP_CHART_ID