Y a-t-il un modèle dans ce chaos ? Essayons de le trouver ! Apprentissage automatique sur l'exemple d'un échantillon spécifique. - page 17

 
Valeriy Yastremskiy #:

En dehors de l'heure de début de quelque chose et de l'heure de fin (sessions, calendrier), rien ne me vient à l'esprit. Que voulez-vous dire par là ?

Pourquoi, il s'agit simplement des facteurs possibles les plus évidents. La volatilité était dans le chiffre, il y a d'autres facteurs à prendre en compte

En gros, il faut prendre une mesure du marché et l'absorber, je suppose. Pas en tas. Tout le monde voulait s'empiler, mais il s'avère que cela ne fonctionne pas de cette manière.
 
Maxim Dmitrievsky #:
Pourquoi, c'est tout simplement le plus évident possible. La volatilité était dans le chiffre, il y a d'autres facteurs à prendre en compte

En gros, nous devrions prendre une mesure du marché et l'absorber, je suppose. Pas en tas. Tout le monde voulait faire des piles, mais il s'avère que cela ne fonctionne pas de cette manière.
Avec des mesures de prix discrètes, il n'est pas facile de tout faire, séparément, on perd souvent le lien et la signification. La largeur du canal ou la volatilité et la vitesse de changement des prix. Cela semble simple, mais il n'y a pas de concept)))) dans ma tête).
 
Valeriy Yastremskiy #:
Avec des mesures de prix discrètes, tout n'est pas simple et, isolément, on perd souvent le lien et la signification. La largeur du canal ou la volatilité et la vitesse de changement des prix. Cela semble simple, mais il n'y a pas de concept)))) dans ma tête))

Nous devons d'abord définir ce que nous attendons de la MO. Juste une classification ou une sélection, c'est-à-dire faire un outil comme un optimiseur standard, où différentes fonctions cibles sont définies.

Ensuite, il faut l'utiliser pour manipuler des indicateurs (attributs). Souvent de manière stupide, par la force brute, jusqu'à ce que quelque chose d'intéressant nous vienne à l'esprit (comme le Graal).

Une fois que nous avons appris quelque chose, nous commençons à creuser plus profondément.

Je pense que j'écris des choses évidentes, mais elles ne le sont que pour moi :D

 
Renat Akhtyamov #:

La question de la branche est certainement intéressante....

C'est pourquoi je m'interrogeais.

Il est peut-être possible d'identifier un modèle.

Je suggère d'analyser plusieurs barres à la suite, par exemple 3-4.

Ensuite, déplacez-vous d'une mesure à partir du début de cet échantillon de 3-4 mesures et analysez à nouveau.

Comme si l'on superposait un échantillon à un autre.

Il est possible de trouver un modèle

comme celui-ci :


Qu'est-ce que ça va faire ? Les barres seront toujours différentes. À moins de les lier à l'échelle actuelle. Je pense qu'une théorie légèrement différente devrait être l'approche, par exemple la couleur (polarité). La stationnarité existe, mais d'une manière légèrement différente et elle est également facile à détruire.
 

En attendant, j'ai obtenu ce modèle à partir du premier échantillon de ce fil.

Équilibre

Malheureusement, il échoue sur l'échantillon de test - il est évident que les échantillons sont différents.

 

Pour trouver un moyen d'entraîner un modèle, différentes approches ont été testées, plus de 100 000 modèles ont été créés et de nouvelles approches ont été inventées, qui avaient auparavant montré un bon potentiel. Différentes méthodes de transformation des échantillons et de sélection des prédicteurs ont été utilisées. Ces méthodes ont été combinées entre elles.



Méthodes de transformation des échantillons et de sélection des prédicteurs.

Transformation de l'échantillon :

  • 1. pas de transformation
  • 2. sélection des transactions par type de direction (vecteur) - sans sélection, achat, vente - avec sauvegarde dans des échantillons séparés.
  • 3. déplacement de la fonction cible en fonction du résultat financier
  • 4) Méthode "Drop" - exclusion de lignes de l'échantillon par un prédicteur de type FP à fort quantum - 10 à 30 itérations consécutives d'estimation des quantums d'échantillon avec modification de l'échantillon à chaque itération :

