Ihre Symbole und Ihre Datafeeds in Metatrader 5 - Seite 4

 
zaskok:

Es gibt heuristische Methoden, die sich am besten zur Optimierung von Handelssystemen eignen. Genau dafür wurden sie entwickelt, im Gegensatz zu den universellen GAs. Glauben Sie, dass es möglich wäre, die einzige heuristische Methode im Tester durch Ihre eigene, in MQL5 geschriebene Methode zu ersetzen? Wenn wir den Tester in Bezug auf die Anpassung der Eingabedaten drastisch verbessern wollen, dann wäre es sinnvoll, die Optimierungsmethoden anzupassen (benutzerdefinierte Optimierungskriterien sind schon lange verfügbar), um ihm die beste Leistung zu verleihen.

Wenn Sie etwas anderes als GA wollen, dann nennen Sie diese Methoden bitte genau beim Namen und nennen Sie Argumente mit direkten Belegen für die Vorteile.

Aber die wichtigste Frage ist: Was genau ist es, mit dem Sie bei GA nicht zufrieden sind? Es findet den Lösungsbereich nicht für Sie? Selbst bei 10-maligem aufeinanderfolgenden Abtasten erhalten Sie keine Vorstellung von den Clustern mit den gewünschten Merkmalen?

Natürlich wissen Sie das. Sehr schnell und effizient. Zehn- oder hunderttausendmal schneller als die übliche rohe Gewalt.

Erzielen Sie mit anderen Methoden (z. B. Monte Carlo oder Annealing) schnellere oder bessere Ergebnisse? Das ist keine Tatsache.

Aber hier ist die Tatsache, dass unser genetischer Algorithmus eigene Laufbewertungskriterien hat, die jedem Programmierer die Freiheit geben, seine oder ihre eigenen Selektionsvarianten zu implementieren. Dieser Mechanismus ist im Wesentlichen der Schlüssel zur Entwicklung unserer eigenen Heuristik.

Darüber hinaus haben wir MQL5-Steuerungs-/Überschreibungsfunktionen für Eingabeparameter, die es uns ermöglichen, die Aufzählung von nicht numerischen/nicht linearen Parametern zu implementieren, indem sie in spezielle lineare numerische Zähler virtualisiert werden. Nehmen Sie zum Beispiel 30 nicht numerische Parameter, einschließlich Daten aus Dateien, wandeln Sie sie in einen 64-Bit-Zähler[i] um und verdrehen Sie ihn als Arbeitsparameter. Es ist Sache des Programmierers, zu entscheiden, was darin enthalten ist. Und die Funktion Ihres eigenen Bewertungskriteriums hilft auch bei der Erstellung Ihrer eigenen heuristischen Methode.

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
zaskok:

Es gibt heuristische Methoden, die sich am besten zur Optimierung von Handelssystemen eignen. Dafür sind sie im Gegensatz zu den universellen GAs maßgeschneidert. Glauben Sie, dass es möglich wäre, die einzige heuristische Methode im Tester durch Ihre eigene, in MQL5 geschriebene Methode zu ersetzen? Wenn wir den Tester in Bezug auf die Anpassung der Eingabedaten drastisch verbessern wollen, wäre es sinnvoll, die Optimierungsmethoden anzupassen (benutzerdefinierte Optimierungskriterien gibt es schon lange), um ihm die beste Leistung zu verleihen.

Ich wende diese Methode an, um nach Extremen zu suchen. So sieht zum Beispiel die Suche nach Funktionsmaxima aus:

und das ist die Suche selbst:

 

Diese ist im MT5-Tester enthalten, einschließlich der 3D-Visualisierung.

 
Renat:
Wir haben uns entschlossen, Schnittstellen zu öffnen, um unsere eigenen Datenfeeds für MT5 zu schreiben.

Es steht Ihnen frei, Ihre eigenen Datenquellen zu schreiben, einschließlich rltime-Datenquellen. Auf diese Weise können beliebige Daten, einschließlich detaillierter Verlaufsdaten und Level2-Zuhaltungen, eingefügt werden.

Standardmäßig stellen wir eine Reihe interner Datendateien zur Verfügung, darunter auch Offline-Dateien. Auch virtuelle Charaktere werden im Testgerät verfügbar sein.

All dies ist natürlich kostenlos.

Halleluja! Wie viele Jahre haben wir darum gebeten, und nun ist es endlich soweit... Es fließen sogar Tränen der Freude und Rührung:)

Ich persönlich war immer durch den Mangel an Geschichte für MT5 behindert. Ich musste Recherchen in Drittanbieterprogrammen wie Wealth-Lab durchführen und MT5 verwenden, um Handelsroboter zu schreiben. Jetzt besteht kein Bedarf mehr an Programmen von Drittanbietern.

 
forexman77:

Wenn es zu viele Variablen zu optimieren gibt, ist die Wahrscheinlichkeit groß, dass man sich an die Vergangenheit anpasst.

