Asynchrone und mehrfädige Programmierung in MQL - Seite 21

 
Roman:


Zur Veranschaulichung wird hier ein Beispiel für linearen asynchronen Code in einem Thread gezeigt.

CTask *task2   = obj2.CALLBACK_FUNC(DeleteOrdersLimits(Magic));  //Выполняется асинхронно в пуле потоков

wird dies nicht funktionieren:

Igor Makanu:

aber bei der Verwendung von Multithreading-Anwendungen ist die Steuerung dieser Threads für die Entwickler ein Problem, da sie die Bereitschaft der Berechnung nicht überprüft haben - sie haben einen Fehler, der zu einem unbekannten Zeitpunkt auftreten wird

OK, ich hatte Lust, in einem Thema mit so einem schönen Namen zu schreiben - ich schrieb, also schrieb ich... erinnerte an Don Quijote und seinen ewigen Kampf mit Windmühlen ))))

Ein gutes Team von Fachleuten, ich denke, es gibt noch etwas zu besprechen

 
Yuriy Asaulenko:

....

Warum, rein hypothetisch, sollte ich Ihre grafische Benutzeroberfläche usw. benötigen, wenn sie in Sharp oder Python in zwei Schritten geschrieben werden kann? Dem Benutzer ist es egal, in welcher Sprache sie geschrieben ist, er braucht die Funktionalität und nicht die Einzelheiten der Implementierung. D.h. ein Programmierer braucht solche Produkte nicht, aber einem Anwender ist das völlig egal, er achtet auf den Preis, und der ist bei Sharp offensichtlich billiger und funktionaler.

1) Wo finden Sie Käufer für Ihre Sharp Programme?

2) Wie werden Sie die Sicherheit Ihrer Programme nachweisen?

3. Sie als erfahrener Programmierer schlagen vor, bei der TC-Entwicklung keine Anwendungssprache zu verwenden, weil Ich habe jahrelang nicht verstanden, warum.

4. Wenn Sie vorhaben, ein hybrides Programm zu erstellen - die GUI von Sharp zu verwenden und die Logik in MCL zu schreiben -, versuchen Sie, die Tabellen von Sharp mit dem Expert Advisor zu verbinden. Es ist schon ein halbes Jahr her, und der Artikel, der zeigt, wie es geht, ist noch nicht veröffentlicht. Ich vermute, dass es hier sehr ernste Probleme gibt. Und die grafische Benutzeroberfläche auf der Ebene der Schaltflächen - das kann man mit einer eigenen Bibliothek machen.

Kurz gesagt, Ihr Vorschlag, das ICL beizubehalten, ist so, als würden Sie vorschlagen, ich weiß nicht was zu tun und dorthin zu gehen, ich weiß nicht wohin, weil sie dort anscheinend gut essen....

 
Igor Makanu:

wird es nicht funktionieren:

Es funktioniert in C und C++ in einer der Bibliotheken ))
Wie unterscheidet sich mql von C++?
Wenn die Entwickler bereit wären, könnten sie diese Funktionalität in mql sehr realistisch umsetzen.
Schließlich ist die Idee an sich lohnenswert - umso mehr, als diese Technologien bereits bekannt sind.
Und höchstwahrscheinlich wird die Arbeit an den Agenten auf ähnliche Weise in einem Pool von Threads durchgeführt.

 
Реter Konow:

1) Wo finden Sie Käufer für Ihre Sharp Programme?

2) Und wie wollen Sie die Sicherheit dieser Programme beweisen?

3. Sie, als erfahrener Programmierer, schlagen vor, die Verwendung einer Anwendungssprache in der TK-Entwicklung abzulehnen, weil... Ich habe jahrelang nicht verstanden, warum.

4. Wenn Sie vorhaben, ein hybrides Programm zu erstellen - die GUI von Sharp zu verwenden und die Logik in MCL zu schreiben -, versuchen Sie, die Tabellen von Sharp mit dem Expert Advisor zu verbinden. Es ist schon ein halbes Jahr her, und der Artikel, der zeigt, wie es geht, ist noch nicht veröffentlicht. Ich vermute, dass es hier sehr ernste Probleme gibt. Und die grafische Benutzeroberfläche auf der Ebene der Schaltflächen können Sie mit der internen Bibliothek erstellen.

Kurz gesagt, Ihr Vorschlag, MKL zu verlassen, ist wie der Vorschlag, dies zu tun, ich weiß nicht, was und dorthin zu gehen, ich weiß nicht, wo, weil sie dort gut zu ernähren scheinen....

1. Suchen Sie nach Kunden auf der Seite. Der Markt ist nicht der einzige Ort, an dem sie zu finden sind.

Der Markt ist kein Unternehmen. Für MKs ist es Teil des Geschäfts).

