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

 

Sie brauchen also noch echte Eingabevariablen!

Parameter

Name

[in] Der Bezeichner derEingangs- oder Ausgangsvariablen. Diese Variablen sind externe Parameter des Programms, deren Werte beim Start eingestellt werden können.

 
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?


Hier ist ein Beispiel.

Dateien:
test.zip  8 kb
 
Alexey Volchanskiy:

Sie brauchen also ohnehin echte Eingabevariablen!

Niemand hindert Sie daran, sie in den Quelltext zu schreiben.

 
fxsaber:

Niemand hindert sie daran, sie in der Quelle zu verschreiben.


Das Märchen vom weißen Stier )) Wie kann man sie im normalen Handel an die Algorithmusklasse übergeben?

 
Alexey Volchanskiy:

Das Märchen vom weißen Stier )) Wie kann man sie an eine Algorithmusklasse im regulären Handel übergeben?

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Und warum werden die Eingabeparameter nicht in die Struktur aufgenommen?

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:

Können Sie mir ein Beispiel für Bequemlichkeit zeigen? Ich weiß nicht, wovon Sie sprechen.


Hier ist ein Beispiel von der Titelseite.

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

sowie mein Zitat.

...hier möchte der Kunde 10 Eingänge, und jeder Schritt hat sein eigenes tp/sl/lot/trall/signal zum Eingang

Es gilt also: Um den ganzen Haufen an Parametern zu schreiben, reicht es aus, die Struktur zu definieren und in die Eingabeparameter zu schreiben.

Mit diesem Design ist es für den Programmierer einfach , ein Array von Eingabeparameterstrukturen zu initialisieren und dann damit zu arbeiten.

Erweitern Sie alle diese Parameter in separate Variablen und versuchen Sie, mit ihnen zu arbeiten.

 
Taras Slobodyanik:

Hier ist ein Beispiel, von der ersten Seite

Beim Start eines TS kommt es häufig vor, dass man nicht weiß, welche Eingabeparameter am besten zu wählen sind. Sie führen also einen Expert Advisor aus, der z. B. ein Dutzend verschiedener Eingabeparameter hat. Und jeder Satz für jedes Exemplar des TS. Viele Leute haben dies schon vor langer Zeit getan, als MQL4 noch sehr weit von MQL5 entfernt war.

Und sie taten es durch eine externe Zeichenkette - jetzt wird sie als Eingabezeichenkette bezeichnet.

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

Sie analysierten die Eingabestrings, überprüften, wie viele Eingabezeilen es gab, und verwendeten diese Anzahl, um die gleiche Anzahl von Handelslogiken mit entsprechenden Eingabeparametern zu erstellen (unter Verwendung von ArrayResize). Und das alles mit dem alten MQL4! Und dort wurde das MM für jeden TS nach der Anzahl der TCs und anderen Nuancen verteilt. Irgendwo in den alten Codebasen sollte es Beispiele geben.

 

ja, aber es ist nicht möglich, auf diese Weise zu optimieren

1

 
Taras Slobodyanik:
ja, aber so ist eine Optimierung nicht möglich

Sie erfinden hypothetische Probleme, die nichts mit der Realität zu tun haben. Wenn eine Optimierung erforderlich ist, wird sie auf elementare Weise vorgenommen. Beachten Sie das hervorgehobene Wort. Es gibt keine technische Hürde. Wenn Sie die Optimierung in diesem Fall nicht organisieren können, dann brauchen Sie sie so sehr.

Es gibt viele praktische Techniken, um dieses oder jenes Problem zu lösen. Es handelt sich aber keineswegs um hypothetische Probleme.

 
fxsaber:

Sie erfinden hypothetische Probleme, die nichts mit der Realität zu tun haben. Wenn eine Optimierung erforderlich ist, wird sie auf elementare Weise vorgenommen. Beachten Sie das hervorgehobene Wort. Es gibt keine technische Hürde. Wenn Sie die Optimierung in diesem Fall nicht organisieren können, dann brauchen Sie sie so sehr.

Es gibt viele praktische Techniken, um dieses oder jenes Problem zu lösen. Es handelt sich aber keineswegs um hypothetische Probleme.

das Thema hat nichts mit Optimierung zu tun)
Warum werden die Eingabeparameter nicht in die Struktur aufgenommen?