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

 
Yuriy Asaulenko:

Les gars, le sujet porte sur le MO, pas sur les styles de trading et les stops. Qu'est-ce que ça a à voir avec eux ?

Je voulais donc en discuter au sein du SN, mais il s'est avéré qu'il n'y avait personne avec qui en discuter.

 
Yuriy Asaulenko:

Pas plus tard qu'hier, une conversation a porté sur la prévision des sinusoïdes, et je me suis souvenu de mon ancien sujet :

(Maxim, tu te moquais quand même de ce sujet. Je suis vindicatif et je note tout).

Je dois dire que cela a été fait en vain, mais le sujet s'est enlisé et n'a jamais été abordé. Peut-être parce que la formulation n'était pas très claire.

En fait, nous n'avons pas besoin de résoudre un quelconque problème. Vous devez prendre une fonction, comme celle du sujet ou, mieux encore, une fonction plus compliquée. Créez un outil artificiel avec cette fonction et exécutez-le dans le testeur sur une stratégie qui fonctionne déjà. Dans l'idéal, le bénéfice devrait dépasser les limites de la TS de travail. Oh, j'oubliais, la fonction doit être normalisée au préalable afin qu'elle corresponde approximativement au symbole sur lequel TS est mis en place. Ensuite, nous pouvons ajouter du bruit et voir ce qui se passe.

Je ne fais pas de prévisions et je ne dispose pas d'une telle TS, je ne peux donc pas la vérifier dans un avenir proche. Mais dans un futur lointain, je prévois de le faire.

Maintenant, pourquoi avons-nous besoin de tout ça ?

Supposons que nous devions enseigner la prévision NS (ou autre MO). Habituellement, les poids initiaux du SN sont initialisés de manière aléatoire et si le SN atteint des min-maxes lors de la formation, c'est une question très importante.

Faisons ce qui suit.

1. Générer une fonction non aléatoire proche de la BP du marché et l'utiliser pour enseigner un NS initialisé de manière aléatoire. Vérifiez-le et ainsi de suite. Maintenant, notre NS est proche de ce dont nous avons besoin en termes de paramètres, mais jusqu'à présent nous sommes incapables de résoudre le vrai problème.

2. Nous effectuons l'entraînement du NS (voir point 1) en utilisant des BP réels. Nous avons déjà une certaine assurance que les paramètres préliminaires de NS se situent quelque part dans les environs des zones min-max et qu'au cours du pré-entraînement, ils vont là où ils devraient, mais pas vers un min-max aléatoire.

L'analogie est celle d'un écolier à qui l'on apprend d'abord à résoudre des problèmes simples sur un sujet, puis ces problèmes se compliquent. L'enseignement à la manière des écoliers est plus efficace que d'essayer de leur faire résoudre des problèmes complexes dès le départ.

En général, la méthode n'est pas une ouverture, quelque part dans la littérature elle s'est produite, mais il y a beaucoup de livres, et moi seul ne me souviens pas. En tout cas, j'ai réfléchi à sa mise en œuvre. En général, la toute première expérience consistant à essayer de prédire une fonction analytique à partir d'une TS prête à l'emploi doit se faire par étapes.



si celui-ci n'avait pas flanché, il y a 2 pages vous auriez vu un exemple avec un fe

je ne comprends pas l'idée de l'initialisation des poids et ainsi de suite. alors il faut une grille de pré-apprentissage, et quel est l'intérêt de s'entraîner sur quelque chose qui ne correspond pas du tout à ce qui doit être prédit.

Je suppose que vous essayez d'imiter les bases de l'apprentissage par renforcement.

 
Maxim Dmitrievsky:

Si l'abruti n'avait pas gaffé, il y a 2 pages, vous auriez vu un exemple avec un œil de bœuf.

Je ne comprends pas l'idée d'initialiser les poids et autres, alors il faut une grille de pré-apprentissage, et quel est l'intérêt de s'entraîner sur quelque chose qui ne correspond même pas à ce que l'on doit prédire.

Je suppose que vous essayez de représenter les bases de l'apprentissage par renforcement.

Non, vous n'avez pas besoin d'une grille de pré-apprentissage.

1. Pré-entraînement sur des données proches et clairement prévisibles. Vous pouvez préparer à partir de données réelles - splines, polynômes, Fourier ou autre.

2. Post-entraînement du réseau selon p. 1 (avec initialisation non-aléatoire) sur les données réelles.

Pour les prévisions, je vois comment le faire, et je pense que cela peut améliorer les résultats. Pour la classification, je ne sais pas quoi faire.

Exemple avec fonction - il ne s'agit pas de cela. Les exemples de ce type sont nombreux.

 
Maxim Dmitrievsky:

Alexey a choisi non pas le pire des catbustes, mais l'un des meilleurs pour la recherche, et de loin. Il est utilisé au CERN, par exemple, pour analyser les résultats des collisionneurs... qui traite de l'aléatoire quantique).

Très intéressant). Le CERN XGBoost a été découvert par hasard.

Il n'est pas surprenant que le CERN ait reconnu cette approche comme étant la meilleure pour classer les signaux du Grand collisionneur de hadrons. Ce problème particulier posé par le CERN nécessitait une solution évolutive pour traiter des données générées au rythme de 3 pétaoctets par an et distinguer efficacement un signal extrêmement clairsemé du bruit de fond dans un processus physique complexe. XGBoost est devenu la solution la plus utile, simple et fiable. (6 SEPTEMBRE 2018)

__________________________________

CatBoost a été introduit par le Centre européen de recherche nucléaire (CERN) dans le cadre de recherches menées au Grand collisionneur de hadrons (LHCb) afin de combiner les informations provenant de différentes parties du détecteur LHCb pour obtenir les connaissances les plus précises et les plus complètes possibles sur les particules. En utilisant CatBoost pour combiner les données, les scientifiques ont pu améliorer les performances qualitatives de la solution finale, les résultats obtenus avec CatBoost étant meilleurs que ceux obtenus avec d'autres méthodes [6] [7].

_______________________________________

C'est à peu près la même chose. Alors lequel est Catbust ouXGBoost? ) Je me demande qui a trompé qui ? ))

 
Aleksey Vyazmikin:

L'avenir est incertain, les modèles vont et viennent, c'est normal, mais on peut se demander s'ils doivent nécessairement être à court terme. Je n'ai pas un très grand échantillon en raison de la stratégie de tendance, donc je pense qu'il n'est pas raisonnable de le réduire encore plus.

Cependant, j'ai décidé de mener une expérience sur l'efficacité de la formation sur différentes proportions de l'échantillon de formation et de l'échantillon test impliqués dans la formation. Le pas sera de 10%, c'est-à-dire qu'au début l'échantillon d'entraînement sera de 90% et l'échantillon de test de 10%, puis l'échantillon de test sera progressivement augmenté de 10%. Chaque échantillon contiendra 200 modèles - voyons ce qui se passe. Une autre question est de savoir comment comparer au mieux ces combinaisons, par critère moyen ou absolu - les idées sont acceptées.

Sur les modèles à court terme - de 10-15 min à 1 heure maximum - la probabilité d'un événement significatif qui change quelque chose est très faible, surtout lorsque nous avons déjà conclu un accord sur un événement significatif. Dans plus d'une heure - ce qui va se passer, du moins pour moi, est inconnu. Ce n'est pas en opposition avec vous, mais pour soutenir mon opinion).

J'ai décidé de suivre votre chemin, avec mes modifications et ma vision du sujet. D'autant plus que tous les prédicteurs nécessaires sont déjà en place. Alors que j'ai décidé d'essayer XGBoost, quelque chose m'a semblé - ou bien je n'ai pas été impressionné par la documentation de CatBoost (XGBoost, imho, est plus clair), ou bien autre chose. Je n'ai pas encore compris ce qu'il y a avec le rationnement. Avec le NS, il est difficile de tout rationner là-bas.

 
Yuriy Asaulenko:

Tous presque identiques. Alors lequel est Catbust ouXGBoost? ) Je me demande qui a trompé qui ? ))

Et il serait bon de le comprendre avant de créer des modèles basés sur eux et de les lancer dans le chaos du marché.

Je me souviens qu'il y a environ six mois, ils ont essayé de tester CatBoost ici, et contrairement à XGBoost, il ne pouvait même pas apprendre la table de multiplication.

Je ne sais pas, peut-être que maintenant ils ont décidé que s'ils ne peuvent pas apprendre le simple, ils devraient essayer le complexe, et peut-être que c'est vraiment cool.

Et pour le déterminer, vous pourriez probablement utiliser les BP synthétiques suggérés ci-dessus.

 
Ivan Negreshniy:

Et il serait bon de le comprendre avant de créer des modèles basés sur eux et de les lancer dans le chaos du marché.

Je me souviens qu'il y a environ six mois, ils ont essayé de tester CatBoost, et à l'époque, contrairement à XGBoost, il ne pouvait même pas apprendre la table de multiplication.

Je ne sais pas, peut-être que maintenant ils ont décidé que s'ils ne peuvent pas apprendre le simple, ils devraient essayer le complexe, et peut-être que c'est vraiment cool.

