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

 

Vous avez donc toujours besoin de variables d'entrée réelles !

Paramètres

nom

[in] L'identifiant de la variable d'entrée ou de sortie. Ces variables sont des paramètres externes au programme dont les valeurs peuvent être définies au démarrage.

 
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?


Voici un exemple.

Dossiers :
test.zip  8 kb
 
Alexey Volchanskiy:

Vous avez donc besoin de variables d'entrée réelles de toute façon !

Personne ne vous empêche de les écrire dans la source.

 
fxsaber:

Personne ne les empêche de les prescrire à la source.


Une histoire de taureau blanc ;)) Comment les passer à la classe algorithme dans le commerce normal ?

 
Alexey Volchanskiy:

Une histoire de taureau blanc ;)) Comment les passer à une classe d'algorithme dans le trading régulier ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Et pourquoi ne pas mettre les paramètres d'entrée dans la structure ?

fxsaber, 2017.10.02 20:15

// 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>();
}
 
fxsaber:

Pouvez-vous me montrer un exemple de commodité ? Je n'arrive pas à comprendre de quoi tu parles.


Voici un exemple, tiré de la première page.

struct VolumeParams                              
{
    double lot;         //Лоты
    double LotRatio;    //Множитель
    int tp;             //ТП
    int sl;             //СЛ
    int orders;         //Количество ордеров
};
VolumeParams ParamBuf[5];

input ParamBuf[0];         // Шаг 1
input ParamBuf[1];         // Шаг 2
input ParamBuf[2];         // Шаг 3
input ParamBuf[3];         // Шаг 4
input ParamBuf[4];         // Шаг 5

plus ma citation.

...ici le client veut 10 entrées, et chaque étape a son propre tp/sl/lot/trall/signal à l'entrée

Il s'applique donc, pour écrire toute cette pile de paramètres, il suffira de définir la structure et de la mettre dans les paramètres d'entrée.

Avec cette conception, il est facile pour le programmeur d'initialiser un tableau de structures de paramètres d'entrée, puis de travailler avec lui.

Développez tous ces paramètres en variables distinctes et essayez de travailler avec elles.

 
Taras Slobodyanik:

Voici un exemple, tiré de la première page

Lors du lancement d'une TS, il arrive souvent que l'on ne sache pas quels paramètres d'entrée il est préférable de choisir. Vous exécutez donc un conseiller expert qui possède, par exemple, une douzaine de jeux de paramètres d'entrée différents. Et chaque ensemble pour chaque copie du TS. De nombreuses personnes l'ont fait il y a longtemps, lorsque MQL4 était encore très loin de MQL5.

Et ils l'ont fait par le biais d'une chaîne externe - maintenant on l'appelle une chaîne d'entrée.

input string Parameters = "1, 2, 3.5, 8, 9l";

Ils ont analysé les chaînes d'entrée, vérifié combien de lignes d'entrée il y avait et utilisé ce nombre pour créer le même nombre de logiques commerciales avec les paramètres d'entrée appropriés (en utilisant ArrayResize). Et tout cela sur l'ancien MQL4 ! Et là, le MM était distribué pour chaque TS en fonction du nombre de CTs et d'autres nuances. Quelque part dans les anciennes bases de code, il devrait y avoir des exemples.

 

oui, mais il n'est pas possible d'optimiser de cette manière

1

 
Taras Slobodyanik:
oui, mais ce n'est pas ainsi que l'optimisation est possible

Vous inventez des problèmes hypothétiques qui n'ont rien à voir avec la réalité. Si une optimisation est nécessaire, elle est effectuée de manière élémentaire. Notez le mot en surbrillance. Il n'y a pas d'obstacle technique. Si vous ne pouvez pas organiser l'optimisation dans ce cas, c'est que vous en avez tellement besoin.

Il existe de nombreuses techniques pratiques pour résoudre tel ou tel besoin. Mais ces problèmes sont loin d'être hypothétiques.

 
fxsaber:

Vous inventez des problèmes hypothétiques qui n'ont rien à voir avec la réalité. Si une optimisation est nécessaire, elle est effectuée de manière élémentaire. Notez le mot en surbrillance. Il n'y a pas d'obstacle technique. Si vous ne pouvez pas organiser l'optimisation dans ce cas, c'est que vous en avez tellement besoin.

Il existe de nombreuses techniques pratiques pour résoudre tel ou tel besoin. Mais ces problèmes sont loin d'être hypothétiques.

le sujet n'est pas l'optimisation)
Pourquoi ne pas mettre les paramètres d'entrée dans la structure ?
Raison: