L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 1917

 
mytarmailS:

L'idée est de modifier les caractéristiques, d'entraîner le modèle et de voir ce qui se passe avec les nouvelles données.


Comment travailler avec des modèles ordinaires ? Nous alimentons x1,x2,x3,....x20 et c'est tout.


Ce que j'ai fait dans le dernier script est que - 0.82

J'ai pris les 31 indicateurs comme prédicteurs.

puis j'ai pris leurs prédictions comme prédicteurs de second ordre, puis j'ai pris les prédictions à partir des prédictions et ainsi de suite 11 fois jusqu'à ce que l'erreur diminue, j'ai obtenu 0.82 au lieu de 0.7


Je ne sais pas où je me suis trompé ((

L'idée est tout à fait correcte permettant de générer essentiellement des prédicteurs, mais il y a deux subtilités :

1. Reproductibilité des résultats - il faudra procéder à une sorte de conversion supplémentaire - qu'obtenons-nous après le traitement - un nouveau tableau ?

2. Il est nécessaire de vérifier les régularités sur la période d'échantillonnage - que la classification correcte serait sur différents sites et il n'est pas réalisé dans aucun modèle de formation connu de moi qui est très mauvais.

Comme la plupart de mes prédicteurs sont catégoriques dans des quantiles d'essence, je veux essayer de générer des prédicteurs en combinant par && pré-jointure des plages de prédicteurs statistiquement significatifs.

À propos de l'erreur, est-elle tombée sur un échantillon inconnu jusqu'alors, ou sur un échantillon de test ? Peut-être que le script a pris en compte les relevés de l'échantillon de test lors de la génération de nouvelles règles ?

Cela fait un moment, quel est le bilan - la méthode fonctionne-t-elle ou non ?

 
mytarmailS:

J'ai décidé de voir à quoi ressembleraient des données typiques pour l'entraînement de NS en 3d ;)

données est de 31 indicateurs, la cible est un zigzag

j'ai réduit la dimensionnalité à trois dimensions avec trois algorithmes - pca, t-sne , umap (les deux derniers sont considérés comme les plus avancés)


qu'est-ce que c'est d'ailleurs -https://en.wikipedia.org/wiki/Dimensionality_reduction

how it can help -https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D1%8F%D1%82%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8


Donc les données 31 indicateur cible zigzag , d'abord nous avons PCA

Pouvez-vous poster le script pour que les nuls comme moi puissent aussi regarder de si belles images sur leurs échantillons ?

 
mytarmailS:

J'ai eu l'idée de créer un fil pour discuter des fonctions cibles, pas même une discussion, mais plutôt de créer une base de données des différents types de fonctions cibles et des statistiques les concernant, ce qui fonctionne et ce qui ne fonctionne pas du tout.

Tu crois que quelqu'un en a besoin ?

L'idée est bonne, mais en plus des idées, il serait utile d'avoir un code ouvert en MQL - le résultat serait une bibliothèque.

Si ce n'est pas un code, alors au moins un algorithme de mots pour la reproduction.


1. prédire le prix maximum du jour en utilisant les données intraday (régression)

Par les données internes des jours précédents ou pendant la journée - dans ce dernier cas, l'erreur diminuera simplement en fin de journée.

Si à un moment donné, l'échantillon sera petit.


2. à quel niveau de ventilation il y aura sur-volatilité (régression + classification)

Je ne sais même pas ce qu'est la super volatilité, mais je pense qu'il s'agit juste de la tendance ou non ?

S'il y a plusieurs niveaux, il y aura plusieurs classes, ce qui signifie une erreur beaucoup plus élevée qu'avec la classification binaire.

Le seul moyen d'y parvenir est d'utiliser un modèle différent pour chaque niveau...


2. prédire l'heure du renversement quotidienen utilisant les données intraday(classification).

C'est essentiellement la même chose que la prévision du prix maximum - les mêmes problèmes.


3. si la première bougie était noire, la troisième sera-t-elle blanche ? (classification)

Cela devrait être très simple - nous pouvons l'essayer.


4. marquer les niveaux de support et de résistance et prédire le niveau à partir duquel un bond/break-down se produira (classification).

Mêmes problèmes que dans la deuxième phrase.


5. de prédire la période optimale de l'indicateur à un moment donné (régression).

C'est intéressant, bien sûr, en tournant le but de l'utilisation de l'indicateur à l'envers.

 
Aleksey Vyazmikin:

Cela fait longtemps, quel est le résultat - la méthode fonctionne-t-elle ou non ?

Oui, je ne l'ai pas compris moi-même, je pense, essayez de faire quelque chose de similaire.


Il y a les signes x1, x2, x3 et la cible "Y".

faire une prédiction sur les attributs

"Y_x1[i+1]" ~ x1+x2+x3

"U_x2[i+1]" ~ x1+x2+x3

"Y_x3[i+1]" ~ x1+x2+x3

et ajouter au modèle

x1,x2,x3"U_x1" + "U_x2"+ "U_x2" et la cible "U".

Il y a maintenant 6 signes.


Aleksey Vyazmikin:

Pouvez-vous poster le script pour que des idiots comme moi puissent regarder de si belles photos sur leurs échantillons ?

Je l'ai déjà effacé, c'est amusant de visualiser, de se faire plaisir... mais je ne sais pas si tu en as besoin du tout... Si tu en as besoin, je peux le réécrire, non ?


Aleksey Vyazmikin:

L'idée est bonne, mais en plus des idées, il serait utile d'avoir un code ouvert en MQL - le résultat serait une bibliothèque.

Si ce n'est pas un code, alors au moins un algorithme de mots pour la reproduction.

Si je voulais montrer qu'il y a des millions de façons de faire des prédictions, je m'ennuie avec une seule - soit le binaire (haut/bas) ou les incréments, et c'est tout ! Ils ne fonctionnent pas tous les deux, mais ils en ont tous marre).

 
mytarmailS:

Je ne l'ai pas compris moi-même, je pense que oui, essayez de préparer quelque chose de similaire chez vous.


il y a les signes x1, x2, x3 et la cible "Y".

faire une prédiction sur les signes

"Y_x1[i+1]" ~ x1+x2+x3

"U_x2[i+1]" ~ x1+x2+x3

"U_x3[i+1]" ~ x1+x2+x3

et ajouter au modèle

x1,x2,x3"U_x1" + "U_x2"+ "U_x2" et la cible "U".

Nous avons maintenant six fonctions.

Oui, je vais essayer ma méthodologie, mais il semble toujours que tout sera très lent à faire - beaucoup de combinaisons.

Dans quelle mesure cela se fait-il sur R, avec quel échantillonnage ?

mytarmailS:

Je l'ai déjà effacé, c'est amusant de le visualiser, juste pour le plaisir... mais je ne sais pas si j'en ai besoin du tout... Si tu en as vraiment besoin, je peux le réécrire, d'accord ?

Il serait intéressant de voir - juste écrire plus quoi et comment mettre la bibliothèque, s'il vous plaît. Et d'autres commentaires dans le script. Délimiteur personnalisable et sélection de la colonne avec la cible, également des colonnes d'exclusion :)

D'ailleurs, vous pouvez faire un dropdown de différents groupes de colonnes dans le cycle et voir comment ces modèles visuels vont changer, alors la sauvegarde des images devrait être réalisée...

mytarmailS:

Oui, j'ai écrit toutes ces options juste pour montrer qu'il y a des millions de façons de prédire, et puis toutes collées à une ou binaire (haut / bas) ou des incréments, et c'est tout ! !! J'en ai marre .... Aucun des deux ne fonctionne, mais tout le monde en a marre).

