Diskussion zum Artikel "Genetische Algorithmen - Leicht gemacht!" - Seite 14

 
Guten Tag!
Ich habe den Artikel über die Verwendung genetischer Algorithmen gelesen. Sehr beeindruckt!!!

Ich habe mehrere Fragen über die Verwendung des ZigZag-Indikators, aber die wichtigste ist, wie Sie Signale aus dem Indikator für die Ausbildung geben?

der Indikator hat einen variablen Schritt.
Danke im Voraus.
 
Debugger:
1) Ich habe den Artikel über die Verwendung von genetischen Algorithmen gelesen. Sehr beeindruckt!!!

2) Wie füttern Sie die Signale des Indikators für das Training?

3) Der Indikator hat einen variablen Schritt.

Ich entschuldige mich für meine leichte Korrektur Ihrer Nachricht. Ich hoffe auf Ihr Verständnis. Ich danke Ihnen im Voraus. :)

So:

1) Ich danke Ihnen.

2) Ich werfe es in keiner Weise an. Der Artikel sucht nach Extrema der Alternative ZZ und vergleicht den Gesamtgewinn in Pips mit dem Gewinn des ZZ-Indikators (der durch ein spezielles Skript für den maximalen Gewinn unter Berücksichtigung des Spreads voreingestellt ist).

3) Und für die Demonstration der Fähigkeiten von UGA spielt es keine Rolle. :)


ZЫ. Wenn ich Ihre Fragen nicht vollständig genug abgedeckt habe, fragen Sie mehr - ich werde versuchen, Ihnen nach besten Kräften zu helfen (oder diejenigen, die die Arbeit des UGA-Algorithmus bereits verstanden haben, werden antworten).

 

Toller Artikel, habe gerade nach etwas Ähnlichem gesucht.

Eine Klarstellung:

3.10 GenoMerging. Заимствование генов

Dieser GA-Operator hat keine natürliche Entsprechung

Das ist nicht ganz richtig.

Dieser Prozess wird in der Natur als horizontaler Gentransfer bezeichnet.

Im Allgemeinen - Respekt und Achtung vor dem Autor, nur ist es notwendig, diese Bibliothek in eine Klasse zu verpacken, um die Mobilität der Nutzung zu gewährleisten.

Aus den Bemerkungen über die Umwandlung von bool in double - erhöht sich dadurch die Anzahl der Berechnungen?

So wie ich es verstanden habe, werden für alle Gene der gleiche Variationsbereich und die gleiche Genauigkeit festgelegt. Der Bereich - spielt keine besondere Rolle, jeder gewünschte Bereich kann in den benötigten "gequetscht" werden. Aber die Genauigkeit ist schwieriger, sie muss auf das Maximum gebracht werden. Und wenn Sie 1000 verschiedene Werte für eine Variable suchen müssen, wird derselbe Suchbereich automatisch allen anderen Variablen zugewiesen, sogar den boolschen Variablen. Wird es nicht passieren, dass der Algorithmus einen ziemlich großen Teil der Rechenressourcen aufwendet, um die Werte einer solchen Variablen zu berechnen? Nehmen wir an, wir haben eine bool-Variable mit einem Bereich von -10 bis 10 und einer Genauigkeit von 0,1 - dann stellt sich heraus, dass es für den Algorithmus für diese Variable 100 VERSCHIEDENE "wahre" Werte und 100 VERSCHIEDENE "falsche" Werte gibt, die die gleichen zwei Werte der Fitnessfunktion ergeben. Darüber hinaus kann die Population selbst viele verschiedene Individuen enthalten, die sich je nach Algorithmus auf dieser Variable unterscheiden, aber gleich sind, weil der reale Wert von double ein bool ist.

Sollten wir nicht ein weiteres Array einführen, das zumindest die Präzision für jedes Gen festlegt?

 
Laryx:

1. Toller Artikel, ich habe gerade nach etwas Ähnlichem gesucht.

2. So wie ich es verstanden habe, werden für alle Gene die gleiche Variationsbreite und die gleiche Genauigkeit festgelegt. Die Bandbreite ist nicht wichtig, jede gewünschte Bandbreite kann in die erforderliche "gequetscht" werden. Aber die Genauigkeit ist schwieriger, sie muss auf das Maximum gebracht werden. Und wenn Sie 1000 verschiedene Werte für eine Variable suchen müssen, wird derselbe Suchbereich automatisch allen anderen Variablen zugewiesen, sogar boolschen Variablen. Wird es nicht passieren, dass der Algorithmus einen ziemlich großen Teil der Rechenressourcen für die Berechnung der Werte einer solchen Variablen verwendet? Nehmen wir an, wir haben eine bool-Variable mit einem Bereich von -10 bis 10 und einer Genauigkeit von 0,1 - dann stellt sich heraus, dass es für den Algorithmus für diese Variable 100 UNTERSCHIEDLICHE Werte "wahr" und 100 UNTERSCHIEDLICHE Werte "falsch" gibt, die dieselben zwei Werte der Fitnessfunktion ergeben. Darüber hinaus kann die Population selbst viele verschiedene Individuen enthalten, die sich je nach Algorithmus auf dieser Variable unterscheiden, aber gleich sind, weil der reale Wert von double ein bool ist.

3. sollten wir nicht ein weiteres Array einführen, das zumindest die Präzision für jedes Gen angibt?

1. Danke.

2. Der Artikel hält den Algorithmus so einfach wie möglich ( Open-Source-Projekt), um dem Leser das Verständnis zu erleichtern. Er ist ein Ausgangspunkt für Verbesserungen und Ausschmückungen nach Wunsch.

3. Ich selbst verwende natürlich für jedes Gen einen anpassbaren Schritt (Präzision) (geschlossenes Projekt).

 

Diese GA-Entwicklung verdient auf jeden Fall Beachtung).

Dies gilt umso mehr, als im Gegensatz zu MT4 in MT5 eine Optimierung nur bis zum vorletzten Tag möglich ist. In Anbetracht dieser Nuance wird dieses Thema für Nutzer und Entwickler von Neuro-Advisors immer relevanter. Und natürlich besteht kein Zweifel daran, dass genetische Algorithmen von den mathematischen Modellen neuronaler Netze so untrennbar sind wie der linke vom rechten Schuh).

Daher möchte ich eine Frage stellen. Andrei, sag mir, basierend auf diesen Tests und Experimenten (und ich zweifle nicht daran, dass du genug davon gemacht hast), was deiner Meinung nach und in Bezug auf deinen EA (und vielleicht nicht nur auf deinen) die besten Ergebnisse bei der Optimierung liefert? Ihr GA oder das interne GA des Terminals?

Ich danke Ihnen im Voraus für Ihre Antwort.

 
wiantin:

... was Ihrer Meinung nach und in Bezug auf Ihre EA (und vielleicht nicht nur auf Ihre) gibt bessere Ergebnisse bei der Optimierung? Ihr GA oder das interne GA des Terminals?

Mein GA liefert bessere Ergebnisse. Sie ist besser anpassbar.

Und die neuesten Versionen implementieren eine multikriterielle Suche mit Elementen der Elitenauswahl.

Aber der interne Optimierer ist auch sehr gut, wenn er mehr Einstellungen und eine multikriterielle Suche hätte, wäre er nichts wert.

 
joo:

Und die neuesten Versionen implementieren eine multikriterielle Suche mit Elementen der Elitenauswahl.

Gibt es eine Möglichkeit, sich mit ihnen vertraut zu machen?
 

Array außerhalb des Bereichs in 'UGAlib.mqh' (264,24)

Ich verstehe nicht, wie man die zulässige Anzahl von Genen erhöhen kann, ein Hinweis, wer es in Bibliotheken besser weiß.

update der Fehler begann, nicht nur bei der Erhöhung der Anzahl der Gene erscheinen...

upd 2 herausgefunden, die Sache ist nicht in der Bibliothek, mql5 nicht akzeptieren Arrays der Größen, die ich eingestellt.

 
wiantin:
Gibt es eine Möglichkeit, sich mit ihnen vertraut zu machen?
Nein. Nur wenn ich daran denke, einen Folgeartikel zu schreiben.
 
ozer-man:

Array außerhalb des Bereichs in 'UGAlib.mqh' (264,24)

beim Erreichen von 1000 Genen. Ich verstehe nicht, wie man die zulässige Anzahl von Genen erhöhen kann, Hinweis wer weiß es besser in Bibliotheken.

update der Fehler begann, nicht nur bei der Erhöhung der Anzahl der Gene erscheinen...

upd 2 herausgefunden, die Sache ist nicht in der Bibliothek, mql5 nicht akzeptieren Arrays der Größen, die ich eingestellt.

Der Fehler ist darauf zurückzuführen, dass die Größe der zweiten Dimension fest array[][const] ist.

Um diese Einschränkung zu umgehen, müssen Sie Strukturen (oder Klassen) verwenden, etwa so:

struct Сhromosome //chromosom
  {
    float Gene[]; //genes.
  };
Сhromosome Population[]; // Bevölkerung


ps. und wie kommt es, dass ich zwei ganze Beiträge verpasst habe. :)