Mein Ansatz. Der Kern ist der Motor. - Seite 42

 
Maxim Kuznetsov:

Der Import von GUI aus dem EA in den Indikator ist eine fragwürdige Sache (gerade die Architektur von MT - Indikatoren arbeiten im Interface-Thread und können ALLES verlangsamen. Um ein Abbremsen der Blinker in MT zu vermeiden, wird ihnen sogar ein Teil der Funktionen untersagt)

Das ist es nicht.

Wenn ein unglücklicher Benutzer ein paar (Drittanbieter-) Indikatoren und einen EA nimmt und sie alle GUI mit der Kernel-Engine aus dem Weg sind. Was wird geschehen?

PS/ Peter, Sie haben bereits mindestens kostenloses Hosting erhalten und dort Ihr Produkt eingestellt. Wenn die Code-Basis nicht gut ist. Die Veröffentlichung von Alpha-/Beta-/Preview-Versionen dauert nur ein paar Stunden. Können Sie keine Zeit finden?

Nun, zunächst einmal werde ich es tun. Und das werde ich.

Ich bin hier der Produktwerbung beschuldigt worden, also ist dies in der Tat die ungeschickteste Werbung, die man sich vorstellen kann. Denn wenn ich anfange, Geld zu verdienen, werde ich der Letzte sein, der das tut. Wann werden alle die kostenlose Version verwenden?


Was die Indikatoren angeht, haben Sie Recht. Die Grafiken auf ihnen sind langsam. Vor allem der Bildlauf. Ich habe bereits einige Experimente durchgeführt. Der gleiche Code in Expert Advisor (Bild scrollen), verursacht keine Verlangsamungen, und in den Indikator - verlangsamt.

Daher kann die Engine als Expert Advisor erstellt werden, der auf jedem freien Chart funktioniert, und das Fenster kann mit speziellen Schaltflächen zwischen Charts verschoben werden.

 
Реter Konow:

Tabs schalten den gesamten Kanvas um. Die zweite und die dritte Option hingegen dienen der Kontrolle des Elementphänomens ohne Wechsel der Kanvas. Das heißt, dieselbe Leinwand wird neu gezeichnet, aber jedes Mal mit einer anderen Anzahl von Elementen.

Was die Verbindung angeht, verstehe ich Ihre Idee nicht. Warum sollte sie nicht mit dem EA verbunden sein? Und die Parameter, wie man sie synchronisiert?

Die grafische Benutzeroberfläche befindet sich entweder vollständig im Expert Advisor oder sie ist von außen angeschlossen. Im Falle einer externen Verbindung müssen Sie die Verbindungseigenschaften einstellen und die Werte der Parameter auf beiden Seiten synchronisieren.

Was wird hier als Synchronisierung der Parameter bezeichnet? Welche Eigenschaften kann die Verbindung hier haben?

 
Реter Konow:

Wann wird die kostenlose Version von allen genutzt?

ach, sie werden nicht, Ihren Weg nur Fließband, dessen Ausgang ist eine Menge von Produkten mit Grafiken, an der Spitze und in den Prozess, nur Sie)))

Es scheint bereits besprochen worden zu sein, dass Ihr Ansatz von denen, die programmieren können, nicht verstanden wird, und von denen, die ohne Ihre Hilfe nicht programmieren können, haben Sie 2 Möglichkeiten:

1. Marktplatz

2. Freiberuflich

SZZ: Ich wiederhole meine Meinung

a) für den Handel, die grundlegenden Elemente der Grafiken aus MT Lieferung oder Sie können Beispiele aus KB verwenden - all dies ist in klassischen Programmiersprachen geschrieben und erfordert keine zusätzliche Zeit für Experimente und Debugging, Sie nehmen Sie einfach und verwenden Sie es. All diese Informationen können auf dem Marktplatz veröffentlicht werden.

b) um eine analytische Plattform für den persönlichen Gebrauch zu schreiben, ist es besser, fertige Lösungen zu finden und sie mit MT zu verbinden (.dll, Pythons, R, Matlab....) , in diesem Fall ist es besser, Grafiken von Drittanbietern zu verwenden, so dass MT nur mit dem Server funktioniert

 
Dmitry Fedoseev:

Was wird hier als Parametersynchronisation bezeichnet? Welche Eigenschaften kann die Verbindung hier haben?

Steuerelemente haben Parameter.

Zum Beispiel Checkbox. Hat einen Parameter, der zwei mögliche Werte hat: 1 und 0.

