L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 3283
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
C'est le cœur du calcul ligne par ligne de la matrice.
PearsonCorrM est 40 à 50 fois plus rapide que l'algorithme ligne par ligne d'Algibov, et il est probable que même un outil maison rapide ne parviendra pas à combler un tel écart de vitesse.
Je me demande si une matrice est calculée et si la même matrice est calculée par l'algorithme rapide d'Algibov PearsonCorrM. Qui serait le plus rapide ?
PearsonCorrM est 40 à 50 fois plus rapide que l'algorithme ligne par ligne d'Algibov, et il est probable que même un algorithme maison rapide ne pourra pas surmonter un tel écart de vitesse.
Voici deux fois le retard de l'algorithme maison par rapport à PearsonCorrM.
J'ai comparé la vitesse d'apprentissage de CatBoost en python et en ligne de commande :
- 20% plus rapide du démarrage à l'enregistrement des modèles, y compris la lecture des échantillons
- 12% plus rapide pour le processus d'apprentissage lui-même
Testé sur le même modèle - le résultat de l'apprentissage est identique.
Bien sûr, la ligne de commande est plus rapide.
- 20% plus rapide du démarrage à l'enregistrement des modèles, y compris la lecture des échantillons
- 12% plus rapide pour le processus d'apprentissage lui-même
Testé sur le même modèle - le résultat de l'apprentissage est identique.
Bien sûr, la ligne de commande est plus rapide.
Utilisez-vous toujours la ligne de commande pour exécuter les EXE ?
Vous pouvez les exécuter via WinExec et même les optimiser dans le testeur.
Je n'ai pas essayé Catboost, mais je pense que vous pouvez faire quelque chose.
Autre problème possible, si le fichier de modèle est énorme, l'écriture peut prendre beaucoup de temps, c'est-à-dire que le fichier existe déjà, mais qu'il n'a pas été écrit jusqu'au bout. Il peut être nécessaire de mettre le fichier en pause ou de vérifier que le fichier n'est pas fermé à la lecture par le processus d'écriture....Le plus difficile est de déterminer le moment où l'entraînement est terminé. Je le fais en vérifiant l'apparition du fichier de modèle dans le dossier agent_dir+"\model.bin" 1 fois par seconde. Je ne sais pas où Catboost place le fichier modèle, il faudra peut-être que je le cherche ailleurs.
Utilisez-vous toujours la ligne de commande pour exécuter les EXE ?
Vous pouvez les exécuter via WinExec et même les optimiser dans le testeur.
J'utilise des fichiers bat - jusqu'à présent, c'est l'option la plus pratique pour les tâches actuelles.
Jusqu'à présent, il n'y a qu'une seule tâche pour le lancement automatique de la formation après l'obtention d'un échantillon - la recherche de reconnaissance. Je prévois de créer un fichier bat automatique pour cela plus tard.
Je n'ai pas essayé Catboost, mais je pense que nous pouvons trouver quelque chose.
Le plus difficile est de déterminer le moment de la fin de l'entraînement. Je le fais en vérifiant l'apparition du fichier modèle dans le dossier agent_dir+"\model.bin" 1 fois par seconde. Je ne sais pas où Catboost place le fichier modèle, il faudra peut-être que je le cherche ailleurs.
Un autre problème possible, si le fichier de modèle est énorme, il peut prendre beaucoup de temps à écrire, c'est-à-dire que le fichier existe déjà, mais qu'il n'a pas été écrit à la fin. Il se peut que vous deviez mettre le fichier en pause ou vérifier qu'il n'est pas fermé à la lecture par le processus d'écriture....Votre solution est intéressante - je vais regarder, peut-être la prendre pour l'appliquer.
Mais je pense qu'il est possible d'obtenir une réponse finale du programme exécutable - je voulais utiliser cette approche.
Option avec les fichiers - si vous exécutez un bootnik, alors encore une fois - vous pouvez simplement créer un nouveau fichier à la fin de la tâche.
Peut-être que le taux de réussite relatif des variantes -1 et 0 dépend de la taille de l'échantillon du train et qu'il devrait être réduit ? En général, il semble que Recall réagisse à cela.
À votre avis, les résultats de ces combinaisons devraient-ils être comparables entre eux dans notre cas ? Ou bien les données sont-elles irrémédiablement obsolètes ?
J'ai divisé l'échantillon de train en 3 parties, j'ai formé 3 ensembles pour la variante -1 et la variante 0, et j'ai également formé uniquement le train original sous forme de trois échantillons.
Voici ce que j'ai obtenu.
J'ai fait cette généralisation PR=(Precision-0.5)*Recall
Il semble que l'apprentissage se fasse aux dépens des 2ème et 3ème parties de l'échantillon de train - maintenant que je les ai combinées et que j'ai lancé l'apprentissage - voyons ce qui se passe.
Néanmoins, il semble que ce ne soit pas une mauvaise méthode pour estimer le caractère aléatoire de la formation. Idéalement, la formation devrait être relativement réussie à chaque segment, sinon il n'y a aucune garantie que le modèle s'arrêtera simplement de fonctionner demain.
Il semble que la formation se fasse au détriment des deuxième et troisième parties du train d'échantillons - je les ai maintenant combinées et j'ai lancé la formation - nous verrons ce qui se passera.
Néanmoins, il semble que ce ne soit pas une mauvaise méthode pour évaluer le caractère aléatoire de la formation. Idéalement, la formation devrait être relativement réussie à chaque segment, sinon il n'y a aucune garantie que le modèle s'arrêtera simplement de fonctionner demain.
Et voici les résultats - les deux dernières colonnes
En effet, les résultats se sont améliorés. Nous pouvons supposer que plus l'échantillon est grand, meilleurs seront les résultats de l'entraînement.
Nous devrions essayer de nous entraîner sur les 1ère et 2ème parties de l'échantillon d'entraînement - et si les résultats ne sont pas beaucoup plus mauvais que sur les 2ème et 3ème parties, alors le facteur de la fraîcheur de l'échantillon peut être considéré comme moins important que le volume.
J'ai écrit à plusieurs reprises sur le "pouvoir prédictif des prédicteurs". qui est calculée comme la distance entre deux vecteurs.
Je suis tombé sur une liste d'outils permettant de calculer la distance :
Il ne s'agit pas de l'outil standard, qui possède son propre ensemble de distances.
Et voici le résultat - les deux dernières colonnes
En effet, les résultats se sont améliorés. Nous pouvons faire l'hypothèse que plus l'échantillon est grand, plus le résultat de l'entraînement sera bon.
Il est nécessaire d'essayer de s'entraîner sur 1 et 2 parties de l'échantillon d'entraînement - et si les résultats ne sont pas beaucoup plus mauvais que sur 2 et 3 parties, alors le facteur de la fraîcheur de l'échantillon peut être considéré comme moins important que le volume.
J'ai écrit à de nombreuses reprises sur le "pouvoir prédictif des prédicteurs". qui est calculé comme la distance entre deux vecteurs.
Je suis tombé sur une liste d'outils permettant de calculer la distance :
Il ne s'agit pas de l'outil standard, qui possède son propre ensemble de distances.
Pouvez-vous me montrer un exemple d'utilisation ?