Fehler, Irrtümer, Fragen - Seite 2332
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Laut der Hilfe sollte es false zurückgeben, wenn die Datei nicht existiert.
Streng genommen geht aus der Dokumentation nicht hervor, dass das Ergebnis von FileGetInteger(FileName,FILE_EXISTS) unbedingt ein bool ist
Aber die Logik ist auf jeden Fall verschnörkelt
https://www.mql5.com/ru/forum/1111/page1788#comment_4071879
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Bibliotheken: PriceChannel
fxsaber, 2018.11.28 08:19
#define PRICEST_TICK_PRICE bid
Die Site-Engine hebt das Makro nicht in Rot hervor.
bool file_exists=(bool)FileGetInteger(FileName,FILE_EXISTS);
In jedem Fall wird true zurückgegeben, wenn es eine Datei gibt oder nicht, und Fehler 5019, wenn es keine Datei gibt. Laut Hilfe sollte es false zurückgeben, wenn es keine Datei gibt.
Der richtige Weg wäre
Habe es in mt 5
Bitte stellen Sie den Code zur Untersuchung per PM zur Verfügung.
Die Website-Engine hebt das Makro nicht in Rot hervor.
Es sollte nur dann rot hervorgehoben werden, wenn das Makro zuvor definiert wurde
Woher weiß man sonst, dass ein Makro nicht schon vorher definiert wurde, und dass es sich nicht um eine zufällige Überschreibung handelt?
Manchmal funktioniert es sogar in MetaEditor:
Die Farbe sollte nur hervorgehoben werden, wenn das Makro zuvor definiert wurde
Woher wissen wir sonst, dass das Makro nicht schon vorher definiert wurde?! und es handelt sich nicht um eine versehentliche Überschreibung
Dann müssen wir definieren, was ein hervorgehobenes Makro ist und was ein nicht hervorgehobenes Makro ist.
Ich dachte, alle Makros seien hervorgehoben. Offenbar ist die Regel anders.
Dann müssen wir entscheiden, was ein hervorgehobenes Makro ist und was nicht hervorgehoben ist.
Ich dachte, alle Makros seien hervorgehoben. Offenbar ist die Regel anders.
Ich denke, wir müssen uns entscheiden, wofür das Hervorheben gut ist, ist es nur für die Schönheit oder für die Informiertheit? Zurzeit gibt es keine Regeln im eigentlichen Sinne:
Im Allgemeinen ist es wünschenswert, dass ein Identifikator, der bereits definiert wurde und nicht unverteidigt ist, farblich hervorgehoben wird
Ich denke, wir müssen entscheiden, worum es bei der Beleuchtung geht: geht es um Schönheit oder um Information? Zurzeit gibt es keine Regeln im eigentlichen Sinne:
Für mich gilt die Faustregel: Das Makro ist immer rot.
Für mich ist die Regel praktisch: Das Makro ist immer rot.
Die Unannehmlichkeiten liegen auf der Hand: Sie können nicht feststellen, ob der Bezeichner PRICEST_TICK_PRICE zuvor definiert wurde oder nicht
Und warum sollte es hier (3)
rot sein? Und wenn sie hier nicht rot ist (3), warum sollte sie dann in (1) rot sein?
Praktische Regel: ein Bezeichner ist nur dann rot, wenn er zuvor(!) definiert und nicht rückgängig gemacht wurde
A100:
А в чем здесь удобство?
Ich kann sehen, dass dies ein Makro ist. In diesem Fall brauchen Sie #define lateral nicht zu sehen.
Die Unannehmlichkeiten liegen auf der Hand: Es ist nicht nachvollziehbar, ob die Kennung PRICEST_TICK_PRICE zuvor definiert wurde oder nicht.
Ich habe nie versucht, sie anhand der Farbe zu bestimmen. Außerdem, wenn alles in #ifdef steht, können MQL4 und MQL5 unterschiedliche Farben haben. Am einfachsten ist es, wenn Sie ALT+G auf den Makronamen eingeben, um zu sehen, ob er vorhanden ist oder nicht.
Praktische Regel: Ein Bezeichner ist nur dann rot, wenn er zuvor(!) definiert wurde
Mir wäre es recht, wenn das Makro zumindest einmal irgendwo in #define, #ifdef, #undef usw. erwähnt würde. Auch wenn sie nicht definiert ist.