Erreurs, bugs, questions - page 1325

 

Chers développeurs !

Je suis tellement stupide :) À quoi se lie le contrôle du formulaire CAppDialog? À l'élément subordonné Client Area ou à l'élément subordonné Underlay ?

 

Chers développeurs !

Posté une demande à servicedesk -Démarré : 2015.07.10 15:48,#1257674

Ne le laissez pas passer s'il vous plaît....

 

Terminal MetaTrader 5 x64 build 1159 (MetaQuotes Software Corp.)

Après avoir attaché un script à partir de la fenêtre "Navigator", ce script reste actif. Un tel comportement n'est pas sûr car ce script peut être supprimé par inadvertance. Par exemple :

Un script est attaché à un graphique, le script dessine quelques lignes et ces lignes restent actives (en surbrillance). Maintenant, si je veux supprimer ces lignes d'un seul coup (via la touche "delete"), j'obtiens un avertissement sur la suppression possible du script au lieu de supprimer les lignes :

Supprimer le script ?

L'avertissement est bon, mais le bouton "Oui" est actif par défaut dans la boîte de dialogue! Et c'est ainsi que vous pouvez cliquer sur le bouton et supprimer le script ! Après tout, au départ, je veux supprimer les lignes et je clique sur "supprimer" en espérant supprimer les lignes, mais je peux finir par supprimer le script !

 
Alexander Laur:

Ce bug est déjà ennuyeux :

Lors du chargement du terminal, il donne zéro donnée et une erreur critique de division par zéro.

Aucune vérification de la récupération des données, aide !!!

Vous avez oublié de vérifier le zéro, vous ne vérifiez que l'appel de fonction.
 
N'essayez pas de modifier les principes de programmation par des cas particuliers. C'est le résultat de bonnes intentions.

La fonction de capture de données a fourni ces données et vous devez maintenant les interpréter. Tous les zéros ne sont pas des erreurs. Il est particulièrement dangereux de déduire une erreur des caractéristiques des instruments financiers, car souvent la moitié de leurs champs sont vides ou n'ont pas de sens dans un mode particulier.
 
Vous ne comprenez pas, mais nous, si.

Relisez ma réponse ci-dessus - elle est absolument exacte et explique le comportement.
 

Bon après-midi,

J'ai laissé un ticket sur le problème des copyticks :

https://www.mql5.com/ru/forum/38520/page3

dès le 03 juillet, personne ne répond.

 
Alexander Laur:

En d'autres termes, une fois que la fonction d'extraction des données a été traitée, je dois vérifier quelles données j'ai extraites. OK, je vais corriger le code :

Mais lors de la première exécution, si cela se produit le week-end, c'est-à-dire qu'il n'y a pas de ticks, l'indicateur n'affiche pas l'information. Il attend le prochain tic-tac. D'après les entrées du journal, nous voyons que tickValue = 0, donc nous quittons sur erreur et attendons .......

Merde !

Vous n'obtenez zéro que la première fois que vous exécutez le terminal. Qu'est-ce qui l'empêche de vérifier la présence d'un zéro et d'activer le drapeau pour désactiver le fonctionnement ? Et la prochaine fois que l'on entre dans OnCalculate(), toutes les fonctions renvoient déjà un résultat différent de zéro (il est facile de vérifier la sortie - il suffit de faire un clic droit sur le graphique et de sélectionner "Rafraîchir").
 
Alexander Laur:

En d'autres termes, une fois que la fonction d'extraction des données a été traitée, je dois vérifier quelles données j'ai extraites. OK, je vais corriger le code :

Mais lors de la première exécution, si cela se produit le week-end, c'est-à-dire qu'il n'y a pas de ticks, l'indicateur n'affiche pas l'information. Il attend le prochain tic-tac. D'après les entrées du journal, nous voyons que tickValue = 0, donc nous quittons sur erreur et attendons .......

Merde !

Alors, qu'est-ce qui est si difficile à vérifier pour la division par zéro? S'il y a une telle fonction de retour, il est plus facile d'ajouter une ligne de plus dans le code ou de demander sur le forum de refaire le terminal et de ne pas tenir compte du fait que dans le futur, cela ne se répétera pas ?
 
Alexander Laur:

Karputov Vladimir et Vladimir Zubov lisez vous au moins ce que vous commentez ? Ou l'essentiel pour vous est d'exprimer votre respect. Si vous n'avez pas compris le problème en question, restez à l'écart, peut-être apprendrez-vous quelque chose d'utile pour vous-même.

Ma conversation avec Renat sur le TRAVAIL INCORRECT DES FONCTIONS ! !!

Pourquoi la fonction DROIT (return(true)) renvoie-t-elle ZERO ?

Comment la valeur d'une coche peut-elle être égale à zéro ? Où est-ce que SymbolInfoDouble() prend les données sur la valeur du tick, s'il retourne une valeur nulle du tick ?

Vous devriez au moins comprendre ce que vous commentez.

Vous n'avez probablement pas tout à fait raison sur la façon dont les fonctions fonctionnent. La fonction :

  1. Renvoie le résultat de son exécution correcte. En prenant l'exemple d'une épicerie. La tâche de la fonction est d'aller chercher ce qui se trouve dans la boîte 5. Si la fonction s'est rendue à l'entrepôt, a trouvé la boîte n° 5 et a secoué ce qui s'y trouve dans son sac, alors la fonction renverra "Tâche terminée avec succès".
  2. La fonction ne se soucie pas vraiment de ce qu'elle a dans son sac. C'est votre problème maintenant. Analysez exactement ce que la fonction a apporté dans le sac.

Votre travail en tant que programmeur consiste donc à vérifier deux résultats : si la fonction s'est achevée avec succès et ce qu'elle a renvoyé. Et vous n'avez pas besoin d'exiger du terminal ce que vous voulez voir. Il suffit de faire ce qu'il faut.

Raison: