MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 80

 
Сергей Таболин:

Eine weitere Frage von einem Neuankömmling.

Die Situation stellt sich wie folgt dar. Ich habe einen Indikator. Wenn ich sie im "kalten" Modus zur Tabelle hinzufüge, dauert die Berechnung 7-8 Sekunden.

Ich habe das Gleiche in Python gemacht. Der Unterschied ist, dass Python die Daten in eine .csv-Datei schreibt.

Ich verstehe Verbindungsverluste mit MT5, andere Gemeinkosten.... Aber, 8 Sekunden gegenüber 3 Stunden..... ???????? WIE ???????????

Was wollen Sie von einer Sprache, die hundertmal langsamer ist als C++?

Alles, was in Python schnell ist, wird als C++-Module geschrieben. Wenn es kein geeignetes schnelles Modul gibt, wird alles unendlich langsamer sein.


copy_ticks_range, sowie der Rest der Datenextraktionsmethoden in der Python-API werden von uns super effizient und schnell auf der Ebene der Übergabe dieser Daten an MQL5 geschrieben.
 
Renat Fatkhullin:

Was wollen Sie von einer Sprache, die hundertmal langsamer ist als C++?

Alles, was in Python schnell ist, wird als C++-Module geschrieben. Wenn es kein geeignetes schnelles Modul gibt, wird alles unendlich langsamer sein.


copy_ticks_range, sowie andere Methoden der Datenextraktion in Python API sind von uns super effizient und schnell auf der Ebene der Angabe dieser Daten in MQL5 geschrieben.

Langsamer, nicht um HUNDERTE....

Danke, Renat, für die Antwort. Ich nehme an, dass diese Geschwindigkeit ausschließlich von Python abhängt? Ich selbst dachte, dass weder das Abrufen von Ticks in MT noch das Schreiben von Daten in eine Datei so sehr verlangsamen könnte...

 

Verstehen Sie jetzt, warum wir uns so viel Mühe mit der Sprachleistung geben?

Andernfalls ist es unmöglich, moderne Volumen zu verarbeiten.

Wir unterstützen Python nicht als solches, sondern als Brücke zu effizienten Bibliotheken, die dafür geschrieben wurden (in C++).

 
Renat, können Sie einen kurzen Überblick darüber geben, wie weit Sie mit dem neuen Tester gekommen sind?

Dann wird sicherlich eine API-Funktionalität enthalten sein, um den Tester mit Python zu verwenden, nicht wahr?

Grüße
 
Christian:

Dann wird sicherlich eine API-Funktionalität enthalten sein, um den Tester mit Python zu verwenden, nicht wahr?

Nein. Es ist naiv zu glauben, wir würden Selbstmord begehen und eine Sprache wählen, die hundertmal langsamer ist als unsere eigene, um einen Tester zu töten.

Es ist viel profitabler für uns, unsere Idee der Neukompilierung von C++-Bibliotheken von Drittanbietern in MQL5-Module zu entwickeln. Zu diesem Zweck haben wir begonnen, einen externen LLVM-Compiler in den Editor einzubinden.

 
Renat Fatkhullin:

Nein. Es ist naiv zu glauben, wir würden Selbstmord begehen und eine Sprache wählen, die hundertmal langsamer ist als unsere eigene, um einen Tester zu töten.

Es ist viel profitabler für uns, unsere Idee der Neukompilierung von C++-Bibliotheken von Drittanbietern in MQL5-Module zu entwickeln. Zu diesem Zweck haben wir begonnen, den externen LLVM-Compiler in den Editor zu integrieren.

Gibt es irgendeine Hoffnung auf die Entwicklung der Idee zu unterstützenC/C++.lib oder .a statische Bibliothek Verknüpfung in mql-Programm-Projekt?

 
Roman:

Gibt es irgendeine Hoffnung, die Idee zu entwickeln,C/C++.lib oder .a statische Bibliotheken zu unterstützen, die in das mql-Programm-Projekt eingebunden werden?

Nein. Sie können immer jede DLL mit expliziter Zugriffsrechtekontrolle verwenden.

 
Ich verstehe Verbindungsverluste zu MT5, andere Gemeinkosten.... Aber, 8 Sekunden gegenüber 3 Stunden..... ???????? WIE ???????????

Geben Sie mir ein Beispiel für Ihren Python-Code, der sich verlangsamt. Aus den Worten geht nicht klar hervor, was er tut und wie Sie die Daten erhalten. Und warum wird ständig in die Datei geschrieben? Kann das nicht am Ende gemacht werden?

 
Renat Fatkhullin:

Nein. Es ist naiv zu glauben, wir würden Selbstmord begehen und eine Sprache wählen, die hundertmal langsamer ist als unsere eigene, um einen Tester zu töten.

Es ist viel profitabler für uns, unsere Idee der Neukompilierung von C++-Bibliotheken von Drittanbietern in MQL5-Module zu entwickeln. Zu diesem Zweck haben wir begonnen, den externen LLVM-Compiler in den Editor einzubinden.

Und wenn Sie hypothetisch die ONNX-Unterstützung in Anspruch nehmen, werden die importierten Modelle langsamer sein als MQL selbst?

 

Ich habe eine Merkwürdigkeit in der Ausgabe bemerkt:

[89, '2020.01.16', 3, 15, 3, 16, Timedelta('0 days 01:16:53.966000')]
[90, '2020.01.16', 3, 16, 3, 17, Timedelta('0 days 00:25:39.266000')]
[91, '2020.01.16', 3, 17, 4, 12, Timedelta('0 days 19:07:12.757000')]
[92, '2020.01.17', 4, 12, 4, 13, Timedelta('0 days 00:36:14')]
[93, '2020.01.17', 4, 13, 4, 15, Timedelta('0 days 02:21:01.630000')]
[94, '2020.01.17', 4, 15, 4, 17, Timedelta('0 days 02:12:28.692000')]
[95, '2020.01.17', 4, 17, 0, 11, Timedelta('0 days 17:30:16.404000')]

Ist es == 00:36:14.000000 ?