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

 
Vizard_:
"Gopher" que je n'ai pas trouvé, j'ai merdé))) Et à quoi servent tous ces exercices... quiconque est un hippie comprendra.
Pour être honnête, je ne comprends pas. .........
 
mytarmailS:

oui, mais ce n'est pas juste, un bon prédicteur est celui qui explique la cible, pas celui qui s'explique lui-même, je ne sais pas comment on peut connaître la qualité d'un prédicteur sans le comparer à la cible, je ne comprends pas.....

Cela dépend de l'aspect du problème que l'on aborde. Au départ, nous ne connaissons pas les prédicteurs souhaités, et nous ne connaissons pas la variable cible. Et pour faire du commerce avec succès, nous devons connaître les deux. Il est impossible de connaître les deux en même temps, c'est pourquoi nous devons sélectionner les prédicteurs en fonction de notre variable cible. Ou bien vous pouvez rassembler de bons prédicteurs, puis utiliser votre expérience pour prévoir ce qui peut se passer avec eux.

Première approche. Par exemple, j'ai une variable cible - la hausse ou la baisse du prix sur la prochaine barre. Je l'ai pris non pas parce que c'est une bonne variable cible mais parce que je devais commencer quelque part, donc j'ai pris quelque chose de plus facile :) Ensuite, j'ai pris un tas d'indicateurs et maintenant j'essaie d'enseigner le modèle sur "un tas d'indicateurs" pour reconnaître "hausse/déclin". Je suis heureux que cela ait fonctionné, du moins en partie, car rien ne garantit que la variable cible choisie au hasard soit prévisible et rien ne garantit que les prédicteurs aient suffisamment d'informations pour faire une prédiction. Dans ce cas, ForeCA ne sert qu'à prétraiter les données, à les amener à une forme sur laquelle il est plus facile pour le réseau neuronal d'apprendre. Par exemple, on peut normaliser les données, prendre les deltas des valeurs adjacentes, en faire des composantes PCA, etc. Tout cela facilite le travail de neuronka, qui peut s'entraîner plus facilement sur ces données prétraitées. Ce que ForeCA doit faire dans ce cas est de regrouper les classes similaires d'une manière ou d'une autre. Mais il n'est pas certain que ForeCA vous aidera dans ce domaine - cela dépend de votre chance, des prédicteurs disponibles et de la variable cible.
En bref, dans ce cas, la variable cible est mise en correspondance avec un modèle et des prédicteurs qui, tous ensemble, ont miraculeusement au moins un certain pouvoir prédictif.

Une autre approche. Nous prenons un tas de prédicteurs, les trions en fonction de leur "fiabilité" et supprimons ceux qui ne sont pas pertinents. Par exemple, si l'indicateur a toujours une valeur constante, il est évidemment inutile. Si le prédicteur a été généré à l'aide de la fonction random(), il sera également inutile. C'est-à-dire qu'il est important de laisser les prédicteurs qui possèdent vraiment de l'information. Je n'y connais pas grand chose, la seule chose dont je me souviens - comment trouver l'importance du prédicteur pour la composante PCA (paramètre pruneSig dans le caret), semble être une estimation adéquate. Dans ce cas, l'analyse prospective devrait séparer les mouches des côtelettes et aider à trouver des prédicteurs fiables. La façon dont tous ces paquets savent ce qui est important et ce qui ne l'est pas est un mystère, mais ils trouvent des prédicteurs bruyants et aléatoires et les rejettent. Un prédicteur de qualité sera un prédicteur qui n'est pas aléatoire et bruyant.
Ensuite, si vous disposez d'un ensemble de prédicteurs de qualité, vous devez les essayer pour prédire quelque chose. Par exemple, on peut construire une carte de Kohonen et trouver la dépendance du comportement du marché par rapport à la classe dans la carte de Kohonen. Tirez des conclusions sur les classes sur lesquelles vous pouvez trader ou non, et construisez ainsi une nouvelle variable cible pour vous-même. La variable cible aura une haute prédictibilité avec les prédicteurs puisqu'elle est construite sur eux, tout cela semble bien, mais je pense qu'il y aura beaucoup de problèmes et de pièges qui lui seront propres.

 
Dr. Trader:

Cela dépend de l'aspect du problème que l'on aborde. Au départ, nous ne connaissons pas les prédicteurs souhaités, et nous ne connaissons pas la variable cible. Et pour faire du commerce avec succès, nous devons connaître les deux. Il est impossible de connaître les deux en même temps, c'est pourquoi nous devons sélectionner les prédicteurs en fonction de notre variable cible. Ou bien sélectionnez des prédicteurs de bonne qualité, puis examinez ce que l'on peut prédire en les utilisant.

Première approche.....

Une autre approche....

Les approches sont diverses, mais allons-nous échanger ?

Qu'allons-nous échanger ?

Une tendance ?

Déviation ?

Niveau ?

N'oubliez pas que nous n'avons que deux ordres - ACHAT et VENTE. Ou y a-t-il une certaine variété d'entre eux ? Enter BUY / Exit BUY / Enter SELL / Exit SELL

Ce sont les variantes de la variable cible.

Suivant.

Pouvons-nous former une variable cible pour ce que nous échangeons ?

Ou bien y a-t-il un écart entre l'objectif et l'idée du système de trading, ce qui constitue une erreur ?

Etc.

Mais nous devons commencer par ce que nous échangeons.

 
Mihail Marchukajtes:
vous devez multiplier la variable v2 par son retard et la diviser par v3 .
Montrez 10 lignes avec les colonnes suivantes (v2;Lag1_v2;v3;v11(cible) et une colonne avec la formule v2*Lag1_v2/v3)

v2;Lag1_v2;v3;v11(цель);v2*Lag1_v2/v3

Il n'est pas nécessaire de télécharger l'archive contenant le fichier.
 
Mihail Marchukajtes:
lag ne voit pas le réseau.
vous coupez les lignes vides et les collez où vous voulez...
 

SanSanych Fomenko:

Savoir exactement ce qu'il faut échanger. Les options sont nombreuses, mais vous pouvez à nouveau choisir quelque chose d'imprévisible et passer beaucoup de temps à apprendre l'imprévisibilité. Il est nécessaire de choisir quelque chose qui est plus facile à prédire sur les prédicteurs disponibles. Vous devez réfléchir longuement à la manière de procéder.

Réalisation d'un code de test pour la prédiction avec ForeCA. J'ai besoin d'un tableau TrainData, avec la variable cible dans la dernière colonne. Il sera divisé par rangs en 2 parties pour la formation/validation (sera divisé strictement au milieu). Le modèle prédictif est lm, pour une raison quelconque, il est toujours utilisé avec PCA dans les exemples, je pense qu'il fonctionnera ici aussi. Vous pouvez remplacer la fonction lm(...) dans le code par un autre modèle.
ForeCA requiert des données dans une matrice avec un rang complet après cov(). J'ai joint un code qui vérifie cela à l'avance, et supprime les colonnes avec une faible valeur propre. Tout est en boucle et prend beaucoup de temps à s'exécuter, ce qui aurait pu être plus simple. J'ai éliminé une partie des prédicteurs de cette façon, je ne sais pas si c'est bien ou pas.
Jusqu'à présent, je n'ai obtenu aucun résultat, le paquet a consommé 5 gigs de désespoir et pendant un long moment, je me suis demandé, essayez-le, peut-être que cela donnera une bonne prédiction à quelqu'un.

Dossiers :
 
Vizard_:
Montrez 10 lignes avec ces colonnes (v2;Lag1_v2;v3;v11(cible) et une colonne avec la formule v2*Lag1_v2/v3)

v2;Lag1_v2;v3;v11(цель);v2*Lag1_v2/v3

