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
Hier ist eine vereinfachte Erklärung -> https://www.mql5.com/en/forum/117210. Arrays werden in MQL4 immer per Referenz übergeben.
Ja, danke. Aber wie ich gefragt habe, bedeutet das, dass es in anderen Sprachen nicht so ist? Wenn es die einzige Möglichkeit wäre, es mit MQ/MT4 oder einem anderen Sprachkonstrukt zu realisieren, dann würde man sich wohl nicht die Mühe machen, dies zu erklären.
Ich schätze, ich frage nach den "technischen Details", wie Sie in diesem Beitrag sagten. Nur aus Neugierde, nicht aus Notwendigkeit.
Was die Syntax betrifft, so ist die MQL5-Sprache zur Programmierung von Handelsstrategien der Programmiersprache C++ sehr ähnlich, mit Ausnahme einiger Merkmale:
Auf diese Weise kann ich andeuten, dass bei C++ das Gegenteil der Fall sein wird... Trotzdem vielen Dank, Gordon.
Es tut mir leid, aber das ist keine "technische" Antwort :) Könnten Sie sagen, warum es besser ist, eine Variable per Referenz zu übergeben, anstatt eine globale Variable?
Es gibt viele Gründe, die ich nicht wiederholen möchte, stattdessen verweise ich Sie auf hier -> https://en.wikipedia.org/wiki/Global_variable und hier -> http://www.c2.com/cgi/wiki?GlobalVariablesAreBad (Sie können nach mehr googeln...) Es ist ein allgemein anerkanntes Konzept und es gibt viele Informationen im Netz).
[...] bedeutet das, dass es in anderen Sprachen nicht so ist? [...]
Viele Gründe, die ich lieber nicht wiederholen möchte, stattdessen verweise ich auf hier -> https://en.wikipedia.org/wiki/Global_variable und hier -> https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad (Sie können nach mehr googeln... Es ist ein weithin akzeptiertes Konzept und es gibt viele Informationen im Netz).
Sehr interessant! Leider braucht EA Parameter, und manchmal eine Menge, so dass wir sie nicht vermeiden können und aus allen Gründen, die in https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad erwähnt wurden, darauf achten müssen.
Ich verwende Benennungsregeln für GlobalVariable: Das ist viel einfacher zu handhaben und vermeidet einige Bugs.
Danke Gordon.
Sehr interessant! Leider brauchen EA Parameter, und zwar manchmal sehr viele, so dass wir sie nicht vermeiden können [...]
Externs sind in der Tat unvermeidlich. Obwohl sie global sind, sind sie nicht dasselbe wie globale Variablen (nicht zu verwechseln mit GV's); insbesondere ist es nicht empfehlenswert, ihren Wert über Code zu ändern, daher sollten sie nicht verwendet werden, um Informationen zwischen Funktionen zu übergeben (siehe hier -> https://www.mql5.com/en/forum/123535).
Ich verwende Benennungsregeln für GlobalVariable: Das ist viel einfacher zu handhaben und vermeidet einige Bugs.
Nur mal so am Rande: gibt es überhaupt Programmiersprachen, die Funktionen haben, die mehrere Ergebnisse zurückgeben?
vielleicht könnte man eine Funktion so austricksen, dass sie zwei Werte zurückgibt, indem man sie so kombiniert, dass man sie in der aufrufenden Funktion wieder entkoppeln kann
etwa so
a = 10;
b = 20;
a = a*1000
c = a+b // 10020
return(c);
dann in der aufrufenden Funktion
b = c%1000 // 20
a = c-b/1000 // 10
vielleicht könnte man eine Funktion so austricksen, dass sie zwei Werte zurückgibt, indem man sie so kombiniert, dass man sie in der aufrufenden Funktion wieder entkoppeln kann
etwas wie dies
[...]warum nicht?
warum nicht?