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

 
Alexey Burnakov:
Nous n'avons rien perdu. Ensuite, nous aurons une séquence de changements de clusters. Aux points de transition d'un cluster à l'autre, il est possible de construire une matrice carrée et de changer de mode de transaction : entrer en position d'achat sur le cluster n, fermer la position sur le cluster m. Puis la même matrice pour la vente. Toutes les variantes ne font que passer. Et vous pouvez faire varier les paramètres de clustering et regarder le résultat dans la boucle.
c'est intéressant
 
Dr. Trader:

Vous avez probablement des paramètres différents pour créer des forêts dans r et rattle, les résultats sont donc différents. Dans le hochet lui-même, vous pouvez également modifier le nombre d'arbres et de variables.

Et vous avez 34% d'erreur dans le hochet sur les données de formation et 3% d'erreur sur les données de validation ? Quelque chose ne va pas avec les données de test, soit elles existaient déjà dans les données de formation, soit l'ensemble de données est très petit et cela s'est produit comme ça.

non, dans le hochet à toutes les étapes il y a une petite erreur

et R en a une grosse à tous les stades ;)

sont les mêmes, et avec n'importe quels paramètres, un tel écart n'est pas possible.

 
Comment attacher un fichier ici ? Ou bien il ne s'attache pas ou se fige...
 
mytarmailS:

Et une autre question pour le R

bibliothèque(kza)

DAT <- rnorm(1000)

KZP <- kzp(DAT,m=100,k=3)

summary(KZP,digits=2,top=3)


comment puis-je le sortir de "summary" http://prntscr.com/bhtlo9 pour pouvoir travailler avec ces chiffres ?

J'ai aussi de tels problèmes. En général, il suffit d'exécuter attributes(KZP) pour obtenir une liste des variables disponibles, puis de les parcourir, par exemple KZP$window, etc. pour trouver les bons chiffres. Mais ici, ces chiffres sont générés dans la fonction Résumé elle-même et ne sont enregistrés nulle part.

Voici un code source : https://cran.r-project.org/web/packages/kza/index.html, vous devez faire quelque chose comme ceci :

summary.kzp <- function(object, digits = getOption("digits"), top=1, ...)
{
        cat(" Call:\n ")
        dput(object$call, control=NULL)

        M=object$window
        if (is.null(object$smooth_periodogram)) {       d<-object$periodogram } else { d<-object$smooth_periodogram }
        
        mlist<-rep(0,top)
        for (i in 1:top) {
                mlist[i]<-which.max(d)
                d[which.max(d)]=NA                      
        }

   cat("\n Frequencies of interest:\n")
   print((mlist-1)/M, digits=digits, ...)

    cat("\n Periods of interest:\n")
    print(M/(mlist-1), digits=digits, ...)
    invisible(object)
}
 

Merci Dr. Trader, c'est bien d'avoir quelqu'un à qui demander de l'aide sur ce point délicat.)

Avec l'échantillonnage et sur R, j'ai obtenu les mêmes résultats, mais le problème est que les nouvelles données arriveront une bougie à la fois, il ne sera pas possible de les échantillonner.

Et il s'avère que si tout l'échantillon est échantillonné, les résultats sont étonnants pour toutes les périodes, y compris hors échantillon, mais lorsque vous soumettez des données réelles, c'est la même chose qu'à l'accoutumée.

La question est donc de savoir si cet échantillonnage est vraiment nécessaire.

 

Si, vous le faites. Avec l'échantillon - rattle divise les données d'entraînement en plusieurs groupes par rangées (les rangées sont allouées aléatoirement à trois tables, selon un ratio de 75%/15%/15%). Il produit 3 tableaux à partir d'un seul fichier d'entrée. Les colonnes ne sont pas affectées par cela, elles seront les mêmes dans toutes les tables.

Tableau d'entraînement - l'entraînement du modèle sera basé sur ce tableau.

Valider et tester les tableaux - pour contrôler la formation

Supposons que nous prenions les données de l'année dernière et que nous voulions entraîner le modèle à trader au cours des prochains mois. La formation proprement dite se déroulera uniquement sur la table de formation. Ensuite, vous pouvez tester le modèle sur un deuxième ou un troisième tableau en comptant leurs erreurs. Si le modèle est entraîné correctement, les erreurs sur les trois tableaux seront approximativement égales, malgré le fait qu'il ait été entraîné en utilisant uniquement le premier tableau.

Ceci est facile à vérifier sur une forêt aléatoire. Presque n'importe quel ensemble de données peut donner une erreur de 0% sur une table d'entraînement. Mais après avoir vérifié le même modèle mais avec des tables de test et de validation - vous verrez très probablement 50% d'erreur à cet endroit. Cela signifie que le modèle est réentraîné, et qu'en le déplaçant sur mt5, vous perdrez progressivement votre dépôt.
Mais si vous prenez le fichier RData avec l'exemple de SanSanych, vous verrez une erreur de 30% sur la table des trains. Il est remarquable que l'erreur sur les tables de validation et de test reste à peu près la même, malgré le fait que le modèle n'a pas vu les données de ces tables pendant la formation. Ce modèle peut être facilement transféré sur mt5 et négocié.

Si l'on se contente de prendre toutes les données disponibles sans échantillonnage, d'entraîner le modèle, de constater une erreur de 0 % et d'être heureux, ce sera très mauvais dans le commerce réel.

 
Dr. Trader:

Si, vous le faites. Avec l'échantillon - rattle divise les données d'apprentissage en plusieurs groupes par rangées (les rangées sont allouées de manière aléatoire à trois tables, selon un ratio de 75%/15%/15%). Il produit 3 tableaux à partir d'un seul fichier d'entrée. Les colonnes ne sont pas affectées par cela, elles seront les mêmes dans toutes les tables.

Tableau d'entraînement - l'entraînement du modèle sera basé sur ce tableau.

Valider et tester les tableaux - pour contrôler la formation

Supposons que nous prenions les données de l'année dernière et que nous voulions entraîner le modèle à trader au cours des prochains mois. La formation proprement dite se déroulera uniquement sur la table de formation. Ensuite, vous pouvez tester le modèle sur un deuxième ou un troisième tableau en comptant leurs erreurs. Si le modèle est entraîné correctement, les erreurs sur les trois tableaux seront approximativement égales, malgré le fait qu'il ait été entraîné en utilisant uniquement le premier tableau.

C'est facile à vérifier sur une forêt aléatoire. Presque n'importe quel ensemble de données peut donner une erreur sur une table à 0%. Mais, ayant vérifié le même modèle mais avec des tables de test et de validation - vous y verriez probablement 50% d'erreur. Cela signifie que le modèle est réentraîné, et qu'en le déplaçant sur mt5, vous perdrez progressivement votre dépôt.
Mais si vous prenez le fichier RData avec l'exemple de SanSanych, vous verrez une erreur de 30% sur la table des trains. Il est remarquable que l'erreur sur les tables de validation et de test reste à peu près la même, malgré le fait que le modèle n'a pas vu les données de ces tables pendant la formation. Vous pouvez facilement transférer ce modèle à mt5 et trader.

Si vous vous contentez de prendre toutes les données disponibles sans échantillonnage, d'entraîner le modèle, de constater une erreur de 0 % et d'être heureux, ce sera très mauvais dans le commerce réel.

Je comprends votre point de vue, mais la satire est que l'erreur est faible sur les échantillons des trois, mais qu'elle est grande sur les données non échantillonnées.

Envoyez-moi votre email dans un message privé, je vous enverrai les données, voyez par vous-même ou apprenez-moi à joindre un fichier parce que soit je ne le fais pas, soit le forum se bloque en essayant de le faire.

 

Quoi qu'il en soit, j'ai entraîné mon modèle (forêt aléatoire), le résultat n'est pas satisfaisant, mais je ne l'ai pas retrainé.

1) ma cible est un zigzag avec un genou de 0,5%.

2) prédicteurs - niveaux et chandeliers - 100 choses au total (sans oscillateurs et autres indicateurs)

3) Le modèle lui-même n'a pas été optimisé du tout, j'ai juste mis 3 divisions, le nombre d'arbres est de 200 unités.

4) Au fait, si nous passons par PrunePredictors (sélection des caractéristiques), seuls 3 prédicteurs ont été éliminés sur les 100, ce qui laisse un total de 97 prédicteurs.

l'échantillon est divisé en deux parties, une partie formation et une partie test, la partie test étant la 5ème partie de la partie formation.

Sur la partie formation : erreur de modèle 33 %.


Sur le test : erreur de modèle 32%.


Les données ne sont pas échantillonnées, car je ne comprends pas encore cette bête.

Maintenant, nous pouvons penser au cluster

 

Forum : comment insérer une image

C'est le seul moyen pour que l'image reste sur le forum pour toujours et que tous les utilisateurs, même après un an, puissent voir l'image et comprendre de quoi il s'agit.

La seule façon de conserver indéfiniment une image dans un forum est que tous les utilisateurs puissent la voir et la comprendre même après un an.

 
mytarmailS:

La question n'est pas de savoir pourquoi les résultats sont différents dans R et Rattle pour les mêmes données et le même modèle.

Deuxième question : quel est l'intérêt de tester un modèle " hors échantillon " sur le cliquetis si cela montre l'enfer...

Vous avez mal compris mon message