Fragen von einem "Dummy" - Seite 155

 
input string Periods = "1 2 3 56 78 67";
 
TheXpert:
Interessant. Aber ich würde gerne die Zeiträume vom Tester aus optimieren können.
 
gpwr:
Interessant. Aber ich würde gerne die Zeiträume optimieren können.
Es wäre besser, die Optimierung für jedes Instrument einzeln vorzunehmen. Wenn es möglich ist, natürlich.
 
gpwr:
Interessant. Aber es wäre schön, wenn man die Zeiträume vom Prüfgerät aus optimieren könnte.

Dann müssen Sie eine Aufzählung schreiben, die alle möglichen Optionen enthält.

Enums können kommentiert werden und die Parameter zeigen wie üblich die Kommentare anstelle des Enum-Wertes an.

enum ENUM_CUSTOM
{
 tf1_1_1,//1 1 1
 tf1_2_1,//1 2 1
 tf1_2_3,//1 2 3
 tf2_1_1,//2 1 1 
};

Bei großen Enums kann der Körper programmatisch ausgefüllt werden.

 
Urain:

Dann müssen Sie eine Aufzählung schreiben, die alle Möglichkeiten enthält.

Nein, das ist ungeschickt und stumpfsinnig.

Wir können dies auf die gleiche Weise tun, mit einer Zeichenkette und nur der Nummer des Laufs als separatem Parameter. Wir könnten die Nummer des Laufs und die Optimierungszeichenfolge verwenden, um die Werte zu erhalten.

Aber in diesem Fall wird die Genetik nicht richtig funktionieren.

 
TheXpert:
Es wäre sinnvoller, die Optimierung für jedes Instrument einzeln vorzunehmen. Wenn es möglich ist, natürlich.
Das ist verständlich. Im Tester werde ich nur Parameter mit dem gleichen Index auswählen (z.B. MAPer[0], Trig[0], MaxPrice[0],MinPrice[0]) und nur diese optimieren. Oh, die Entwickler hätten sich entschließen sollen, diese Funktion hinzuzufügen. Für den Compiler wäre es nicht allzu schwierig gewesen, zunächst ein Array zu erstellen und dann die Eingabedaten in dieses Array zu schreiben. Was ist hier das Problem? Warum sind keine Arrays als Eingabedaten erlaubt?
 
gpwr:
Das ist verständlich. Im Tester werde ich nur Parameter mit dem gleichen Index auswählen (z.B. MAPer[0], Trig[0], MaxPrice[0],MinPrice[0]) und nur diese optimieren. Oh, die Entwickler hätten sich entschließen sollen, diese Funktion hinzuzufügen. Für den Compiler wäre es nicht allzu schwierig gewesen, zunächst ein Array zu erstellen und dann die Eingabedaten in dieses Array zu schreiben. Was ist hier das Problem? Warum sind keine Arrays als Eingabedaten erlaubt?
Das Problem liegt in der Größe der Suchfunktion des Testers.
 

Ich habe begonnen, den gleichen MACD auf der Grundlage der MACD-Quelle zu schreiben, aber auf der Grundlage des LWMA (Differenz zwischen dem kurzen und dem langen LWMA und eine auf der Differenz basierende Signallinie).

Ich habe ihn durch LinearWeightedMAOnBuffer ersetzt, aber er hat einen "zusätzlichen" formalen Parameter weightsum. Ich verstehe sicherlich, dass es die Summe der Gewichte ist und verstehe die Bedeutung, aber wie kann ich ihn programmatisch erzeugen?

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

Ich habe begonnen, den gleichen MACD auf der Grundlage der MACD-Quelle zu schreiben, aber auf der Grundlage des LWMA (Differenz zwischen dem kurzen und dem langen LWMA und eine auf der Differenz basierende Signallinie).

Ich ersetzte es mit LinearWeightedMAOnBuffer, aber es hat ein "extra" formalen Parameter weightsum. Ich sollte sicherlich verstehen, dass es die Summe der Gewichte ist und die Bedeutung zu verstehen, aber wie kann ich es programmatisch erzeugen?

Sie muss nicht generiert werden. Sie müssen nur eine Variable für die Zwischenspeicherung dieser Gewichtssumme anlegen, damit Sie den Wert nicht jedes Mal neu berechnen müssen, wenn Sie die Funktion aufrufen.

Auf diese Weise wird die Gewichtssumme bei jedem Aufruf geändert und nicht komplett neu berechnet, was die Berechnungen erheblich beschleunigt.

 
stringo:

Sie muss nicht generiert werden. Sie müssen nur eine Variable für die Zwischenspeicherung dieser Gewichtssumme anlegen, damit Sie die Werte nicht jedes Mal neu berechnen müssen, wenn Sie die Funktion aufrufen.

Auf diese Weise wird beim nächsten Aufruf die Gewichtssumme geändert und nicht komplett neu berechnet, was die Berechnungen erheblich beschleunigt.

Ich danke Ihnen. Es hat funktioniert. Ich habe diese Variable als globale Variable deklariert.