Ich lerne auch Python, aber nur im Rahmen der Beherrschung von neuronalen Netzen, maschinellem Lernen und anderen ausgefallenen Dingen und Paketen. Ich glaube nicht, dass es möglich ist, mit diesem Super-Brainer zu arbeiten, es ist 200 mal langsamer als MQL5, ich zitierte die Ergebnisse einiger einfacher Tests.
Ich habe immer noch nicht verstanden, ist es möglich, Python-Module zu verbinden und Funktionen von MQL5 aufrufen? Oder nur Python->MQL5?
Bei allem Respekt, Sie wissen einfach nicht, wie man es zubereitet. Ich habe Ihr Beispiel überarbeitet:
In Python:
#!/usr/bin/env python3
from numba import njit, prange
import time
@njit(parallel=True, fastmath=True, cache=False)
def calc_pi(num_steps):
x, sum1 = 0.0, 0.0
step1 = 1.0 / num_steps
for i in prange(num_steps):
x = (i + 0.5) * step1
sum1 = sum1 + 4.0 / (1.0 + x * x)
return sum1 * step1
calc_pi(1) # minus jit compilation time
start_time = time.time()
pi = calc_pi(1000000000)
msvcr = time.time() - start_time
print(f"--- {msvcr} seconds --- The value of PI is {pi}")
Zum Vergleich in C:
#include <stdio.h>
#include <time.h>
int main()
{
int num_steps = 1000000000;
double step;
clock_t start;
clock_t stop;
start = clock();
double x, pi, sum=0.0;
step = 1.0/(double)num_steps;
for (int i = 0; i<num_steps; i++)
{
x = (i + .5) * step;
sum = sum + 4.0 / (1.0 + x * x);
}
pi = sum*step;
stop = clock();
printf("The value of PI is %1.12f \n", pi);
printf("The time to calculate PI was %5.3f seconds \n", ((double)(stop - start)/CLOCKS_PER_SEC));
return0;
}
Das ist alles auf einem alten AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ Rechner, ich denke, auf MQL5 wird der Wert etwa 12 Sekunden betragen.
(Ich weiß nicht, wie man MQL-Code unter Linux ausführt).
So Python mit jit Compiler schlägt C (mql) um 2 mal! Wenn ich es auf modernen 8-Core-CPU wird es 8 mal schlagen, einfach weil es multi-threaded ist.
Aber selbst in einem Thread beträgt das Python-Ergebnis 9,6 Sekunden - es ist also immer noch schneller. Und Sie können es auch auf einer Grafikkarte mit CUDA ausführen.
Ich kann zum Beispiel keine Multithreading-Analoga in C oder MQL schreiben - ich werde nicht in der Lage sein, loky, races und Abstürze zu schreiben, außerdem wird der Code viel größer sein.
Frage an die MetaTrader-Entwickler: Werden Sie den Aufruf von Handelsfunktionen aus Python hinzufügen?
Ich möchte auch eine Funktion in Python zu abonnieren, um Tick-Ereignisse aus dem Terminal, so dass, wenn ein Tick kommt die Nachricht wird an Python gesendet werden.
Ich weiß, dass es Entwicklungen von Drittanbietern für diese Funktionen gibt, aber ich möchte sie gerne sofort einsetzen können.
Sie können auch spaßeshalber versuchen, Multi-Thread-Code in GoLang zu schreiben, in einem Thread ist die Geschwindigkeit mit der von C vergleichbar.
Führen Sie meinen Code in C aus, um ihn damit zu vergleichen.
Wenn es ein i7 ist, ist er wahrscheinlich 25 Mal schneller als mein AMD, wenn nicht sogar mehr. Ich brauche einen Test in denselben Sprachen für den Berichtspunkt.
Es stellt sich also heraus, dass Ihre MQL ist sogar etwas langsamer als C, so dass meine Python-Code mit Jit-Compiler wird viel schneller als ihre sein. Ich sage voraus, dass Python etwa 1,5 Sekunden auf Ihrer CPU in 4 Threads benötigt, obwohl es nur 2 echte Threads gibt.
Tolles Ergebnis! Und schnell geschrieben. Wer behauptet, Python sei langsam, kann sich die Testergebnisse hier ansehen.
Mehr Python-Code in einem Thread auf Ihrem Prozessor ausführen (parallel = False)
Für einen vollständigen Test.
Sie wurden vor langer Zeit gepostet, aber sie ziehen es vor, es mit reinem Python zu vergleichen, was keinen Sinn macht. Reines Python ist für andere Zwecke gedacht.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Jetzt in diesen Thread verschoben.
Ich lerne auch Python, aber nur im Rahmen der Beherrschung von neuronalen Netzen, maschinellem Lernen und anderen ausgefallenen Dingen und Paketen. Ich glaube nicht, dass es möglich ist, mit diesem Super-Brainer zu arbeiten, es ist 200 mal langsamer als MQL5, ich zitierte die Ergebnisse einiger einfacher Tests.
Ich habe immer noch nicht verstanden, ist es möglich, Python-Module zu verbinden und Funktionen von MQL5 aufrufen? Oder nur Python->MQL5?
Bei allem Respekt, Sie wissen einfach nicht, wie man es zubereitet. Ich habe Ihr Beispiel überarbeitet:
In Python:

Zum Vergleich in C:Das ist alles auf einem alten AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ Rechner, ich denke, auf MQL5 wird der Wert etwa 12 Sekunden betragen.
(Ich weiß nicht, wie man MQL-Code unter Linux ausführt).
So Python mit jit Compiler schlägt C (mql) um 2 mal! Wenn ich es auf modernen 8-Core-CPU wird es 8 mal schlagen, einfach weil es multi-threaded ist.
Aber selbst in einem Thread beträgt das Python-Ergebnis 9,6 Sekunden - es ist also immer noch schneller. Und Sie können es auch auf einer Grafikkarte mit CUDA ausführen.
Ich kann zum Beispiel keine Multithreading-Analoga in C oder MQL schreiben - ich werde nicht in der Lage sein, loky, races und Abstürze zu schreiben, außerdem wird der Code viel größer sein.
Frage an die MetaTrader-Entwickler: Werden Sie den Aufruf von Handelsfunktionen aus Python hinzufügen?
Ich möchte auch eine Funktion in Python zu abonnieren, um Tick-Ereignisse aus dem Terminal, so dass, wenn ein Tick kommt die Nachricht wird an Python gesendet werden.
Ich weiß, dass es Entwicklungen von Drittanbietern für diese Funktionen gibt, aber ich möchte sie gerne sofort einsetzen können.
Sie können auch spaßeshalber versuchen, Multi-Thread-Code in GoLang zu schreiben, in einem Thread ist die Geschwindigkeit mit der von C vergleichbar.mql5
i7 auf virtueller Maschine, 2 Kerne, 4 Threads zugewiesen
Führen Sie meinen Code in C aus, um ihn damit zu vergleichen.
Wenn es ein i7 ist, ist er wahrscheinlich 25 Mal schneller als mein AMD, wenn nicht sogar mehr. Ich brauche einen Test in denselben Sprachen für den Berichtspunkt.
Führen Sie meinen Code in C aus, um ihn damit zu vergleichen.
C
i7 aufvirtueller Maschine, 2 Kerne, 4 Threads zugewiesen
Py
i7 unter Linux, 4 Kerne, 8 Threads
Tolles Ergebnis! Und schnell geschrieben. Wer behauptet, Python sei langsam, kann sich die Testergebnisse hier ansehen.
Mehr Python-Code in einem Thread auf Ihrer CPU ausführen (parallel = False)
Für einen vollständigen Test.
Traurigerweise haben sich die Zahlenknacker in den letzten 15 Jahren nur um etwa das 12-fache erhöht, ich dachte, moderne CPUs wären schneller.(parallel = falsch)
Tolles Ergebnis! Und schnell geschrieben. Wer behauptet, Python sei langsam, kann sich die Testergebnisse hier ansehen.
Mehr Python-Code in einem Thread auf Ihrem Prozessor ausführen (parallel = False)
Für einen vollständigen Test.
Sie wurden vor langer Zeit gepostet, aber sie ziehen es vor, es mit reinem Python zu vergleichen, was keinen Sinn macht. Reines Python ist für andere Zwecke gedacht.