Erreurs, bugs, questions - page 1769

 

Erreur dans <Math\Stat\Math.mqh>

double QNaN   =Nan(0x7FF7000000000000);   // QNaN
Ce n'est pas QNaN.
 
A100:

Erreur dans <Math\Stat\Math.mqh>

double QNaN   =Nan(0x7FF7000000000000);   // QNaN
Ce n'est pas QNaN.
Quelle longueur correspond alors à QNaN ?
 
fxsaber:
Quelle longueur correspond alors à QNaN ?
0x7FF80000000000000000
 
A100:
0x7FF80000000000000000.

Merci, plus de détails ici

En plus de l'infini négatif, il y a l'infini positif et le NaN (not a number). Pour déterminer si un nombre donné est invalide, vous pouvez utiliser la fonctionMathIsValidNumber(). Selon la norme IEEE, ils ont une représentation machine spéciale. Par exemple, plus l'infini pour le type double a une représentation binaire de 0x7FF0 0000 0000 0000 0000.

Exemples :

struct str1
  {
   double d;
  };
struct str2
  {
   long l;
  };

//--- начнем
   str1 s1;
   str2 s2;
//---
   s1.d=MathArcsin(2.0);        // получим недействительное число -1.#IND
   s2=s1;
   printf("1.  %f %I64X",s1.d,s2.l);
//---
   s2.l=0xFFFF000000000000;     // недействительное число -1.#QNAN
   s1=s2;
   printf("2.  %f %I64X",s1.d,s2.l);
//---
   s2.l=0x7FF7000000000000;     // наиобльшее нечисло SNaN
   s1=s2;
   printf("3.   %f %I64X",s1.d,s2.l);
//---
   s2.l=0x7FF8000000000000;     // наименьшее нечисло QNaN
   s1=s2;
   printf("4.   %f %I64X",s1.d,s2.l);
//---
   s2.l=0x7FFF000000000000;     // наибольшее нечисло QNaN
   s1=s2;
   printf("5.   %f %I64X",s1.d,s2.l);
//---
   s2.l=0x7FF0000000000000;     // плюс бесконечность 1.#INF и наименьшее нечисло SNaN
   s1=s2;
   printf("6.   %f %I64X",s1.d,s2.l);
//---
   s2.l=0xFFF0000000000000;     // минус бесконечность -1.#INF
   s1=s2;
   printf("7.  %f %I64X",s1.d,s2.l);
//---
   s2.l=0x8000000000000000;     // отрицательный ноль -0.0
   s1=s2;
   printf("8.  %f %I64X",s1.d,s2.l);
//---
   s2.l=0x3FE0000000000000;     // 0.5
   s1=s2;
   printf("9.   %f %I64X",s1.d,s2.l);
//---
   s2.l=0x3FF0000000000000;     // 1.0
   s1=s2;
   printf("10.  %f %I64X",s1.d,s2.l);
//---
   s2.l=0x7FEFFFFFFFFFFFFF;     // наибольшее нормализованное число (MAX_DBL)
   s1=s2;
   printf("11.  %.16e %I64X",s1.d,s2.l);
//---
   s2.l=0x0010000000000000;     // наименьшее положительное нормализованное (MIN_DBL)
   s1=s2;
   printf("12.  %.16e %.16I64X",s1.d,s2.l);
//---
   s1.d=0.7;                    // покажем, что число 0.7 – бесконечная дробь
   s2=s1;
   printf("13.  %.16e %.16I64X",s1.d,s2.l);
/*
1.  -1.#IND00 FFF8000000000000
2.  -1.#QNAN0 FFFF000000000000
3.   1.#SNAN0 7FF7000000000000
4.   1.#QNAN0 7FF8000000000000
5.   1.#QNAN0 7FFF000000000000
6.   1.#INF00 7FF0000000000000
7.  -1.#INF00 FFF0000000000000
8.  -0.000000 8000000000000000
9.   0.500000 3FE0000000000000
10.  1.000000 3FF0000000000000
11.  1.7976931348623157e+308 7FEFFFFFFFFFFFFF
12.  2.2250738585072014e-308 0010000000000000
13.  6.9999999999999996e-001 3FE6666666666666
*/
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

comme ça, il y a quelque chose de similaire...

 
Ouvrez l'affichage de la signature numérique. Si c'est le nôtre, c'est une fausse alerte.
 
Bonjour Messieurs ! !!
Aide ... J'installe un conseiller expert fraîchement écrit sur l'optimisation et qu'en pensez-vous, ce rampant me donne un nouveau résultat chaque jour. C'est-à-dire que chaque jour, je perdrai tout ce que j'ai fait aujourd'hui avec les paramètres précédents, avec lesquels je pouvais gagner hier..... Je ne touche pas aux paramètres !!!! Comment est-ce possible, et surtout que faire ?
J'attends une réponse, des commentaires et de l'aide !!!!.
Merci d'avance !
 
alexof111:
Bonjour Messieurs ! !!
Aidez-moi... Je commence à optimiser mon conseiller expert nouvellement créé et il me donne de nouveaux résultats chaque jour. C'est-à-dire que chaque jour, je perdrai tout ce que j'ai fait aujourd'hui avec les paramètres précédents, avec lesquels je pouvais gagner hier..... Je ne touche pas aux paramètres !!!! Comment est-ce possible, et surtout que faire ?
J'attends une réponse, des commentaires et de l'aide !!!!.
Merci d'avance !

C'est par là,https://www.mql5.com/ru/articles/1417.

et lire la suite ici, il y en a plus qu'il n'en faut.

Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри
Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри
  • 2006.08.13
  • Slawa
  • www.mql5.com
Что происходит после нажатия на кнопку "Старт"? В статье дан ответ на этот и многие другие вопросы.
 

Corrigez "étape" avec une majuscule et je voudrais aussi soit centrer, soit tout à droite, soit tout à gauche, sinon cela donne un résultat différent.

 
int start()
{
    int start=GetTickCount();
    datetime tStart = TimeLocal();
    Print(">>>>>>>>>>>>>>>>>>START<<<<<<<<<<<<<<<<<<" );
         Sleep(5000);
         Print("Время работы ", GetTickCount()-start, " миллисекунд.");
         Print(">>>>>>>>>>>>>>>>>>FINISH<<<<<<<<<<<<<<<<<<");
         Print(TimeLocal() - tStart);

  return(0);
}
le glissement est intéressant 5003 millisecondes (à 1500 il montre 1497)