Fehler, Irrtümer, Fragen - Seite 1575

 
Slawa:
Zeigen Sie, wie die Registerkarte mit der Tabelle der Optimierungsergebnisse aussieht

Zum Beispiel so (Balance + maximaler Erholungsfaktor) :


d.h. ein Nan reicht aus, um die Karte zu töten (sie ist tot, auch wenn es keine weiteren Nanos gibt).

// Aus der Tabelle können wir übrigens ersehen, dass in diesem Fall nan mit negativem Saldo (Ersteinlage 1000000) erzielt wird.

 
Renat Fatkhullin:

Wörtlich, wenn Sie Ihre eigenen Worte nicht mit Ihren eigenen Beweisen untermauern.

Sie haben sogar ein Bild von dem eines anderen gegeben, obwohl Sie Ihr eigenes Kompilationsprotokoll (kein Bild) hätten beifügen können.

....

Wenn der Compiler Fehler im Code anzeigt, müssen Sie ihm glauben.

Und wenn Sie es nicht glauben, können Sie das Kompilierungsprotokoll im Forum zum Parsen veröffentlichen. Auch dort gibt es Fehler und Kompilierungszeit.

Ok, hier ist Build 1159, wo es in etwa einer Sekunde kompiliert, Build 1241, wo es in etwa 20 Sekunden kompiliert, und Build 1325, wo es nicht kompiliert (Fehler)

Dateien:
MQL_1159.txt  7 kb
MQL_1241.txt  7 kb
MQL_1325.txt  8 kb
 
Die 2600 Warnungen in der alten Version sollten Sie nicht verwirren.

Aber 2000 Warnungen und Fehler, die der neue Compiler gefunden hat, machen den Compiler plötzlich falsch?

Ich empfehle Ihnen, diesen Schlamassel in Ihrem Code zu beseitigen und aufzuräumen.

Es ist wirklich seltsam, eine solche Aussage zu machen, wenn der Compiler über Probleme im Code schreit. Wir erhöhen absichtlich die Anforderungen an die Codequalität und wollen Probleme nicht standardmäßig ausblenden. Das ist die Finanzindustrie.
 
Renat Fatkhullin:
2600 Warnungen im alten Build verwirren Sie nicht.

Aber 2000 Warnungen und Fehler, die der neue Compiler gefunden hat, machen den Compiler plötzlich falsch?

Ich empfehle Ihnen, diesen Schlamassel in Ihrem Code zu beseitigen und aufzuräumen.

Es ist wirklich seltsam, eine solche Aussage zu machen, wenn der Compiler über Probleme im Code schreit. Wir erhöhen absichtlich die Anforderungen an die Codequalität und wollen Probleme nicht standardmäßig ausblenden. Das ist die Finanzindustrie.

Warnungen sind Warnungen, Bugs sind Fehler. Jeder kennt den Unterschied. Bis zum letzten Build hat sich alles gut kompiliert. Und wenn Sie dem Compiler neue Regeln unterjubeln, ohne uns darüber zu informieren, ist dann mein Code schuld? Warum verschieben Sie das Problem von schlecht zu schlechter?

Es gibt nur Warnungen wie "implizite Konvertierung von 'Zahl' nach 'String'", "möglicher Datenverlust durch 'String'" und "Fehlermeldungen". Was haben sie mit Fehlern zu tun, die der neueste Compiler erzeugt?

Deklaration ohne Typ
kann Funktionsvorlage nicht anwenden
Komma erwartet
nicht deklarierter Identifikator
'*' - Zeiger kann nicht verwendet werden
Klasse Typ erwartet
keine der Überladungen kann auf den Funktionsaufruf angewendet werden
Objektzeiger erwartet
Semikolon erwartet

Es ist also offensichtlich, dass hier einige Änderungen in der Sprachsyntax aufgetaucht sind, aber wir schweigen. Und Sie moralisieren hier über "Codequalität" usw. und lenken das Gespräch auf die übliche Weise ab.

 
Alexey Navoykov:

Warnungen sind Warnungen, aber Fehler sind Fehler, jeder kennt den Unterschied. Bis zum letzten Build wurde alles gut kompiliert. Und wenn Sie heimlich ein paar neue Regeln in den Compiler eingebaut haben, ohne uns zu informieren, ist dann mein Code schuld? Warum verschieben Sie das Problem von schlecht zu schlechter?

Es gibt nur Warnungen wie "implizite Konvertierung von 'Zahl' nach 'String'", "möglicher Datenverlust durch 'String'" und "Fehlermeldungen". Was haben sie überhaupt mit den Fehlern zu tun, die der neueste Compiler erzeugt?

