Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 73
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
Artem, du irrst dich. Das auf globaler Ebene deklarierte Array ist in allen Teilen des Programms sichtbar, und es ist nicht notwendig, es irgendwo von irgendwoher zu übergeben. Man füllt sie einfach an einer Stelle im Programm aus, sortiert sie an einer anderen und liest sie an einer dritten, das spielt keine Rolle.
Dieselbe Funktion kann erfolgreich Daten in verschiedenen Arrays sortieren und/oder suchen. Oder? Und wenn ja, ist es besser, das Array per Referenz zu übergeben - für die Zukunft. Und beim Aufruf der Funktion kann es nicht schaden, zu sehen, mit welchem Array sie funktioniert.
Ich stelle nur diese Überlegungen an. Wo liege ich falsch?
Dieselbe Funktion kann erfolgreich Daten in verschiedenen Arrays sortieren und/oder suchen. Oder? Und wenn ja, ist es besser, das Array per Referenz zu übergeben - für die Zukunft. Und wenn Sie die Funktion aufrufen, sollten Sie auch das Array sehen können, mit dem sie arbeiten wird.
Nur in diesem Punkt habe ich Recht. Wo liegt der Fehler?
Ich hab's. Ihr Rat ist für Lego-Programmierer. Sie machen diese Perversion nicht selbst.
Das lässt eine Sache falsch, dass das Array global deklariert werden muss.
Ich bin froh, dass wir uns verstehen.
Ich hab's. Ihr Rat ist für Lego-Programmierer. Sie selbst machen solche Perversionen nicht.
Dann bleibt nur noch der Fehler, dass das Array global deklariert werden muss.
Schön, dass wir uns verstehen.
Was ich in diesem Zusammenhang sagen will, ist Folgendes:
Aus diesem Grund wäre es besser, globale Arrays zu haben - für geschlossene und offene Aufträge und Positionen. Bei einem neuen Tick übergeben wir einmalig die erforderliche Anzahl von Aufträgen/Positionen und füllen damit zwei Arrays. Und dann bekommen wir von ihnen alle notwendigen Daten auf denselben Tick. Beachten Sie, dass nicht nur der letzte geschlossene/offene Auftrag/die letzte offene Position und alle zugehörigen Daten berechnet werden, sondern auch alle übergeordneten und untergeordneten Ticks aller Positionen im Falle einer teilweisen Schließung durchsucht werden. Dementsprechend kann ich jederzeit sehen, aus welchem Ticket diese oder jene Position stammt, wenn sie mehr als einmal teilweise geschlossen wurde - all das funktioniert bereits in einer Klasse, die in einem Timer läuft. Ich habe viele andere Daten, die ich mit einer geringen Gesamtzahl von Zyklen benötige. Die erforderliche Tiefe der Historie für Arrays wird für den Prüfer festgelegt.
Und so weiter und so fort ...
In diesem Zusammenhang möchte ich auf Folgendes hinweisen:
Aus diesem Grund wäre es besser, globale Arrays zu haben - für geschlossene und offene Aufträge und Positionen. Bei einem neuen Tick übergeben wir einmalig die erforderliche Anzahl von Aufträgen/Positionen und füllen damit zwei Arrays. Und dann bekommen wir von ihnen alle notwendigen Daten auf denselben Tick. Beachten Sie, dass nicht nur der letzte geschlossene/offene Auftrag/die letzte offene Position und alle zugehörigen Daten berechnet werden, sondern auch alle übergeordneten und untergeordneten Ticks aller Positionen im Falle einer teilweisen Schließung durchsucht werden. So kann ich jederzeit sehen, welches Ticket von der einen oder anderen Position stammt, ob es teilweise mehrfach geschlossen wurde - all das funktioniert bereits in einer Klasse, die in einem Timer läuft. Ich habe viele andere Daten, die ich mit einer geringen Gesamtzahl von Zyklen benötige. Für den Prüfer wird die gewünschte Tiefe der Historie für die Arrays festgelegt.
Und so weiter und so fort ...
Wir verstehen uns also nicht ganz.
Wenn das Array global ist, warum sollte es dann per Referenz an eine Funktion übergeben werden, wenn es innerhalb dieser Funktion bereits sichtbar ist?
Dann verstehen wir uns nicht ganz.
Wenn das Array global ist, warum sollte es dann per Referenz an eine Funktion übergeben werden, wenn es in dieser Funktion bereits sichtbar ist?
Funktionsüberladung - es gibt so einen Begriff ;)
Wenn Sie die gleichen Aktionen mit verschiedenen Arrays in einer Funktion durchführen müssen, dann...
Aber - wir sprechen hier über verschiedene Sonderfälle...
Funktionsüberladung - so ein Konzept gibt es ;)
Wenn Sie die gleichen Aktionen mit verschiedenen Arrays in einer Funktion durchführen müssen, dann...
Aber - wir sprechen hier über verschiedene Sonderfälle...
Nun, Gott sei Dank verstehe ich Ihre Gedanken. Aber sie sind sehr ähnlich wie Ratschläge für Lego-Programmierer.
Es wäre sehr seltsam, eine große Anzahl von 100% funktionierenden Funktionen auf Lager zu haben und sie jedes Mal neu zu schreiben. Dies ist kein Ratschlag für den Bau von Häusern aus Würfeln. Es ist ratsam, eigene Funktionsbibliotheken und Klassen zu erstellen. Und was ist falsch an einer Funktion, die mehrere Arrays verarbeitet, je nachdem, welches per Referenz an sie übergeben wird? Und was ist falsch an Funktionsvorlagen?
Wenn Sie Code zum Sortieren eines Arrays haben, warum sollten Sie für jeden Array-Typ eine eigene Funktion schreiben? Sie können jeden Typ einfach überladen und sortieren. Wie funktioniert ArraySort() Ihrer Meinung nach? Man übergibt dort verschiedene Typen von Arrays, und bei einer Ausgabe erhält man das sortierte, das übergeben wurde - oder Meta-Quoten auch Lego-Coder oder was?
Es wäre sehr seltsam, eine große Anzahl von 100% funktionierenden Funktionen auf Lager zu haben und sie jedes Mal neu zu schreiben. Dies ist kein Ratschlag für den Bau von Häusern aus Würfeln. Es ist ratsam, seine eigenen Funktionsbibliotheken und Klassen zu erstellen. Und was ist falsch an einer Funktion, die mehrere Arrays verarbeitet, je nachdem, welches per Referenz an sie übergeben wird? Und was ist falsch an Funktionsvorlagen?
Wenn es einen Code zum Sortieren eines Arrays gibt, warum sollten wir dann für jede Art von Array eine eigene Funktion schreiben? Sie können einfach eine Überladung durchführen und jeden Typ sortieren. Wie funktioniert ArraySort() Ihrer Meinung nach? Du übergibst dort verschiedene Arten von Arrays, und die Ausgabe ist eine sortierte, die du übergeben hast - oder Metaquotes auch Lego-Coder, oder was?
Die Hauptsache ist, dass es nicht so weit kommt.
https://www.mql5.com/ru/forum/165468/page3#comment_3978059
Die Hauptsache ist, dass es nicht so weit kommt.
https://www.mql5.com/ru/forum/165468/page3#comment_3978059
gibt es eine Variable
int Level = 0;
Während das Programm läuft, ändert es sich ständig. Helfen Sie mir, eine Bedingung zu schreiben: wenn sich der Pegel NICHT geändert hat, nichts tun, wenn sich der Pegel geändert hat (egal ob mehr oder weniger), eine Aktion ausführen { operator }