( a) Exclusion par le meilleur quantum sans tenir compte du vecteur sur le train d' échantillons si celui-ci est supérieur à un pourcentage donné d'écart par rapport à la moyenne de la cible dans l'échantillon, sinon il est évalué en plus sur les échantillons en tenant compte du vecteur et la meilleure variante est sélectionnée.

b) Identique à"a", mais les segments quantiques qui ont montré sur l'échantillon de test un écart dans le sens d'une probabilité décroissante pour TN ne sont pas retenus.

c) Identique à"a", mais la sélection de l'estimation est effectuée sur l'échantillon"test".

Sélection du prédicteur :

  • 1. méthode de quantification :

(a) Sélection du prédicteur par les statistiques avec sélection des tableaux de quant pour chaque prédicteur.

( b) Sélection de quants par statistiques avec échantillonnage binaire.

( c) Combinaison de segments de quantiles provenant de sous-échantillons ayant des vecteurs différents pour former un échantillon binaire groupé.

d ) Sélection de prédicteurs par les statistiques avec sélection de tables quantiques basées sur des quanta binaires.

  • 2)Exclusion des prédicteurs présentant une forte corrélation.
  • 3. regroupement des prédicteurs par champ de réponse similaire avec sélection du prédicteur dominant par champ - uniquement après conversion des prédicteurs en prédicteurs binaires
  • 4) Sélection en fonction de la fréquence moyenne d'utilisation des prédicteurs dans les modèles CatBoost sur un échantillon d' apprentissage divisé en 8 parties. Nous utilisons 5 stratégies d'apprentissage et plus de 20 méthodes de sélection des prédicteurs sur la base des statistiques obtenues.
  • 5. la sélection sommaire des prédicteurs pour chaque échantillon après l'application de la méthode"Drop".
 

Un nouveau record, et cette fois-ci, l'échantillon test est également dans le positif.

Équilibre

Modèle

 

Je vais écrire comment le modèle a été dérivé - probablement pour moi-même, puisque personne ne s'intéresse à la façon de tirer quelque chose d'un échantillon complexe.

La première chose que j'ai faite ici a donc été de déplacer l'objectif selon le principe que si le profit est inférieur à 50 pips, il s'agit d'un résultat négatif, c'est-à-dire "0" au lieu de "1" auparavant. Il reste moins de 20% de marques positives, mais cela a permis de sélectionner des mouvements de tendance plus prononcés.

Ensuite, j'ai sélectionné des splits dans les tables de quant pour chaque prédicteur. Nous avons utilisé environ 900 tables pour l'échantillonnage, sélectionné des divisions en déplaçant la probabilité de 5 % et évalué la stabilité de la génération de signaux dans la division quantique.

L'étape suivante consiste à combiner les segments quantiques sélectionnés. J'ai utilisé l'approche avec un élément aléatoire et j'ai évalué le résultat selon le critère "plus il y a de segments, mieux c'est" - je ne suis pas sûr que la méthode soit parfaite, et peut-être qu'elle devrait être améliorée - je dois réfléchir à l'algorithme.

J'ai ainsi obtenu un tableau quantique combiné pour les prédicteurs. Les prédicteurs sans segments réussis n'ont obtenu qu'un séparateur "0,5" dans le tableau quantique.

J'ai entraîné 100 modèles avec Seed de 8 à 800 par pas de 8.

Parmi les variantes obtenues, j'ai sélectionné le meilleur modèle et j'ai analysé les prédicteurs qu'il utilisait - il s'est avéré qu'il y en avait 77.

J'ai essayé d'entraîner 100 autres modèles, mais uniquement sur ces prédicteurs, également avec Seed de 8 à 800 avec un pas de 8. Le résultat des meilleurs modèles était légèrement inférieur à celui du dernier modèle. Cela m'a laissé perplexe.

J'ai décidé d'essayer Seed avec un pas plus petit et dans un volume plus grand, parce que leurs prédicteurs peuvent obtenir de meilleurs résultats - c'est prouvé. J'ai entraîné 10000 modèles, avec Seed de 1 à 10000 avec le pas 1.