ohne Typ
kann Funktionsvorlage nicht anwenden
Komma erwartet
nicht deklarierter Identifikator
'*' - Zeiger kann nicht verwendet werden
Klasse Typ erwartet
keine der Überladungen kann auf den Funktionsaufruf angewendet werden
Objektzeiger erwartet
Semikolon erwartet

Es ist also offensichtlich, dass hier einige Änderungen in der Sprachsyntax aufgetaucht sind, aber wir schweigen. Und Sie geben uns eine Moralpredigt über "Codequalität" und so weiter und lenken das Gespräch auf die übliche Weise ab.

Wenn Sie 2600 Warnungen haben, können Sie dann garantieren, dass alle Warnungen dort harmlos sind, dass Sie alle 2600 durchgegangen sind?

Was den Kopf angeht, so kann nur ein kranker Kopf so viele Warnungen akzeptieren und denken, dass es in Ordnung ist, das Recht dazu zu bekommen.

 
Alexey Navoykov:

Warnungen sind Warnungen, aber Fehler sind Fehler, jeder kennt den Unterschied. Bis zum letzten Build wurde alles gut kompiliert. Und wenn Sie heimlich ein paar neue Regeln in den Compiler eingebaut haben, ohne uns zu informieren, ist dann mein Code schuld? Warum verschieben Sie das Problem von schlecht zu schlechter?

Es gibt nur Warnungen wie "implizite Konvertierung von 'Zahl' nach 'String'", "möglicher Datenverlust durch 'String'" und "Fehlermeldungen". Was haben sie mit Fehlern zu tun, die der neueste Compiler erzeugt?

Deklaration ohne Typ
kann die Funktionsvorlage nicht anwenden
Komma erwartet
nicht deklarierter Identifikator
'*' - Zeiger kann nicht verwendet werden
Klassentyp erwartet
keine der Überladungen auf den Funktionsaufruf angewendet werden kann
Objektzeiger erwartet
Semikolon erwartet

Es ist also offensichtlich, dass hier einige Änderungen in der Sprachsyntax aufgetaucht sind, aber wir schweigen. Und Sie geben uns eine Moralpredigt über "Codequalität" usw. und lenken das Gespräch auf die übliche Weise ab.

Genosse, werden Sie immer noch Scheiße über den Compiler gießen, oder vielleicht geben Sie mir wenigstens 20 Zeilen Ihres Werkes in MQL? Ich weiß nicht, was für einen Scheiß Sie in Ihrem Code haben. Oder glauben Sie, dass alle Telepathen hier sind, um Ihnen zuzuhören, traurige Augen zu machen und all diesem Unsinn zuzustimmen?

WO BEFINDET SICH DER SPEZIFISCHE CODE, DER FEHLER VERURSACHT?

 
Alexey Navoykov:

Warnungen sind Warnungen, aber Fehler sind Fehler, jeder kennt den Unterschied. Bis zum letzten Build wurde alles kompiliert. Und wenn Sie heimlich ein paar neue Regeln in den Compiler eingebaut haben, ohne uns zu informieren, ist dann mein Code schuld? Warum verschieben Sie das Problem von schlecht zu schlechter?

Ich mische mich nicht ein. Ich habe 26 Jahre lang ununterbrochen programmiert.

Warnungen sind im Grunde genommen Fehler, wenn es sich um den Finanzsektor handelt. Und all die Tausenden von Berichten über "Zeichenverlust, Genauigkeitsverlust, Geisterverlust usw." sind ein Urteil über die Qualität des Codes. Offenbar verstehen Sie die Tragweite nicht ganz.

Geben Sie bitte in einigermaßen vollständiger Form das Codestück an, das der Compiler als Fehler anzeigt.

Sonst wirkt die ganze Diskussion unschön und unfair.

 

Ich habe einen Fehler im EA-Logbuch gefunden:

unbekannter Befehl E0

Was bedeutet das?

 

Renat Fatkhullin:

Bitte führen Sie den Mechanismus der Namespaces in MQL5 ein, Sie wissen, wie nützlich er ist, denn es sieht nicht so elegant aus, Krücken in Form von Makros einzusetzen, um identische Namen in den Deklarationen zu deaktivieren :)

 
Renat Fatkhullin:

...

Warnungen sind im Grunde genommen Fehler, wenn es sich um den Finanzsektor handelt. Und all die Tausenden von Berichten über "Verlust von Zeichen, Verlust von Genauigkeit, Verlust von Geistern usw." sind ein Urteil über die Codequalität. Offenbar verstehen Sie die Tragweite nicht ganz.

...
Ich sollte hinzufügen, dass ab einer gewissen Komplexität des Projekts die Warnungen viel schlimmere Folgen haben als gewöhnliche Kompilierfehler. Das Heimtückische an Warnungen ist, dass das Programm mit ihnen arbeitet, aber unter anderen Umständen Wunder bewirkt, die nur schwer zu beheben sind.