![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
Das ist der Punkt - wenn Sie alles von allem isolieren, wird es um ein Vielfaches schwieriger sein, mit solchem Code umzugehen, ganz zu schweigen von der Unmöglichkeit, den Code angemessen zu debuggen, wenn Sie die aktuellen Werte aller notwendigen Variablen kennen müssen...
Wenn Sie eine Klasse schreiben, die die Schnittstelle des Handelsprozessors verwendet, sollten Sie die aktuellen Variablen innerhalb dieser Schnittstelle nicht kennen. Debuggen Sie den REMOTE-Teil.
Wenn Sie den Handelsprozessor selbst debuggen müssen, sollten Sie ihn ebenfalls debuggen, und innerhalb dieser Klasse sollten Sie keine Variablen kennen, beispielsweise vom Eingangssignalgenerator.
Das ist das Wesen der Verkapselung - an jedem Ort arbeiten wir nur mit dem, was wir brauchen, ohne andere Orte zu beeinträchtigen.
Es geht nicht um die niedrige Ebene, es geht um die Logik dessen, was dort fließt und was zu jedem möglichen Zeitpunkt daraus wird, einschließlich der Kenntnis aller internen Variablen... Wenn man diese ganze redundante Logik nicht versteht, verschwindet der Sinn der Verwendung dieses Codes für einen Nicht-Autor völlig...
Hallo...
Verstehen Sie viel über die Funktionsweise von Metatrader? Kennen Sie eine der Variablen von MT? Das hält Sie aber nicht davon ab, es zu benutzen.
Genau das sollten Sie in Ihrem Programm tun. Es gibt eine Reihe von Blöcken, die über vordefinierte Schnittstellen interagieren und sich gegenseitig nicht beeinträchtigen.
Wenn Sie eine Klasse schreiben, die die Schnittstelle des Handelsprozessors verwendet, sollten Sie die aktuellen Variablen innerhalb dieser Schnittstelle nicht kennen. Debuggen Sie den REMOTE-Teil.
Wenn Sie den Handelsprozessor selbst debuggen müssen - auch hier sollten Sie ihn debuggen, und zwar innerhalb dieser Klasse - sollten Sie keine Variablen kennen, z. B. vom Eingangssignalgenerator.
Das ist das Wesen der Verkapselung - an jedem einzelnen Ort arbeiten wir nur mit dem, was wir brauchen, und beeinträchtigen andere Orte nicht.
Hallo...
Verstehen Sie viel über die Funktionsweise von Metatrader? Kennen Sie eine der Variablen von MT? Das hält Sie aber nicht davon ab, es zu benutzen.
Sie sollten dies innerhalb Ihres Programms tun. Es gibt eine Reihe von Blöcken, die über vordefinierte Schnittstellen interagieren und sich gegenseitig nicht beeinträchtigen.
Seien Sie vorsichtig, wir sprechen hier nicht von internen MT-Variablen, sondern von internen Objektvariablen, die Sie isoliert haben, um zu verhindern, dass ihre Werte beim Debuggen und Schreiben von Code gelesen werden können...
Wenn interne Objektvariablen an anderer Stelle benötigt werden, handelt es sich nicht mehr um interne Objektvariablen, sondern man muss sich Gedanken über die Logik des Aufbaus dieses Objekts machen (höchstwahrscheinlich muss es wieder in kleinere Objekte aufgeteilt werden). Als letzter Ausweg, wenn es wirklich notwendig ist und es keine andere Möglichkeit gibt, wird eine öffentlich zugängliche Get-Methode in der Schnittstelle ausgeführt.
Wenn Sie schon einmal einen etwas komplexeren Rechenalgorithmus geschrieben haben, werden Sie festgestellt haben, dass es immer viele Variablen gibt, die Sie mehrfach an verschiedenen Stellen behandeln und deren Werte Sie jederzeit an verschiedenen Stellen des Programms kontrollieren können müssen... Wie man zu dieser Situation noch hinzufügen kann, dass der gesamte interne Inhalt des Objekts von der Außenwelt gekapselt ist, ist unklar....
so etwas zeigt, dass Sie es waren, der leider fast nichts geschrieben hat :-(
Was für ein Chaos im System!
Wenn interne Objektvariablen an anderer Stelle benötigt werden, sind sie keine internen Objektvariablen mehr. Als letztes Mittel, wenn es wirklich notwendig ist und es keine andere Möglichkeit gibt, wird eine öffentlich zugängliche Get-Methode in die Schnittstelle aufgenommen.
Ja... man kann nicht anders, als sich zu fragen, was zum Teufel da drin ist :) Die Idee ist, eine adäquate Programmiersprache zu haben, um das Debuggen und das Schreiben von Code mit minimalen Gesten zu erleichtern, und hier haben wir eine völlig entgegengesetzte Situation...
so etwas zeigt, dass Sie es waren, der leider fast nichts geschrieben hat :-(
ein solches Chaos im System!
Wenn Sie schon einmal einen etwas komplexeren Rechenalgorithmus geschrieben haben, ist Ihnen sicher aufgefallen, dass es immer viele Variablen gibt, die an verschiedenen Stellen mehrfach verarbeitet werden müssen und deren Werte Sie an verschiedenen Stellen des Programms jederzeit kontrollieren können müssen... Wie man zu dieser Situation noch hinzufügen kann, dass der gesamte interne Inhalt eines Objekts von der Außenwelt gekapselt ist, ist unklar....
Hallo.
Benötigt ein Block Daten von einem anderen Block, so wird eine entsprechende virtuelle Schnittstelle deklariert, um diese Fähigkeit bereitzustellen. Hier, oben, die Funktionalität des Handels-Prozessor - ist in verschiedenen Teilen des Programms erforderlich, in den Generator von Eingängen, in der Steuerung von Trailing und Exit, in der Steuerung von Stop-Trades. Jeder dieser Programmblöcke kann sich auf das Expert Advisor-Objekt beziehen und eine Schnittstelle zum Handelsprozessor erhalten. Gleichzeitig hat niemand direkten Zugang zu diesem Prozessor - nur über eine vordefinierte Schnittstelle.
An anderen Stellen ist es dasselbe - wenn Daten benötigt werden, muss dieser Block die entsprechende Schnittstelle bereitstellen.
Der Punkt ist, dass jeder Punkt im Programm nur Zugriff auf die Variablen hat, die er braucht, und keinen Zugriff auf andere Variablen.