Asynchrone und mehrfädige Programmierung in MQL - Seite 7

 
Igor Makanu:

Nun, ich bin auch kein Heimwerker )). Ich bin sehr wahrscheinlich in der Lage, µl-Funktionen aus der DLL aufzurufen, aber das Problem ist wahrscheinlich, dass ich nach jedem Start unter dem Debugger wühlen muss. Alles in allem keine gute Option.

 
Igor Makanu:

Es geht nicht um Sie oder mich, sondern um die IT-Industrie selbst, die Schutzmethoden sind längst erfunden und werden ständig verbessert, es gibt diejenigen, die den Schutz durchführen und diejenigen, die ihn "testen".

Und wenn Sie einen weiteren Artikel über einen PlayStation / XBox-Hack sehen, dann braucht ihn jemand! - Majakowski )))) - Es handelt sich um eine Marketingstrategie eines IT-Giganten und nicht um einen weiteren cleveren Hacker, dem es gelungen ist, eine Schwachstelle zu finden - ja, es gibt Bugs in Software, Schwachstellen kommen vor, aber es gibt auch Marketingstrategien, die das Interesse an Software steigern

;)

Imho überschätzen Sie die Komplexität der Aufgabe (yank mcl von dll), aber die Lösung ist kompliziert und unbequem (warum sitzen in Debugger nach jedem Lauf?). Viel eleganter - denken Sie an ein Protokoll für den Austausch zwischen dem Dienst im Terminal und Drittanbieter-Programm über Sockets, schreiben Sie die C-und mkl Teil, und legte es in der freien, offenen Zugang. Das ist alles, Sie müssen nicht einmal etwas kaputt machen.

 
Igor Makanu:

es ist nicht klar, was dies bewirken wird?

Wie die Entwickler sagen, ist es nicht möglich, über die "MQL-Sandbox" für jedes Programm hinauszugehen, also was bringt es Ihnen durch Sockets zu TCP?

Sie werden nicht zu einem anderen MQL-Programm gelangen, ohne den Quellcode zu modifizieren, genauso wie wir angefangen haben - Sie werden nicht in der Lage sein, eine MQL-Funktion aus einer DLL aufzurufen.

oder handelt es sich um die Fernsteuerung eines MQL-Programms? - Das war noch nie ein Problem, wir entwickeln unser eigenes Austauschprotokoll und kontrollieren, was wir können.

Es geht darum, den Anschein von API zu erwecken, universell. Hook eine Lib zu einem Cross-Programm, und erhalten Sie Daten / Senden von Anfragen. Und es wird ausgereift sein, ohne Sandkästen und "Sorge" um meine Sicherheit. Und es muss nichts verwaltet werden - nur Daten und Anfragen. Bald wird diese Einrichtung mit allerlei Fleisch gefüllt sein - zum Beispiel mit Diagrammen mit technischer Analyse.

Aber das Publikum ist hier nicht dasselbe - die Verkäufer und die Käufer auf dem Markt.

 

Igor Makanu:

Die MQL-Programme mit dll sind im Netz nicht beliebt, nur für den Fall... Vielleicht haben Sie es nicht absichtlich getan, aber Ihr Computer ist krank mit was auch immer und zusammen mit Ihrer dll senden Sie einen Haufen Viren auf den PC Ihres Benutzers ... Im Allgemeinen versprachen die Entwickler maximalen Schutz für den Endnutzer, d.h. den Gewerbetreibenden.

Das ist alles ein beschissenes Windows, obwohl sie es anscheinend aufgeräumt haben.

Ich habe keine Angst, irgendeine ausführbare Datei auf meinem Linux zu starten - wenn ich sie ohne Administratorrechte ausführe, kann diese Software nicht einmal etwas falsch machen. Ich habe die Viren zusammen mit dem Virus vergessen.

 
Vict:

Das liegt an dem ganzen Schlamassel, den sie aber anscheinend auch bereinigt haben.

Ich habe keine Angst, irgendeine Anwendung auf meinem Linux laufen zu lassen

Verstanden)))

 
Zurück zum Wunsch der Entwickler. Ich habe eine andere Idee.
Wenn die mql-Sprache die Funktionalität implementiert, um mit asynchronem Code zu arbeiten, dann können wir den Betrieb der Indikatoren von Haus aus in den asynchronen Modus übersetzen und das Threading-Problem loswerden.
Nachdem das Problem des Multi-Threading von Indikatoren gelöst ist, können Sie Tick-Charts sicher implementieren. Die gesamte Kette ist miteinander verknüpft.
Der asynchrone Modus wird der Entwicklung schneller Programme einen neuen Impuls geben. Damit wird das Problem der Erweiterung auf Tick-Charts gelöst.
 
Roman:
Die Asynchronität wird der Entwicklung schneller Programme einen neuen Impuls geben.

In Anbetracht der Qualifikationen der hier Anwesenden ist dies ein fast garantierter Weg, sich selbst in den Fuß zu schießen.

Und wer wirklich bewusst Asynchronität und Multithreading für sich braucht, kann dies mit den vorhandenen Mitteln problemlos umsetzen.

 
TheXpert:

In Anbetracht der Fähigkeiten der Menschen hier ist dies ein fast garantierter Weg, um sich selbst in den Fuß zu schießen.

Und wer wirklich bewusst Asynchronität und Multithreading für sich braucht, kann dies mit den vorhandenen Mitteln problemlos umsetzen.

Solche Personen sollen sich sofort in den Kopf schießen. Es ist nicht das Problem der Entwickler und ihres Produkts...
Das Prinzip des asynchronen Modus zu lernen und zu verstehen ist wie zwei Finger auf dem Asphalt, es sind keine Ströme. Und wenn es schwierig ist, gibt es nichts, worauf man sich einlassen kann.

 

Es scheint, dass der besondere Unterschied zwischen Asynchronie und Multithreading aus demselben Bereich stammt wie das Problem der Zeiger-/Referenzunterschiede, das einige Leute plagt.

Die Asynchronität wird durch einen separaten Thread realisiert, und es ist nicht so wichtig, ob dieser Prozess vom Prozessor oder einem anderen Gerät bereitgestellt wird. Die Erstellung eines Prozesses impliziert seine Asynchronität, da er parallel existiert.

 
Georgiy Merts:

Ich lese die klugen Teilnehmer und frage mich...

Was ist der Sinn dieser ganzen Spielereien?

Wann wird das Multithreading in MQL so dringend benötigt? Für mich wäre der einzige Nutzen das Testen von Strategien, das standardmäßig implementiert ist.

Die Idee ist, dass es sinnvoll sein könnte, mehrere WebRequests auszuführen, aber ich glaube nicht, dass Multi-Threading überhaupt notwendig ist.

Welche Aufgaben erfordern überhaupt Multithreading?

George, der Sinn einer Sache kann immer entgleist werden. Und es gibt nichts, was einem solchen Ansatz entgegensteht. Und warum sollte ein Mensch Geld brauchen, wenn er sowieso sterben wird? Jeder wird sowieso sterben, wozu brauchen wir den Markt, den Algotrading und so weiter?

Eine interne Multithreading-Funktion in MQL wäre sehr cool. Sie müssen verstehen, dass dies für viele ein kreatives Experimentierfeld ist. Die Frage "Warum?" ist nicht immer angebracht.