Et cela permettrait probablement de déterminer si vous pouvez utiliser la BP synthétique suggérée ci-dessus.

Au moins, XGBoost a une bien meilleure documentation, et plus encore. Le CatBoost a, à l'exception des matériaux propres à Yandex, très peu d'autres, à première vue.

 
Yuriy Asaulenko:

Selon les modèles à court terme - de 10-15 min à 1 heure maximum - la probabilité que des événements importants changent quoi que ce soit est très faible, d'autant plus que nous avons déjà effectué un trade sur un événement important. Dans plus d'une heure - ce qui va se passer, du moins pour moi, est inconnu. Ce n'est pas en opposition avec vous, mais pour soutenir mon opinion).

Je ne considère pas la variabilité de la probabilité de cette façon dans le cadre de ma stratégie. Si le modèle a donné un signal pour entrer, alors nous entrons, parce qu'en ce moment (pour parler simplement, selon les statistiques obtenues lors de la formation) il y a des conditions favorables pour cela et la sortie dans mes différentes versions de TS est différente - soit par TP/SL, soit seulement par SL. Par conséquent, la prédiction n'est pas annulée avant la fermeture du poste et peut travailler jusqu'à trois heures. Cela signifie que je ne prédis pas le moment exact mais plutôt la probabilité de revenir au prix qui était il y a x mesures, en d'autres termes la fin de l'appartement local.

Mais j'ai écrit sur quelque chose de tout à fait différent, à savoir, sur la périodicité de la récurrence du modèle identifié dans le temps, que si le modèle s'est produit pendant trois ans et a conduit à des événements prévisibles, alors il y a une plus grande chance qu'il continue son travail dans la quatrième année aussi, tandis que le modèle identifié dans une petite partie du temps de formation peut être seulement une description d'une situation dans la TF supérieure (tendance sur un graphique hebdomadaire).

Quoi qu'il en soit, il s'agit de ma spéculation théorique, je vais maintenant traiter les résultats de l'expérience et la situation sera plus transparente, je l'espère.

Yuriy Asaulenko:

J'ai décidé de suivre votre voie, avec mes modifications et ma vision du sujet. D'autant plus que tous les prédicteurs nécessaires sont déjà en place. Alors que j'ai décidé d'essayer sur XGBoost, quelque chose qu'il m'a semblé - si les docs CatBoost pas impressionné (XGBoost, imho, plus clair), ou bien quoi. Je n'ai pas encore compris ce qu'il y a avec le rationnement. Avec NS, il est difficile de tout normaliser là-bas.

Catbust a plus d'options, c'est la continuation du développement de l'idée XGBoost, son principal avantage et en même temps son inconvénient sont les arbres de dimension fixe, qui empêchent le ré-entraînement si leur nombre n'est pas grand.

Rien ne doit être normalisé pour une classification pure. Cependant, je fais un prétraitement dans les prédicteurs, en réduisant la plage de valeurs, et je décompose la plage elle-même en groupes de manière empirique. Peut-être le résultat aurait-il été meilleur sans ces transformations - je n'ai pas vérifié. D'une part, les développeurs disent que je n'ai pas besoin de convertir quoi que ce soit moi-même, d'autre part, il y a différents paramètres pour l'algorithme de conversion des chiffres, et en plus je peux utiliser ma propre ventilation à partir d'un fichier séparé. Il fait référence au catbust, mais je pense que la logique est la même partout.

 
Ivan Negreshniy:

Et il serait bon de le comprendre avant de créer des modèles basés sur eux et de les lancer dans le chaos du marché.

Je me souviens qu'il y a environ six mois, ils ont essayé de tester CatBoost, et à l'époque, contrairement à XGBoost, il ne pouvait même pas apprendre la table de multiplication.

Je ne sais pas, peut-être que maintenant ils ont décidé que s'ils ne peuvent pas apprendre le simple, ils devraient essayer le complexe, et peut-être que c'est vraiment cool.

Et pour le déterminer, vous pouvez probablement utiliser les BP synthétiques suggérés ci-dessus.

CatBoost et XGBoost ont des profondeurs d'arbres différentes. Je me souviens que CatBoost a réussi à ajouter un certain nombre d'arbres.

Quant à la recherche de fonctions différentes avec les arbres, il est préférable de les rechercher avec NS et d'utiliser les résultats comme prédicteurs pour la classification. Quoi qu'il en soit, je ne suis pas un partisan de l'alimentation à prix brut, mais Maxim y a réussi, bien qu'un recyclage plus fréquent soit nécessaire.

 

Pour ceux qui doutent de la capacité de NS à décrire les fonctions