Wenn ein Benutzer auf ein Kontrollkästchen klickt und ein Häkchen setzt, wird auf der Engine-Seite im Array der Parameter der Steuerelemente eine 1 gesetzt.

Anschließend wird eine Nachricht mit der Nummer und dem Wert des Ankreuzparameters an die Benutzeranwendung gesendet. Danach wird der neue Wert analog zum Array der Parameter in die Anwendung geschrieben und die Funktion On_Gui_Event() aufgerufen.

Auf diese Weise werden die Werte zwischen der Engine und der Benutzeranwendung synchronisiert.


Eigenschaften der Verbindung:

Schlüsselwörter, Wrapper-Funktionen, die Werte auf Elemente aus dem EA setzen, Wrapper-Funktionen, die verwendbare Fenster öffnen/schließen...

Initialisierung einer Kopie des Arrays der Parameter im Expert Advisor.

Das war's dann auch schon.

 
Igor Makanu:

ach, sie werden nicht, Ihren Weg nur ein Fließband mit einer Menge von Produkten mit Grafiken, an der Spitze und in den Prozess, nur Sie)))

Ich glaube, wir haben bereits darüber gesprochen, dass (1)Ihr Ansatz für diejenigen, die programmieren können, unverständlich ist, und dass diejenigen, die ohne Ihre Hilfe nicht programmieren können, zwei Möglichkeiten haben:

1. Der Marktplatz

2. Freiberuflich

SZZ: Ich wiederhole meine Meinung

a) für den Handel, die grundlegenden Elemente der Grafiken aus MT Lieferung oder Sie können Beispiele aus KB verwenden - all dies ist in klassischen Programmiersprachen geschrieben und erfordert keine zusätzliche Zeit für Experimente und Debugging, Sie nehmen Sie einfach und verwenden Sie es. All diese Informationen können auf dem Marktplatz veröffentlicht werden.

b) um eine analytische Plattform für den persönlichen Gebrauch zu schreiben, ist es besser, fertige Lösungen zu finden und sie mit MT zu verbinden (.dll, Pythons, R, Matlab....) , (2) in diesem Fall ist es besser, Grafiken von Drittanbietern zu verwenden, so dass MT nur mit dem Server zu tun hat

1) Diejenigen, die programmieren können, brauchen meinen Ansatz nicht zu lernen. Verwenden Sie nur den Konstruktor und verbinden Sie die erstellte GUI mit ihrer Anwendung.

2. Dies ist nur für Fachleute. Ich habe bereits gezeigt, dass die Verwendung von Grafiken von Drittanbietern viel schwieriger ist. Es ist eine Krücke, die ein hohes Maß an Ausbildung erfordert. Gegen die Leichtigkeit meines Erbauers wird sie bedeutungslos.

Alles in allem ist Ihre Lösung nicht massentauglich. Meiner ist für die breite Masse.

 
Igor Makanu:

Es scheint bereits besprochen worden zu sein, dass Ihr Ansatz für diejenigen, die programmieren können, unverständlich ist, und für diejenigen, die ohne Ihre Hilfe nicht programmieren können, haben Sie 2 Möglichkeiten:

Der Grafikkonstruktor bei der Ausgabe erstellt eine Engine mit Benutzer-GUI und Verbindungsdateien.

Anschließend verbindet der Benutzer die Engine mit seiner Anwendung (wie oben beschrieben) und füllt die Verbindungsdatei aus.

Das war's dann auch schon.

Niemand muss meinen Ansatz lernen. Beherrschen Sie nur die einfache Sprache des Bauherrn.

 
Реter Konow:

Steuerelemente haben Parameter.

Zum Beispiel Checkbox. Hat einen Parameter, der zwei mögliche Werte hat: 1 und 0.

Wenn der Benutzer auf das Kontrollkästchen klickt und es ankreuzt, wird auf der Engine-Seite eine 1 in das Array der Kontrollparameter eingetragen.

Anschließend wird eine Nachricht mit der Nummer und dem Wert des Ankreuzparameters an die Benutzeranwendung gesendet. Danach wird der neue Wert analog zu den Array-Parametern in die Anwendung geschrieben und die Funktion On_Gui_Event() wird aufgerufen.

Auf diese Weise werden die Werte zwischen der Engine und der Benutzeranwendung synchronisiert.


Eigenschaften der Verbindung:

Schlüsselwörter, Wrapper-Funktionen, die Werte auf Elemente aus dem EA setzen, Wrapper-Funktionen, die verwendbare Fenster öffnen/schließen...

Initialisierung einer Kopie des Arrays der Parameter im Expert Advisor.