Mit zunehmender Anzahl der Variablen steigt die Optimierungszeit exponentiell an, und es gibt keinen Ausweg aus diesem Problem.

Es gibt einen Ausweg: einen superstarken Computer von der Größe eines Hauses)

Ich bin mit diesem Problem vertraut und habe einen Algorithmus zu seiner Lösung ausgearbeitet. Was ich nicht verstehe, ist, dass sie mir wieder aufzwingen wollen, dass Genetik besser ist als Brute-Force... Ich glaube nicht, und es gibt Gründe und positive Beispiele, z.B. Profinity wurde genau durch das Ausprobieren von Varianten geschaffen, jetzt ist seine Relevanz in der Vergangenheit. aber trotzdem.

Auch hier ist unklar, warum ein so großer Markt von Fernagenten abgeschnitten werden sollte, sind sie so beschäftigt, wie sie es sein wollen.... nicht so, 80% (imho) der bestehenden sind untätig, und dann schneiden sie ihre potentielle Arbeitsfront ab...

 
Renat:

Diese ist im MT5-Tester enthalten, einschließlich der 3D-Visualisierung.

Das ist großartig, ich wusste nicht, über diese Sache, nur es hat nicht funktioniert für mich, die Schalterpositionen in 3D sind inaktiv, sollte es etwas Besonderes in den Code sein?
 
IvanIvanov:
Toll, ich wusste nichts von dieser Sache, aber bei mir hat es nicht funktioniert, das Umschalten der Positionen in 3D ist inaktiv, gibt es etwas Besonderes im Code?
MetaTrader 5 Strategie-Tester 3D-Visualisierung
 

О ! Bravo, Admins!

Ich verstehe, dass das Debugging von historischen Daten endlich erscheint?

 
Renat:

Wenn Sie etwas anderes als GA wollen, dann nennen Sie diese Methoden bitte genau beim Namen und nennen Sie Argumente mit direkten Belegen für die Vorteile.

Aber die wichtigste Frage ist: Was genau ist Ihr Problem mit GA? Es findet den Lösungsbereich nicht für Sie? Selbst bei 10-maligem aufeinanderfolgenden Abtasten erhalten Sie keine Vorstellung von den Clustern mit den gewünschten Merkmalen?

Natürlich wissen Sie das. Sehr schnell und effizient. Zehn- oder hunderttausendmal schneller als die übliche rohe Gewalt.

Erzielen Sie mit anderen Methoden (z. B. Monte Carlo oder Annealing) schnellere oder bessere Ergebnisse? Nicht wirklich.

Es ist recht problematisch, einen Beweis nur für Sie zu erbringen, da Sie auf die öffentliche Argumentation Ihrer Kurzsichtigkeit in einigen Fragen nicht ganz richtig reagieren. Und dieser Thread, den Sie selbst begonnen haben, ist leider der beste Beweis für diese Behauptung. Natürlich waren es nicht die anderen, die dies seit Jahren fordern und verlangen, und Sie waren angeblich abgestoßen.... Aber was war, ist, was war. Es scheint jedoch sinnlos zu sein, Ihnen das Gegenteil zu beweisen, da der menschliche Faktor und nicht die Logik für die Bewertung ausschlaggebend ist.

Deshalb werde ich logische Argumente für heuristische Optimierungsmethoden anführen, die sich etwas von GA unterscheiden, nicht für Sie, sondern für die Nutzer des Forums. Nachfolgend finden Sie einige Auszüge aus dem von mir zitierten Artikel + meine Betonungen, die Sie besonders beachten sollten:

Alle stochastischen Optimierungsmethoden haben einen gemeinsamen Nachteil: Sie können bei einem lokalen Extremwert stehen bleiben und das Optimum aus den Augen verlieren. Um dies zu vermeiden, müssen die Stichprobenflächen und die Anzahl der Iterationen maximiert werden. Dies beeinträchtigt jedoch die Berechnungsgeschwindigkeit. Wir müssen also immer nach der goldenen Mitte suchen.


Wenn wir jedoch darüber nachdenken, brauchen wir das globale Extremum selbst nicht, wenn es keine Konvergenz zu ihm gibt. Das heißt, wenn es keine bedingte gleichmäßige Abnahme um den Extremwert herum gibt, ist es sehr wahrscheinlich, dass dieser globale Extremwert zufällig ist und uns wenig nützt, da er unzureichend ist und unsere Berechnungen stören wird. Deshalb ist es so wichtig, die Parameter in der Umgebung des Extremwerts zu untersuchen. Wenn es eine Konvergenz gibt, bedeutet dies, dass es ein System gibt und diese Strategie weiter untersucht werden kann.

