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

 
mytarmailS:

a reçu un avertissement

logiquement, le script a essayé de lire la table précédemment créée à partir du fichier rdata, mais a échoué, d'où l'avertissement. La prochaine fois que vous exécuterez le script, le fichier rdata contenant la table sera lu et il n'y aura pas de distorsion.


NA - également logique, les données pour la création d'un modèle doivent être préparées, et non prises à partir de la sortie brute de ces indicateurs. Il y a beaucoup plus à faire là-bas -

<NA> au début du tableau est acceptable, les chandeliers après tout nécessitent au moins 23 mesures. Pour les 23 premières mesures, vous pouvez toujours vous attendre à du NA.
Je n'ai pas rempli le tableau jusqu'à la largeur de la fenêtre, non seulement il y aura du NA, mais on peut s'attendre à des résultats "moins bons" en raison de la profondeur moindre des calculs des indicateurs.
Mieux vaut couper toutes les premières lignes à la largeur de la fenêtre.
trainData <- trainData[-(1:indicatorDepth), ]

Corriger <NA> dans les noms de colonnes sauf pour la cible : colnames(trainData)[-ncol(trainData)] <- paste0("pred",1 :(ncol(trainData)-1))

Remplacer la cible par 1 pour tout ce qui est positif, et -1 pour tout ce qui est négatif. Ou {0;1} si vous avez de la neuronique.

Les indicateurs qui contiennent certaines valeurs proches des prix - échelle de 0-1, ou compter les deltas. (par exemple, les valeurs MA sont toujours quelque part près du prix, elles doivent être mises à l'échelle ou delta. Et le RSI est toujours dans sa propre fourchette de 0 à 100, ce qui est en soi une bonne chose. Si les valeurs de l'indicateur peuvent aller au-delà des valeurs connues pendant la formation - delta, cela ne s'aggravera pas)

Pour la neuronique en général, il est préférable d'échelonner tous les indicateurs en 0-1.

Et ainsi de suite.

Mais NA dans les colonnes 46-51 - il y a vraiment quelque chose qui ne va pas. Soit ils renvoient tout dans un autre format et nous avons besoin d'un autre code spécifique pour les insérer dans le tableau.
Ou - ces indicateurs renvoient juste NA par eux-mêmes ; peut-être ont-ils besoin d'une plus grande largeur de fenêtre ; ou ils renvoient toujours NA pour la dernière barre et remplacent ensuite NA sur la base des données de la nouvelle barre, ce qui est un redessin, et mauvais.

 
SanSanych Fomenko:

Voici une nouvelle barre, qui est l'annonce d'un retournement de marché. Mais nous, qui continuons à nourrir la vache sacrée, ne changeons pas notre vision de l'histoire au nom d'une idée quelconque, tirée de la section "analyse".

Pour un trading simple, c'est tout à fait excellent, je suis d'accord. L'indicateur a trouvé une sorte de modèle qui vient juste d'apparaître et nous l'a montré, tout va bien.

Mais nous devons préparer les données et entraîner le modèle. Si un indicateur est à découvert, cela signifie généralement que les valeurs des barres passées changent constamment en fonction des nouvelles données, c'est-à-dire qu'il y a un aperçu de l'avenir. Et si le modèle finit par tirer des leçons de ces valeurs prospectives, rien de bon ne peut en sortir.
Bien que ces indicateurs puissent être utilisés comme cible d'apprentissage, le même zigzag, par exemple, regarde 100 barres en avant, c'est pourquoi il dessine des tendances de manière attrayante.

 
Dr. Trader:

Mais NA dans les colonnes 46-51 - il y a vraiment quelque chose qui ne va pas. Soit les indicateurs renvoient tout dans un format différent et nécessitent un code différent spécifiquement pour les insérer dans le tableau.

Ou - ces indicateurs renvoient juste NA par eux-mêmes ; peut-être qu'une plus grande largeur de fenêtre est nécessaire ; ou ils renvoient toujours NA pour la dernière barre et remplacent ensuite NA sur la base des données de la nouvelle barre, ce qui est un redessin, et mauvais.

J'ai vérifié, on dirait qu'on est à découvert. Pour la dernière barre, l'indicateur nextCandlePosition renvoie toujours NA. Puis, à la barre suivante, il remplace NA par quelque chose qui semble correct. @mytarmailS Réessayez votre premier code, mais sans cet indicateur et entraînez le modèle, je pense que le résultat sera pire.

J'ai corrigé mon script pour prendre l'avant-dernière valeur de nextCandlePosition au lieu de la dernière, maintenant il n'y aura pas de NA dans les dernières lignes du tableau.

 
Dr. Trader:

Pour un trading simple, c'est tout à fait excellent, je suis d'accord. L'indicateur a trouvé une sorte de modèle qui vient juste d'apparaître, et nous l'a montré, tout va bien.

Mais nous devons préparer les données et enseigner le modèle. Si l'indicateur se redessine, cela signifie généralement que les valeurs des barres précédentes changent constamment sur la base de données plus récentes, c'est-à-dire qu'il y a un regard vers l'avenir. Et si le modèle finit par tirer des leçons de ces valeurs prospectives, rien de bon ne peut en sortir.
Bien que ces indicateurs puissent être utilisés comme cible d'apprentissage, le même zigzag, par exemple, regarde 100 barres à l'avance ; c'est pourquoi il dessine des tendances de manière attrayante.

Prenons un exemple simple.

1. On dessine un lissage Hodrick-Prescott. Il est redessiné.

Sur la barre actuelle, la tangente regarde vers le haut. Sur la barre suivante, la tangente est orientée vers le bas - l'indicateur se redessine car il prend en compte les changements actuels. Prévision d'un pas en avant - vers le bas.

2. Dessiner la tangente.

Sur la barre actuelle, la tangente est orientée vers le haut. Sur la barre suivante, la tangente regarde vers le haut - l'indicateur n'a pas encore atteint les changements.

Veuillez considérer que l'indicateur HP cesse de redessiner quelque part entre 10 et 15 barres.

Votre choix et pourquoi ?

 
SanSanych Fomenko:

Votre choix et pourquoi ?

Dans le cadre du trading manuel, je peux supposer qu'il existe de bonnes stratégies utilisant ces deux indicateurs. Je ne connais pas de telles stratégies, donc je ne ferais pas de commerce avec eux.

Dans l'apprentissage automatique, je choisirai l'assistant. Un indicateur de retard idiot est meilleur que n'importe quel indicateur de redécoupage.

 
Dr. Trader:

Je l'ai vérifié, ça ressemble à un découvert. Pour la dernière barre, l'indicateur nextCandlePosition renvoie toujours NA. Et ensuite, à la mesure suivante, il remplace NA par quelque chose de nécessaire. @mytarmailS Réessayez votre premier code, mais sans cet indicateur et entraînez le modèle, je pense que le résultat sera pire.

J'ai corrigé mon script pour prendre l'avant-dernière valeur de nextCandlePosition au lieu de la dernière, maintenant il n'y aura pas de NA dans les dernières lignes du tableau.

J'ai écrit que j'ai supprimé environ six des meilleurs prédicteurs pour éliminer ceux qui pourraient être sur-peints, mais la précision a chuté d'environ 3%, ils sont probablement tous sur-peints ...

Avez-vous déjà entraîné le modèle ? Peut-être devriez-vous commencer par quelques milliers de personnes pour l'essayer au lieu de compter 50 000 d'un coup ?

 
bien que je ne sache pas ce qui peut y être redessiné, la grande majorité des formations en chandelier n'ont que trois options de sortie : TRUE,FALSE,NA
 
mytarmailS:

Oui j'ai écrit que j'ai enlevé environ six des meilleurs prédicteurs pour juste enlever ceux qui peuvent redessiner, mais la précision a littéralement chuté de 3%, il y a probablement tous les redessiner ...

J'ai pris votre code, supprimé 6 indicateurs obtenus à partir de nextCandlePosition (X27), j'ai obtenu une précision de 52% au lieu de 100%. Avec des indices légèrement différents pour la formation, la précision est parfois inférieure à 50%. Dans l'ensemble - aléatoire.

mytarmailS:
bien que je ne sache pas ce qui pourrait être redessiné, il n'y a que trois sorties VRAI,FAUX,NA dans la grande majorité des formations de chandeliers

En utilisant nextCandlePosition - vous obtenez des valeurs réellement pertinentes pour la prochaine barre, ici en regardant dans le futur pour une étape.

Donc ça n'a pas marché.

 
Dr. Trader:

J'ai pris votre code, supprimé 6 indicateurs obtenus à partir de nextCandlePosition (X27), j'ai obtenu une précision de 52% au lieu de 100%. Avec des indices légèrement différents pour la formation, la précision est parfois inférieure à 50%. En général - aléatoire.

En utilisant nextCandlePosition, vous obtenez les valeurs réellement pertinentes pour la prochaine barre, en vous projetant dans le futur d'un pas.

En général, cela ne fonctionne pas.

C'est bien que tout se soit éclairci, je ne croyais pas vraiment au Graal.

 

Il existe un nouveau paquet très prometteur, RKEEL, qui constitue une passerelle vers KEEL.

Bonne chance

KEEL: Software tool. Evolutionary algorithms for Data Mining
  • www.keel.es
KEEL contains classical knowledge extraction algorithms, preprocessing techniques, Computational Intelligence based learning algorithms, evolutionary rule learning algorithms, genetic fuzzy systems, evolutionary neural networks, etc.
Raison: