Asynchrone und mehrfädige Programmierung in MQL - Seite 16

 
Roman:

Ich habe Ihnen bereits geschrieben, dass Sie versuchen, einen NS zu bauen, brauchen Sie in diesem Fall keine Asynchronität?
Aber Sie bauen NS auf einfachen Aktivierungsfunktionen auf, so dass Sie nicht auf einen Mangel an Gleichzeitigkeit gestoßen sind.
Aber wenn man anfängt, globale NS-Modelle zu bauen, dann wird man die Schönheit der Asynchronität verstehen.

schlechtes Beispiel - nicht nötig!

@Roffild schrieb bereits im Thread"In der heutigen Welt muss ein Programmierer mehrere Sprachen kennen, um das richtige Werkzeug für eine bestimmte Aufgabe zu wählen. "

Das ist wahr!

In MQL gibt es keine Auswahl an Paketen für MQL - nur AlgLib - ich möchte ein Beispiel betrachten, gefunden auf Habra, ich nehme und verbinden C# oder Python zu MQL - das ist es, ich tue, was ich tun will, nicht portieren Code zu MQL

Heutzutage sind Programmiersprachen nicht wegen ihrer Funktionen interessant, sondern wegen der vorgefertigten Frameworks! - Wenn es in MQL neue MQL-Pakete geben wird, dann wird es andere Aufgaben und Probleme geben!

ZS: wieder einmal, auf meine Finger, Sie klammern sich an "die Idee der fx", die aus Cross-Plattform-Sprachen Python und Java wuchs, das Opfer für die Portabilität und Flexibilität der Sprache war der Verlust der Leistung, jetzt diese Sprachen wurden mit verschiedenen Möglichkeiten, um die Leistung zu erhöhen überwuchert, aber in C-ähnlichen Sprachen Entwickler immer maximale Leistung zu erreichen und es gibt keine Notwendigkeit (in den meisten Fällen), um die Aufgabe in getrennte Threads (Client - Server Aufgaben zählen nicht, da das Problem in der Datenaustauschgeschwindigkeit und das ist eine andere Besonderheiten) zu unterteilen

 
Igor Makanu:

schlechtes Beispiel - nicht nötig!

@Roffild schrieb bereits im Thread"In der heutigen Welt muss ein Programmierer mehrere Sprachen kennen, um das richtige Werkzeug für eine bestimmte Aufgabe zu wählen. "

Das ist wahr!

In MQL gibt es keine Auswahl an Paketen für MQL - nur AlgLib - ich möchte ein Beispiel, gefunden auf der hubra, ich nehme und verbinden C# oder Python zu MQL - das ist alles, ich tue, was ich tun will, nicht Portierung Code zu MQL

Heutzutage sind Programmiersprachen nicht wegen ihrer Funktionen interessant, sondern wegen der vorgefertigten Frameworks! - Wenn es in MQL neue MQL-Pakete geben wird, dann wird es andere Aufgaben und Probleme geben!

ZS: wieder einmal auf die Finger, Sie klammern sich an "die Idee der fx", die aus der Cross-Plattform-Sprachen Python und Java wuchs, das Opfer für die Portabilität und Flexibilität der Sprache war der Verlust der Leistung, jetzt diese Sprachen haben sich durch verschiedene Möglichkeiten zur Steigerung der Leistung umgeben, aber in C-ähnlichen Sprachen Entwickler immer maximale Leistung zu erreichen und es gibt keine Notwendigkeit (in den meisten Fällen), um die Aufgabe in getrennte Threads (Client - Server-Aufgaben zählen nicht, da das Problem ist der Datenaustausch Geschwindigkeit und dies ist eine weitere Besonderheit) zu teilen

Sie ignorieren ständig die folgenden Dinge:

1. Die Verteilung von Programmen, die externe Verbindungen nutzen, kann nicht über Market erfolgen.

2. Bei Programmen, die externe Verbindungen nutzen, muss der Benutzer ein "Professor" sein, um alles richtig zu verbinden. Die Anleitung für die Verwendung eines solchen Programms ist ein einziges Durcheinander.

3. Programme, die externe Verbindungen nutzen, sind nur für den persönlichen Gebrauch geeignet, was den Sinn ihrer Erstellung stark einschränkt.

4. Programme für den persönlichen Gebrauch sind von geringerer Qualität als die käuflichen, weil man alles selbst machen kann... und man KANN NICHT derselbe Experte in mehreren Sprachen gleichzeitig sein. Einige Sprachen beherrschen Sie erst ab der fünften bis zehnten Sprache, und das wirkt sich auf die Qualität des Produkts aus.

5. Es gibt viele Aufgaben, die asynchrones und Multithreading erfordern. MMS-Programme haben diese Aufgaben noch nicht erreicht, aber das bedeutet nicht, dass sie nicht danach streben sollten.

 
Roman:

...
Wie wird die Asynchronität in einem einzigen Stream erreicht?

Nein, also, Asynchronität ohne Multithreading ist wirklich Unsinn, man braucht mindestens einen zusätzlichen Thread. Ich denke, dass Ihr EventLoop über ladbare Indikatoren durchgeführt werden kann. Kommunikation zwischen Expertenindikatoren z.B. über Sockets. Eine Aufgabe wurde erstellt, der Indikator wurde angeschlossen, die Aufgabe wurde gesendet, der Indikator meldete die Ausführung, wir fragen den Aufgabenstatus vom Expert Advisor ab, löschen den Indikator. Durch Krücken, aber trotzdem Multithreading.

 
Roman:

Ja, der Artikel ist sehr gut, für eine Einzellösung, wenn man darüber nachdenkt, kann man vielleicht noch etwas anderes aus diesem Ansatz herausquetschen.
Ich habe mich für die Richtung meines Problems entschieden, danke an Andrey für den Tipp.

Die Tatsache, dass Sie einen Artikel gelesen haben, ist gut.

Roman:

Keine Threads, sondern die nicht blockierenden Aufrufe über Colback-Funktionen, die von EventLoop gesteuert werden.
Dadurch wird die Asynchronität in einem Thread erreicht.

Wie ist es Ihnen gelungen, dies nicht in der Dokumentation zu finden?

Warum lesen Sie es nicht?

 
Реter Konow:

Sie ignorieren ständig die folgenden Dinge:

Sie und ich haben unterschiedliche Aufgaben, Sie berücksichtigen nicht, dass es zwei große Schritte beim Schreiben von Software gibt: Softwareentwicklung und Implementierung selbst.

Die Entwicklung von Software erfordert fertige Lösungen - das kostet Zeit; wenn sich während der Entwicklung herausstellt, dass die Software ihre Aufgaben nicht wie geplant erfüllen kann, wandert sie in den Papierkorb. Und die Umsetzung selbst ist eine mechanische Arbeit für die Möglichkeiten einer bestimmten Plattform.


ReTeg Konow:

5. Es gibt viele Aufgaben, die Asynchronität und Multithreading erfordern. MMS-Programme haben diese Aufgaben noch nicht erreicht, was aber nicht bedeutet, dass sie nicht danach streben sollten.

Okay, jetzt gehen wir mit Ihnen:

Beantworten Sie die Frage, wozu dasHandelsterminal benötigt wird.

 
Koldun Zloy:

Die Tatsache, dass Sie einen Artikel gelesen haben, ist gut.

Wie ist es Ihnen gelungen, dies nicht in der Dokumentation zu finden?

Warum lesen Sie es nicht?

Stellen Sie sich vor, Sie finden es nicht.
Bei der Suche nach callback und eventloop wird in der Dokumentation nichts dergleichen gefunden.
Wenn es Ihnen nichts ausmacht, geben Sie mir bitte einen Link ohne Sarkasmus.

 
Igor Makanu:

1 Sie und ich haben unterschiedliche Aufgaben; Sie berücksichtigen nicht, dass es zwei große Phasen beim Schreiben von Software gibt: Softwareentwicklung und Implementierung.

Die Software-Entwicklung erfordert fertige Lösungen - das kostet Zeit; wenn sich während der Entwicklung herausstellt, dass die Software ihre Aufgaben nicht wie geplant erfüllen kann, ist sie umsonst. Und die Umsetzung selbst ist eine mechanische Arbeit für die Möglichkeiten einer bestimmten Plattform.


OK, jetzt gehen wir mit Ihnen:

2. die Frage beantworten, warumdas Handelsterminal es braucht?

1. Alles, was ich tue, ist Entwicklung. Kaum 6 Jahre kontinuierliche Entwicklung, ich verstehe nicht, was das soll. )) Ich denke, dass vorgefertigte externe Lösungen, die aus dem Kontext anderer Programme herausgerissen oder von anderen Programmen abstrahiert wurden, sich schlecht in die Struktur eines hochspezialisierten Codes integrieren und sehr unübersichtlich werden können. Der Arbeitsaufwand ist in diesem Fall höher als bei der Entwicklung einer eigenen Lösung und die endgültige Qualität des Codes ist geringer. Ganz zu schweigen von dem Entwicklungspotenzial. Dies sind die Realitäten der Entwicklung. Aber das ist für unsere Frage irrelevant. Was hat das eigentlich damit zu tun?

2. Sie stellen die falsche Frage. Die wichtigste Frage ist: "Wozu braucht der Endnutzer sie?". Denn dem Nutzer fehlt es immer an den angebotenen Funktionen. Deshalb müssen sie hinzugefügt werden, damit sie nicht das Interesse verlieren. Wenn uns die Möglichkeiten ausgehen und wir aufgrund technischer Beschränkungen keine neuen hinzufügen können, wird der Nutzer aufgeben. Es müssen Möglichkeiten geschaffen werden, um die Nutzer am Terminal zu halten, und zu diesem Zweck ist eine Softwareverteilung erforderlich. Daher sind Programme, die nicht verbreitet werden können, für die Gemeinschaft bedeutungslos, unabhängig davon, welche Sprachen sie verwenden.


Sie betrachten nämlich nur Ihre eigenen Bedürfnisse und berücksichtigen nicht die Bedürfnisse der anderen Nutzer. Sie wollen und können in dieser Gemeinschaft keine Geschäfte machen, und Sie verbreiten nur die Motivation, auf dem Markt Geld zu verdienen. Und Sie können auf dem Markt ganz ohne Software Geld verdienen.

 
Igor Makanu:

schlechtes Beispiel - nicht nötig!

@Roffild schrieb bereits in dem Thread"In der heutigen Welt muss ein Programmierer mehrere Sprachen beherrschen, um das richtige Werkzeug für eine bestimmte Aufgabe zu wählen. "

Das ist wahr!

In MQL gibt es keine Auswahl an Paketen für MQL - nur AlgLib - ich möchte ein Beispiel, gefunden auf der hubra, ich nehme und verbinden C# oder Python zu MQL - das ist alles, ich tue, was ich tun will, nicht Portierung Code zu MQL

Heutzutage sind Programmiersprachen nicht mehr wegen ihrer Funktionen interessant, sondern wegen der vorgefertigten Frameworks! - Wenn es in MQL neue MQL-Pakete geben wird, dann wird es andere Aufgaben und Probleme geben!

ZS: noch einmal auf die Finger, Sie klammern sich an die "fixe Idee", die aus der Cross-Plattform-Sprachen Python und Java, das Opfer für die Portabilität und Flexibilität der Sprache war der Verlust der Leistung, jetzt diese Sprachen haben sich von verschiedenen Möglichkeiten zur Steigerung der Leistung umgeben, aber in C-ähnlichen Sprachen Entwickler erreichen immer maximale Leistung und es gibt keine Notwendigkeit (in den meisten Fällen), um die Aufgabe in getrennte Threads (Client - Server-Aufgaben sind nicht enthalten, da das Problem ist die Geschwindigkeit des Datenaustauschs und dies ist eine weitere Besonderheit) zu teilen

Igor, du widersprichst dir manchmal selbst.
Letztes Mal haben Sie geschrieben, dass die Berechnungsgeschwindigkeit von mql mit der von C++ vergleichbar ist
OK, das ist in der Tat wahr und viele Menschen wissen das.
Aber dann geben Sie ein Beispiel für die Verbindung von Frameworks von Drittanbietern, um Berechnungen zu portieren, wie Sie es bei zurückgebliebenen Sprachen sagen.
Und Sie plädieren für die Konnektivität von Drittanbieterpaketen. Sie opfern also Geschwindigkeit für ein Framework von der Stange?
Und damit, wie Peter schrieb, verlieren Sie die Portabilität Ihres Programms vollständig.
Das ist keine gute Lösung. Für den persönlichen Gebrauch ja, aber nicht für den Massengebrauch.

 
Roman:

Stellen Sie sich vor, Sie finden es nicht.
Bei der Suche nach callback und eventloop wird in der Dokumentation nichts dergleichen gefunden.
Wenn es Ihnen nichts ausmacht, geben Sie mir einen Link ohne unnötigen Sarkasmus.

Sie brauchen nicht zu suchen, Sie müssen alles lesen. Ich bin sicher, dass es dort viele Überraschungen für Sie gibt.

Es wird keine Links geben.

Ich habe hier mehr als einmal Menschen geholfen, die zumindest versucht haben, etwas für sich selbst zu tun.

Und was haben Sie getan?

Du sitzt nur da und beobachtest dein Mundwerk im Forum?

Nun, ich helfe Ihnen dabei.


 
Nur Marktverkäufer dürfen in der MKL Ströme benötigen. Für alle anderen gibt es bereits Streams. Sie benötigen eine komplexe Verarbeitung? - Übergeben Sie die Ereignisse an eine DLL, erstellen und trennen Sie einen Stream und geben Sie den Terminal-Stream frei, und Sie können sie für immer verarbeiten).
Es muss gesagt werden, dass die meisten mit dem Gewinde nicht zurechtkommen werden, und ein oder zwei Hundert aller ICL-Benutzer werden es brauchen. Würde sich MKL die Mühe machen, um hundert Programmierern zu helfen, die mit Market handeln wollen?
Grund der Beschwerde: