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

 
Maxim Dmitrievsky:

Disons qu'il existe déjà une courbe comme la vôtre - une distribution de probabilité a priori.

Par la formule bayésienne, vous pouvez la mettre à jour après chaque transaction, de sorte que le centre se déplacera et obtiendra une nouvelle distribution a posteriori, c'est-à-dire approximativement un certain facteur de décalage qui sera mis à jour après chaque transaction. Cela permettra d'adapter légèrement le modèle aux nouvelles réalités, même si le modèle lui-même restera le même.

Je ne sais pas comment le faire correctement, en fait ça devrait être facile, mais je ne l'ai jamais fait :)

Il ne s'agit pas vraiment d'un entraînement de modèle, car nous n'utilisons pas de nouvelles lois, nous changeons l'interprétation des anciennes - les prédicteurs dans le modèle, les divisions dans les arbres restent les mêmes. Ici, nous devons obtenir des informations sur les régularités qui ont été saisies - il y a un tableau dans catbust, où se trouvent les régularités de toutes les feuilles, et par conséquent éditer ce tableau en déplaçant la régularité (un nombre pour interpréter la régularité). Le problème, c'est qu'il y aura beaucoup de feuilles par entrée, donc vous devez les distribuer proportionnellement, soit à ceux qui étaient pour l'entrée, en les diminuant, soit à ceux qui étaient contre, en les augmentant. La question est de savoir combien de feuilles, s'il y en a 100 et 1000, alors vous pouvez utiliser les statistiques pour chaque feuille.

 
Maxim Dmitrievsky:

Et si nous partons de l'hypothèse que ce ne sont pas les modèles eux-mêmes qui changent à cause de la non-stationnarité, mais le modèle qui se déplace et ne donne pas les bons signaux...

Nous n'avons pas besoin de passer sous le capot tout le temps quand nous voulons prendre un virage serré, nous avons juste besoin de diriger parfois... et ici je ne vois pas beaucoup de différence entre modifier le modèle et modifier la distribution de la sortie... vous l'avez dit :)


Il faut encore aller sous le capot, car la réponse finale est la somme des valeurs des feuilles et elles ne sont pas toutes toujours utilisées, mais seulement lorsqu'il existe des indicateurs appropriés pour cela. On peut donc utiliser 1 feuille par entrée, soit 100 ! On ne peut donc pas changer l'interprétation du modèle en déplaçant la probabilité pour toutes les situations, ou plutôt on peut, mais ce n'est pas logique, car une partie des feuilles peut continuer à classer correctement. Donc, soit on change les indicateurs des feuilles, soit on fait une interprétation supplémentaire de chaque feuille et on la modifie en fonction des combinaisons avec d'autres feuilles, mais je ne suis pas sûr que ce soit productif..... C'est pourquoi je préfère les petits modèles - si vous les combinez, il est plus facile de trouver celui qui ment et de s'en débarrasser.

S'il y a peu de feuilles, il est peut-être possible de déplacer la barrière de probabilité, mais s'il y a beaucoup de feuilles et que seule une petite partie d'entre elles est utilisée par entrée, cela n'a aucun sens d'un point de vue logique.
 
Maxim Dmitrievsky:

mais il faut savoir se diriger parfois...

une transformation affine peut diriger ;), voici un exemple dans KB étaithttps://www.mql5.com/ru/code/9378

Affine Transform
Affine Transform
  • www.mql5.com
Построение по ценам закрытия. График в окне индикатора тот же, что и ценовой, но временнАя ось "наклонена" под углом трендовой линии Построение линий индикатора по экстремумам баров. Ограничение баров по первой точке трендовой линии Добавлено опциональное ограничение баров индикатора, их число задается параметром MaxBars. Чтобы отключить...
 
Maxim Dmitrievsky:

J'ai fait la même chose, mais comment savoir dans quelle direction diriger le bateau ? )

pas possible, seulement avec un testeur ((

 
Maxim Dmitrievsky:

On pourrait peut-être ajouter un filtre Kalman)

google "kalman habrahabr", l'article a été lu là il y a longtemps, la chose la plus précieuse est dans les commentaires, l'auteur de l'article dans pooh.... d'après ce que j'ai compris, cela fonctionnera comme tout le monde - seulement sur des données qui changent lentement.

PS : il y avait des exemples de Kalman dans KB - et si ? ;)

 
Maxim Dmitrievsky:

Peut-être, ce n'est pas encore clair... jusqu'à ce que vous l'essayiez ;)

Vous avez peut-être une mauvaise feuille avec un prédicteur instable dans une combinaison prédisant correctement et vous devez vous en débarrasser. Par exemple, vous pouvez identifier la combinaison par 80% des feuilles qui y participent - un certain quorum, et si une nouvelle feuille avec un poids élevé apparaît, vous pouvez la filtrer. Je me demande même combien de combinaisons il peut y avoir avec ce critère pour 1000 transactions... Mais je n'ai aucune idée de comment le découvrir.

 
Maxim Dmitrievsky:

Une astuce d'importance... la loi de Zipf (exponentielle). Et aussi la démonstration que les variables avec une plus grande variance (plus grand décalage des prix) ont toujours une plus grande importance dans les modèles d'arbre. Il y a beaucoup de caractéristiques similaires (500 au total), donc le graphique n'est pas très démonstratif. Je le referai plus tard.

Bien !

Question en tant que spécialiste de Python, donnez-moi quelque chose en Python pour des expériences, j'ai presque fini avec Sharp, il se connecte à MT5 sans problèmes, C# supporte Python aussi, je vais peut-être essayer de changer pour Python ;)

 
Igor Makanu:

Magnifique !

Question en tant qu'expert en Python, donnez-moi quelque chose en Python pour des expériences, j'ai presque fini avec Sharp, il se lie avec MT5 sans aucun problème, C# et Python sont censés être supportés, alors je peux passer à Python ;)

Je viens d'apprendre Python... eh bien, qu'y a-t-il à apprendre, je veux dire que je n'ai pas encore maîtrisé les modèles MO... que voulez-vous exactement ? Prenez un exemple sur ce site https://scikit-learn.org/stable/.

comme Random Forest, par exemple.

 
Maxim Dmitrievsky:

Je suis en train d'apprendre python... ou plutôt, qu'y a-t-il à apprendre, je veux dire, je ne l'ai pas encore vraiment utilisé... que voulez-vous exactement ? prenez un exemple ici https://scikit-learn.org/stable/

comme Random Forest, par exemple.

ou le gradient boosting, des exemples tout faits.


ok, merci, je vais regarder demain.

 

Les graphiques ici et ici et même ici ont été tracés avec une erreur, les valeurs ne sont pas à partir de zéro, donc la probabilité de 0,5 n'est pas au point 5, mais au point 6 !

C'est le genre d'erreur qui peut se produire lorsqu'on analyse des données et qu'on essaie de leur donner un sens, une erreur technique, en quelque sorte...