Alain Verleyen: La longueur n'est jamais inconnue et ce sujet est juste le résultat d'une mauvaise conception.
Cette exigence provient d'un projet AutoTester.
Dans de nombreux Indicateurs/EAs, les paramètres d' entrée contiennent des enum personnalisés, nous devons déterminer quel élément (et sa valeur relative) de l'enum.
Donc, ne dites pas "mauvaise conception". Bla...bla...
Dans de nombreux Indicateurs/EAs, les paramètres d'entrée contiennent des enum personnalisés, nous devons déterminer quel élément (et sa valeur relative) de l'enum.
Donc, ne dites pas "mauvaise conception". Bla...bla...
Bien sûr, c'est une mauvaise conception. Mais ce n'est pas un problème pour moi.
Alain Verleyen: Le nombre de valeurs, donc 5 dans votre exemple de fruits.
Je suis d'accord sur le fait que c'est statique, il ne peut pas être variable et sera toujours une valeur fixe connue pour commencer.
Cependant, si Xiangdong Guoteste des indicateurs qu'il n'a pas conçus ou écrits lui-même, et qu'il veut connaître ou détecter automatiquement les paramètres d'entrée...
Je ne vois pas comment le fait de connaître le nombre d'options disponibles pourrait aider, peut-être veut-il faire des tests croisés de toutes les options disponibles et cherche-t-il simplement le nombre de tests à effectuer ?
Je rechercherais les options supposées pour résoudre ces valeurs une fois que vous essayez de convertir hors des limites des options disponibles, il générera l'erreur cannot convert enum puisqu'elle n'existe pas.
MT4/MT5 utilisent des fonctions C++/C# pour récupérer les éléments de l'enum. Mais MetaQuotes ne porte pas ces fonctions vers MQL4/MQL5. Hum...hum...
enum DURATION_INTERVALS // Enumeration of named constants
{
month=1, // Interval of one month
two_months, // Two months
quarter, // Three months - quarter
halfyear=6, // Half a year
year=12, // Year - 12 months
};
input DURATION_INTERVALS HistoryDuration = month;
Alain Verleyen: Quelle fonction ? Quel est le problème ? Pourquoi voulez-vous boucler sur les éléments de l'enum ?
Si quelqu'un veut/doit faire quelque chose qui n'est pas possible avec MQL, cela ne signifie pas nécessairement "mauvaise conception".
Pour répondre au sujet de départ : il n'est pas possible de faire ce que vous voulez dans la version actuelle de MQL.
Le seul moyen est de copier tous les éléments dans un tableau et de faire votre boucle en utilisant ce tableau. Mais cela n'est possible que si vous pouvez modifier le code.
Si quelqu'un veut/doit faire quelque chose qui n'est pas possible avec MQL, cela ne signifie pas nécessairement "mauvaise conception".
Pour répondre au sujet de départ : il n'est pas possible de faire ce que vous voulez dans la version actuelle de MQL.
Le seul moyen est de copier tous les éléments dans un tableau et de faire votre boucle en utilisant ce tableau. Mais cela n'est possible que si vous pouvez modifier le code.
Utiliser un enum au lieu d'un tableau est une mauvaise conception. N'est-ce pas ?
Utiliser un enum au lieu d'un array est une mauvaise conception. N'est-ce pas ?
Non, utiliser un tableau au lieu d'un enum est une mauvaise conception.
Exemple : Imaginez que vous avez une valeur de type chaîne de caractères. Et la tâche est de trouver si cette chaîne est égale à/contient en elle un des noms des éléments de l'enum (EnumToString()).
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
La longueur n'est jamais inconnue et ce sujet est juste le résultat d'une mauvaise conception.
Que voulez-vous dire par "longueur de l'enum" ?
Peut-être que la carotte n'est pas un fruit... Je ne comprends toujours pas ce que Xiangdong Guo veut dire par 'longueur de l'enum'.
Le nombre de lettres de chaque nom de chaîne d'options ?
Le nombre d'options possibles ?
La valeur numérique de l'option ?
Non seulement une mauvaise conception, mais aussi pas très clair sur ce qu'il veut dire.
Le nombre de valeurs, donc 5 dans votre exemple de fruits.
Je suis d'accord sur le fait que c'est statique, il ne peut pas être variable et sera toujours une valeur fixe connue pour commencer.
Cependant, si Xiangdong Guo teste des indicateurs qu'il n'a pas conçus ou écrits lui-même, et qu'il veut connaître ou détecter automatiquement les paramètres d'entrée...
Je ne vois pas comment le fait de connaître le nombre d'options disponibles pourrait aider, peut-être veut-il faire des tests croisés de toutes les options disponibles et cherche-t-il simplement le nombre de tests à effectuer ?
Je rechercherais les options supposées pour résoudre ces valeurs une fois que vous essayez de convertir hors des limites des options disponibles, il générera l'erreur cannot convert enum puisqu'elle n'existe pas.
MT4/MT5 utilisent des fonctions C++/C# pour récupérer les éléments de l'enum. Mais MetaQuotes ne porte pas ces fonctions vers MQL4/MQL5. Hum...hum...
MT4/MT5 utilisent des fonctions C++/C# pour récupérer les éléments de l'enum. Mais MetaQuotes ne porte pas ces fonctions vers MQL4/MQL5. Hum...hum...
Quelle fonction ? Quel est le problème ? Pourquoi voulez-vous boucler sur les éléments de l'enum ?
Si quelqu'un veut/doit faire quelque chose qui n'est pas possible avec MQL, cela ne signifie pas nécessairement "mauvaise conception".
Pour répondre au sujet de départ : il n'est pas possible de faire ce que vous voulez dans la version actuelle de MQL.
Le seul moyen est de copier tous les éléments dans un tableau et de faire votre boucle en utilisant ce tableau. Mais cela n'est possible que si vous pouvez modifier le code.
Si quelqu'un veut/doit faire quelque chose qui n'est pas possible avec MQL, cela ne signifie pas nécessairement "mauvaise conception".
Pour répondre au sujet de départ : il n'est pas possible de faire ce que vous voulez dans la version actuelle de MQL.
Le seul moyen est de copier tous les éléments dans un tableau et de faire votre boucle en utilisant ce tableau. Mais cela n'est possible que si vous pouvez modifier le code.
Utiliser un enum au lieu d'un tableau est une mauvaise conception. N'est-ce pas ?
Utiliser un enum au lieu d'un array est une mauvaise conception. N'est-ce pas ?
Non, utiliser un tableau au lieu d'un enum est une mauvaise conception.
Exemple : Imaginez que vous avez une valeur de type chaîne de caractères. Et la tâche est de trouver si cette chaîne est égale à/contient en elle un des noms des éléments de l'enum (EnumToString()).
Comment résoudre ce problème ?