Erreurs, bugs, questions - page 1768

 
pavlick_:
Il ne s'agit pas de MQL, bien sûr, cela peut être différent, mais l'affirmation "un compilateur normal fera tout pour moi" est erronée.
Eh bien, puisqu'il n'y a pas de tels opérateurs dans MQL, il est logique de ne pas avoir de fonctionnalités qui leur soient associées. Je ne vais pas débattre des compilateurs, car je ne suis pas du tout un programmeur. Je connais seulement un peu le MQL.
 

Fatigué de perdre du temps et de l'argent : l'optimiseur s'accroche à la dernière passe. Les agents ne font rien, tout est au stade de l'autorisation. Il y a un silence dans le journal. Il est inutile d'activer/désactiver les agents, tout repart à zéro après le redémarrage de l'optimisation.

Qui a été confronté à ce problème ? Comment la combattre ?

Dossiers :
opt1.png  44 kb
opt2.png  96 kb
opt3.png  88 kb
 

Ligne magique

Séquence des opérations dans MetaEditor\1495 à une résolution d'écran de 1024x768 :

  • Ouvrez le fichier joint
  • Déplacez le curseur de défilement horizontal vers la droite (comme dans l'image).
  • Dans la 3ème ligne, cliquez sur /*12345*/.
Autres paramètres : Service/Paramètres/Général/Tabulation 4 caractères
Dossiers :
Test.mq5  2 kb
 

Lors de la tentative de conversion d'une chaîne en un nombre à l'aide de StringToInteger(), si la chaîne ne contient pas de nombre, elle renvoie 0 sans erreur (GetLastError() = 0). Si les paramètres d'entrée contiennent une chaîne de caractères et que l'utilisateur a spécifié les valeurs de manière incorrecte - la fonction renverra une valeur incorrecte et aucune erreur. C'est mauvais.

De plus, si la chaîne contient une représentation numérique incorrecte, par exemple 5o (au lieu de 50), la fonction renverra la valeur 5 sans générer d'erreur. Non seulement ce n'est pas 0, mais la fonction casse la chaîne comme 5, ce qui est encore une fois incorrect.

S'il vous plaît, chers développeurs, améliorez la fonction en ajoutant des codes d'erreur ou, si elle ne peut pas analyser la chaîne, renvoyez la valeur LONG_MAX + l'erreur afin que nous puissions déterminer ce qui ne va pas. Vous ne pouvez pas le faire maintenant.

Vérification du code du script :

#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
input string value="05";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   const long iValue=StringToInteger(value);
   Print("iValue = ",iValue,", lastError = ",GetLastError());
  }
//+------------------------------------------------------------------+
 

Mettez en œuvre votre propre version de la fonction - cela ne devrait pas prendre plus de 10 minutes.

Nous ne modifierons pas le comportement des fonctions du système.

 
Renat Fatkhullin:

Mettez en œuvre votre propre version de la fonction - cela ne devrait pas prendre plus de 10 minutes.

Nous ne modifierons pas le comportement des fonctions du système.

Vous ne pensez donc pas qu'il soit nécessaire d'affiner les fonctions, surtout celles qui peuvent manifestement mentir ?

Même si nous ne faisions qu'ajouter des codes d'erreur, ce serait correct, mais vous nous suggérez maintenant de réinventer la roue. Pas un compliqué, bien sûr, mais un vélo.

 
Alexey Kozitsyn:

Vous ne pensez donc pas qu'il soit nécessaire d'affiner les fonctions, surtout celles qui peuvent manifestement mentir ?

Même si vous ne faisiez qu'ajouter des codes d'erreur, ce serait bien, mais là, vous proposez de réinventer la roue. Pas un compliqué, bien sûr, mais un vélo.

Pas besoin d'affiner, ce sont des analogues complets de wtoi/atoi. La question est close.
 

Erreur de compilation

#include <Math\Stat\Math.mqh>
struct S {};
 
Bonjour, pourriez-vous me dire s'il est possible de définir un "séparateur de période" dans Metatrader ? Je veux juste pouvoir voir où se terminent les bougies de 15, 30 et heures sur m5, pour ne pas avoir à toujours regarder l'heure, comment puis-je faire ?
 
Slat:
Bonjour, pourriez-vous me dire s'il est possible de régler le "séparateur de période" dans MetaTrader ? Je veux juste pouvoir voir sur m5 où se terminent les bougies de 15, 30 et une heure, pour ne pas avoir à toujours regarder l'heure, comment puis-je faire ?

oui, on peut le voir

fabriquer un indicateur qui trace des lignes verticales au bon moment