Erreurs, bugs, questions - page 814

 
paladin800:

Dans les paramètres externes de l'EA, j'utilise uniquement le paramètre R = 1 ou 2 ou 12 ou 13 (exemple général simple). Vous pouvez vérifier ce paramètre dans OnInit() et signaler une erreur si un citoyen saisit par erreur un autre numéro. Cependant, il existe des types ENUM_... pour l'entrée. (par exemple ENUM_MA_METHOD), alors que vous pouvez simplement sélectionner une valeur dans la fenêtre étendue.

Question. Existe-t-il une option me permettant de faire une telle construction, de sorte que dans les paramètres externes par analogie avec le ENUM_... n'apparaissent que ce que le programmeur a voulu, sans avoir besoin de vérifier OnInit(). Je ne l'ai pas trouvé dans la documentation. Si non, le souhait est de faire une telle chose.

Tout comme ENUM.

enum MyLimitedType
  {  
   Адын = 1,
   Дыва = 2,
   Трынацать = 13,
   Читырныцыть = 14,
  };
J'ai même fait un sale tour en utilisant des tableaux doubles ENUM avec des étapes limitées (exemple ici), mais ici je ne peux pas faire sans conversion dans OnInit(), bien sûr.
 
MetaDriver:

Tout comme ENUM.

J'ai même décidé d'utiliser ENUM pour créer des tableaux doubles avec des étapes limitées (exemple ici), mais on ne peut pas faire sans conversion à OnInit(), bien sûr.
Quelque chose comme ça ! Merci pour le lien, je vais me débrouiller tout seul.
 
paladin800:
Comme ça ! Merci pour le lien, je vais le découvrir moi-même.

Cela fonctionne également pour la saisie :

enum MyLimitedType
  {  
   Адын = 1,// почти Адын 
   Дыва = 2,// совсем Дыва
   Трынацать = 13,// ++ Трынацать
   Читырныцыть = 14,// Читырныцыть.--
  };

Tapez le code et appelez la fenêtre, voyez à quoi ressemblent les options de l'enum.

Le code utilisera des variantes d'enum et la fenêtre de saisie utilisera des commentaires.

 

J'ai un enum comme ceci :

enum ENUM_FIBO_LEVEL
  {
   O_0,  //0.0
   O_236,//0.236
   O_382,//0.382
   O_5,  //0.5
   O_618 //0.618
  };

ZY si les options de l'énumérateur n'ont pas de valeurs assignées comme MetaDriver alors les valeurs par défaut seront assignées des valeurs consécutives de 0.

Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Основы языка / Операции и выражения / Операции присваивания - Документация по MQL5
 
Urain:

Cela fonctionne également pour la saisie :

Tapez le code et appelez la fenêtre, voyez à quoi ressemblent les options de l'enum.

Le code utilisera des variantes d'enum et la fenêtre de saisie utilisera des commentaires.

Oui, confirmez, tout fonctionne. :)

paladin800:
Quelque chose comme ça ! Merci pour le lien, je vais le consulter moi-même.
Bonne chance. Les grands enum's (si nécessaire) j'essaie de les générer automatiquement, parce que premièrement je suis paresseux, et deuxièmement il y a moins d'erreurs/typos. En particulier, ces enum's, qui ont été générés par ces scripts (voir trailer).
Dossiers :
 
Comment savoir dans OnTesterPass quels paramètres ont été utilisés pour l'optimisation ? Je vois seulement que ces paramètres sont renvoyés au début du tableau des paramètres de la fonction FrameInputs, mais à quel moment les paramètres optimisés se terminent-ils et les paramètres constants commencent-ils ?
 
marketeer:
Comment savoir dans OnTesterPass quels paramètres ont été utilisés pour l'optimisation ? Je vois seulement que ces paramètres sont renvoyés au début du tableau des paramètres de la fonction FrameInputs, mais à quel moment les paramètres optimisés se terminent-ils et les paramètres constants commencent-ils ?
Je ne comprends pas bien la question, mais je peux suggérer une fonction utile - ParameterGetRange
 
Rosh:
Je ne comprends pas bien la question, mais je peux suggérer une fonction utile : ParameterGetRange.
Oui, c'est bien. Pas encore disponible dans l'aide locale.
 
Comme je l'ai découvert, les mêmes résultats d'optimisation tronqués sont transmis à OnTesterPass et à l'onglet des résultats d'optimisation. J'espérais qu'au moins de cette manière, il serait possible d'obtenir l'ensemble des données. L'application n° 459431 qui se trouve dans le SD est donc le seul moyen de s'en sortir, si jamais elle est réalisée (et si elle l'est, ce sera probablement après le championnat, hélas).
 

Pouvez-vous me dire pourquoi une erreur se produit lors de la récupération d'un handle d'indicateur, si le nom de l'indicateur à appeler est contenu dans une variable ?

Je veux dire, il n'y a pas d'erreur comme ça :

handle=iCustom(_Symbol,tf_ind,"Name_Indicator",param_ind);

C'est ainsi que nous obtenons l'erreur 4802 (Indicator cannot be created) :

string lnm_ind="Name_Indicator";
//---
handle=iCustom(_Symbol,tf_ind,lnm_ind,param_ind);