Das war's dann auch schon.

In welchen Feldern wird sie geschrieben? In reguläre Arrays? Ich habe das Terminal neu gestartet und alles war zurückgesetzt...

Der Benutzer hat eine Schaltfläche oder ein Kontrollkästchen gedrückt - ein Ereignis ist eingetreten und der Expert Advisor hat auf dieses Ereignis reagiert. Was gibt es sonst noch zu synchronisieren und warum? Im Falle eines separaten Neustarts des Expert Advisors oder Indikators mit einem gui?

Ich bin sehr gespannt, wie es bei einem Neustart des Terminals reagieren wird. Werden die vom Benutzer eingestellten Parameter gespeichert?

 
Dmitry Fedoseev:

In welche Arrays wird er geschrieben? Die normalen Arrays? Ich habe das Terminal neu gestartet und alles ist zurückgesetzt...

Der Benutzer hat eine Schaltfläche oder ein Kontrollkästchen gedrückt - ein Ereignis ist eingetreten, der Expert Advisor hat auf dieses Ereignis reagiert. Was gibt es sonst noch zu synchronisieren und warum? Im Falle eines separaten Neustarts des Expert Advisors oder Indikators mit einem gui?

Ich bin sehr gespannt, wie es bei einem Neustart des Terminals reagieren wird. Werden die vom Benutzer eingestellten Parameter gespeichert?

Der Neustart des Terminals führt zu einem Neustart des Expert Advisors. Oder etwa nicht?

Zwei Arrays des Typs string (ein universeller Typ, geeignet für die Speicherung beliebiger Parameterwerte) werden synchronisiert.

Die Elemente in der Engine stellen die Werte ihrer Parameter dar.


Zum Beispiel eine Tabellenzelle. Speichert den letzten übergebenen Wert in einem Array von Parameterwerten.

In diesem Array werden die Eigenschaften der Parameter gespeichert.

Oder Schiebereglerparameter-Eigenschaften: Minimalwert, Maximalwert, Wertesprung, aktueller Wert.

Wenn der Benutzer einen Wert in einem Eingabefeld mit Schaltflächen (+/-) umschaltet, wird die Wertänderung in der Engine vorgenommen und dann an den EA weitergegeben.

Das heißt, der Expert Advisor muss die Änderungen der Elementwerte nicht verfolgen. Er empfängt fertige Werte und reagiert auf diese.

 
Dmitry Fedoseev:

...

Der Benutzer hat eine Schaltfläche oder ein Kontrollkästchen gedrückt - ein Ereignis ist eingetreten, der Expert Advisor hat auf dieses Ereignis reagiert. Was gibt es sonst noch zu synchronisieren und warum? Im Falle eines separaten Neustarts von Expert Advisor oder Indikator mit Gui?

...

Wo speichern Sie die Werte der Elemente?

Die Werte der Elemente können zunächst im Designer festgelegt werden und sie können auch durch den Expert Advisor auf der Inite festgelegt werden.

Der Motor ist verpflichtet, die Werte der Elementparameter zu speichern. Andernfalls können sie nicht verarbeitet werden, wenn der Benutzer mit den Elementen interagiert.

Das heißt, wenn der Schieberegler bewegt wird, ändert sich der Wert auf der Motorseite nicht, und der Benutzer muss die Änderung des Wertes selbst im Auge behalten.

Es gibt eine Vielzahl weiterer Nuancen.

Zum Beispiel - Synchronisierung von Parameterwerten zwischen Elementen. Sie muss auf Konstruktorebene festgelegt werden.

(Fragen Sie Oleg Papkov. Ich habe die Synchronisierung seiner Elemente implementiert. Er ändert die Position des Schiebereglers, und in den Eingabefeldern in verschiedenen Fenstern ändern sich die Werte. Und all dies funktioniert auf Motorebene).

Andernfalls muss dies alles vom Benutzer selbst erledigt werden.

Und das ist nichts für die breite Masse.

 
Реter Konow:

(Fragen Sie Oleg Papkov. Ich habe die Synchronisierung seiner Elemente implementiert. Er ändert die Position des Schiebereglers, und Eingabefelder in verschiedenen Fenstern ändern ihre Werte. Und all dies funktioniert auf Motorebene).


Oh@@t! Gib mir zwei...

Ich habe das noch nie gesehen und hier ist es wieder :-)

Das ist das Wunder aller Wunder - wenn man das eine ändert, ändert man auch das andere.

Denken Sie wenigstens daran, womit Sie prahlen :-)

Grund der Beschwerde: