MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 37

 
Renat:
Das heißt, Sie persönlich haben keine Probleme mit der Funktionsfähigkeit der Software und stellen allgemeine Fragen.

Ich habe Ihre Fragen mehrmals gelesen und verstehe sie nicht. Wir diskutieren hier über die Einzelheiten.

Bei der Kompilierung gibt es keine Probleme. Es gibt Probleme mit der Bedienbarkeit, und so wie ich es verstehe, haben sie mit der Vermischung von MQL5-Logik mit MQL4 zu tun. Die Probleme, die wir hier erörtern, sind jedoch nicht für alle Fälle ausreichend. All dies ist ein Sonderfall. Regeln sind notwendig. Wenn Sie eine vorläufige Anleitung oder zumindest eine Vorschau der Übersetzungen von MQL5-Funktionen und -Regeln in MQL4 veröffentlicht haben, würde das nicht nur uns, sondern auch Ihnen beim Verständnis der auftretenden Probleme helfen. Und stellen Sie sich vor, es werden 500 Seiten oder mehr sein. Wie kann ich sie erneut lesen?

 
ForexMoneyMaker:

Bei der Kompilierung gibt es keine Probleme. Es gibt Probleme mit der Bedienbarkeit, und so wie ich es verstehe, haben sie mit der Vermischung von MQL5-Logik mit MQL4 zu tun. Die Probleme, die wir hier erörtern, sind jedoch nicht für alle Fälle ausreichend. All dies ist ein Sonderfall. Regeln sind notwendig. Wenn Sie eine vorläufige Anleitung oder zumindest eine Vorschau der Übersetzungen von MQL5-Funktionen und -Regeln in MQL4 veröffentlicht haben, würde das nicht nur uns, sondern auch Ihnen beim Verständnis der auftretenden Probleme helfen. Und stellen Sie sich vor, es werden 500 Seiten oder mehr sein. Wie können Sie das alles lesen?

erstens kann sich noch etwas anderes ändern (auch Dinge, die die Kompatibilität betreffen). zweitens werden jetzt alle "beschreibenden Ressourcen" für die Vorbereitung einer Hilfe verwendet. warum sollte man sich die Mühe machen, ein System zu überlasten, das bereits mit voller Kapazität arbeitet? damit die Zahl der Fehler steigt?
 

MT4 Build 536, ME Build 872.

Der Indikator verwendet Eingabeparameter für ein separates Fenster: extern string Currency_Name = "EURUSD";

Wenn der Indikator ohne Änderung der Eingabeparameter gestartet wird, wird der Indikator gezeichnet und arbeitet ohne Fehler. Sobald ich aber nach dem ersten Durchlauf das Symbol ändere, zum Beispiel "GBPUSD", akzeptiert der Indikator den neuen Symbolnamen nicht. Der short_Name des Indikators behält den gleichen Namen, aber der Indikator wird nicht gezeichnet (leeres Feld). Wenn Sie den Symbolnamen beim ersten Aufruf ändern, wird der Indikator mit dem ursprünglichen, im Programm geschriebenen Namen gezeichnet.

Was die Änderung der numerischen Werte der Ausgangsdaten des Indikators betrifft, so werden diese in allen Fällen geändert und der Indikator wird fehlerfrei gezeichnet.

 
Renat:

Es ist nicht gut, Hunderte von globalen Variablen in einem Programm zu haben.

OOP und Klassen lösen das Problem vollständig und drastisch, indem sie Bereiche ausblenden und geschützten Zugriff auf Daten bieten.

Vielleicht ist das nicht gut genug. Aber ich habe dort geschrieben, warum das so ist. Es war nicht möglich, das, was anders gedacht war, in MT4 umzusetzen. Anders hat es mit der Grafik nicht funktioniert. Nur über externe Variablen können Sie den Stil der grafischen Elemente festlegen. Wenn wir viele verschiedene grafische Elemente haben, haben wir auch viele externe Variablen. Abgesehen vom Stil gibt es eine Vielzahl von Eigenschaften der grafischen Elemente, die ebenfalls NUR MIT EXTERNEN VARIABELN geändert werden können. Die Grafiken sind in Fähnrich gut. Aber in MT4 ist es ein echtes Chaos. Aus diesem Grund gibt es Hunderte von externen Variablen. Wir wissen noch nicht, was mit der neuen Version von MT4 passieren wird. Wir werden sehen.
 
nen:
Das ist vielleicht nicht gut genug. Aber ich habe dort geschrieben, warum das so ist. Es war unmöglich, das, was anders gedacht war, in MT4 umzusetzen. Anders hat es mit der Grafik nicht funktioniert. Nur über externe Variablen können Sie den Stil der grafischen Elemente festlegen. Wenn es viele verschiedene grafische Elemente gibt, haben Sie auch viele externe Variablen. Neben dem Stil gibt es viele Eigenschaften der grafischen Elemente, die ebenfalls NUR ÜBER EXTERNE VARIABEL geändert werden können. Die Grafik in Fähnchen ist in Ordnung. Aber in MT4 ist es ein echtes Chaos. Aus diesem Grund gibt es Hunderte von externen Variablen. Wie es in der neuen Version von MT4 sein wird, ist unbekannt. Wir werden sehen.

Es geht also um Variablen, nicht um Grafiken. Außerdem sind die Grafiken in MT5 großartig - man kann alles bis hin zu Computerspielen machen. Auch Mt4 wird demnächst aufsteigen.

Wie kann man in einem beliebigen Programm hundert Parameter übertragen, die der Benutzer jederzeit selbst ändern muss? Nur mit einer Tabelle der Eingabeparameter. Das hängt nicht von der Art des Programms ab.

Wie auch immer, Hunderte von Parametern ist der Weg des Programmierers ins Nichts. Wir müssen intelligente automatische Kontrollmethoden anwenden, um die Anzahl der Parameter um das Zehnfache zu reduzieren. Sobald man anfängt, darüber nachzudenken, ergeben sich sofort Lösungen.

 
nen:

Wenn ein Indikator mehrere hundert externe Variablen hat und ein paar Dutzend während der Installation geändert werden müssen, dann...

Vor der Neuinstallation müssen Sie sich merken, welche Variablen von den Werten, die bei der vorherigen Installation des Indikators geändert wurden, gespeichert werden müssen.

Ohne auf die Unmöglichkeit einzugehen, 100 Parameter loszuwerden...

Um sich nicht merken zu müssen, was bereits geändert wurde, gibt es eine Schaltfläche "Zurücksetzen".

Und das neue Verhalten (Speichern der eingegebenen Werte von Variablen nach der Neukompilierung) macht die Arbeit bequemer - man muss nicht alle Kopien des Indikators neu konfigurieren, wenn man etwas darin ändert.

 

Renat, Stringo, wird Unicode für immer bleiben?

 
input datetime  Date_From = D'08.10.2013';      // Начало периода
input datetime  Date_To = D'08.11.2013';        // Окончание периода
input bool      Column_Headers = true;          // Создавать заголовки колонок?

Dies ist ein Skript, beim Start ist das Feld Date_From immer das aktuelle lokale Datum/Uhrzeit, das Feld Date_To ist in Ordnung. Die Reihenfolge der Einstellungen wurde geändert - wenn eine Variable vom Typ datetime nicht an erster Stelle in der Liste steht, existiert dieser Fehler nicht

---

In der Hilfe hat PRICE_CLOSE den Typ ENUM_APPLIED_PRICE, aber der Compiler kennt ihn nicht - 'ENUM_APPLIED_PRICE' - Deklaration ohne Typ. Wird die Hilfe oder der Compiler das Problem beheben?

---

Und ganz allgemein für diesen Editor/Compiler - danke!

 

Ich nehme Änderungen am bereits kompilierten Indikator vor, der sich auf dem Währungspaar-Chart befindet. Ich kompiliere es neu. Damit die Änderungen wirksam werden, ist ein Neustart des gesamten Terminals erforderlich. Den Indikator aus dem Diagramm zu entfernen und neu zu starten hilft nicht, auch ein Wechsel des Zeitrahmens hilft nicht. Nur ein Neustart des Terminals selbst hilft, die vorgenommenen Änderungen zu sehen.

Bitte reparieren Sie das.

 
ObjectSetInteger(0,"Name",OBJPROP_CORNER,CORNER_RIGHT_LOWER);
ObjectSetInteger(0,"Name",OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER);

CORNER_RIGHT_LOWER und ANCHOR_RIGHT_LOWER werden nicht erkannt

Mqh-Datei, Fehler "nicht deklarierter Bezeichner" in den Protokollen


StringConcatenate funktioniert seltsam

Das funktioniert folgendermaßen

StringConcatenate("Text 1 ","Text 2");
StringConcatenate("Text 1 ",10);
StringConcatenate(10," Text 2");
StringConcatenate(10,11);
StringConcatenate("Copyright ",CharToString(169));

Aber es funktioniert nicht so (nur "©" wird angezeigt)

StringConcatenate(CharToString(169)," Copyright");




Grund der Beschwerde: