![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
Ich schreibe so, weil ich es mag. Allerdings wird es beim Debuggen richtig schlimm.
Auch in diesem Ausdruck.
ist es schwer herauszufinden, wer was zurückgegeben hat. In komplexeren Fällen (ich übe das ständig) ist es wirklich schwierig.
Wenn Sie 2-3... Nehmen wir an, dass 5 Ergebnisse der Ausführung von Funktionen durch logische Operationen (oder bedingte ternäre Operatoren) vereint sind - ich habe es auf Githab oder irgendwo anders gesehen, dieser Code kann gehandhabt werden
Aber wenn Sie ein Dutzend dieser "Leckereien" haben... imho ist es nicht praktisch
Ich bin natürlich kein mql-Entwickler,
aber in C erzeugt switch eine recht effiziente binäre Suche und verursacht keine unnötigen Seitenauslagerungen oder Cache-Dumps. Ja, das ist oft besser als die indirekte Adressierung über Arrays und Strukturen.
die Entwickler schrieben irgendwo und hier ähnliche Informationen
fand nur dies:
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Dies ist der Artikel, den wir in MQL5 gefunden haben.
Slawa, 2011.04.14 09:59
Nein, das wird es leider nicht. Bei String-Typen nur, wenn ... sonst wenn ... sonst
Die Verwendung von Integer-Typen in switch beschleunigt den Code des Analysators um ein Vielfaches im Vergleich zu
aber wenn es ein Dutzend oder so ist... Imho ist das nicht praktikabel.
Kleines Ungeheuer.
Logische Operationen ermöglichen es Ihnen, bei der Verwendung verschiedener Einstellungen über Makros kurz und bündig zu schreiben. Aber es ist natürlich ein Horror.
Dielogischen Operationen ermöglichen ein übersichtliches Schreiben bei der Verwendung verschiedener Einstellungen über Makros. Aber es ist natürlich ein Horror.
Ihr Beispiel von "der Zweck heiligt die Mittel"
meine Frage bezog sich auf einen ganz anderen und unverständlichen Stil
Das kleine Ungeheuer.
Einem geschenkten Gaul schaut man nicht ins Maul. Aber hier sind noch ein paar Beispiele für den Code anderer Leute, die mir ein paar unvergessliche Dutzend Minuten Debugging beschert haben. Vielleicht erkennt jemand seinen eigenen Code.
Ich weiß nicht, ob es einfach war, es so zu schreiben, aber es ist unwirklich, es zu debuggen, und erst recht, es zu lesen. Und ich sehe auch keine objektiven Gründe dafür, es so zu schreiben.
Und ich sehe auch keine objektiven Gründe dafür, es so zu schreiben.
Sie sind natürlich subjektiv. Ich mag keine unnötigen Variablen und Mehrfachrückgaben. Aus irgendeinem Grund glaube ich, dass EX5 ohne sie kürzer und schneller ausgeführt werden kann.
Sie sind natürlich subjektiv. Ich mag keine zusätzlichen Variablen und Mehrfachrückgaben. Aus irgendeinem Grund glaube ich, dass EX5 ohne sie kürzer und schneller sein wird.
Diese Zuversicht, dass der Code kürzer und schneller sein wird, ist übrigens nicht gerechtfertigt.
hier ist es
und dies
return A()||B()||X();
Ich bin sicher, dass die Geschwindigkeit (und vielleicht auch die Größe des Codes und des verwendeten Speichers) die gleiche sein wird.
Es ist nur so, dass die zweite Variante schneller zu schreiben ist und jeder sie schreibt, und dann, wenn es notwendig ist, etwas hinzuzufügen/zu verkomplizieren, belassen sie die zweite Variante, aber aufgebläht zu einer schwer lesbaren Variante.
Sie sollten in dieser Hinsicht regelmäßig ein Refactoring durchführen, und Sie werden keine Probleme haben.
Führen Sie in dieser Hinsicht regelmäßig Refactoring durch, und es wird keine Probleme geben.
Nur für diejenigen, die viel Freizeit haben oder objektiv so unter Zeitdruck stehen, dass es ohne sie gar nicht geht.
Bei einer hohen Rücklaufquote wird der Code zu 100 % anders sein.Nur für diejenigen, die viel Freizeit haben oder objektiv so unter Zeitdruck stehen, dass es ohne sie gar nicht geht.
ZS Wenn es viele Rückgaben gibt, wird der Code zu 100 % anders sein.Ich verstehe das, stimme aber teilweise zu. Ich denke nur, dass jeder die Erfahrung gemacht hat, dass es relativ lange dauert, Fehler zu beheben, die schneller gefunden würden, wenn der Code "perfekt" zum Debuggen bereit wäre.
Es ist unklar, was mehr Zeit in Anspruch nimmt - das längere Schreiben von "brauchbarem" Code oder das Debuggen und Finden von Fehlern, es ist wohl immer etwas anderes.
Wenn es viele Rückläufer gibt, wird der Code zu 100 % anders sein.
C++ VS2019 unter Debugger
Quellcode:
Asm-Debugger
reduziert durch Befehle einen Aufruf nur in 2 Spalten nicht zu zählen:
wie Sie hier sehen können, und die Befehle wiederholen sich fast, ist es klar, dass Sie im ersten Test mehr Rückgaben hinzufügen müssen
Mit 99%iger Sicherheit denke ich, dass diese Codes auf der Prozessorebene bis zu einem Takt mit der gleichen Geschwindigkeit laufen werden - im Prozessor funktionieren Optimierung, Parallelisierung und wer weiß, was sonst noch auf der Ebene der Mikrobefehle