Le graphique ci-dessous montre les résultats financiers des modèles, du meilleur au pire.

Environ 25% des modèles n'étaient pas rentables, ce qui n'est pas si mal, et le bénéfice moyen est de 2116,65. 38% des modèles ont un bénéfice supérieur ou égal à 3000 points.

La raison pour laquelle les résultats de l'échantillon de test ne sont pas en corrélation avec les échantillons d'examen n'est pas tout à fait claire - s'agit-il d'une particularité du sous-échantillon, ou pourrait-il y avoir d'autres raisons ?

Le graphique ci-dessous montre les résultats de l'échantillon de test - classés de la même manière que précédemment - en fonction du résultat financier de l'échantillon d'examen.

Pour plus de clarté, le diagramme de dispersion ressemble à un diagramme aléatoire.

Je pensais qu'il s'agissait d'indicateurs - de points, et non d'indicateurs statistiques binaires, mais comme vous pouvez le voir dans le graphique ci-dessous, l'indicateur de précision entre les deux échantillons est également indépendant.


Sans identifier la dépendance des résultats de l'échantillon d'examen par rapport aux échantillons de test et de formation, il est difficile de sélectionner un modèle - je pense que nous devons développer des critères d'évaluation supplémentaires - les mesures que le modèle peut faire.

Le nouveau modèle (j'en ai remarqué deux) utilise moins de 50 prédicteurs. Je pense qu'il faut répéter le processus - à terme, il restera suffisamment de prédicteurs pour construire un modèle.

Que faire alors - nous pouvons entraîner le modèle sur l'échantillon complet en utilisant uniquement les prédicteurs sélectionnés et voir ensuite comment leur agrégat se comportera sur les nouvelles données.

En outre, j'aimerais essayer de trouver des caractéristiques spéciales dans les prédicteurs sélectionnés qui augmentent la probabilité de leur sélection sans entraînement - par analogie, comme cela a été fait pour la sélection de segments quantiques dans les tableaux.

 
Aleksey Vyazmikin #:

J'ai ensuite sélectionné des divisions à partir de tables quantiques pour chaque prédicteur. Nous avons utilisé environ 900 tables pour l'échantillonnage, sélectionné des divisions en déplaçant la probabilité de 5 % et évalué la stabilité de la génération de signaux dans la division quantique.

L'étape suivante consiste à combiner les segments quantiques sélectionnés. J'ai utilisé l'approche avec un élément aléatoire et j'ai évalué le résultat selon le critère "plus il y a de segments, mieux c'est". Je ne suis pas sûr que la méthode soit parfaite, et elle devrait peut-être être améliorée - nous devons réfléchir à l'algorithme.

Il s'agit essentiellement de sélectionner des feuilles avec une probabilité >55% ?

Aleksey Vyazmikin #:

J'ai essayé d'entraîner 100 modèles supplémentaires, mais uniquement sur ces prédicteurs, également avec Seed de 8 à 800 avec l'étape 8. Le résultat des meilleurs modèles était légèrement inférieur à celui du dernier modèle. Cela m'a laissé perplexe, bien sûr.

Apparemment, le hasard de Seed-a ne coïncidait pas complètement avec la variante du hasard du meilleur échantillon. D'où les résultats différents/mauvais.

Aleksey Vyazmikin #:

La raison pour laquelle les résultats de l'échantillon de test ne sont pas en corrélation avec les échantillons d'examen n'est pas claire - s'agit-il d'une particularité du sous-échantillon, ou peut-il y avoir d'autres raisons ?

Le graphique ci-dessous montre les résultats de l'échantillon de test - classés de la même manière que précédemment - en fonction du résultat financier de l'échantillon d'examen.

C'est comme pour une formation normale qui est ré-entraînée/adaptée à la formation. Dans le cas présent, vous vous êtes adapté à l'examen. Tout ajustement, à la fois pour le test et l'examen, comme nous pouvons le voir sur votre test, conduit à un résultat aléatoire.

Je ne pense pas qu'il faille prendre les meilleures formations ou les meilleurs examens. Vous avez besoin de quelque chose de stable, mais avec un résultat bien pire que le meilleur train ou examen.

Lorsque je travaillais avec Darch, il y avait une sélection sur les deux échantillons err = err_ oob * k+ err_trn * (1 - k) ; où k=0.62 (recommandé, mais peut être changé)
C'est-à-dire err = err_ oob * 0.62+ err_trn * 0.38 ;
Mais c'est un paramètre inutile pour la sélection avec un temps de calcul croissant.

D'après mes expériences avec l'échantillonnage sur H1 - il y avait quelque chose de stable, mais peu de gains. 10000 transactions, mais seulement 0,00005 par transaction. C'est également inintéressant, car les spreads/slippages, etc. absorberont ces 5 points dans le cadre d'un trading régulier.

Vous avez 400 transactions mais 40 points à l'examen. Et sur l'examen, comme moi - proche de 0 (aléatoire).

Il y a beaucoup d'approches, mais personne n'a trouvé celle qui fonctionne.
 
elibrarius #:

Il s'agit en fait d'une sélection de feuilles avec une probabilité >55% ?

Non, c'est, disons, la plage numérique d'un prédicteur qui est sélectionnée. Les 5% sont relatifs à la valeur du pourcentage "1" dans le train d'échantillons.

elibrarius #:

Apparemment, l'aléa de Seed-a ne correspondait pas complètement à l'aléa de la variante du meilleur échantillon. D'où les résultats différents/mauvais.

L'aléa est fixé :) Il semble que cette graine soit calculée d'une manière délicate, c'est-à-dire que tous les prédicteurs autorisés pour la construction du modèle sont probablement impliqués, et le fait de changer leur nombre modifie également le résultat de la sélection.

elibrarius #:

C'est comme avec l'apprentissage normal qui est réentraîné/adapté à la formation. Dans ce cas, vous avez fait un ajustement à l'examen. Tout ajustement, à la fois pour le test et l'examen, comme nous le voyons sur votre test, conduit à un résultat aléatoire.

Pourquoi s'agit-il d'un ajustement, ou plutôt qu'est-ce que vous considérez comme un ajustement ? J'ai tendance à penser que l'échantillon du test diffère davantage de l'examen que l'examen de la formation, c'est-à-dire qu'il existe différentes distributions de probabilité des prédicteurs. Et cela peut être traité soit en sélectionnant les prédicteurs qui sont les plus stables - ce qui donne des résultats acceptables sur tous les échantillons, soit en modifiant la distribution de probabilité par une caractéristique externe (c'est-à-dire un autre prédicteur) - je ne connais pas de tels modèles, mais j'aimerais essayer. Un effet similaire pourrait être obtenu en utilisant la formation récurrente sur des feuilles sélectionnées de différents arbres ou même sur des modèles entiers. Peut-être que les neurones récurrents peuvent faire cela - je ne les connais pas.

Jusqu'à présent, je considère cette méthode comme un moyen de sélectionner les prédicteurs sur lesquels construire le modèle combiné, et comme des repères pour identifier d'autres prédicteurs efficaces avant l'entraînement proprement dit.

elibrarius #:

Je ne pense pas qu'il faille prendre les meilleures formations ou les meilleurs examens. Vous avez besoin de quelque chose de stable, même si le résultat est bien pire que le meilleur train ou examen.

Lorsque je travaillais avec Darch, il y avait une sélection sur les deux échantillons err = err_ oob * k+ err_trn * (1 - k) ; où k=0.62 (recommandé, mais vous pouvez le changer)
C'est-à-dire err = err_ oob * 0.62+ err_trn * 0.38 ;
Mais c'est un paramètre inutile pour la sélection avec un temps de calcul croissant.

Quelle est la métrique de err_ ?

elibrarius #:

Vous avez 400 trades, mais à 40 pts à l'examen. Eh bien, à l'examen, comme moi - proche de 0 (aléatoire).

Il y a beaucoup d'approches, mais personne n'en a encore trouvé une qui soit productive.

L'axe X est la valeur de la matrice d'espérance sur l'échantillon test, c'est-à-dire qu'en général, oui, mais il y a quelques cas de réussite.


Raison: