Diskussion zum Artikel "Kontinuierliche Walk-Forward-Optimierung (Teil 7): Einbinden des logischen Teils des Auto-Optimizer mit Grafiken und Steuerung"

 

Neuer Artikel Kontinuierliche Walk-Forward-Optimierung (Teil 7): Einbinden des logischen Teils des Auto-Optimizer mit Grafiken und Steuerung :

Dieser Artikel beschreibt die Verbindung des grafischen Teils des Auto-Optimizers mit seinem logischen Teil. Er betrachtet den Prozess des Optimierungsstarts, von einem Tastenklick bis zur Aufgabenumleitung zum Optimierungsmanager.

Wie bereits früher erwähnt, ist ViewModel das Bindeglied zwischen dem grafischen Teil der Anwendung und der Software-Implementierung der Logik. Es ist die grafische Darstellung des Programms, die die Aufrufe der Anwendungslogik und die grafische Reaktion auf die Rückrufe des logischen Teils der Anwendung implementiert. Dementsprechend entspricht eine 'public' Eigenschaft aus dem ViewModel-Teil jedem editierbaren Feld im grafischen Teil der Anwendung. Diese Eigenschaften können entweder Getter (Abrufen von Werten) sein, in diesem Fall können sie von der Grafik aus nicht geändert werden, oder Setter (Zuweisen von Werten), die das Überschreiben des hinter dieser Eigenschaft verborgenen Objekts ermöglichen. In früheren Teilen haben wir uns bereits ausführlich mit der Datenbindungstechnologie befasst. Daher werde ich hier nur einige wenige Beispiele anführen. 

Textfelder werden über Eigenschaften verbunden, die sowohl Schreib- als auch Lesezugriff haben. Betrachten Sie als Beispiel ein Feld, das den Namen eines Handelssymbols angibt, an dem eine Optimierung durchgeführt wird. Das XAML-Markup für dieses Feld ist äußerst einfach.

    

<TextBox Width="100"          IsEnabled="{Binding EnableMainTogles, UpdateSourceTrigger=PropertyChanged}"          Text="{Binding AssetName}"/>

Zusätzlich zur Einstellung der Breite des Textfensters hat es auch die Felder IsEnabled und Text. Das erste legt fest, ob das Feld zur Bearbeitung zur Verfügung steht. Wenn es auf true gesetzt wird, wird das Feld zur Bearbeitung verfügbar. Wenn es auf false gesetzt ist, wird das Feld gesperrt. Das Feld "Text" enthält den in dieses Feld eingegebenen Text. Dann gibt es gegenüber jedem Feld eine Konstruktion in geschweiften Klammern. Ihr Inhalt legt die Verbindung des Objekts mit einer bestimmten 'public' Eigenschaft aus der Klasse ViewModel fest, die nach dem Parameter "Binding" angegeben wird.

Autor: Andrey Azatskiy

 

Sie haben erneut Ihr hohes professionelles Niveau als Programmierer unter Beweis gestellt. Ein bisschen mehr Benutzerfreundlichkeit sozusagen, für mehr Popularität. Um diese Artikel zu verstehen, muss man sich entsprechend viel Zeit nehmen, um sie zu schreiben. Würden Sie Ihren Optimierer in kodobase einstellen, nur als Code und Gebrauchsanweisung? Vielleicht wird er dann von mehr Händlern wahrgenommen.

Ich sehe, dass das benutzerdefinierte Optimierungskriterium noch nicht erschienen ist und die Höhe im Kalender..... Da OnTester() obligatorisch verwendet wird, könnten wir mit dem benutzerdefinierten Kriterium überhaupt auskommen. Und wieder einmal möchte ich über die Automatisierung der Eingabe von Testzeiträumen nachdenken. Meine Praxis zeigt, dass es besser ist, die Vorwärtsoptimierung von Tests über Zeiträume von 3-5 Wochen für mehrere Instrumente durchzuführen. Es ist nichts für schwache Nerven, alle Perioden für jedes Stück manuell zu schreiben. Es ist nicht schwer, mit den MQL5-Tools ein Skript zu erstellen, das die Zeiträume empfängt und ausgibt, aber aufgrund von Sandbox- und Formatbeschränkungen müssen Sie sie manuell an den Auto-Optimiser übertragen. Sie können dies über die Funktionen des Programms tun. Sie brauchen es vielleicht nicht persönlich, aber für wen haben Sie schon so große und komplexe Artikel geschrieben?

Der zuverlässige Betrieb ist der Vorteil Ihres Auto-Optimierers gegenüber seinem bekannten Analogon, während die Komplexität der Einrichtung ein Nachteil ist. Aber Sie haben ein Handbuch für diejenigen, die es finden.

 
Good Beer:

Sie haben erneut Ihr hohes professionelles Niveau als Programmierer unter Beweis gestellt. Ein bisschen mehr Benutzerfreundlichkeit sozusagen, für mehr Popularität. Um diese Artikel zu verstehen, muss man sich entsprechend viel Zeit nehmen, um sie zu schreiben. Würden Sie Ihren Optimierer in kodobase einstellen, nur als Code und Gebrauchsanweisung? Vielleicht wird er dann von mehr Händlern wahrgenommen.

Ich sehe, dass das benutzerdefinierte Optimierungskriterium noch nicht erschienen ist und die Höhe im Kalender..... Da OnTester() obligatorisch verwendet wird, könnten wir mit dem benutzerdefinierten Kriterium überhaupt auskommen. Und wieder einmal möchte ich über die Automatisierung der Eingabe von Testzeiträumen nachdenken. Meine Praxis zeigt, dass es besser ist, die Vorwärtsoptimierung von Tests über Zeiträume von 3-5 Wochen für mehrere Instrumente durchzuführen. Es ist nichts für schwache Nerven, alle Zeiträume für jedes Stück manuell zu schreiben. Es ist nicht schwer, mit den MQL5-Tools ein Skript zu erstellen, das die Zeiträume empfängt und ausgibt, aber aufgrund von Sandbox- und Formatbeschränkungen müssen Sie sie manuell an den Auto-Optimiser übertragen. Sie können dies über die Funktionen des Programms tun. Sie brauchen es vielleicht nicht persönlich, aber für wen haben Sie so umfangreiche und komplexe Artikel geschrieben?

Der zuverlässige Betrieb ist der Vorteil Ihres Auto-Optimierers gegenüber seinem bekannten Analogon, während die Komplexität der Einrichtung ein Nachteil ist. Aber Sie haben ein Handbuch für diejenigen, die es finden.

Ich danke Ihnen für Ihren Kommentar. Wie ich in der Zusammenfassung des Artikels geschrieben habe, werde ich alle Ergänzungen in den letzten Artikel aufnehmen. Dies ist eine der bereits geplanten. Ich habe versucht, in allen Artikeln, die veröffentlicht werden, das gesamte Programm zu beschreiben - von dem Teil, der Berichte hochlädt, bis hin zur internen Struktur des Auto-Optimierers selbst. Ich erinnere mich an die versprochenen Änderungen, und ich arbeite bereits an ihnen. Ich werde sie jedoch im nächsten Artikel veröffentlichen, da ich zuerst die Beschreibung der ersten Version des Programms vervollständigen musste. Ich erinnere mich, dass ein Lehrer an der Universität zu uns sagte: "Eine Autofirma tauscht nicht das Bremssystem gegen ein neues bei der bereits produzierten Version von Autos aus".
Was den Code betrifft, so ist er dem Artikel beigefügt und Sie können ihn ändern, zerlegen und modernisieren, wenn Sie ihn brauchen (ich werde die versprochenen Änderungen vornehmen, und wenn Sie etwas Individuelleres brauchen, können Sie es als Variante hinzufügen oder es einfach ausarbeiten, wenn Sie daran interessiert sind), deshalb schreibe ich ihn so detailliert, damit es ein Bild davon gibt, wie alles funktioniert. Ich werde eine automatische Punkttrennung einbauen.