Mein Ansatz. Der Kern ist der Motor. - Seite 139
![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
Überzeugt ihr alle Peter von den Vorteilen von OOP?
Sie vergeuden Ihren Atem.
Ihr habt Recht, ich weiß das alles und ich verstehe es sehr gut. Aber anscheinend berührt Peter mit seinem "Ich will nicht, ich will nicht" einige mentale Fäden meiner OOP-Seele, so dass ich ständig in diese endlosen Erklärungen, Argumente und Streitereien verwickelt bin.
Und die Engine wird Kernel aus einer Textdatei laden. Das ist nicht schwer zu bewerkstelligen.
Oh, ich verstehe. Ja, so ist es besser. Ihr Kernel ist also eine Textdatei - im Wesentlichen eine Gruppe von Einstellungen für die Engine.
Nein, Vasiliy, du neigst dazu, alles zu dramatisieren.))
Im Konstruktor gibt es eine Schaltfläche, die, wenn sie angeklickt wird, alle Dateien ausgibt.
Und die Engine wird Kernel aus einer Textdatei laden. Das ist nicht schwer zu bewerkstelligen.
Entschuldigen Sie die Unterbrechung, aber ich frage mich gerade - wie soll die Überarbeitung durchgeführt werden? z.B. ändern Sie schlechte Namen oder allgemein die Zusammensetzung/Standort von Elementen
Oh, ich verstehe. Ja, so ist es besser. Ihr Kernel ist also eine Textdatei - im Wesentlichen eine Gruppe von Einstellungen für die Engine.
Ja, ganz genau. Alle Informationen, die die Engine benötigt, um eine bestimmte grafische Benutzeroberfläche zu reproduzieren und mit ihr zu arbeiten. Im Moment installiere ich es direkt in den Motor, und dann werde ich es aus der Datei, die der Builder druckt, ladbar machen.
Entschuldigen Sie die Unterbrechung, aber ich frage mich gerade, wie der Refactor funktionieren soll, z.B. durch das Ändern von schlechten Namen oder der Zusammensetzung/Position von Elementen im Allgemeinen.
Dies alles geschieht im Konstruktor. Der KIB-Code wird geschrieben und die Datei wird neu kompiliert.
So arbeiten Sie mit dem Konstruktorhttps://www.mql5.com/ru/blogs/post/717782
Oder ein anderes Beispiel. Kürzlich wurde ich gebeten, einen prozeduralen Expert Advisor so zu modifizieren, dass er gleichzeitig auf mehreren Symbolen (auf einem Chart) handeln kann. Der verfahrenstechnische Stil hätte langwierige und komplizierte Bemühungen erfordert, um den Handel mit verschiedenen Symbolen gleichzeitig und unabhängig voneinander zu ermöglichen. Im Gegensatz dazu habe ich einfach den gesamten prozeduralen Code in einer Klasse untergebracht und drei Exemplare erstellt. Ich habe für jeden von ihnen einen eigenen Satz von Einstellungen festgelegt, einschließlich des Arbeitssymbols usw. Der Code funktionierte beim ersten Versuch einwandfrei. Der Code funktionierte auf Anhieb so, wie er sollte. Der Benutzer war zufrieden.
Ich hatte diese Woche ein ähnliches Beispiel. Ich wurde gebeten, einen Expert Advisor zu erstellen, der den Kauf bei der Eröffnung eines Balkens in einem TF und den Verkauf bei der Eröffnung eines Balkens in einem anderen TF eröffnet.)
Aber ich habe eine triviale Funktion zur Definition eines neuen Balkens in eine Klasse umgeschrieben und 2 Instanzen der Klasse erstellt, um einen neuen Balken zu definieren. Ich habe den Zeitrahmen der TF als Parameter während der Initialisierung des Konstruktors übergeben
5 Minuten Arbeit, aber es ist garantiert, dass alles funktioniert und es keine Verwirrung mit den Namen der Funktionen NewBar_TF1() , NewBar_TF2() .... geben wird. genauso wie es praktisch ist, nach Änderungen der Einstellungen durch den Benutzer zu initialisieren - löschen Sie das Objekt in DeInit(), erstellen Sie das Objekt in ONInit()
Imho ist OOP bequem und praktisch
Dies alles geschieht im Konstruktor. Der KIB-Code wird geschrieben und die Datei wird neu kompiliert.
So arbeiten Sie mit dem Konstruktorhttps://www.mql5.com/ru/blogs/post/717782
Ja, ganz genau...
Das ist der Grund, warum es bei Ihrem Motor viele Verwechslungen mit anderen gibt. Geben Sie den Elementen in Ihrem System nicht standardisierte Namen. Kein Kernel - sondern eine automatisch generierte Konfigurationsdatei.
Aber es überschreibt alle Benutzereingaben, die in den Ereignissen enthalten sind?
Erklären Sie weiter.
Das ist der Grund, warum es bei Ihrem Motor viel Verwirrung gibt und warum andere verwirrt sind. Geben Sie den Elementen in Ihrem System nicht standardisierte Namen. Es handelt sich nicht um einen Kernel, sondern um eine automatisch generierte Einstellungsdatei.
Die Datei ist also der gedruckte Kernel. Es gibt mehr als einen.