Erreurs, bugs, questions - page 1933

 
Stanislav Korotky:

Mon MT4 sort true, true et différence 0. ;-)

Une manière non documentée de distinguer les MT4/5 s'est formée. Et le débit binaire de MT5 n'a rien à voir avec cela.

 
fxsaber:

Une manière non documentée de distinguer les MT4/5 s'est formée. Et le bitness de MT5 n'a rien à voir avec cela.

En outre, dans mql4 fonctionne et dans mql5 pas même le préfixe d' opération documenté incrément(++i) et décrément (--k).

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Sauf que dans mql4 cela fonctionne, alors que dans mql5 pas même le préfixe d' opération documenté incrémente(++i) et décrémente (--k)

Je n'ai pas vu de problème

void OnStart()
{
  int i = 0;
  
  Print(i++ == 0); // true
  Print(++i == 2); // true
}
 
fxsaber:

Une manière non documentée de distinguer les MT4/5 s'est formée. Et le bitness de MT5 n'a rien à voir avec cela.

Ce n'est même pas la différence entre MT4 et MT5, c'est le fait que #property strict soit activé ou non.

S'il est activé, ils seront différents, sinon, ils ne le seront pas.

Il existe différentes implémentations de NormalizeDouble!
 

Dans quels cas peut-on passer reason=0 à OnDeinit dans les indicateurs ?

 
fxsaber:
La différence est supérieure à 1e-15. De plus, Num != Norm. Ce sont des chiffres différents, pas les mêmes.

Et le degré zéro ? Les degrés de 0 à -14 représentent un total de 15 chiffres. Un degré de -15 est le 16e degré. Je pense que oui.

 
Stanislav Korotky:

Et le degré zéro ? Les degrés de 0 à -14 représentent un total de 15 chiffres. Un degré de -15 est le 16e degré. Je pense que oui.

Voir combien de chiffres leDBL_MIN diffère de zéro.

 

La version Release du script est presque 3 fois plus lente que la version Debug.

string  PositionGetString2( const ENUM_POSITION_PROPERTY_STRING  Property_id )
{
  return(PositionGetString(Property_id));
}

#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  if (PositionSelect(_Symbol))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = 0; i < 1 e7; i++)
    {
      PositionGetString2(POSITION_SYMBOL);
      PositionGetString2(POSITION_COMMENT);
    }
    
    Print(TOSTRING(GetMicrosecondCount() - StartTime));
  }
}

Étapes du jeu

  1. Sélectionnez EURUSD pour le débogage et ouvrez son graphique dans le terminal.
  2. Ouvrez une position sur l'EURUSD.
  3. Lancez la version de débogage dans ME en appuyant sur F5 et voyez le résultat dans le journal.
  4. Recompilez vers ME en utilisant F7 - c'est très important, sinon EX5 sera débogué.
  5. Exécutez le script Release depuis le terminal et visualisez les résultats enregistrés.
Résultat de la version de débogage

GetMicrosecondCount()-StartTime = 638537


Résultat de la version de lancement

GetMicrosecondCount()-StartTime = 1746492
 

Lors de l'importation de ticks dans un symbole tkc personnalisé, les fichiers tkc ne sont pas lisibles.

 
fxsaber:

Lors de l'importation de ticks dans un symbole tkc personnalisé, les fichiers tkc ne sont pas lisibles.

Pas encore. Pas encore mis en œuvre.
Raison: