Tester zur Unterstützung von MG4-Skripten und Beratern - Seite 5

 
Integer:
In dieser Hinsicht ist C++ das Gleiche wie JavaScript. Und es ist wahr!

Eine großartige Lüge!

Nennen Sie ein Beispiel für eine C++-Implementierung einer Funktion, die der Javascript-Funktion eval() ähnelt:

01      var str = "if (a) { 1+1 } else { 1+2 }"
02      var a = true
03      var b = eval(str)
04      alert("b равно : " + b) // 2
05       
06      // теперь поменяем "a"
07       
08      a = false
09      b = eval(str)
10      alert("b равно : " + b) // 3

Das heißt, Sie schreiben ein Stück C++-Quellcode in eine Variable vom Typ std::string und rufen dann die Funktion eval() auf, die das Stück Code aus der Variable vom Typ std::string ausführt.

Schlagen Sie eine Implementierung einer solchen Funktion eval() in C++ vor (d.h. ich spreche nicht einmal über das Fehlen einer solchen Funktion, sondern über die Möglichkeit einer solchen Funktion in der Sprache selbst).

Das ist natürlich nicht der einzige Unterschied.

Der Kern von MQL4++ unterscheidet sich nicht von dem von MQL5: dieselbe Syntax, dieselben Typen, Operationen, Objekte, Polymorphismus, Überladung...

Der einzige Unterschied ist die Bibliothek, die die API von Expert Advisors, Indikatoren und Skripten implementiert. In diesem Sinne gibt es in ein und demselben Javascript eine Kernsprache und zwei Objektmodelle:

Strukturell lässt sich JavaScript als eine Einheit aus drei klar unterscheidbaren Teilen darstellen:

  • Kernel (ECMAScript),
  • Browser-Objektmodell (BOM),
  • Dokumentenobjektmodell (Document Object Model oder DOM).

Und MQL kann als klar unterscheidbare Dinge dargestellt werden: die Kernsprache und die Bibliotheken. Wenn sich der MQL4-Kern vom MQL4++-Kern unterscheidet, unterscheidet sich der MQL4++-Kern nicht vom MQL5-Kern.

Renat hat also absolut Recht, und es ist seltsam, das zu bestreiten.

 
Integer:

Ganz genau. Insbesondere das Ausnutzen der Autorität einer höheren Position.

Alle Sprachen sind gleich, außer den besonders extravaganten. Sie alle können in 21 Tagen von jedem Dummy erlernt werden. Alle haben für, während, wenn, wechseln, vielleicht die Form des Schreibens ist anders, aber im Prinzip ist es nicht etwas ändern.

Mit einem solchen oberflächlichen Verständnis ist es natürlich unmöglich, den Unterschied zu erkennen. Deshalb scheinen sie alle gleich zu sein.

Ich würde gerne mit der eval()-Funktion nicht nur in C++, sondern auch in MQL4++ spielen.

Würden Sie eine solche Funktion zumindest in MQL4++ schreiben, da es keine eingebaute Funktion gibt?

Ich werde nicht in der Lage sein, es zu schreiben - die Unterschiede zwischen Javascript und MQL4++ sind zu groß für mich.

Sie sagen, dass alle Sprachen gleich sind, und deshalb sind Javascript und MQL4++ ein und dasselbe, also muss es für Sie ganz einfach sein, es zu schreiben.

 
Renat:

Stattdessen sind wir zu sehr sparsamen CopyXXX-Funktionen übergegangen, bei denen der Entwickler genau so viele Daten abfragt, wie er benötigt, und nicht den gesamten verfügbaren Graphen. Als Nächstes kommt die schnellstmögliche Verarbeitung lokaler Daten (anstelle des alten, recht teuren Open/High/Low/Close/Time[xxx]), und der Autor kann diese Daten zwischenspeichern und beim nächsten Aufruf sparsam verwenden. Die Einsparungen bei Speicher und CPU sind enorm. Darüber hinaus ist die Plattform selbst besonders frei in der Verwaltung umfangreicher Datenbanken - der Zugriff auf sie erfolgt immer auf Anfrage (anstelle eines unkontrollierten Direktzugriffs), was eine flexible Verwaltung von Caches ermöglicht.

Es sollte auch beachtet werden, dass die Einfachheit der Open/High/Low/Close/Time[xxx]-Aufrufe in MQL4 auf das aktuelle Symbol und den aktuellen Zeitrahmen beschränkt war und alle anderen Daten für andere Symbole und Zeitrahmen mit Hilfe von iClose/iLow(...)-Funktionen erhalten wurden, was zu erheblichen Verzögerungen führte. Der Übergang in MQL5 zu einem einzigen CopyXXX-Funktionsmodell hat die Situation radikal verbessert und ermöglicht es den Entwicklern, die erforderlichen Datenpakete in einer einzigen Anfrage zu erhalten und nicht mehrere blockierte Aufrufe zu tätigen (denken Sie an die Sperren in jedem einzelnen Aufruf von iClose).

Das sind nicht unsere Aufgaben, und dieser Artikel ist es auch nicht. Dieser Artikel ist eine Reihe monströser Krücken, wurde aber veröffentlicht, um den Unterschied aufzuzeigen.

Ich habe wiederholt erklärt, dass die neuen Funktionen von MQL5 genutzt werden müssen und nicht die schrecklichen Krücken.

Wenn es eine Dokumentation mit einer ausreichenden Anzahl von Beispielen gäbe, die auf der sachkundigen Verwendung der neuen Funktionen von MQL5 basieren, so dass auch Neulinge den Code für ihre Bedürfnisse zusammenstellen könnten, ohne in alle Details zu gehen, und der Code wäre immer noch sachkundig im Allgemeinen, dank der ausreichenden Anzahl von Beispielen und dem Beispielcode, der mit der sachkundigen Verwendung der neuen Funktionen von MQL5 geschrieben wurde, wäre die Situation mit MT5 nicht so katastrophal.

Sobald jedoch stattdessen Artikel mit "einem Haufen schrecklicher Krücken" als Code verwendet wurden, haben wir sowohl den abgelehnten MT5 als auch eine solche Haltung gegenüber der API in MQL5. Und die überwältigende Mehrheit des Publikums sind keine professionellen Programmierer. Natürlich ist dies nicht der einzige Grund für die Ablehnung des MT5, aber einer der Hauptgründe.

 

Jemand wurde gefragt:

- Warum sprechen Außerirdische, wenn sie denn existieren, nicht mit uns und unterrichten uns nicht?

Das wurde ihm gesagt:

- Würden Sie Kakerlaken das Sprechen beibringen? Warum tust du das nicht?


Einfaltspinsel, nichts für ungut, du hast nichts von dem verstanden, wasInteger gesagt hat.
 
simpleton:

Wenn es nur eine Dokumentation mit einer ausreichenden Anzahl von Beispielen gäbe, die auf der Grundlage der kompetenten Nutzung der neuen Funktionen von MQL5 geschrieben wurden,

DieMQL5-Dokumentation umfasst 4000 Seiten in 9 Sprachen, eine riesige Datenbank mit Quellcode, 360 in 5 Sprachen übersetzte Artikel, Foren in 5 Sprachen, in denen Sie Fragen stellen können, usw.

 
rustein:

Einfaltspinsel, nichts für ungut, du hast nichts von dem verstanden, wasInteger gesagt hat.

Er hat es richtig gemacht.

Reshetov hat es noch genauer gesagt: https://www.mql5.com/ru/forum/153749/page4#998584

Im Allgemeinen sind die Angriffe auf MT5 nur faule Ausreden für diejenigen, die nicht auf ein neues Terminal umsteigen wollen, oder Erfindungen derjenigen, die nur von MT5 gehört haben, aber nicht wissen, wo es ist.

 
Renat:

Er hat es richtig gemacht.

Im Allgemeinen sind die Angriffe auf MT5 nur faule Ausreden derjenigen, die nicht auf ein neues Terminal umsteigen wollen, oder Erfindungen derjenigen, die nur von MT5 gehört haben, aber nicht wissen, wo es ist.


Was hat MT5 damit zu tun?
Ich möchte das für eine lange Zeit tun. Aber der Broker bietet noch keinen MT5 an. Also machen Sie richtig Werbung dafür.
Was die Frage betrifft, wer was verstanden hat oder nicht, so verstehen Sie das vielleicht nicht. Ist das so wichtig?
 
rustein:

Was die Frage betrifft, wer was verstanden hat oder nicht, so haben Sie es vielleicht auch nicht verstanden. Ist das so wichtig?

Sie haben nicht einen einzigen sinnvollen Satz gesagt oder ein einziges Argument vorgebracht. Nur Gefühle.

 
Renat:

Sie haben nicht einen einzigen sinnvollen Satz gesagt oder ein einziges Argument vorgebracht. Nur Emotionen.

И?
 
simpleton:

...

Vor kurzem gab es hier eine Diskussion darüber, welche Programmiersprache man lernen sollte. Ein Teilnehmer gab eine sehr nützliche Empfehlung - zunächst Russisch (oder eine andere Muttersprache). Um zu verstehen, worum es in dem Gespräch geht.

In dem Satz"In dieser Hinsicht ist C++ nicht anders als JavaScript. "Die Formulierung"auf diese Weise" definiert (oder verdeutlicht) das Vergleichskriterium. Da drängt sich die seltsame Frage auf: "Wovon reden Sie denn jetzt?"