Nicht für MT-Entwickler! Wodurch soll INIT_PARAMETERS_INCORRECT ersetzt werden? - Seite 7

 
Сергей Таболин:

Sie scheinen derjenige zu sein, der das Thema völlig verfehlt hat. Ihr überheblicher "Rat" geht also zum Teufel!

Es geht nicht den Abfluss hinunter))

Ihre dilettantische Frage ist beantwortet, ebenso wie mein übermütiger Rat.

Sie sind kein Moderator oder Administrator, also haben Sie nicht zu entscheiden, wer aufs Kreuz gelegt wird.

 
TheXpert:

Man muss nicht einmal die Grundlagen der genetischen Algorithmen verstehen, um die Optimierungstaste zu drücken.

Nein, das ist alles, was das Trocknen von Katzen in der Mikrowelle betrifft.

Es ist nicht nötig, diese konsumistische Einstellung zu fördern: "Ich habe auf den Knopf gedrückt, warum funktioniert es nicht?!".

ps: mein Beitrag hat nichts mit dem Einsatz von Genetik zu tun.

 
Сергей Таболин:

Sie irren sich grundlegend.

Noch einmal, als Nutzer sehe ich: Optimierung langsam/schnell.

Das war's, ich bin nicht interessiert. Weder als vertieftes Wissen, noch im Hinblick auf grundlegende Dinge.

Ist das Ihre Lebenseinstellung? Ich fürchte, dass Sie sich mit einer solch dilettantischen Herangehensweise an die Dinge eine Menge Ärger einhandeln werden. Vor allem in finanziellen Angelegenheiten. Wenn Sie nicht verstehen wollen, werden Sie für diejenigen, die verstehen wollen, zum Futter.

Wenn dort "schnell" und "langsam" steht, ist der erste Gedanke, der einem vernünftigen Menschen kommen sollte: Warum gibt es ein "langsam", wenn die gleichen Ergebnisse auch schnell erzielt werden können?

Aber jedem das Seine.

 
Сергей Таболин:

Das ist richtig.

Ich bin nur der Meinung, dass die Einschränkungen von den Entwicklern so weit wie möglich behoben werden sollten. Das Gleiche gilt für Schwächen.

Ich versuche, die genetische Optimierung überhaupt nicht einzusetzen. Aber wenn es sein muss, möchte ich mich nicht in diese Algorithmen einmischen. Nun, es ist nicht für einen Benutzer.

Ich sitze zum Beispiel an meinem Computer, klicke einfach auf die Tasten und kümmere mich überhaupt nicht darum, was von dem Moment an passiert, in dem ich die Taste drücke, bis das Zeichen auf dem Bildschirm erscheint. Ich bin überhaupt nicht daran interessiert, wie der Prozessor, Grafikkarte, Schrauben, Kühler, wie sie interagieren. Es ist auch nicht für den Durchschnittsnutzer geeignet.

Nun, das ist genau der Grund - Sie müssen verstehen, dass das Drücken einer Symboltaste ein einzelnes Symbol erzeugen soll. Und es gibt Grenzen, zum Beispiel bei der Klickgeschwindigkeit. Und Sie versuchen, die Taste 50 Mal pro Sekunde zu drücken, und ärgern sich, dass nicht 50 Zeichen angezeigt werden.

Frage - die Fähigkeit, 50 Zeichen pro Sekunde wahrzunehmen - sollte diese Beschränkung aufgehoben werden? Würden die meisten Nutzer es nicht im Gegenteil als schlimmer empfinden, wenn Kontaktgespräche als Zeichen wahrgenommen werden?

 
TheXpert:

Man muss nicht einmal die Grundlagen der genetischen Algorithmen verstehen, um die Optimierungstaste zu drücken.

Warum sollte er?

Wenn er es nicht verstehen sollte, sollte er nicht fragen, "warum ich diesen Müll bekommen habe". Wenn es funktioniert hat, dann hat es "einfach funktioniert". Das war so geplant.

Jedes Werkzeug erfordert ein gewisses Maß an Verständnis. Dies schließt die Verwendung von Blackboxen nicht aus, aber auch bei der Verwendung von Blackboxen muss man die grundlegenden Muster, nach denen die Blackbox funktioniert, genau verstehen.

 

Meine Herren Kameraden!

Wir sind dabei, in eine Diskussion darüber abzugleiten, wer was versteht und ob er es verstehen sollte oder nicht. Und die inhaltliche Frage wurde in den Hintergrund gedrängt.

Ich kenne die Mechanismen der Genetik nicht, also bemühen Sie sich, zu verstehen, was ich meine.

Es gibt 117649 Varianten (Passagen). Davon sind nur 1953 zulässig. Grundsätzlich sind die wirklich inakzeptablen 1 (000000)!!! Und 115695 sind Wiederholungen. Verschiedene Varianten dieser 1953 "zulässigen". Um Zeit und Ressourcen zu sparen, schließe ich sie mit INIT_PARAMETERS_INCORRECT aus.

Nächste. Die Genetik sammelt die erste Population von 512 Individuen. Richtig?

Und zu dieser Population gehören sofort 502 "inakzeptable" Personen. 10 arbeitende Personen sind nicht genug. Ich stimme zu.

Aber 512 ist nur 1/4 von 1953 (ungefähr).

Ohne weiter in die Genetik einzutauchen, ist mir nicht klar , warum die erste Population nicht nur aus den "zulässigen" Parametern zusammengesetzt werden kann.

Und was hindert spätere Populationen daran, nur von gültigen Parametern zu sammeln?
 
Andrey Khatimlianskii:

Nein, so weit geht es nicht, wenn man Katzen in der Mikrowelle trocknet.

Es gibt keinen Grund, diese konsumistische Einstellung zu fördern: "Ich habe auf den Knopf gedrückt, warum funktioniert es nicht?

Ich spreche nur über diese Schaltfläche. Ich habe meinen Standpunkt oben dargelegt. Ich sage Ihnen noch mehr, ich kenne genetische Algorithmen, sie helfen mir in keiner Weise bei der Optimierung
 

Unter anderem verwende ich persönlich INIT_PARAMETERS_INCORRECT nur im Optimierungsmodus, um Parameter auszusieben, die nicht buchstäblich ungültig sind, sondern einfach nur überflüssig sind.

Ein Beispiel:

input   bool   использовать_параметр   = true;
input   int    парам_1                 = 5;
input   int    парам_2                 = 12;
input   int    парам_3                 = 100;
input   int    парам_4                 = 1;

........

Wenn also während des Tests und während der Arbeit des Expert Advisors beiusing_parameter = false seine Parameter absolut keine Bedeutung haben, dann ist während der Optimierung die Suche nach diesen Parametern einfach unnötig, so dassINIT_PARAMETERS_INCORRECT bis auf einen einzigen Durchgang mit den Anfangswerten ausgegeben wird. Das spart eine Menge Zeit. Schließlich gibt es für einen gültigen Ausweis eine ganze Reihe von nutzlosen Ausweisen. Und die Genetik betrachtet das Aussieben nutzloser Pässe als einen groben Fehler.

Entwickler, anstatt irgendwie dieses Problem zu lösen, schicken Sie zu studieren diese sehr Genetik mit Verboten angewendet. Damit sie Zeit hatten, es zu studieren, nehme ich an.

Ich wiederhole noch einmal: Der Benutzer muss nicht wissen, wie die Genetik funktioniert! Es liegt an den Entwicklern, eine Lösung für dieses Problem zu finden.

 
Сергей Таболин:

Unter anderem verwende ich persönlich INIT_PARAMETERS_INCORRECT nur im Optimierungsmodus, um Parameter auszusieben, die nicht buchstäblich ungültig sind, sondern einfach nur überflüssig sind.

Ein Beispiel:

Wenn also während des Tests und während der Arbeit des Expert Advisors beiusing_parameter = false seine Parameter absolut keine Bedeutung haben, dann ist während der Optimierung die Suche nach diesen Parametern einfach unnötig, so dassINIT_PARAMETERS_INCORRECT bis auf einen einzigen Durchlauf mit den Anfangswerten ausgegeben wird. Das spart eine Menge Zeit. Schließlich gibt es für einen gültigen Ausweis eine ganze Reihe von nutzlosen Ausweisen. Und die Genetik betrachtet das Aussieben nutzloser Pässe als einen groben Fehler.

Entwickler, anstatt irgendwie dieses Problem zu lösen, schicken Sie zu studieren diese sehr Genetik mit Verboten angewendet. Damit sie Zeit hatten, es zu studieren, nehme ich an.

Ich wiederhole noch einmal: Der Benutzer muss nicht wissen, wie die Genetik funktioniert! Eine Lösung für dieses Problem zu finden, ist jedoch eine Aufgabe für die Entwickler.

Sie haben 4 Parameter, also müssen Sie organisieren, wie diese 4 Parameter nur mit den richtigen Werten funktionieren, dann kann die Genetik von Nutzen sein.

 
Сергей Таболин:


Es gibt 117649 Optionen (Pässe). Davon sind nur 1953 gültig. Im Prinzip sind die wirklich inakzeptablen 1 (000000)!!! Und 115695 sind Wiederholungen. Verschiedene Varianten dieser 1953 "zulässigen". Um Zeit und Ressourcen zu sparen, schließe ich sie mit INIT_PARAMETERS_INCORRECT aus.

Ich persönlich verwende INIT_PARAMETERS_INCORRECT meist nur imOptimierungsmodus, um Parameter auszusieben, die nicht wortwörtlich unzulässig sind, sondern einfach nurüberflüssig.

Genau das ist Ihr Fehler: In der Genetik gibt es keine "unnötigen" Pässe. Es legt alles in die Regale, sortiert Unnötiges aus, auf Kosten dessen, was an Zeit und Ressourcen eingespart wird. Und Sie lenken es nur ab.

Im Grunde widersprechen Sie sich selbst. Erst sagen Sie, dass Sie wollen, dass alles von selbst funktioniert, indem Sie einen magischen Knopf drücken, ohne zusätzlichen Aufwand Ihrerseits. Aber gleichzeitig schaffen Sie Schamanen im Code, die angeblich dem Optimierungsalgorithmus helfen.

Kurzum, jetzt ist alles klar:

Sergej Tabolin:

Wie wäre es damit:

121

dann wird das Ergebnis wie 21 sein. Und eine Kette von 21 würde dieses Ergebnis wiederholen. Überschneidungen, zusätzliche Zeit für im Prinzip nutzlose Läufe...

Sie müssen nichts durch INIT_PARAMETERS_INCORRECT eliminieren. 121 gemäß Ihrer Programmlogik berechnen, und die Genetik wird ihre Arbeit tun, und das Ergebnis wird in weniger als 1953 Durchläufen erzielt (hoffe ich).

Wenn Sie mit der langsamen vollständigen Suche optimieren, sind zusätzliche Durchläufe natürlich nicht erforderlich. Sie können in Ihrem Expert Advisor einen zusätzlichen Parameter einführen, der die Art der Optimierung festlegt. Wenn es sich um eine vollständige Suche handelt, werden die zusätzlichen Durchläufe abgelehnt, wenn es sich um eine genetische Suche handelt, werden sie nicht abgelehnt. Es ist schade, dass MQL keine Möglichkeit bietet, die Art der Optimierung zu kennen. Die Entwickler sollten darum bitten, eine solche Funktion hinzuzufügen.