Noch einmal zum Thema Multithreading - Seite 9

 
Maxim Romanov:
In der Testversion läuft alles in einem Thread, aber im wirklichen Leben funktioniert es.

und liegen die Vorteile im Bereich des Patents oder der Fehlermarge?

 
Igor Zakharov:

und liegen die Vorteile im Bereich des Patents oder der Fehlermarge?

Wenn die Indikatoren hart sind, gibt es einen Vorteil. Bei einem Tester, ja, da gibt es keinen Grund.
 

Wir planen die Hinzufügung von ThreadXXX und Austauschfunktionen zur Ausführung einzelner Aufgaben.

Dabei handelt es sich nicht um Threads des Hauptprogramms, sondern um separate Skripte (mit OnStart-Handlern), die unabhängig voneinander in einem versteckten Modus ähnlich wie Dienste ausgeführt werden.

Sie werden in der Lage sein, Programmlisten abzufragen und zu verwalten. Beim Starten eines "Threads" wird dessen ex5-Datei aus einer Datei auf der Festplatte oder einer eigenen Ressource angegeben. Auf diese Weise ist es möglich, eine einzige ex5-Datei zu haben, die problemlos mehrere Threads mit ihren Ressourcen ausführen und Daten mit ihnen austauschen kann.

Das Gewinde funktioniert nicht im Prüfgerät.
 
Renat Fatkhullin:

Wir planen die Hinzufügung von ThreadXXX und Austauschfunktionen zur Ausführung einzelner Aufgaben.

Dabei handelt es sich nicht um Threads des Hauptprogramms, sondern um separate Skripte (mit OnStart-Handlern), die unabhängig voneinander im verborgenen Modus ähnlich wie Dienste ausgeführt werden.

Es wird möglich sein, Programmlisten abzufragen und zu verwalten. Wenn ein "Thread" gestartet wird, wird seine ex5-Datei aus einer Datei auf der Festplatte oder seiner eigenen Ressource angegeben. So wird es möglich sein, eine einzige ex5-Datei zu haben, die von ihren Ressourcen aus leicht mehrere Threads startet und Daten mit ihnen austauscht.

Die Threads werden im Tester nicht ausgeführt.

Das ist eine gute Nachricht :) .

 
dd:
Ich habe nicht einen einzigen guten Ratschlag zu den Bedingungen des Problems gegeben... Ihnen auch eine gute Nacht...

Ja, aber er ist kein Leser, er ist ein Schriftsteller.


dd:
mein lieber lieber Sonnenschein, hast du das Problem gelesen? es ist dort klar beschrieben - in einer Schleife müssen viele andere Aufgaben in einer Sekunde erledigt werden, z.B. 500 000 Aufträge zu schließen oder nicht zu schließen - check ... 0,1 Lot, 50 000 Einzahlung, sind Sie gut in Mathe? Und ja, es ist synthetisch. Aber Ihr Rat ist wertlos.

Zajinka, finde deinen Shit-Code heraus, und alles wird fliegen!

Oder, wenn die Aufgabe so schlecht formuliert war und Sie wirklich einen einzelnen Test beschleunigen müssen, wird nichts anderes als OpenCL ausreichen. Aber das ist Unsinn, wahrscheinlich war der Ansatz von Anfang an falsch. Aber es hat keinen Sinn, ohne den Code oder eine genauere Beschreibung zu raten.

Um die Tests zu beschleunigen, können Sie die Beiträge von fxsaber lesen, er hat sich ausführlich mit diesem Problem beschäftigt. Sie können Virtual verwenden oder die Zecken abschneiden. Aber auch hier liegt das Problem höchstwahrscheinlich in der ursprünglichen Problemstellung oder im suboptimalen Code.

 

500.000 Aufträge pro Sekunde abschließen und einen Durchlauf für 5 Tage zählen... Ja, ja.

Verzeihen Sie mir, Admins, aber wenn Sie HFT nutzen wollen, müssen Sie ~20.000 Dollar für eine Lizenz einer speziellen HFT-Software bezahlen.

Oder $100+k - sie werden es für Sie richtig schreiben.

 
Aleksey Mavrin:

500.000 Aufträge pro Sekunde abschließen und einen Durchlauf für 5 Tage zählen... Ja, ja.

Verzeihen Sie mir, Admins, aber wenn Sie HFT nutzen wollen, müssen Sie ~$20.000 für eine Lizenz einer speziellen HFT-Software bezahlen.

Oder 100+k$ - sie werden es für Sie schreiben.

Ich vermute, dass Leute, die sich für HFT interessieren, zumindest eine Serverlizenz kaufen.

Das Terminal ist eine überflüssige Einheit, wenn es um Sekundenbruchteile geht.

 

Ich weiß nicht, wie die Threads angeordnet sind, aber MT5 verwendet nur einen Prozessorkern, wenn der Prozessorkern maximal ausgelastet ist - das Terminal streikt.

Sie sollten keine Threads parallelisieren, sondern die Aufgaben auf andere Prozessoren (Kerne) verteilen.

 
Sergey Chalyshev:

Ich weiß nicht, wie die Threads eingerichtet sind, aber MT5 verwendet nur einen CPU-Kern, wenn der CPU-Kern maximal ausgelastet ist - das Terminal streikt.

Das ist nicht der Fall.

Nur die Indikatoren für ein Werkzeug arbeiten in einem Thread, und es kommt zu einem "Glitch", wenn sie schwer sind und ein Kern sie nicht verarbeiten kann.


Sergey Chalyshev:

Sie sollten die Threads nicht parallelisieren, sondern die Aufgaben auf andere Prozessoren (Kerne) verteilen.

Das ist die Aufgabe von Windows.

 
Andrey Khatimlianskii:

Dies ist nicht der Fall.

Nur die Indikatoren arbeiten mit einem Thread pro Werkzeug und "glitchen", wenn sie schwer sind und ein Kern nicht ausreicht.


Das ist die Aufgabe von Windows.

Windows hat nichts damit zu tun, ich weiß, dass fast jede Aufgabe parallel auf alle Kerne verteilt werden kann

Grund der Beschwerde: