Diskussion zum Artikel "Erstellen benutzerdefinierter Optimierungskriterien für Expert Advisors"
Danke für den tollen Artikel, Dmitriy,
Gibt es irgendeinen Weg oder Raum, um Pardos Perfect Profit-Kriterien http://www.breakoutfutures.com/Newsletters/Newsletter0605.htm zusätzlich zu Ihren Kriterien zu berücksichtigen?
Sehr nützlicher Artikel, alles ist einfach zu benutzen.....
Es werden jedoch nur die Kriterien für den Aufruf der Funktion OnTester() beschrieben, d.h. wenn die Optimierung mit diesem Parameter beendet ist.
Ist es möglich, die Optimierung vorzeitig abzubrechen, z.B. wenn der Drawdown mehr als 50% beträgt oder der Saldo kleiner als n-Wert ist, um keine CPU-Zeit zu verschwenden!
Sehr nützlicher Artikel, alles ist einfach zu benutzen.....
Es werden jedoch nur die Kriterien für den Aufruf der Funktion OnTester() beschrieben, d.h. wenn die Optimierung mit diesem Parameter beendet ist.
Ist es möglich, die Optimierung vorzeitig abzubrechen, z.B. wenn der Drawdown mehr als 50% beträgt oder der Saldo kleiner als der n-Wert ist, um keine CPU-Zeit zu verschwenden!
Könnten Sie mir bitte sagen, ob es eine Möglichkeit gibt, unnötige Ergebnisse nach dem Ende der Optimierung (OnTester-Aufruf) herauszufiltern, zum Beispiel mit einem Minus-Ergebnis, um die Registerkarte"Optimierungsergebnisse" nicht zu überladen? ?
Die Sortierung erfolgt durch Anklicken der...
auf eine beliebige Spalte.
Sie können sie auch in OnTester() auf Null setzen.
Bei mir persönlich ging die Genetik manchmal in die falsche Richtung.
Es ist also eine Sortierung, ich möchte, dass unerwünschte Ergebnisse überhaupt nicht angezeigt werden ...
mit der Sortierung ist es einfach, zum Beispiel:
double OnTester() double balance = TesterStatistics(STAT_PROFIT); double trades_number = TesterStatistics(STAT_TRADES); if(balance < 5000 || trades_number < 20) return(-777); ....бла бла return(свой критерий оптимизации);
und dann sortieren wir es...
aber das ist ein bisschen "ungeschickt", ich möchte, dass die unerwünschten Ergebnisse gar nicht angezeigt werden.
Karlson:
PS: Es ist nicht immer möglich, ExpertRemove() im Verlauf der genetischen Optimierung "abzubauen".
Hier haben Sie Recht, dass ich es nicht schaffe, die Ergebnisse während der Optimierung (nicht nur genetisch) mit ExpertRemove().... zu "abreißen".
vielleicht weiß ich nicht, wie ich es vorbereiten soll:) ...ich habe es in den OnTick() Handler mit einer Bedingung eingefügt...
Wollen Sie damit sagen, dass ein Code wie :
if (balance < 3000) ExpertRemove();
nicht funktioniert?
Aber das ist nicht das, was ich gesagt habe. Dass eine solche Aufschlüsselung (die zumindest in der Vergangenheit funktionierte) am Ende zur genetischen Flucht führte.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Erstellen benutzerdefinierter Optimierungskriterien für Expert Advisors :
Das MetaTrader 5 Client Terminal bietet eine Vielzahl von Optimierungsmöglichkeiten für die Parameter von Expert Advisors. Zusätzlich zu den im Strategietester enthaltenen Optimierungskriterien erhalten Entwickler die Möglichkeit, ihre eigenen Kriterien zu erstellen. Dies führt zu einer fast unbegrenzten Menge an Möglichkeiten zum Testen und Optimieren von Expert Advisors. Dieser Beitrag beschreibt praktische Möglichkeiten zum Erstellen solcher Kriterien, sowohl komplexer als auch einfacher.
Um das Optimierungskriterium auf Basis der Bilanzkurve umzusetzen, brauchen wir die Klasse TBalanceSlope aus dem oben erwähnten Beitrag. Wir werden diese Klasse anpassen, indem wir (aus Bequemlichkeitsgründen) Konstruktoren mit Parametern nutzen und die Berechnung der Standardabweichung zur Berechnung der linearen Regression hinzufügen. Dieser Code befindet sich in der an diesen Beitrag angehängten Datei BalanceSlope.mqh.
Die Abfolge der Schritte zum Hinzufügen dieses Optimierungskriteriums zum Expert Advisor ist die gleiche wie die oben beschriebene. Nun sehen die Optimierungskriterien so aus:
Zusätzlich zum Kriterium der Bilanzkurve können wir weitere von uns entwickelte Kriterien hinzufügen. Ich lasse den Lesern die Möglichkeit, mit verschiedenen Sätzen statistischer Testparameter zu experimentieren.
Führen wir nun die Optimierung nach den festgelegten Kriterien durch. Um mehr Abschlüsse zu erhalten, führen Sie die Optimierung mithilfe des H4-Timeframes, des Zeitraums 2010.01.01 - 2011.01.01 und des Symbols EURUSD aus. Wir erhalten einen Satz von Ergebnissen:
Abb. 10. Ergebnis der Optimierung nach Bilanzkurve
Nun müssen wir die Qualität der Optimierung bewerten. Ich bin der Meinung, dass das Hauptkriterium die Arbeit des Expert Advisors außerhalb des Optimierungszeitraums ist. Um dies zu prüfen, führen Sie einen einzelnen Test innerhalb des Zeitraums 2010.01.01 - 2011.06.14 durch.
Vergleichen Sie zwei Ergebnisse (mit fast identischem resultierendem Gewinn) aus dem Satz der optimalen Parameter – das beste Ergebnis mit einem Ergebnis aus dem Mittelfeld. Die Ergebnisse außerhalb des Optimierungszeitraums sind durch die rote Linie abgetrennt:
Abb. 11. Bestes Optimierungsergebnis
Autor: Dmitriy Skub