Pourquoi ne pas mettre les paramètres d'entrée dans la structure ? - page 4

 

Alexey Volchanskiy

À propos, est-ce que MQL5 a une limite sur le nombre de paramètres des fonctions ?

Il semble y avoir 64 paramètres par fonction.

 
Alexey Volchanskiy:

Comment optimiser ? Ce n'est pas la première fois que je demande ça, et personne ne dit rien.


C'est ça le truc - tu ne le fais pas. Cela signifie que toute fenêtre personnalisée (DLL, GUI dans MQL) détruira complètement l'optimisation native. Dans les cas extrêmes, nous devons ajouter notre propre optimisation à l'intérieur de l'EA, ce qui est un autre vélo.

Le fichier ini est le même. La manière dont cela convient ici n'est pas du tout claire. En tout cas, je n'ai pas vu de simples utilisateurs qui modifient le fichier ini afin de changer les valeurs des paramètres de réglage.

 
Alexey Volchanskiy:

Il me semble avoir écrit assez clairement, mais je vais le répéter avec un exemple. Il y a un conseiller expert, il a 100 paramètres d'entrée, tous doivent être passés à une instance de la classe de l'algorithme, où tout le travail a lieu. Il y a deux façons de procéder :

  1. Effectuer la ou les fonctions de paramétrage dans la classe. Imaginez maintenant une fonction avec 100 paramètres. À propos, y a-t-il une limite au nombre de paramètres de fonction dans MQL5 ?
  2. La classe est définie après les variables d'entrée, c'est-à-dire qu'elles sont visibles depuis l'EA. L'inconvénient - moins de flexibilité en cas d'instances multiples de la classe. Le plus est la quantité minimale d'écriture.

Le problème est donc de savoir comment transmettre les variables d'entrée à l'instance de la classe algorithmique.

Alors vous avez raison.

// Begin: mqh-файл
class CLASS_EXPERT
{
public:  
  template <typename T>
  void Set( void );
};
// End: mqh-файл

input int inNum = 0;

struct INPUTS
{
  const int Num;
  
  INPUTS( void ) : Num(inNum)
  {
  }
};

CLASS_EXPERT Experts[10];

void OnInit()
{
  for (int i = ArraySize(Experts) - 1; i >= 0; i--)
    Experts[i].Set<INPUTS>();
}
 
Ihor Herasko:

Comment est-ce possible ? Je ne comprends vraiment pas comment cela est possible. Je connais une telle astuce pour les scripts, mais pas pour les conseillers experts et les indicateurs.

ExpertLoader_Example.mq5 d'ici.

Ihor Herasko:

C'est là le problème, ce n'est pas le cas. Cela signifie que toute fenêtre personnalisée (DLL, GUI dans MQL) détruira complètement l'optimisation standard. Dans les cas extrêmes, nous devons ajouter notre propre optimisation à l'intérieur de l'EA, ce qui est un autre vélo.

Le fichier ini est le même. La manière dont cela convient ici n'est pas du tout claire. En tout cas, je n'ai pas vu de simples utilisateurs qui modifient le fichier ini afin de changer les valeurs des paramètres de réglage.

https://www.mql5.com/ru/docs/optimization_frames/parametersetrange

Expert
Expert
  • votes : 16
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это...
 

Vous pouvez écrire les variables externes dans un fichier mqh et le brancher.

 

Je dois être en retard sur mon temps ou aller dans la mauvaise direction,

Je pensais que moins un EA a de paramètres d'entrée, mieux c'est.

Idéalement, à mon avis, un EA ne devrait pas avoir de paramètres d'entrée(variables d'entrée).

Expliquez-moi, quel est l'intérêt de 100 paramètres ?

 
Sergey Chalyshev:

Je dois être en retard sur mon temps ou aller dans la mauvaise direction,

Je pensais que moins un EA a de paramètres d'entrée, mieux c'est.

Idéalement, à mon avis, un EA ne devrait pas avoir de paramètres d'entrée(variables d'entrée).

Veuillez expliquer l'intérêt de 100 paramètres.


Juste pour l'expérimentation.

 
Sergey Chalyshev:

Je dois être en retard sur mon temps ou aller dans la mauvaise direction,

Je pensais que moins un EA a de paramètres d'entrée, mieux c'est.

Idéalement, à mon avis, un EA ne devrait pas avoir de paramètres d'entrée(variables d'entrée).

Veuillez clarifier la signification de 100 paramètres.


Cette question n'est pas abordée ici. Nous discutons des aspects techniques du passage des paramètres.

 
Dmitry Fedoseev:

Vous pouvez écrire des variables externes dans un fichier mqh et le brancher.


Je perds la tête, les gens s'obstinent à m'ignorer. Vous pouvez également les écrire dans .mqh, quelle différence cela fait-il desavoir comment les passer à la classe algorithme?

 
Alexey Volchanskiy:

Je perds la tête, je ne suis toujours pas entendu. Vous pouvez également utiliser des .mqh, quelle différence cela fait-il desavoir comment les passer à la classe d'algorithme?


Vous n'avez pas besoin de les passer, les variables globales sont disponibles telles quelles.