Wünsche für MT5 - Seite 72

 
stringo:

Wir haben dies bereits diskutiert. Wir haben herausgefunden, dass wir mit den vorhandenen Funktionen auskommen können.

Wirklich? Und welche Funktionen können entfallen, bitte?
 
Warum sind globale Variablen nur vom Typ Double? Und in 4 war es ein schreckliches Hindernis, und in 5 ist es nicht klar, warum nicht, insbesondere String-Variablen.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 

TheXpert:
Да ладно? И каким же функционалом можно обойтись, напомните, пожалуйста?

Ich habe es Ihnen gesagt. Verfügbar.

Wir haben zum Beispiel die Header-Dateien einmal eingebunden. #ifdef ist nicht erforderlich.

Anstelle von Makrosubstitutionen von Konstanten in Abhängigkeit von einer Bedingung können wir Variablen verwenden, die unter verschiedenen Bedingungen unterschiedlich initialisiert werden.

Auch hier können die Bedingungen durch konstante Variablen anstelle von Defines standardmäßig definiert werden.

Vorhandensein der Konstante IS_DEBUG_MODE

Fähigkeit, spontan zu bestimmen, in welcher Umgebung das Programm arbeitet (Testen, Debuggen, visuelle Tests, Optimierung, Verwendung der DLL).

 
marketeer:
Warum sind globale Variablen nur vom Typ double? Beides hat in 4 furchtbar gestört und in 5 ist nicht klar, warum nicht, insbesondere bei den String-Variablen.

Dies ist die maximale Größe der numerischen Daten. Sie können bis zu 8 Bytes an Informationen in einer globalen Variable speichern, die Sie als lang, als 2 Ints oder als 64 Bit interpretieren können.

Warum können globale Variablen nicht vom Typ String sein, aus dem gleichen Grund, aus dem globale Variablen keine Arrays sein können - um es nicht unnötig zu komplizieren

 
stringo:

Warum globale Variablen nicht vom Typ String sein können, aus demselben Grund, aus dem globale Variablen keine Arrays sein können - um die Dinge nicht unnötig zu komplizieren

Slawa, die Öffentlichkeit wird Ihnen in diesem Fall kaum zustimmen - diese Komplikation wäre keineswegs unnötig. Möchten Sie darüber abstimmen?
 
MetaDriver:
Slava, die Öffentlichkeit würde Ihnen in diesem Fall kaum zustimmen - diese Komplikation wäre nicht unnötig. Möchten Sie darüber abstimmen?

"Überkomplizieren" bedeutet in diesem Zusammenhang, neue, langsame Funktionen für eine kleine Anzahl von Benutzern hinzuzufügen. Es wurde ein sehr effizienter Speicher- und Zugriffsmechanismus eingeführt, den wir nicht zerstören wollen.

Um Daten zwischen Programmen (und sogar zwischen Client-Terminals auf demselben Computer) auszutauschen, können Sie Dateien verwenden. Es genügt, einmal ein paar Standardklassen zu schreiben.

Übrigens, zu den globalen String-Variablen. Sie benötigen sie für den Austausch von Zeichenketten zwischen Programmen innerhalb eines Client-Terminals? Warum also nicht die Zeichenketten direkt über Benutzerereignisse übergeben? Das ist eine viel effizientere Methode als der Datenaustausch über globale Variablen.

 
stringo:

Dies ist die maximale Größe der numerischen Daten. Sie können bis zu 8 Bytes an Informationen in einer globalen Variablen speichern, die Sie als lang, als 2 Ints oder als 64 Bit interpretieren können.

Warum globale Variablen keine Strings sein können, aus demselben Grund, aus dem globale Variablen keine Arrays sein können - um die Dinge nicht unnötig zu komplizieren

Sie kennen die bekannte Argumentation: Sie machen sich das Leben leichter und den Benutzern schwerer, obwohl das Programm anscheinend für deren Länge geschrieben wurde. Es gibt keine besondere Komplikation in Bezug auf die Umsetzung für Sie, aber versuchen zu "interpretieren" diese doppelt, wie Sie aus Mangel an etwas anderes wollen - das ist eine Komplikation für eine Anwendung Experte, um nicht zu sagen stärker. Während Sie globale Variablen anderer Typen mit improvisierten Mitteln emulieren müssen - was Sie einmal im System machen konnten, machen die Anwendungsentwickler an ihrer eigenen Stelle.
 
stringo:

Übrigens, was die globalen String-Variablen angeht. Sie brauchen sie, um String-Daten zwischen Programmen innerhalb eines Client-Terminals auszutauschen, richtig? Warum also nicht die Zeichenketten direkt über Benutzerereignisse übergeben? Das ist eine viel effizientere Methode als der Datenaustausch über globale Variablen.

Das sind zwei völlig verschiedene Dinge. Der Zustand muss gespeichert und zugänglich sein, während Nachrichten ein Mittel zur Änderung des Zustands sind.
 
marketeer:
Eine bekannte Argumentation: Sie machen sich das Leben leichter und den Nutzern schwerer, obwohl das Programm für sie geschrieben zu sein scheint. Es gibt keine besondere Komplikation in Bezug auf die Umsetzung für Sie, sondern versuchen, "interpretieren" diese doppelte in irgendeiner Weise, für den Mangel an etwas anderes - das ist eine Komplikation für den Benutzer, wenn nicht zu sagen stärker. Während Sie globale Variablen anderer Typen mit improvisierten Mitteln emulieren müssen - was Sie einmal im System machen konnten, machen die Anwendungsentwickler an ihrer eigenen Stelle.

Sie können jede Art von Daten in den 8 Bytes einer globalen Variablen speichern, mit Ausnahme von Strings. Handelt es sich um Daten vom Typ double, verwenden Sie den resultierenden Wert direkt. Wenn es sich um Daten eines anderen Typs handelt, ist ein zusätzlicher Kopiervorgang von einfachen Strukturen erforderlich, um die Daten des richtigen Typs zu erhalten.

 
stringo:

Sie können jede Art von Daten in den 8 Bytes einer globalen Variablen speichern, mit Ausnahme von Strings. Wenn es sich um Daten vom Typ double handelt, verwenden Sie den resultierenden Wert direkt. Handelt es sich um einen anderen Typ, ist ein zusätzlicher Kopiervorgang von einfachen Strukturen erforderlich, um die Daten des richtigen Typs zu erhalten.

Ich war vor allem an Streichern interessiert.