![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 übergebe diese Objekteigenschaften explizit (ANCHOR_RIGHT_UPPER, CORNER_RIGHT_UPPER):
Ich glaube, ich habe es. Haben Sie eine Beispielfunktion gezeigt, nicht ein funktionierendes Stück Code?
Das war's, ich nehme mir das Wochenende frei. Entschuldigung für die Unterbrechung :)
Eine bessere Version dieser Funktion, die aber noch etwas optimiert werden kann (im Allgemeinen würde ich all dies als ein Objekt oder mehrere Objekte implementieren).
Sie können die Funktion jedoch in eine Bibliothek aufnehmen und nach Belieben verwenden.
Eine bessere Version dieser Funktion, die aber noch etwas optimiert werden kann (im Allgemeinen würde ich all dies als ein Objekt oder mehrere Objekte implementieren).
Sie können die Funktion jedoch in eine Bibliothek aufnehmen und nach Belieben verwenden.
(Das ist schön.)). Welchen Vorteil hat die Verwendung dieser Funktion als Objekt? Bis jetzt habe ich alles in Form von Funktionen implementiert. Vielleicht gehe ich den falschen Weg und muss später alles neu machen?
Nun, warum alle? Eine Funktion könnte universeller gestaltet und z. B. in eine Bibliothek gepackt werden.
Klassen haben auch Vorteile, aber das ist ein Trick, der mit OOP zusammenhängt (die Hauptaufgabe wird darin bestehen, den Code in verschiedenen Projekten zu verwenden, ohne sich Gedanken über die Implementierung zu machen).
Beispiel
Wie ich aus dem Screenshot ersehe, haben Sie so etwas wie eine Informationstafel (vielleicht auch eine andere Funktionalität), so dass Sie diese Tafel als eine Reihe von unverbundenen Objekten (Grafiken, Text usw.) betrachten können, oder Sie können sie als Objekte betrachten, die durch eine Klasse verbunden sind. Wenn Sie also einen "Eingabe"-Parameter "Ecke" ändern, wirkt sich diese Änderung auf alle Parameter aus, die sich auf das Panel beziehen.
Das Gleiche gilt für die Bindung an das Diagramm: Durch die Angabe eines Diagramms in der Klasse wird dieses Diagramm auch allen von der Klasse kontrollierten Objekten angezeigt.
Nun, warum alle? Eine Funktion könnte universeller gestaltet und z. B. in eine Bibliothek gepackt werden.
Klassen haben auch Vorteile, aber das sind Tricks der OOP (die Hauptaufgabe wird darin bestehen, den Code in verschiedenen Projekten zu verwenden, ohne über die Implementierung nachzudenken).
Beispiel
Wie ich aus dem Screenshot ersehe, haben Sie so etwas wie eine Informationstafel (vielleicht auch eine andere Funktionalität), so dass Sie diese Tafel als eine Reihe von unverbundenen Objekten (Grafiken, Text usw.) betrachten können, oder Sie können sie als Objekte betrachten, die durch eine Klasse verbunden sind. Wenn Sie also einen "Eingabe"-Parameter "Ecke" ändern, wirkt sich diese Änderung auf alle Parameter aus, die sich auf das Panel beziehen.
Ich habe das gleiche Problem mit der Bindung an das Diagramm. Sobald wir der Klasse ein Diagramm zuweisen, weisen wir dieses Diagramm und alle Objekte, die diese Klasse steuert, zu.
Sie haben eine sehr bemerkenswerte Fähigkeit. Erklären Sie alles ganz klar in ein paar Zeilen. Ich danke Ihnen. ))
Nachdem ich mich mit allen Funktionen, die ich brauche, vertraut gemacht und ihre Anwendung geübt habe, werde ich mich mit den Strukturen, Klassen und OOP beschäftigen. Es ist schade, dass die Natur mich manchmal zwingt, ins Bett zu gehen. Ich muss mich vom Computer wegbewegen. ))
Ich habe dieses Skript geschrieben:
Aufgabe: Entfernen Sie alle Objekte vom Typ OBJ_LABEL aus dem Diagramm. Aber einige werden übersprungen und bleiben bestehen. Im Logbuch wird ein Fehler eingetragen:
Bitte sagen Sie mir, wie ich es richtig mache.
Ich habe ein solches Drehbuch geschrieben:
Die Aufgabe: Löschen aller Objekte vom Typ OBJ_LABEL aus einem Diagramm. Einige von ihnen werden jedoch übersprungen und bleiben bestehen. Ein Fehler wird in das Protokoll geschrieben:
Bitte beraten Sie mich, wie ich es richtig mache.
Ich habe den Eindruck, dass die Schleife eher absteigend als aufsteigend sein sollte, auch wenn ich nicht ins Detail gegangen bin (aber seit MQL4 wird das Löschen von Aufträgen in einer absteigenden Schleife durchgeführt).
Der Trick besteht darin, dass sich die ursprüngliche Liste nicht ändert, wenn Sie aus großen Indizes löschen, mit Ausnahme des Löschens ausgewählter Elemente (vom Ende der Liste)...
Ich habe den Eindruck, dass der Zyklus eher absteigend als aufsteigend sein sollte, auch wenn ich mich nicht mit den Einzelheiten befasst habe (seit MQL4 werden Aufträge in einem absteigenden Zyklus gelöscht).
Der Trick besteht darin, dass sich die ursprüngliche Liste nicht ändert, wenn wir mit dem Löschen aus einem großen Index beginnen, es sei denn, wir löschen ein ausgewähltes Element (vom Ende der Liste)...
Ich habe versucht, den Zyklus vom Ende her zu beginnen:
Jetzt gibt es keine Fehler im Protokoll, aber kein einziges Objekt wird gelöscht).
Ich habe versucht, den Zyklus vom Ende her zu starten:
Jetzt gibt es keine Fehler im Logbuch, aber es werden auch keine Objekte gelöscht).
In Quadruple verwende ich diesen Ansatz: alle Objekte sind Gruppen, der Namensteil ist in der Gruppe gemeinsam.
Löschen von
für verschiedene Gruppen
und hier die Funktion IgorM
***
(nur für den Fall) Sortieren nach Objektname(nicht sicher, ob es für 5 relevant ist)