Erreurs, bugs, questions - page 2449

 
Stanislav Korotky:

Eh bien, si quelque chose dépend de macros, alors les macros, c'est-à-dire le code source, doivent changer pour que le résultat change. J'ai donné toutes les dépendances par include-ums dans l'article. Là, d'ailleurs, les commentaires sont enlevés, ce qui laisse le code nu.

Merci, même moi je n'étais pas au courant de cela. C'est vrai que vous avez écrit là sur le fait de trébucher sur les macros. Cependant, nous allons le vérifier attentivement.

Le développement de ce projet a encore un énorme potentiel, surtout en termes d'amélioration du langage en interne, car beaucoup de choses dans MQL n'ont pas encore été implémentées et beaucoup de choses fonctionnent mal (bugs) et les développeurs, d'après ce que je comprends, n'ont pas prévu d'améliorer quoi que ce soit dans le langage lui-même.

 
Dans la classe CCanvas, les méthodes FontGet, TextWidth, TextHeight et TextSize sont déclarées comme non constantes pour une raison quelconque, bien qu'elles n'apportent aucune modification à la classe. Ils travaillent uniquement pour obtenir des données.
 

Je ne comprends pas, est-il impossible de définir une propriété telle que Enabled=false pour l'élément graphique "Button" afin que le bouton ne puisse plus être pressé ?

C'est-à-dire que l'utilisateur appuie initialement sur le bouton, une sorte de processus démarre et le bouton doit rester en position enfoncée sans répondre à d'autres appuis. Est-ce possible ?

p.s. Je l'ai trouvé. Définissez la priorité de l'objet comme négative.
 

Comment pouvez-vous extraire des données (texte) de cette liste ?

 
fxsaber:

Pouvez-vous me dire comment récupérer les données (texte) de cette liste ?

https://www.mql5.com/ru/docs/convert/enumtostring

Документация по MQL5: Преобразование данных / EnumToString
Документация по MQL5: Преобразование данных / EnumToString
  • www.mql5.com
//| Script program start function                                    |
 

J'ai besoin d'une liste de tous les enum de l'infobulle.

J'ai essayé plusieurs programmes de fenêtres. Cela ne fonctionne pas, car la liste disparaît lorsque le focus disparaît.
Программы для работы с окнами приложений | Темная сторона Силы | Blog. Just Blog
  • ManHunter / PCL
  • www.manhunter.ru
В процессе разработки программ, а также их исследования, очень часто приходится работать с окнами приложений на уровне системы. То есть просматривать или менять стили окон, передавать или отслеживать сообщения и уведомления, обрабатывать другие параметры окон. У меня накопилась небольшая подборка программ, значительно облегчающих выполнение...
 

Aidez-moi avec OnTradeTransaction(). Le comportement décrit ci-dessous est-il normal ? Je l'ai vérifié dans le testeur - c'est ainsi :( Et sur un compte "live" ?

OnTick() a une boucle qui ferme les positions dans l'ordre.

La fonction OnTradeTrancaction() calcule le nombre de positions ouvertes.

Le conseiller expert procède de la manière suivante : il ferme d'abord la boucle jusqu'à la fin, puis il passe à OnTradeTransaction et effectue les calculs dans le même ordre.

En d'autres termes, il n'y a pas

закрытие тикета #1 -> подсчёт с учетом закрытия тикета #1 -> закрытие тикета #2 -> подсчёт с учетом закрытия тикета #2 -> ...

а

закрытие тикета #1 -> закрытие тикета #2 -> ... -> подсчёт с учетом закрытия тикета #1 -> подсчёт с учетом закрытия тикета #2 -> ...

c'est-à-dire qu'il fonctionne de manière séquentielle et non en parallèle.

Si la description ci-dessus est normale, il s'avère que OnTradeTransaction() peut être utilisé en toute sécurité uniquement dans les Expert Advisors qui n'ouvrent/ferment qu'un seul ordre. S'il y a une grille ou une grille multi-symboles (ou une grille multi-symboles, là où on la trouve :) ) - l'algorithme s'effondre.

 
Igor Zakharov:

Aidez-moi avec OnTradeTransaction(). Le comportement décrit ci-dessous est-il normal ? Je l'ai vérifié dans le testeur - c'est ainsi :( Et sur un compte "live" ?

Tout est toujours plus compliqué sur un compte réel que sur un compte de démonstration et dans le testeur.

Le concept de OnTradeTransaction est mal pensé, mais l'opinion "vous ne savez tout simplement pas comment les cuisiner" est constamment entendue.


Soit écrire sans les données de transaction, soit les obtenir de l'extérieur n'importe où dans le programme sans attendre l'entrée de OnTradeTransaction.

L'asynchronie est bonne pour les grilles multi-symboles. Par conséquent, je choisirais la deuxième option.
 
Le testeur se trouve-t-il dans terminal64.exe ou metatester64.exe ? Il faut trouver quel fichier modifier pour éviter le bug.
 
Alexey Navoykov:

Cependant, il dit exactement la même chose sur le fait de trébucher sur les macros. Cependant, nous allons le vérifier, bien sûr.

Le développement de ce projet a encore un énorme potentiel, notamment en termes d'amélioration du langage en utilisant vos propres ressources, car beaucoup de choses dans MQL n'ont pas encore été implémentées et beaucoup de choses fonctionnent mal (bugs) et les développeurs, d'après ce que je comprends, n'ont pas prévu d'améliorer quoi que ce soit dans le langage lui-même.

Pour traiter les macros, je dois mettre en place une couche supplémentaire quelque part au début de toute la chaîne - décrire la grammaire des macros, les analyser dans la source et lesinterpréter (obtenir le résultat source/valeur pour chaque macro). C'est compliqué, et l'application n'est nécessaire que pour certains programmeurs MQL, donc il n'y a pas de développement.

Quant à l'utilisation du hachage pour identifier les changements dans les produits, je ne pense pas que ce soit une solution (ou alors je n'ai aucune idée du cas d'utilisation dont nous parlons). En général, il faut un an ou deux après la génération d'un ex-fichier pour comprendre la version d'un module particulier et sa source. Pour ce faire, vous devrez probablement lier le processus de construction à des systèmes de contrôle de version. Le hachage n'est pas une option.