Fragen von einem "Dummy" - Seite 198

 
lazarev-d-m:

Aus dieser Bedingung ergibt sich, dass es in drei Situationen funktionieren wird:

1) Wenn das Prüfgerät in Betrieb ist

2) Wenn das Prüfgerät NICHT funktioniert

3) Wenn das visuelle Prüfgerät funktioniert

damit die Funktion immer funktioniert, müssen Sie höchstwahrscheinlich die zweite Bedingung entfernen und die erste und dritte mit && verbinden

Eher so:

2 oder (1 und 2). Das ist es, was ich brauche. Nicht im Tester-, sondern im visuellen Tester-Modus zu sein.

Es tut mir leid, aber ich glaube, ich habe gerade Terminals verwechselt und den falschen Code getestet. Mein Zustand scheint korrekt zu sein.

 
lazarev-d-m:

damit die Funktion immer funktioniert, müssen Sie höchstwahrscheinlich die zweite Bedingung entfernen und die erste und dritte mit && verbinden

Sie meinen, dass diese Bedingung ausreichend ist:

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

 
tor4en:

Sie meinen, dass eine solche Bedingung ausreichend ist:

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

Ja, das funktioniert auch. Ich danke Ihnen.
 
Wie kann ein zu optimierender Parameter beeinflusst werden, wenn sein Bereich von einem anderen optimierten Parameter abhängt? Rufen Sie expertremove in oninit auf, wenn der Parameter nicht geeignet ist? Wie lässt sich die Optimierung optimal beschleunigen?
 
aharata:
Wie kann ich den zu optimierenden Parameter beeinflussen, wenn sein Bereich von einem anderen optimierten Parameter abhängt? Wie kann ich expertremove in oninit aufrufen, wenn der Parameter nicht geeignet ist? Wie kann ich die Optimierung am besten beschleunigen?

Sehen Sie sich die Funktionen ParameterSetRange und ParameterGetRange an. Sie ermöglichen es Ihnen, den aufzuzählenden Parameter auf der Grundlage der zuvor festgelegten nichtnumerischen Bedingungen neu zu schreiben.

Zum Beispiel so:

//--- input parameters
sinput int   Param1=4;            // хитрый параметр
sinput int   Param2=30;           // хитрый параметр
sinput bool  Param3=false;        // хитрый параметр
                                  
sinput long  Counter=1;           // а вот этот параметр мы и будем оптимизировать (синтетический счетчик)


//--- на основе Param1, Param2 и Param3 высчитаем хитрое количество проходов счетчика Counter
ParameterSetRange("Counter",true,0,0,1,1+long(Param3 ? (Param1*Param2):(Param1*2));

Beachten Sie die Verwendung von sinput (statische Eingabe) anstelle von input, was einen blockierten Wechsel "von" und "zu" diesem Parameter in der GUI ergibt. Ebenso wird der Parameter Zähler, der mit der Funktion ParameterSetRange für Änderungen gesperrt ist, mit der Einstellung der berechneten Grenzen entsperrt.

Sie können diesen Mechanismus nutzen, um sehr komplexe Eingabebedingungen zu erstellen, die für die Erstellung synthetischer Abrechnungszähler verwendet werden können. Vergessen Sie nur nicht, dass die Parametrisierungsfunktion nur in OnTesterInit funktioniert.

 
Vielen Dank, Renat. Genau das, was ich brauchte).
 
Frage zum Einrichten eines Terminal-Start-Zyklus für Tests über die Befehlszeile.

Aktuelle Situation:
1. Ich benutze die Kommandozeile, um das Terminal zu starten und den Expert Advisor zu optimieren.
2. Das Terminal startet, optimiert und speichert das Ergebnis in einer xml-Datei.
3. Schließen Sie das Terminal
von Hand. 4. Ich bearbeite die ini-Datei (ändere z.B. den Testzeitraum)

5. Weiter zu Punkt 1.


Frage: Konnte jemand diesen Prozess bereits automatisieren, einschließlich der automatischen Auswahl von Parametern für die Ini-Datei aus einer vorgegebenen Liste und dem Schließen des Terminals? Bitte teilen Sie uns Ihre Ideen mit, wie dies erreicht werden könnte. Die beste Option wäre es, eine fertige Lösung zur Automatisierung des oben genannten Prozesses anzubieten. Sicherlich hat schon jemand vor mir daran gedacht.

 
In der Konfigurationsdatei gibt es einen Befehl zum automatischen Schließen des Terminals am Ende eines Tests. Schauen Sie in der Hilfedatei nach.
 
papaklass:

Renat, baue doch bitte ein LAGER für die vier, BITTE. Ich habe den Expert Advisor auf meinen Laptop heruntergeladen, aber ich habe die Includes vergessen. Jetzt sitze ich hier als einfacher :) Programmierer und schreibe Funktionen, anstatt den Expert Advisor zu debuggen.

Mein Flash-Laufwerk ist unser zuverlässiger SPEICHER :)

SZY, na ja, und von Zeit zu Zeit Post

 
sergeev:

Das Flash-Laufwerk ist unser treuer SPEICHER :)

ZS, und manchmal die Post.

Flash-Laufwerk - ich würde sagen, die gehen oft kaputt.

Ich habe eine externe Festplatte, die automatisch einmal am Tag synchronisiert wird (etwa 300 Gigabyte an Arbeitsdateien).

Es heißt, dass SSD-Laufwerke praktisch unzerstörbar sind. Aber sehr teuer.

Grund der Beschwerde: