Warum werden die Eingabeparameter nicht in die Struktur aufgenommen? - Seite 4

 

Alexey Volchanskiy

Übrigens, hat MQL5 eine Begrenzung der Anzahl der Funktionsparameter?

Es scheint 64 Parameter pro Funktion zu geben.

 
Alexey Volchanskiy:

Wie kann man optimieren? Es ist nicht das erste Mal, dass ich diese Frage stelle, und niemand sagt etwas.


Das ist es ja - man weiß es nicht. Das bedeutet, dass jedes benutzerdefinierte Fenster (DLL, GUI in MQL) die native Optimierung vollständig zerstört. In extremen Fällen müssen wir unsere eigene Optimierung innerhalb des EAs hinzufügen, was ein anderes Fahrrad ist.

Die ini-Datei ist die gleiche. Es ist überhaupt nicht klar, wie es hier angebracht ist. Zumindest habe ich keine einfachen Benutzer gesehen, die die Ini-Datei bearbeiten, um die Werte der Tuning-Parameter zu ändern.

 
Alexey Volchanskiy:

Ich glaube, ich habe mich klar genug ausgedrückt, aber ich wiederhole es mit einem Beispiel. Es gibt einen Expert Advisor mit 100 Eingabeparametern, die alle an eine Instanz der Klasse des Algorithmus übergeben werden müssen, in der die gesamte Arbeit stattfindet. Es gibt zwei Möglichkeiten:

  1. Führen Sie die Funktion(en) zur Parametereinstellung in der Klasse aus. Stellen Sie sich nun eine Funktion mit 100 Parametern vor. Gibt es übrigens eine Begrenzung für die Anzahl der Funktionsparameter in MQL5?
  2. Die Klasse wird nach den Eingabevariablen definiert, d.h. sie sind vom EA aus sichtbar. Der Nachteil - weniger Flexibilität im Falle mehrerer Instanzen der Klasse. Das Plus ist der minimale Schreibaufwand.

Das Problem ist also, wie man Eingabevariablen an die Instanz der Algorithmusklasse übergibt

Dann haben Sie es richtig gemacht.

// 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:

Wie ist das möglich? Ich verstehe wirklich nicht, wie das möglich ist. Ich kenne einen solchen Trick für Skripte, aber nicht für Expert Advisors und Indikatoren.

ExpertLoader_Example.mq5 von hier.

Ihor Herasko:

Das ist der springende Punkt, es ist nicht der Fall. Das bedeutet, dass jedes benutzerdefinierte Fenster (DLL, GUI in MQL) die Standardoptimierung vollständig zerstört. In extremen Fällen müssen wir unsere eigene Optimierung innerhalb des EAs hinzufügen, was ein anderes Fahrrad ist.

Die ini-Datei ist die gleiche. Es ist überhaupt nicht klar, wie es hier angebracht ist. Zumindest habe ich noch keine einfachen Benutzer gesehen, die die Ini-Datei bearbeiten, um die Werte der Tuning-Parameter zu ändern.

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

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

Sie können die externen Variablen in eine mqh-Datei schreiben und diese einfügen.

 

Ich muss der Zeit hinterher sein oder mich in die falsche Richtung bewegen,

Ich dachte, je weniger Eingabeparameter ein EA hat, desto besser.

Im Idealfall sollte ein EA meiner Meinung nach keine Eingabeparameter(Eingabevariablen) haben.

Erklären Sie mir, was der Sinn von 100 Parametern ist?

 
Sergey Chalyshev:

Ich muss der Zeit hinterher sein oder mich in die falsche Richtung bewegen,

Ich dachte, je weniger Eingabeparameter ein EA hat, desto besser.

Im Idealfall sollte ein EA meiner Meinung nach keine Eingabeparameter(Eingabevariablen) haben.

Bitte sagen Sie mir, was die 100 Parameter bedeuten.


Nur zum Experimentieren.

 
Sergey Chalyshev:

Ich muss der Zeit hinterher sein oder mich in die falsche Richtung bewegen,

Ich dachte, je weniger Eingabeparameter ein EA hat, desto besser.

Im Idealfall sollte ein EA meiner Meinung nach keine Eingabeparameter(Eingabevariablen) haben.

Bitte erläutern Sie die Bedeutung von 100 Parametern.


Diese Frage wird hier nicht erörtert. Wir erörtern hier die technischen Aspekte der Parameterübergabe.

 
Dmitry Fedoseev:

Sie können externe Variablen in eine mqh-Datei schreiben und diese einfügen.


Ich verliere den Verstand, die Leute ignorieren mich hartnäckig. Man kann sie auch in .mqh schreiben, welchen Unterschied macht es, wie man sie an die Algorithmusklasse übergibt?

 
Alexey Volchanskiy:

Ich verliere den Verstand, ich werde immer noch nicht gehört. Sie können auch .mqh verwenden. Welchen Unterschied macht es, wie man sie an die Algorithmusklasse übergibt?


Sie brauchen sie nicht zu übergeben, globale Variablen sind ohnehin verfügbar.