Il n'est pas nécessaire de télécharger l'archive contenant le fichier.
Pour être honnête, je ne vois pas l'intérêt de ce jeu. .... Construire la variable de sortie sur la base de la transformation non astucieuse des données d'entrée, cela n'a aucun sens. Si le CT fonctionne bien, il n'est pas nécessaire d'utiliser le réseau. Une autre chose qui me fait penser, et si l'optimiseur analysait un fichier de formation non pas ligne par ligne, mais dans son ensemble. En recherchant la corrélation non seulement entre les colonnes mais aussi dans les valeurs passées de toutes les colonnes. Le résultat peut être très intéressant. En plus de la normalisation des données, il y aura aussi un prétraitement des données, produisant non seulement une formule de normalisation, mais aussi une formule de prétraitement, comme par exemple : Avant la normalisation, v2 doit être multiplié par lag1 v5, etc. Alors je pense que la recherche sera beaucoup plus intéressante. Ou plutôt le prétraitement nous donne des formules de conversion, une sorte de pré-optimiseur. Nous appliquons ensuite ces formules aux données, ce qui permet d'obtenir un autre ensemble de données, puis nous les introduisons dans l'optimiseur pour construire le modèle..... Que diriez-vous de ceci : ..... ???? Une sorte de recherche multidimensionnelle des dépendances, non seulement entre les colonnes, mais aussi entre les relations avec les valeurs passées. Quelqu'un peut-il me dire comment organiser cela dans MKUL ????. Je l'essaierais bien :-)
 
Par exemple, avant de construire un modèle, j'optimise chaque entrée pour la sortie en utilisant l'optimiseur MKUL. C'est-à-dire que si j'utilise une baguette, alors avant de construire un modèle, je sélectionne les paramètres de la baguette dans l'intervalle d'entraînement, de façon à ce qu'elle donne autant de signaux profitables que possible, et ainsi avec chaque entrée, puis je mets le tout dans l'optimiseur....iiiet..... le modèle devient plus stable. Le modèle est stable mais environ 50% de généralisation ou un peu plus, car chacun des prédicats lors de l'optimisation dans MKUL donne dans un rare cas le nombre de trades rentables supérieur à 50%. Mais je le fais avec chaque entrée individuellement et principalement le paramètre de moyennage et le décalage est sélectionné à une section donnée, et il n'y a aucune relation avec les autres entrées. Supposons que nous recherchions cette corrélation avec l'optimiseur, comme je l'ai écrit ci-dessus. Ensuite, obtenez les paramètres de la relation entre les données. Pour les appliquer aux données et ensuite les fourrer dans l'optimiseur. Je pense que cela aura un sens à ce moment-là et que le modèle acquerra le niveau de généralisation approprié. Mais je ne sais pas comment l'organiser... Je pense... Je suis ouvert à toutes les idées... ...... Je pense qu'un simple réseau neuronal sur MKUL peut aider, qui peut construire une telle courbe, qui décrirait au maximum tous les signaux sur l'ensemble de test correctement, aidant ainsi à construire un bon modèle dans l'optimiseur de base de Reshetov (c'est une question de qui est assis sur quoi). Il y a quelques mailles simples dans MKUL ????
 
Dr. Trader:

Réalisation d'un code de test pour la prévision avec ForeCA.....

moi aussi... J'ai décidé d'en faire un rapide, en prenant des iris, en ajoutant 10 prédicteurs avec du bruit.

et j'ai juste entraîné Forest, puis j'ai pris la même date et en utilisant foreca je l'ai réduite à 4 prédicteurs et j'ai entraîné Forest à nouveau

résultat :

juste forrest sur les nouvelles données

Prediction   setosa versicolor virginica

  setosa         16          0         0
  versicolor      0         15         1
  virginica       0          0        18

Overall Statistics

Accuracy : 0.98    

Forrest n'a même pas remarqué le bruit dans les données...

et foreca est pire

Prediction   setosa versicolor virginica
  setosa          6          6         4
  versicolor      5         10         1
  virginica       8          5         5

Overall Statistics
                                          
               Accuracy : 0.42 
Dossiers :
code.txt  1 kb
 
mytarmailS:

Moi aussi... J'ai décidé de faire une correction rapide, j'ai ajouté 10 prédicteurs avec du bruit.

et j'ai simplement entraîné Forest, puis j'ai pris la même date avec du bruit et en utilisant foreCA j'ai réduit la dimension à 4 prédicteurs et j'ai de nouveau entraîné Forest sur eux.

résultat :

juste forrest sur les nouvelles données

Forrest n'a même pas remarqué le bruit dans les données...

et avec le foreca les choses sont pires.

La vérité c'est bien mais le bonheur c'est mieux !

Vérité = 42%, oh-so positif pour le depo.

Bien qu'il soit possible de vivre heureux, mais avec zéro dépo