
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
Wo sind die Klassen in MQL4, C-4? Und ich glaube, die Entwickler haben gesagt, dass es in 5 vorerst keine Vererbung geben wird.
Wo sind die Klassen in MQL4, C-4? Und ich glaube, die Entwickler haben gesagt, dass es in 5 keine Vererbung geben wird.
Es gibt sie bereits, mit allen dazugehörigen Annehmlichkeiten. Und man kann es sogar in Tetris sehen (in den mq5-Quellen).
Wow, das ist interessant. Drei Monate sind seit der Veröffentlichung des Spielzeugs vergangen, und ich habe es gerade erst erfahren...
Wow, das ist interessant. Drei Monate sind seit der Veröffentlichung des Spielzeugs vergangen, und ich habe es erst jetzt erfahren...
Ich glaube, ich habe es verpasst....
was soll dieser ausruf "wow"? gibt es mt5, um die quellen zu testen? wenn ja, geben sie mir bitte einen link, um sie herunterzuladen.
Nun, nein, der MT5 ist noch nicht sichtbar (für Normalsterbliche), aber zumindest können Sie sich den Code ansehen. Es ist ungefähr klar, was zu erwarten ist.
Kann jemand eine Anwendung vorschlagen, die MQL-Quellcode analysieren und in irgendeiner Form die Namen der verwendeten Variablen/Funktionen und die Anzahl ihrer "Erwähnungen" im Text ausgeben kann?
zum Beispiel, um Reste unbenutzter Variablen aus den herausgeworfenen Texten aufzufangen, und um nicht versehentlich einen stark abgekürzten Namen in etwas Längeres und Eindeutigeres umzubenennen, was sich dann als Name einer globalen Variablen herausstellt, die man schon lange vergessen hat und die irgendwo im Code existiert.
Ich bevorzuge
wenn ( a > c )
codret = 3;
wenn ( l < b )
codret = 5;
...
...
wenn ( h != b )
codret = 100;
// insbesondere, wenn es vor der Rückgabe einige zusätzliche Operationen gibt, die für alle Ausgänge gleich sind
... z.B. hier machen wir etwas anderes
retrun( codret);
}
Sie haben gerade ein hervorragendes Beispiel dafür gegeben, warum ich mehrere Rücklaufausgänge verwende. In Ihrem Beispiel wird die Funktion das zuletzt ausgelöste if() zurückgeben, nicht das erste. In meinem Beispiel wird die Funktion die erste Übereinstimmung zurückgeben. In der Praxis stelle ich oft fest, dass ich genau den ersten übereinstimmenden Wert zurückgeben muss, und ich muss fast nie die letzte ausgelöste Prüfung zurückgeben. In diesem Beispiel macht es ein einziger Rücklauf nicht einfacher, die von der Funktion zurückgegebenen Werte zu verfolgen, im Gegenteil, man kann alles von einem einzigen Rücklauf erwarten.
Übrigens mag ich persönlich es nicht, wenn das entscheidende ";" Zeichen vom Ausdruck getrennt wird:
extern double max_price[100] ; //speichert die Preise der Maxima der letzten hundert Balken
extern double max_price[100] ; //Hält die Preise der letzten hundert Balken maximal - ich schreibe es nur so
Nein, wir reden hier nur über Stil. Übrigens habe ich in manchen Fällen überhaupt nichts gegen goto.
Warum eine Funktion innerhalb einer Funktion deklarieren? Da ich persönlich nur mit C und C++ aufgewachsen bin, verstehe ich diese Methode nicht.
Verkapselung... Wenn Sie Templates schreiben und eine sehr lokale Funktion oder einen Funktor oder eine Klasse verstecken wollen, ist das sehr nützlich.
Und die meiste Zeit können Sie mit einem unbenannten Namespace auskommen.
2. Ich hasse die sehr verbreitete Art, geschweifte Klammern wie diese zu setzen:
Sehr viel für nichts. Eine Brutstätte für alle Arten von Patzern mit Zahnspangen. In der Vergangenheit wurde dies mit Platzersparnis und der Regel der Funktionscodegröße begründet.
Aber warum sollten wir jetzt, im Zeitalter der Terabytes, Platzmangel beklagen?
5. Ich verwende Funktionen innerhalb von Funktionen:
Ineffizient (mit mehreren Aufrufen von einem), verschmiert und lang. Vor allem eine von UB, die eine Brutstätte für böswillige, nichttriviale Fehler ist.
Weiter - über die Kopiervorlagen. Eine sehr ärgerliche Sache :). Ich gebe zu, dass ich es benutze und sehr oft Fehler mache. Ich habe zum Beispiel vergessen, eine Variable umzubenennen, einen Kommentar zu ändern oder ähnliches.
Deshalb ist die Codeüberprüfung eine sehr nützliche Sache.
Über Pascal :) . Bis heute ist es die Hauptsprache der Olympiade. Aus einem einfachen Grund: wenige Schlüsselwörter, logischer Aufbau.
Lange Zeit habe ich nicht geglaubt, dass Pascal (bzw. Delphi) schlechter als C++ ist, bis ich herausfand, dass C++ besser ist.
Jetzt denke ich, dass Pascal in einer Hinsicht besser ist: Es ist schwieriger, binären Code zu schreiben.
>> Was die Kommentare angeht, so ist das alles Blödsinn, vor allem die 30%.
Schreiben Sie selbstdokumentierenden Code, und Sie werden zufrieden sein. Da es in MQL4 keine Klassen gibt, ist es ziemlich schwierig, dies zu tun. Aber mit Unterricht sollte es einfacher sein.
Alles andere - Einrückung, Benennungsgrundsätze, Ausrichtung - ist nichts weiter als Empfehlungen.
Übrigens, wo wir gerade von Funktionen sprechen. Wie soll die Schriftart sein? Und wenn es eine Zeile länger ist? Die Hauptsache ist, dass klar ist, was sie tut, und der Rest sind nur Empfehlungen.
Das Wichtigste ist, den Code für diejenigen, die ihn pflegen, so verständlich wie möglich zu machen.