Wie ich bereits oben erwähnt habe, ist es wichtig, den Bereich um das Extremum zu untersuchen, und deshalb habe ich beschlossen, bis zum Ende zu konvergieren und alle benachbarten Strategien in der letzten Iteration zu testen. Ich habe nicht mit den Gradienten gespielt und die Konvergenz statisch als Prozentsatz der Ausgangsstichprobe festgelegt. Das bedeutet, dass wir gleich zu Beginn entscheiden, wie stark wir die mehrdimensionale Matrix nach jeder Iteration um 1 % oder 20 % kürzen. Außerdem entscheiden wir in Anbetracht unserer Zeitvorgaben sofort, wie viele Strategien wir bei jeder Iteration aus der Matrix zum Testen entnehmen werden. Die Größe der Matrix ist für uns also überhaupt nicht wichtig, wir wissen genau, wie viele Iterationen und in welchem Umfang wir iterieren werden! Das ist das Schöne an stochastischen Methoden.

Nach der ersten Iteration, wenn der allererste Raum erkundet wurde, müssen wir den Erkundungsbereich für die nächste Probe irgendwie verkleinern. Aber wir wissen so gut wie nichts über diesen Raum, und ich haltees für ziemlichleichtsinnig, unbekannte Gebiete abzuschneiden. Im Allgemeinen ist der Algorithmus darauf ausgelegt, das globale Maximum zu finden, und wir sind an allen lokalen und globalen Maxima interessiert.

Wir müssen alle Parameter kennen, bei denen die Strategie einen Gewinn erzielen kann. Vielleicht bringt eine Strategie bei einigen Parametern gute Gewinne, ist aber riskanter, während sie bei anderen Parametern einen etwas geringeren Gewinn erzielt, sich aber als stabiler und weniger riskant erweist, und wenn wir unserem Algorithmus folgen, können wir das aus den Augen verlieren.

Wir entfernen die schlechtesten Strategien sinnvollerweise aus dem Untersuchungsraum. So erkunden wir in den nächsten Iterationen die Bereiche mit den profitableren Strategien und verschwenden keine wertvolle Testzeit mit der Erkundung von Bereichen, die wir nicht benötigen. Schließlich konvergiert unser Untersuchungsgebiet mit allen Maxima des Raums.

Nehmen wir an, wir haben den Raum erkundet und haben eine ungefähre Vorstellung davon, wie viele Höhen es gibt. Was bedeutet das für uns? Bis jetzt fast nichts...
Wir müssen diese Maxima untersuchen und herausfinden, ob sie zufälliger Natur oder systembedingt sind. Zu diesem Zweck können wir mit dem Optimierer-Tester die besten Strategien auswählen und die Bereiche um diese herum weiter untersuchen. Untersuchen Sie die Strategien, die wir bei der Optimierung übersehen haben. Wir wissen jetzt fast alles über Weltraumextreme! Die gewonnenen Daten können weiter auf Clusterbildung, Überoptimierung usw. untersucht werden. Aber das ist eine andere Geschichte!

Es geht nicht um diesen Artikel, sondern um allgemeine Prinzipien der Suche und Optimierung von TK, die fast nirgendwo diskutiert werden. Daher ist GA nicht das, was wir im Arsenal der TS-Optimierung haben wollen.

Aber hier ist die Tatsache, dass die proprietären Laufbewertungskriterien in unserem genetischen Algorithmus jedem Programmierer die Freiheit geben, seine oder ihre eigenen Selektionsvarianten zu implementieren. Dieser Mechanismus ist im Wesentlichen der Schlüssel zur Entwicklung unserer eigenen Heuristik.

Darüber hinaus haben wir MQL5-Steuerungs-/Überschreibungsfunktionen für Eingabeparameter, die es uns ermöglichen, die Aufzählung von nicht numerischen/nicht linearen Parametern zu implementieren, indem sie in spezielle lineare numerische Zähler virtualisiert werden. Nehmen Sie zum Beispiel 30 nicht numerische Parameter, einschließlich Daten aus Dateien, wandeln Sie sie in einen 64-Bit-Zähler[i] um und verdrehen Sie ihn als Arbeitsparameter. Es ist Sache des Programmierers, zu entscheiden, was darin enthalten ist. Und die Funktion Ihres eigenen Bewertungskriteriums hilft auch bei der Erstellung Ihrer eigenen heuristischen Methode.

Ich habe noch nie von "MQL5-Funktionen zur Verwaltung/Neudefinition von Eingabeparametern" gehört - geben Sie mir einen Link.
 
event:

Ich wende diese Methode an, um Extrema zu finden. So sieht es zum Beispiel aus, wenn man Maxima einer Funktion findet:

Ich danke Ihnen! Könnten Sie die Formel Ihrer Näherungsfunktion zur Verfügung stellen, um zu versuchen, ihre lokalen Extrema in OnTester mit der regulären GA zu finden - zum Vergleich.

Es wäre interessant, von Ihnen einige konstruktive Worte zu dieser Methode zu hören (Beschreibung, Quellen, Vor- und Nachteile).