Asynchrone und mehrfädige Programmierung in MQL - Seite 6

 
Andrey Pogoreltsev:

MQL5 hat Asynchronität, z.B.OrderSendAsync.

Wie für die Interaktion mit dem Netzwerk oder Dateisystem - WinAPI verwenden, schrieb ich oben Lösung. Ich denke, dafür ist alles vorhanden. Auf der Microsoft-Website können Sie nachlesen, wie Sie diese Methoden anwenden können. Was gibt es sonst noch zu entdecken?)

Ja,ich weiß überOrderSendAsync, aber es ist nur für das Senden von Anfragen.
Ich war in dieser Richtung
von WinAPI suchen, aber nicht bewusst, dass die Threads nicht in mql verfügbar sind, die Prototypen in der inluder waren irreführend.

 
Andrey Pogoreltsev:

MQL5 hat Asynchronie, zum BeispielOrderSendAsync.

MQL4/5 hatte schon immer eine asynchrone und Multithreading-Ausführung von MQL-Codehttps://www.mql5.com/ru/docs/runtime/running.

d.h. alles ist "out of the box", das einzige Problem ist der Datenaustausch zwischen MQL-Programmen, es gibt keine fertige Lösung von den Entwicklern, bzw. es gibt nur globale Variablen des Terminals - so haben sie den Datenaustausch gestaltet - sehr umständlich und ineffizient, aber es gibt fertige Lösungen für den Datenaustausch in QB

Sie erwähnten oben lernen NS - es erfordert Multithreading, gut, ja, aber MT kommt nur mit Alglib und ich habe es so lange verwendet, wie ich nicht gesehen habe, dass es mehr als 1-2 Sekunden zu lernen NS, dh, warum ist es schnell? - Wenn Sie Pakete von Drittanbietern von NS verwenden werden - es gibt keine Optionen, müssen Sie über MT gehen - verwenden Sie eine DLL, dann wieder, was ist das Problem mit Datenaustausch und Multithreading? - alle in einer DLL implementiert.

es wurde eine Python erwähnt... Ich spreche hier nicht von Geschwindigkeit, es ist eine sehr spezifische Umgebung für die NS-Entwicklung, sie scheint alles zu haben, aber es ist einfach unmöglich, sie zu benutzen - warten und warten... das Spannendste ist, mit NS in Python zu arbeiten! )))

SZZY: Python hat kein Multithreading im normalen Sinne des Wortes, aber da könnte ich mich irren. Ich mag Python nicht besonders - es ist voller Lärm und Mainstream, alles funktioniert sofort, aber .... aber es ist einfach nicht möglich, mit einem so langsamen System zu arbeiten, die einzigen Vorteile sind eine Menge vorgefertigter Python-Code und eine große Internet-Community

 

Warum sind nackte Zeiger so unsicher?

Ich glaube, die Entwickler lügen, und der wahre Grund ist, dass sie verhindern wollen, dass die DLL abgerufen wird. Höchstwahrscheinlich wurde auch eine knifflige Anrufkonvention eingeführt.

 
Vict:

Warum sind nackte Zeiger so unsicher?

Meiner Meinung nach lügen die Entwickler, und der wahre Grund ist, das Abziehen von der DLL zu verhindern. Höchstwahrscheinlich wurde auch eine knifflige Anrufkonvention eingeführt.

Wie der Moderator schrieb, wird der Zugriff auf physische Speicheradressen aus Sicherheitsgründen verweigert.
Durch sie können geschickte, skrupellose Programmierer Zugang zu jedem Element des kompilierten Programms erhalten.

 
Roman:

Wie der Moderator schrieb, wird der Zugriff auf physische Speicheradressen aus Sicherheitsgründen verweigert.
Durch sie können geschickte, skrupellose Programmierer Zugang zu jedem Element des kompilierten Programms erhalten.

Es fällt mir schwer, das zu glauben. Wir brauchen den Wettbewerb mit ausgereiften Sprachen einfach nicht. Und all diese Tricks, wie das Ändern der Größe beim Neukompilieren, dienen demselben Zweck.

 
Vict:

Es fällt mir schwer, das zu glauben. Sie braucht einfach keine Konkurrenz durch ausgereifte Sprachen. Und all diese Tricks, wie das Ändern der Größe beim Neukompilieren, dienen demselben Zweck.

Nein, es ist, erinnern Sie sich an die Massendekompilierung in mql4, die kumulierten Fehler wurden berücksichtigt und ein Schutz wurde implementiert.
Im Großen und Ganzen ist dies eine wirksame Sicherheitsentscheidung, zum Nachteil der direkten WinAPI-Aufrufe, aber da die DLL offen ist, ändert sich die Funktionalität nicht, wohl aber die Art der Interaktion.
Daher werden Sie nicht mit einer Dekompilierung oder einem möglichen Hacken Ihres Programms konfrontiert. Und das ist gut so und ein großes Lob an die Entwickler.

 
Vict:

Warum sind bloße Zeiger so unsicher?

admin Renat immer auf solche Fragen, dass Metaquotes wählt immer eine Lösung, die garantiert ist, um die Sicherheit zu bieten, gut alternativ, erhalten Sie einen Zeiger auf den Speicher und kann ein Virus, das seinen eigenen Code zu kompilieren ex4 / ex5 hinzufügen können injizieren


Roman:

auf Kosten der direkten WinAPI-Aufrufe

Sie haben ein Hauptprogramm, das in einem Hauptprozess läuft, und ohne das Hauptprogramm läuft es nicht - ist das klar?

- Kann man einen Funktionskörper aus Python in einem separaten Prozess mit WinAPI ausführen?

-..... Funktionskörper von Java mit WinAPI ?

-..... Funktionskörper von WordBASIC mit WinAPI ?


als eine Option, hier Metakvot gab eine klare Antwort - diese Funktionalität ist nicht vorgesehen, gehen Sie weiter unten die Instanzen: Schreiben Sie an Python Software, Oracle, Microsoft - blasen ihre Gehirne aus noch

)))

 
Roman:

Nein, nein, so ist es, erinnern Sie sich an die weit verbreitete Dekompilierung in mql4, die Bugs wurden berücksichtigt und ein Schutz wurde implementiert.
Im Großen und Ganzen ist dies eine wirksame Sicherheitsentscheidung zum Nachteil direkter WinAPI-Aufrufe, aber da der Zugriff auf die DLL geöffnet wird, ändert sich nicht die Funktionalität, sondern die Art der Interaktion.
Daher werden Sie nicht mit einer Dekompilierung oder einem möglichen Hacken Ihres Programms konfrontiert. Und das ist gut und Respekt für die Entwickler.

Berücksichtigt, und Podcasts aus dem Markt begann Kompilierung in nativen

Renat

Es ist bereits seit Build 500 schwach dekompilierbar, da das Sicherheitssystem komplett geändert wurde.

Nach der Umstellung auf MQL5-Engine und Market wird das Decompiler-Thema vollständig verschwinden. Wer es nicht weiß - Produkte von Market werden zum Zeitpunkt des Kaufs in 32/64 nativ (reines Assembler, keine Möglichkeit zur Dekompilierung) kompiliert und für die Hardware des Käufers verschlüsselt.

Und Dekompilierung von einigen anderen Websites methacquot sogar profitabel - jeder zu sich selbst durch gruselig und böse decompiles fahren. Im Allgemeinen - nichts Persönliches, nur Geschäftliches.
 
fxsaber:

Nur bei MQL werden beide Aufgaben durch die automatische Durchführung einer EA-Zählung gelöst.

Genau, so mache ich das auch. Allerdings verwende ich Web-Request nicht, aber die Auto-Optimierung - für mich und TC League - arbeitet mit voller Kraft. Die Auswahl erfolgt in mehreren Durchgängen: Zunächst wird ein "sauberes" System optimiert und seine Parameter werden festgelegt, dann wird eine Break-even-Optimierung durchgeführt und ihre Parameter werden festgelegt, und schließlich wird eine Optimierung der schützenden SL (falls erforderlich) durchgeführt. Und überall wird mit Frames und der Verarbeitung von Daten aus ihnen gearbeitet.

Alle erforderlichen Multithreading-Funktionen sind bereits vorhanden.

 
Igor Makanu:

admin Renat immer auf solche Fragen geantwortet, dass Metaquotes wählt immer eine Lösung, die garantiert ist, um Sicherheit zu bieten, auch alternativ, erhalten Sie einen Zeiger auf den Speicher und kann ein Virus, das seinen Code auf die kompilierte ex4 / ex5 hinzufügen können injizieren

Glauben Sie wirklich, dass ich nicht in der Lage bin, ein Terminal mit einem Expert Advisor unter einem Debugger laufen zu lassen und herauszufinden, von welcher relativen Adresse die Ausführung ausgeht? Die Adresse einer beliebigen Funktion oder Variablen? Eine andere Sache ist, dass sich diese Adressen ändern können (wegen der angewandten Tricks), aber theoretisch kann ich alles herausfinden, was normale Zeiger mir geben würden.

Die andere Sache, die ihnen Angst macht, ist das Herausfinden von Funktionsadressen über Zeiger in der Laufzeit und das Einfügen in DLLs.

Grund der Beschwerde: