L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 3271

 
fxsaber #:
NumPy semble avoir un algorithme différent de celui d'ALglib.

Le processeur de Maxim est deux fois plus rapide que le mien. Je ne me souviens pas s'il a donné les temps de calcul pour Algliba, je pense que non.

 
fxsaber #:

Comparez avec l'ancienne version d'Alglib. Je n'ai pas de données indiquant qu'il est devenu plus lent.

Vous avez vous-même écrit que la version standard est plus lente que la version actuelle d'Alglib. J'ai l'ancienne version sous forme de code, mais pas dans le terminal.
 
Forester #:

Le processeur de Maxim est deux fois plus rapide que le mien. Je ne me souviens pas s'il a donné des timings pour Algliba, je pense que non.

Les temps.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading.

Machine Learning in Trading : Theory, Models, Practice and Algorithm Trading (Apprentissage automatique en trading : théorie, modèles, pratique et trading algorithmique)

Aleksey Vyazmikin, 2023.09.26 05:37 AM

Pour les statistiques, voici mon résultat

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 
Il est clair que Python est beaucoup plus rapide. Et donc il sera plus rapide en C, donc il s'avère que MQ ne nous dit pas quelque chose, en promettant des performances comparables....

Je dois noter que Python a une petite parallélisation lors de l'exécution du code - pendant une demi-seconde pour environ deux cœurs, le reste est compté sur un seul cœur.

 
Forester #:
Vous avez écrit vous-même que la version standard est plus lente que la version actuelle d'alglibov. J'ai l'ancien sous forme de code, mais pas le terminal.

Le source Alglib lui-même a été réécrit par MQ pour ses matrices. Je ne veux même pas discuter du CorrCoef standard, il y a des problèmes évidents.

Par exemple, il y a deux sources d'Alglib.

  • L'original sur les tableaux dynamiques AVANT la transformation MQ.
  • MQ modifié pour ses types de matrices/vecteurs. C'est ce que j'ai testé.
Les sources des deux versions d'Alglib devraient être disponibles, afin que vous puissiez les comparer l'une à l'autre.
 
fxsaber #:

Horaires.


Oui, les gens consacrent des années aux algorithmes. J'ai vu un article sur le tri rapide en C++ - le code semble plus compliqué et fait des actions inutiles, mais il fonctionne plus rapidement grâce au pré-calcul du processeur. Pour l'avenir...
 
fxsaber #:

La source Alglib elle-même a été réécrite par MQ pour ses matrices. Je ne veux même pas discuter du CorrCoef standard, il y a des problèmes évidents.

En d'autres termes, il existe deux sources d'Alglib.

  • L'original sur les tableaux dynamiques AVANT la transformation MQ.
  • MQ modifié pour ses types de matrices/vecteurs. C'est ce que j'ai testé.
Les sources des deux versions d'Alglib devraient être disponibles, afin que vous puissiez les comparer l'une à l'autre.
Je suis paresseux. Je n'utilise pas de corrélation. J'ai simplement remarqué une différence de vitesse il y a un an et j'en ai fait part lorsque le sujet a été abordé.
 
fxsaber #:
NumPy semble avoir un algorithme différent de celui d'AlgLib

Dans AlgLib, la documentation originale explique pourquoi il y a des différences, lesquelles et à quoi elles servent. Avec les régressions (j'étais surtout en train de creuser AlgLib), c'est assez original.

Encore une fois, tout se compare étrangement, comme on ne peut pas le faire. Construisez des graphiques de dépendances speed=f(dimensionality,special_matrix_properties) pour différentes bibliothèques/réalisations et regardez-les. Vous prenez des cas marginaux, tirés du plafond.

et là, vous ne regardez pas la valeur absolue, mais la symptomatologie et la présence d'un "plateau". À partir de là, vous choisissez un outil pour travailler avec des données spécifiques.

 
Forester #:

Le processeur de Maxim est deux fois plus rapide que le mien. Je ne me souviens pas s'il a donné des timings pour Algliba, je pense que non.

J'ai mt par virtualisation là, les tests ne seront pas très plausibles.

De plus, j'ai choisi de calculer quelque chose en python et de le transférer ensuite sur n'importe quelle plateforme. Par exemple, pour la cryptographie, vous n'avez pas du tout besoin de terminaux.

C'est du grand n'importe quoi en termes de vitesse.
 
Maxim Kuznetsov #:

Encore une fois, c'est une façon étrange de comparer les choses, d'une manière qui n'est pas possible.

Je ne fais pas de comparaisons, je fournis un code que chacun peut mesurer dans son propre cas.

La longueur de la chaîne de 100 correspond à la longueur du motif. Vous n'avez probablement pas besoin de plus que cela.

La mémoire est limitée à 15 000 échantillons en raison de la taille quadratique de la matrice de corrélation. Plus il y a d'échantillons, mieux c'est. C'est pourquoi j'ai écrit un programme maison, qui permet d'avoir un million d'échantillons.

Je n'ai ni l'envie ni le temps de me consacrer à une comparaison objective. Je l'ai créé pour mes propres besoins et j'ai partagé le code de travail. Quiconque en a besoin le verra.

 
Ehhh... Si seulement 5% de tous nos efforts étaient dirigés vers une tâche commune, nous pourrions conquérir ce marché en quelques mois.

Et c'est ainsi que depuis des années, des décennies, chacun bouillonne dans sa propre soupe et 90% du temps utile est passé sur ce forum inutile.