Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe mir die Testbilder hier angesehen. Die Bilder stimmen überein.
Den Trick mit den mehrdimensionalen habe ich noch nicht verstanden, den muss ich noch herausfinden.
Dies ist der erste Artikel in der Serie. Der Gedanke steht nicht still, der Testsatz von Funktionen wurde in Richtung Komplikation und Gegenwirkung zu Scheinerfolgen von Methoden und Falschmeldungen, die mit Null initialisiert werden, verändert. Deshalb sollten Sie sich aktuelle Artikel ansehen, zum Beispiel diesen.
Es gibt immer aktuelle Quellen auf github.
Testen von Gradientenmethoden:
https://www.mql5.com/ru/forum/475597/page2#comment_55006029
Dies ist der erste Artikel der Serie. Der Gedanke steht nicht still, der Testsatz von Funktionen wurde geändert, um ihn komplizierter zu machen und um falschen Erfolgen von Methoden, die mit Null initialisiert werden, und allgemein falschen Positiven entgegenzuwirken. Deshalb sollten Sie sich aktuelle Artikel ansehen, zum Beispiel diesen.
Die Quellen sind immer aktuell.
Aha. Wenn es Zeit und Lust gibt - werde ich für mehrdimensional machen.
Auf dreidimensionalen Bildern hat sich schon gezeigt, dass Gradienten auch auf ihnen in Lokalitäten stecken bleiben. Wenn man den Suchraum in Chargen unterteilt, ist er fixiert. Dies ist die Art und Weise mit Gradient Solver zu arbeiten und kein anderer Weg.
Ergebnis für 1000 Messungen. Vergeudete Serverzeit - 9 Minuten.
Es scheint keine Fehler zu geben, die nach den Formen des Artikels gemacht wurden.
Dies ist der erste Artikel der Serie. Der Gedanke ist nicht stehen geblieben, der Testsatz von Funktionen wurde geändert, um ihn komplexer zu machen und falschen Erfolgen von Methoden und falsch positiven Ergebnissen, die mit Null initialisiert werden, entgegenzuwirken. Deshalb sollten Sie sich die jüngsten Artikel ansehen, zum Beispiel diesen.
Es gibt immer aktuelle Quellen auf github.
Testen von Gradientenmethoden:
https://www.mql5.com/ru/forum/475597/page2#comment_55006029
Es gibt dieses f-ya in der includnik, wird es verwendet?
Ist es das gleiche f-ya, wie man die richtigen Grenzen zu bestimmen? Ich verstehe, dass ein Teil von ihm genommen wird.
Wenn ich nicht die Grenzen reduziert haben, dann die Berechnung (Suche nach dem Maximum) ist komplizierter?
Für den 25-dimensionalen Fall gefunden. Ich weiß nicht, wo die Fehler liegen.
Wenn ich die Grenzen nicht verkleinert habe, ist die Berechnung (das Finden des Maximums) schwieriger?
Nein, sie ist nicht komplizierter. Wie viele Wolkenkratzer liegen bei Ihrer Funktion über 50% der Min- und Max-Funktion? Wie viele bei mir? Auf welcher Fläche ist es einfacher, über 50% Höhe zu erreichen, wenn man die Punkte zufällig verteilt? - Ihre. Also, um es noch einmal zu betonen, die Grenzen sind falsch gesetzt.
Hier steht es dazu: https://www.mql5.com/de/articles/13923#tag3
Ich habe dieses Ergebnis aus Ihrem Code erhalten:
Ein nicht ganz so lustiges Ergebnis, aber du postest immer wieder die besten Ergebnisse aus verschiedenen Versuchen. Führen Sie 20 Versuche durch (20 Mal auf die Play-Taste drücken), oder schreiben Sie eine Schleife, die mehrere Versuche simuliert, und berechnen Sie dann das durchschnittliche Ergebnis, wie Sie es in den Artikeln tun.
Da stellt sich die Frage: Warum 100.000, warum nicht 1.000.000.000.000.000?
Sie brauchen nicht schüchtern zu sein, geben Sie eine Milliarde an, aber aus irgendeinem Grund zeigen Sie nicht die Anzahl der Aufrufe der Zielfunktion an, wie viele Aufrufe waren es? Bei Ranking-Tests sind nur 10.000 Aufrufe der Zielfunktion zulässig, und im Falle von Gradientenmethoden (bei denen der Algorithmus möglicherweise versucht, viel mehr Aufrufe an die FF vorzunehmen) gibt es im Code einen Grenzwert, bei dessen Überschreitung der Mindestwert des Ziels angegeben wird (die Methoden suchen nach einem Minimum, also wird der Wert umgekehrt):
All dies wurde bereits in den früheren Artikeln beschrieben.
Die Klasse hat Methoden GetMinRangeX (), GetMaxRangeX (), GetMinRangeY (), GetMaxRangeY (), mit deren Hilfe man die Grenzen abfragen kann (naja, und im Code der entsprechenden Testfunktionen kann man die Grenzen einfach sehen).
In der Praxis gibt es immer eine Grenze für die maximal zulässige Anzahl von Zugriffen auf das Ziel, in den Tests haben wir eine Grenze von 10 000 Zugriffen angenommen.
Wenn es keine Begrenzung gibt, weder in Bezug auf die Rechenressourcen noch auf die Zeit, ist es besser, überhaupt keine Optimierungsalgorithmen zu verwenden und eine einfache vollständige Aufzählung vorzunehmen, aber das ist im wirklichen Leben nie der Fall. Das Testen und der Vergleich von Methoden wird mit einer Höchstzahl von 10 000 Treffern zum Ziel durchgeführt. Der Sinn des Vergleichs von Algorithmen besteht darin, herauszufinden, welche Algorithmen das Ergebnis besser und mit weniger Zugriffen auf das Ziel erreichen. Je öfter ein Algorithmus auf das Ziel zugreifen muss, um vergleichbare Ergebnisse zu erzielen, desto schwächer wird der Algorithmus für die entsprechende Art von Aufgaben eingestuft.
Leider entgehen Ihnen dabei sehr subtile Punkte, die alle in den Artikeln über Optimierungsmethoden ausführlich beschrieben werden.
Es gibt Situationen, in denen die vollständige Suche das Optimum nicht finden wird, weil die Knoten des Suchgitters nicht darauf fallen.