Des millions d'entre eux...

Essayez ma méthode - 1 ou -1 - le vecteur opposé ZZ canal Doncian a traversé le point de changement de vecteur. Entrer sur le changement de vecteur, chaluter sur le canal opposé et 0 - ne pas entrer sur le marché - plat. Avec une précision de classification de 40% de 1 et -1, il y aura un bénéfice.

De simple, je veux mettre en œuvre un objectif primitif avec une entrée correcte avec 1k3 risque en pips ou tout autre - l'ensemble avec un risque différent peut donner de bons résultats dans l'ensemble, mais c'est théorique.

Et donc, bien sûr, il faut penser à différentes cibles.

 
Aleksey Vyazmikin:

Oui, je vais essayer ma méthodologie, mais il me semble toujours que tout cela serait très lent à faire - beaucoup de combinaisons.

Dans quelle mesure cela se fait-il en R, avec quel échantillonnage ?

C'est très rapide avec la vectorisation, mais lorsque j'ai écrit un vérificateur pour qu'il compte par une mesure, c'est plus lent, mais encore très acceptable.

Aleksey Vyazmikin:

Il serait intéressant de voir - écrivez simplement quoi et comment utiliser les bibliothèques, s'il vous plaît. Et d'autres commentaires dans le script. Délimiteur personnalisable et sélection de la colonne avec la cible, également des colonnes d'exclusion :)

Ok. Envoyez-moi un fichier avec vos attributs et la cible, dans le format dans lequel vous enverrez le fichier P, j'essaierai de le faire fonctionner sans problème.

Pas un gros fichier s'il vous plaît 1000 lignes pour les yeux

Gardez à l'esprit que ce n'est qu'un jouet, juste pour la visualisation, si vous voulez vérifier le modèle/signes c'est 10000% mieux de voir bêtement l'erreur sur le test)
 
mytarmailS:

C'est très rapide avec la vectorisation, mais lorsque j'ai écrit un vérificateur pour qu'il compte une mesure à la fois, c'est plus lent, mais c'est encore très acceptable.

Hm, intéressant - si vous pensez que vous pouvez, déposez le script, il peut être vraiment utile. Maintenant, je suis en train de créer un très grand nombre de nouveaux prédicteurs, et je dois d'une manière ou d'une autre chercher une connexion entre eux - une synergie, peut-être que la plupart d'entre eux devront être jetés...

mytarmailS:

Ok. Envoyez-moi le fichier avec vos traits et la cible, dans le format dans lequel vous enverrez le fichier P, j'essaierai de faire en sorte que cela fonctionne.

Pas un gros fichier, s'il vous plaît. 1 000 lignes suffisent.

Le fait est que les formats peuvent changer - alors ne soyez pas avare de commentaires :)

Une variante de l'expression plus couramment utilisée, attachée.

Dossiers :
 
mytarmailS:

temps ou l'ignorer ?

Ignorez-la, ainsi que les dernières colonnes avec le résultat financier. Le moment est dans les prédicteurs.

 
Aleksey Vyazmikin:

Ignorer, ainsi que les dernières colonnes avec le résultat financier. Le moment est dans les prédicteurs.

Oui oui, je l'ai déjà vu)

 

Quant à la cible, je pense qu'elle devrait être modifiée lorsqu'il n'y a aucun moyen de changer les données d'entrée, comme je l'ai dit dans la vidéo. Lorsque les données sont collectées et qu'il n'y a aucun moyen de les modifier. Sinon, si vous avez une variété de variables d'entrée, vous devriez prendre la cible par défaut et creuser dans les données d'entrée.

N'oubliez pas que si la cible contient délibérément des erreurs et que cela améliorera la courbe d'apprentissage, alors le modèle fera également des erreurs en fonction de la cible. IMHO