2., 3. и 4. Für mich ist MKL (oder jede andere Sprache eines Terminals) nichts anderes als die Schnittstellensprache zwischen dem Terminal und dem TS. Der TC sollte nicht vom Endgerät abhängig sein, sondern über eine geeignete Schnittstelle mit jedem Endgerät verbunden werden können.

Ich habe dieses Konzept von Anfang an. All dies ist durchaus realisierbar, ich sehe keine Probleme. Hier ist zum Beispiel, was die MCL mit der DLL macht.


Es gibt keinen Import von Bibliotheken in MKL. In der Datenbank sehen wir die Geschichte von TF 1m und dem Glas. All dies wird im Laufe des Spiels in Echtzeit ausgefüllt.
 
Ich habe eine Nachrichten-Warteschlange, die timerily verarbeitet eingehende Befehle und benachrichtigt, wenn der Vorgang abgeschlossen ist. ich sehe nicht eine direkte Notwendigkeit, separate Threads erstellen
 
Yuriy Asaulenko:

1. Suchen Sie nach Käufern auf der Außenseite. Der Markt ist kein Unternehmen.

Der Markt ist kein Unternehmen. Hier ist es für MKs Teil des Geschäfts).

2., 3. и 4. Für mich ist MKL (oder jede andere Sprache eines Terminals) nichts anderes als die Schnittstellensprache zwischen dem Terminal und dem TS. Der TC sollte nicht vom Endgerät abhängig sein, sondern über eine geeignete Schnittstelle mit jedem Endgerät verbunden werden können.

Ich habe dieses Konzept von Anfang an. Das ist alles durchaus machbar, ich sehe da kein Problem.

1 und 2 sind unbeantwortet. Die Suche an einem unklaren Ort und unklar, wie man sich davon überzeugen kann, dass das Programm sicher ist? Und ein 10-seitiges Handbuch, um es zu starten, wie man TC, das in einer nicht angewandten Sprache geschrieben wurde, mit allen möglichen Plattformen verbindet? ))

Multiplattform-TC - wollen Sie wetten? - Lernen Sie, Programmierer zu werden, und Sie werden sehen, wie das geht!

Wissen Sie, Sie bringen mich jedes Mal zum Lachen. Ganz im Ernst. Ein Programmierer-Praktiker, der nicht dazu aufruft, eine Anwendungssprache zu benutzen, um hochspezialisierte Probleme zu lösen, sondern um diese Probleme in UNIVERSALEN Sprachen zu lösen, um der UNIVERSALITÄT willen! Zweckmäßigkeit und Zweckmäßigkeit entspringt einfach jeder Formulierung.

 
Yuriy Asaulenko:
....


Es gibt keinen Import von Bibliotheken in MKL. In der Datenbank sehen wir die Geschichte von TF 1m und dem Glas. All dies wird im Laufe des Spiels in Echtzeit ausgefüllt.

Nein. Sie übertragen die Daten nur einmal pro Minute von der Plattform. Sie zeigen Live-Interaktion und füllen die Tabelle öfter als einmal pro Sekunde mit Daten. Und die Daten müssen in zwei Richtungen übertragen werden. Von MKL nach Sharp und wieder zurück.

 
Реter Konow:

Weißt du, du bringst mich jedes Mal zum Lachen. Ganz im Ernst. Ein Programmierer-Praktiker, der nicht dazu aufruft, eine Anwendungssprache zu benutzen, um hochspezialisierte Probleme zu lösen, sondern um diese Probleme mit UNIVERSELLEN Methoden und um der UNIVERSELLITÄT willen zu lösen! Zweckmäßigkeit und Zweckmäßigkeit entspringen einfach jedem Satz.

Um ehrlich zu sein, macht es mir auch Spaß, Ihre Beiträge zu lesen. Vor allem über das Geschäft.

Ich rufe niemanden zu irgendetwas auf und ich verkaufe nichts. Wenn Sie Threads verwenden wollen, ist das mit C++/C# kein Problem. Oder Sie können ewig darüber jammern, dass es in MKL keine Themen gibt.

 
Реter Konow:

Nein. Sie übertragen die Daten nur einmal pro Minute von der Plattform. Sie zeigen Live-Interaktion und füllen die Tabelle öfter als einmal pro Sekunde mit Daten. Und die Daten müssen in zwei Richtungen übertragen werden. Von MKL nach sharp und wieder zurück.

Einmal pro Minute. Experte für Technik.)) Sie haben ein Ereignis -OnTick, Sie rufen die DLL-Funktion darauf auf und übergeben die aktuellen Daten über die Kerze. Das ist alles.)

OK, vergessen Sie es.

 
Yuriy Asaulenko:

...

Wenn Sie Threads verwenden wollen, verwenden Sie C++/C# und kein Problem.

Wir brauchen sie dort nicht. Die Fähigkeiten anderer Sprachen werden nicht zum Niveau der Software hier in der Gemeinschaft beitragen. Es wird hässliche, hässliche Hybride für den persönlichen Gebrauch geben und das war's.
Grund der Beschwerde: