Merkmale der Sprache mql4, Feinheiten und Techniken - Seite 5

 
Artyom Trishkin:

Ich kann es im Moment nicht überprüfen, aber MQL_TESTER scheint alles andere zu enthalten. Aber alles andere schließt sich nicht gegenseitig ein.

Das heißt, um zu verstehen, dass das Programm im Tester (in einem der aufgelisteten Modi) funktioniert, müssen Sie nur das allererste Flag überprüfen.

In dem Beispiel ging es um etwas anderes.
 
fxsaber:
In dem Beispiel ging es um etwas anderes.
Dann habe ich es nicht verstanden - worum ging es da?
 
Artyom Trishkin:
Dann verstehe ich nicht - worum geht es?
static const wird durch eine Funktion initialisiert.
 
fxsaber:
static const wird durch eine Funktion initialisiert.
Ahhhh ..., "...Semyon Semyoyonych"... (с)
 
fxsaber:
Die statische Konstante wird durch eine Funktion initialisiert.

1. Wo im Programm ist dies zu finden?

Ich nehme an, dass es im Bereich der globalen Variablen liegt. Ganz zu schweigen davon, dass globale Variablen keinen statischen Modifikator benötigen, spielt die Initialisierungssequenz eine sehr wichtige Rolle.

Mein Niveau der Programmierprofessionalität ist viel niedriger als das Ihre, deshalb führe ich einige Experimente auf einem Niveau durch, an das Sie nicht einmal denken... Angeblich.

Hier ist also die Initialisierungssequenz: (für diejenigen, die es nicht kennen)

Zuerst die Variablen auf globaler Ebene, dann die statischen, je nach Priorität der Funktionen OnInit(), OnTick() oder OnCalculate()... Ich hatte kein Interesse an weiteren, und ich hatte auch kein Interesse an den lokalen, die es zu meiner Zeit gab. Es stellt sich also heraus, dass in diesem Code die Funktion aufgerufen wird, bevor die statischen Variablen initialisiert sind, daher der Fehler, von dem wir sprechen. Die Funktion wird aufgerufen, bevor die Variable stInt initialisiert wird.

2. Zu Beginn dieses Zweigs sprachen wir über das Schließen von Aufträgen nach Preis OrderClosePrice(), erinnern Sie sich? Das funktioniert auch, aber es kann zu Problemen führen. Das ist auch in diesem Fall so.

Aus diesem Grund gibt es in der Hilfe keine solche Funktion. Damit Sie beim Schreiben Ihres d***-Codes nicht mit Beschwerden überflutet werden, dass Dinge, die in der Dokumentation angegeben sind, nicht funktionieren. Sie wissen, wie viele dieser Programmierer hier anwesend sind. Und wie viele unzulängliche Personen wurden auf Lebenszeit gesperrt? Vermutlich wieder...

 
Alexey Viktorov:
Offensichtlich lesen Sie etwas zwischen den Worten eines einzigen Satzes

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Merkmale der Sprache mql4, Feinheiten und Tricks

fxsaber, 2017.04.29 10:54

Was das Thema Statik betrifft, so gibt es in beiden Sprachen einen sehr feinen Punkt

In diesem Satz steckt keine versteckte Bedeutung.


Was das Beispiel angeht, so funktioniert es so oder so.

 
fxsaber:
Sie müssen etwas zwischen den Worten des einzigen Satzes gelesen haben

In diesem Satz steckt keine versteckte Bedeutung.


Was das Beispiel betrifft, so funktioniert es so oder so.

Nun, es gibt einen Link mit einem Beispiel für Code mit einem Fehler zusätzlich zu Ihrer Phrase. Meine Antwort bezog sich nicht auf Ihre Formulierung, sondern auf diesen falschen Code, der genau der g***-Code ist.

Ich habe keine Zweifel daran, dass Ihr Codebeispiel funktioniert.

 
Alexey Viktorov:

Es gibt also einen Link mit einem Beispiel für einen fehlerhaften Code zusätzlich zu Ihrer Formulierung.

Im Titel des Themas ist das Wort "Subtilität" enthalten. Dieser Code ist eine Demonstration der Raffinesse.

Ich sehe keinen Grund, warum Entwickler diesen Code nicht zum Laufen bringen können - was der Autor sehen wollte. Ob sie das tun oder nicht, das ist seine Bewerbung beim SD. Aber das Beispiel selbst ist anschaulich.

 
fxsaber:

Im Titel des Themas ist das Wort "Subtilität" enthalten. Dieser Code ist eine Demonstration der Raffinesse.

Ich sehe keinen Grund, den Entwicklern nicht zu gestatten, diesen Code zum Laufen zu bringen - was der Autor ja auch wollte. Ob sie das tun oder nicht, das ist seine Bewerbung beim SD. Aber das Beispiel selbst ist anschaulich.

Nach unserem Dialog begann es, sich auf die Subtilität zu beziehen. Vorher war es wie eine Fehlermeldung. Nur kann man das nicht als Fehler bezeichnen.

Haben Sie einen Vorschlag, wie man die Initialisierungssequenz ändern kann, damit dieser Code so funktioniert, wie Sie es wünschen? Irgendwie habe ich das Gefühl, dass diese Anfrage ohne jede Antwort hängen bleibt.

 
Alexey Viktorov:

Nach unserem Dialog begann es, sich auf die Subtilität zu beziehen. Davor war es wie eine Fehlermeldung. Nur kann man das in keiner Weise als Fehler bezeichnen.

Wenn es sich um einen Fehler gehandelt hätte, wäre ein anderes Thema gewählt worden. Außerdem wäre eine Neuveröffentlichung gar nicht möglich gewesen, da die Anwendung in der SD-Datei hängt. Das ist genau eine Feinheit, die man kennen sollte.

Haben Sie einen Vorschlag, wie man die Initialisierungssequenz ändern kann, damit dieser Code so funktioniert, wie Sie es wünschen? Aus irgendeinem Grund habe ich das Gefühl, dass dieser Antrag unbeantwortet bleiben wird.

Ich bin kein Programmierer. Ich nehme an, dass dieser Code in C++ funktioniert.
Grund der Beschwerde: