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

 
Aleksey Nikolayev #:
Quels mécanismes de parallélisation des calculs sur CPU dans mql5 connaissez-vous ?

OpenCL pour les plus ou moins avancés.

Pour les moins avancés - exécution d'agents sur des graphiques distincts. Chaque graphique étant exécuté dans un thread distinct, tous les cœurs de l'unité centrale seront utilisés au total.

En outre, les agents terminaux eux-mêmes peuvent être utilisés pour paralléliser les calculs de l'application sur un graphique terminal, ce qui n'est pas connu de beaucoup de gens.

Dans cet article, je vais vous montrer comment écrire un AG binaire couvrant tous les chiffres significatifs d'un nombre double avec un pas de paramètres illimité en MQL5 (en fait, il est limité à 16 décimales pour le double). Et ce n'est pas tout, vous pouvez écrire des extensions de types de nombres standards en MQL5.

 
Andrey Dik #:

OpenCL est destiné aux personnes plus ou moins avancées.

Pour les moins avancés, il s'agit de faire tourner des agents sur des cartes séparées. Chaque graphique dans un thread séparé, tous les cœurs du processeur seront utilisés au total.

En outre, les agents terminaux eux-mêmes peuvent être utilisés pour paralléliser les calculs de l'application sur un graphique terminal, ce qui n'est pas connu de beaucoup de gens.

Dans cet article, je vais vous montrer comment écrire un AG binaire couvrant tous les chiffres significatifs d'un nombre double avec un pas de paramètres illimité en MQL5 (en fait, il est limité à 16 décimales pour le double). Et ce n'est pas tout, vous pouvez écrire des extensions de types de nombres standards en MQL5.

C'est ce que je dis - vous obtiendrez une bicyclette avec beaucoup de crampes.

Et OpenCL est tellement bon que metaquotes n'a pas écrit son optimiseur GPU dessus, probablement parce que chacun d'entre nous peut facilement écrire le sien.

Bon, j'arrête, sinon je serai banni comme Maxim si je dis tout ce que je pense de votre démagogie.

 
Aleksey Nikolayev #:

C'est ce que je dis - ce sera une bicyclette assez méchante.

Et OpenCL est tellement bon que metaquotes n'a pas écrit son optimiseur GPU dessus, probablement parce que chacun d'entre nous peut facilement écrire le sien.

Bon, j'arrête, sinon je serai banni comme Maxim si je dis tout ce que je pense de votre démagogie.

Alors, quel est exactement le problème ? Si vous avez des problèmes avec MQL5, ce n'est pas la faute du langage, il y a des fils de discussion spéciaux pour ceux qui posent des questions.

Quelle est ma "démagogie" ? Je vous ai donné une énorme liste de littérature à lire à votre demande, pour élargir vos horizons, je vous raconte et vous montre des implémentations spécifiques et des stratégies de recherche dans MQL5. Qu'attendez-vous d'autre de moi, pour que je ne me mette pas la pression et que je ne vous fasse pas craindre d'être banni ?

Je suis très surpris par les gens.

 

Un peu de redondance dans le rendu de forrest

prendre un jeu de données d'iris + entraîner forrest + extraire des règles de forrest + créer un jeu de données où chaque règle est une caractéristique.

nous obtenons une matrice avec des règles en colonnes (environ 700 pièces).

X <- iris[,-5]
target <- iris[,"Species"] 

library(inTrees)
library(RRF)

rules_dataset <- target |> 
                  RRF(x = X) |> 
                  RF2List() |> 
                  extractRules(X = X) |> 
                  sapply(\(r) eval(str2expression(r)))
ncol(rules_dataset)
[1] 698

Maintenant, identifiez toutes les règles linéairement liées et supprimez-les comme redondantes.

remove_lin_comb <- caret::findLinearCombos(rules_dataset)$remove
clear_rules_dataset <- rules_dataset[, -remove_lin_comb]

et nous obtenons

ncol(clear_rules_dataset)
[1] 32


L'ensemble des données peut être décrit par 32 règles au lieu de 698.


C'est ainsi que les choses se passent...

Forrest est 698/32 = 21,8125 fois plus redondant qu'il ne pourrait l'être.

 
mytarmailS #:

Quelques mots sur la redondance de Random Forrest

prendre un ensemble de données d'iris + entraîner la forêt + extraire les règles de la forêt + créer un ensemble de données où chaque règle est une caractéristique.

obtenir une matrice avec des règles en colonnes (environ 700 pièces)

Maintenant, identifiez toutes les règles linéairement liées et supprimez-les comme redondantes.

et nous obtenons


L'ensemble des données peut être décrit par 32 règles au lieu de 698.


C'est ainsi que les choses se passent.

Forrest est 698/32 = 21,8125 fois plus redondant qu'il ne pourrait l'être.

D'où viennent les règles ? C'est exact : des montagnes d'informations en entrée, compressées pour obtenir des règles et les utiliser ensuite pour la prédiction, et non les informations d'origine. C'est pourquoi on parle de modèle.

 
СанСаныч Фоменко #:

D'où viennent les règles ? C'est exact : des montagnes d'informations à l'entrée, qu'on comprime pour obtenir des règles et les utiliser ensuite pour la prédiction, et non l'information d'origine. C'est pourquoi on parle de modèle.

Lisez attentivement ce qui a été écrit

 
mytarmailS #:
Vous ne vouliez pas écrire un article sur les règles, ou vous avez changé d'avis ? C'est probablement un sujet intéressant, plus intéressant que la minimisation des fonctions de test. Ou bien avez-vous des problèmes avec leur validation sur OOS ? Ou bien il n'y a pas de problème, vous êtes juste trop paresseux pour écrire.
 
Une sorte d'approche générale de la sélection des règles. Par exemple, voici la décomposition de l'arbre en règles, et ensuite... dans le contexte de la CT. Les meilleures pratiques et les idées. Ce serait intéressant.

Il ne s'agit pas de fonctions aléatoires et de loups aléatoires, mais d'une approche plus proche des bénéfices.
 
Maxim Dmitrievsky #:
Une sorte d'approche générale de la sélection des règles. Par exemple, voici la décomposition de l'arbre en règles, et ensuite... dans le contexte de la CT. Meilleures pratiques et idées. Je serais curieux.

Il ne s'agit pas de fonctions aléatoires et de loups aléatoires, mais d'une approche plus proche des bénéfices .

L'expression "plus près du profit" n'est-elle pas synonyme de "surentraînement" ?
Nous obtenons un bel équilibre sur le profit aléatoire, puisque la base est une valeur incrémentale aléatoire. Et d'où vient la beauté de l'équilibre ?

L'équilibre est l'évaluation de la TS dans le terminal, où cet équilibre est influencé non seulement par l'erreur de classification.

Mais si nous restons dans le cadre de la MOE, l'évaluation n'est PAS le profil.

 
СанСаныч Фоменко #:

L'expression "plus près du profit" n'est-elle pas synonyme de "surentraînement" ?
Nous obtenons un bel équilibre sur un profit aléatoire, car la base est une valeur d'incrément aléatoire. D'où vient la beauté de l'équilibre ?

L'équilibre est l'évaluation de la TS dans le terminal, où cet équilibre est influencé non seulement par l'erreur de classification.

Et si nous restons dans le cadre du mode opératoire, l'évaluation n'est PAS un bénéfice

Plus proche du bénéfice - plus proche des devis, ne pas s'entraîner sur quelque chose d'insignifiant. Il existe de nombreux tests de ce type sur l'internet, et les particularités des différents modes opératoires sont connues depuis longtemps. Ce qui est pire et ce qui est mieux.

Je ne comprends pas où se situe l'extraction de règles dans la hiérarchie.