Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 3271

 
fxsaber #:
NumPy scheint einen anderen Algorithmus zu haben als ALglib.

Die CPU von Maxim ist doppelt so schnell wie meine. Ich weiß nicht mehr, ob er Timings für Algliba angegeben hat, ich glaube nicht.

 
fxsaber #:

Vergleichen Sie mit der alten Version von Alglib. Ich habe keine Daten, dass sie langsamer geworden ist.

Sie haben selbst geschrieben, dass die Standardversion langsamer ist als die aktuelle Alglib-Version. Ich habe die alte Version in Form von Code, aber nicht im Terminal.
 
Forester #:

Maxim's CPU ist 2 mal schneller als meine. Ich erinnere mich nicht, ob er Timings für Algliba gab, ich glaube nicht.

Zeitangaben.

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien

Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading.

Aleksey Vyazmikin, 2023.09.26 05:19 AM

Array size: 1716.61376953125 MB
Time taken: 4.784467697143555 seconds

Dies ist auf einem alten FX-8350


Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien.

Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algorithmenhandel

Aleksey Vyazmikin, 2023.09.26 05:37 AM

Für Statistik ist dies mein Ergebnis

2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   EX5: 3981 AVX Release.
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_NAME) = AMD FX-8350 Eight-Core 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoInteger(TERMINAL_CPU_CORES) = 8 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_ARCHITECTURE) = AVX 
2023.09.26 06:28:23.332 Test_Corr (USDJPY,H1)   inRows = 100 inCols = 15000 
2023.09.26 06:28:45.032 Test_Corr (USDJPY,H1)   matrix<double> Matrix1 = CorrMatrix(Matrix) - 21700095 mcs, 1717 MB
2023.09.26 06:29:48.495 Test_Corr (USDJPY,H1)   matrix<double> Matrix2 = Matrix.CorrCoef(false) - 63460976 mcs, 1717 MB
2023.09.26 06:29:50.225 Test_Corr (USDJPY,H1)   IsEqual(Matrix1, Matrix2) = true 
Offensichtlich ist Python viel schneller. Und so wird es schneller in C, so dass es sich herausstellt, dass MQ ist nicht sagen uns etwas, verspricht vergleichbare Leistung....

Ich sollte anmerken, dass Python eine kleine Parallelisierung beim Ausführen von Code hat - für eine halbe Sekunde für etwa zwei Kerne, der Rest wird auf einem Kern gezählt.

 
Forester #:
Sie haben selbst geschrieben, dass die Standardversion langsamer ist als die aktuelle alglibov-Version. Ich habe die alte in Form von Code, aber nicht das Terminal.

Der Alglib-Quelltext selbst wurde von MQ für seine Matrizen neu geschrieben. Auf den Standard CorrCoef möchte ich gar nicht eingehen, da es hier offensichtliche Probleme gibt.

D.h. es gibt zwei Quellen von Alglib.

  • Die ursprüngliche Quelle für dynamische Arrays VOR der MQ-Transformation.
  • Die modifizierte MQ für ihre Matrix/Vektor-Typen. Das ist es, was ich getestet habe.
Die Quellen beider Versionen von Alglib sollten verfügbar sein, so dass Sie sie miteinander vergleichen können.
 
fxsaber #:

Zeitplan.


Nun, ja... Menschen beschäftigen sich jahrelang mit Algorithmen. Ich habe einen Artikel über schnelles Sortieren in C++ gesehen - der Code scheint komplizierter zu sein und führt unnötige Aktionen aus, aber er funktioniert schneller, weil der Prozessor vorberechnet. Ein Blick in die Zukunft...
 
fxsaber #:

Der Alglib-Quelltext selbst wurde von MQ für seine Matrizen neu geschrieben. Auf den Standard CorrCoef möchte ich gar nicht eingehen, da es hier offensichtliche Probleme gibt.

D.h. es gibt zwei Quellen von Alglib.

  • Die ursprüngliche Quelle für dynamische Arrays VOR der MQ-Transformation.
  • Die modifizierte MQ für ihre Matrix/Vektor-Typen. Das ist es, was ich getestet habe.
Die Quellen beider Versionen von Alglib sollten verfügbar sein, so dass man sie miteinander vergleichen kann.
Ich bin faul. Ich verwende keine Korrelation. Ich habe vor einem Jahr einen Geschwindigkeitsunterschied festgestellt und ihn mitgeteilt, als das Thema aufkam.
 
fxsaber #:
NumPy scheint einen anderen Algorithmus zu haben als ALglib

In AlgLib steht in der Originaldokumentation, warum sie sich unterscheiden, welche und wofür sie da sind. Bei den Regressionen (ich habe mich dort hauptsächlich mit AlgLib beschäftigt) ist es ziemlich originell.

Auch hier vergleicht alles seltsam, weil man es nicht kann. Erstellen Sie Graphen der speed=f(dimensionality,special_matrix_properties)-Abhängigkeiten für verschiedene Bibliotheken/Realisierungen und schauen Sie sich diese an. Du nimmst Randfälle, die von der Decke geholt werden.

und dort schaut man nicht auf den absoluten Wert, sondern auf die Symptomatik und das Vorhandensein eines "Plateaus". Von dort aus wählt man ein Werkzeug, um mit bestimmten Daten zu arbeiten.

 
Forester #:

Maxim's CPU ist 2 mal schneller als meine. Ich erinnere mich nicht, ob er Timings für Algliba gab, ich glaube nicht.

Ich habe mt durch Virtualisierung gibt, werden die Tests nicht sehr plausibel sein.

Außerdem habe ich mich dafür entschieden, etwas in Python zu berechnen und es dann auf eine beliebige Plattform zu übertragen. Für Krypto zum Beispiel braucht man überhaupt keine Terminals.

Das ist ein totaler Mist, was die Geschwindigkeit angeht.
 
Maxim Kuznetsov #:

Auch das ist eine seltsame Art, Dinge zu vergleichen, die man nicht vergleichen kann.

Ich führe keine Vergleiche durch, sondern stelle einen Code zur Verfügung, den jeder für seinen eigenen Fall messen kann.

Die Stringlänge von 100 ist die Länge des Musters. Wahrscheinlich brauchen Sie nicht mehr als das.

15000 Stichproben sind wegen der quadratischen Größe der Korrelationsmatrix speicherbegrenzt. Je mehr Stichproben, desto besser. Deshalb habe ich ein selbstgebautes Programm geschrieben, mit dem man eine Million davon haben kann.

Ich habe weder Lust noch Zeit, mich mit einem objektiven Vergleich zu beschäftigen. Ich habe es für meine eigenen Aufgaben gemacht und den Arbeitscode geteilt. Wer es braucht, wird es sehen.

 
Ehhh... Wenn auch nur 5% aller unserer Bemühungen auf eine gemeinsame Aufgabe gerichtet wären, würden wir diesen Markt in Monaten erobern.

Und so kocht seit Jahren, Jahrzehnten jeder in seiner eigenen Suppe und 90% der nützlichen Zeit wird in diesem nutzlosen Forum verbracht.