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

 
Aleksey Nikolayev:

Ou quelque chose comme un portefeuille de fiches système avec un recalcul continu.

Que dois-je recalculer exactement ?

 
Aleksey Nikolayev:

Ou quelque chose comme un portefeuille système-liste avec recalcul glissant.

Alors c'est une multi-classe. Créez un deuxième modèle qui choisira la meilleure feuille à échanger à ce moment-là. Les avantages ne sont pas évidents et sont plus difficiles à réaliser.

 
Maxim Dmitrievsky:

Eh bien, il faut commencer par la théorie. Par exemple, quel est l'intérêt de sélectionner les modèles séparément pour la vente et pour l'achat ?

Tout ce qui n'est pas achat est vente, et vice versa.

Mon idéologie est l'amélioration de la stratégie de trading de base, la stratégie est le suivi de la tendance ; par conséquent, il ne prévoit pas les flips à un endroit vide - lesentrées sur le marché à partir du plat, et le "Ne pas entrer" élimine essentiellement les fausses ruptures de flop.

De plus, j'ai expérimenté des modèles de fermeture de positions rentables à proximité de longs pics ZZ et le résultat n'a pas été satisfaisant, c'est-à-dire que soit la capacité de prédiction est plus faible à cet endroit, soit mes prédicteurs ne fonctionnent pas bien à cet endroit, ou peut-être est-ce les deux, donc je n'utilise pas la stratégie d'inversion. Au contraire, je pense qu'il est préférable de former deux modèles différents ici.

Maxim Dmitrievsky:

Alors que vous pouvez simplement filtrer les entrées par un seuil plus élevé. Le modèle peut accorder un poids excessif à la classe des "non-commerçants", ce qui entraîne une diminution de l'erreur du modèle et une baisse générale de la capacité de prédiction (généralisation).

C'est presque cette approche, avec une classification binaire pour négocier/non négocier où elle est spécifiée par un seuil de modèle, que j'utilise dans mes expériences avec CatBoost, mais le problème est que le modèle est construit comme un aspirateur aspirant tout ce qui est bon et mauvais et le résultat est un modèle rapide mais avec un faible nombre d'entrées.

Maxim Dmitrievsky:

L'intérêt du second modèle est que le premier aura des erreurs du premier et du second type - faux positifs et faux négatifs. Nous sommes intéressés par leur suppression. Pour ce faire, vous alimentez les mêmes caractéristiques à l'entrée du second modèle et à la sortie de la transaction du premier modèle, où 0 - la transaction était profitable, 1 - la transaction était perdante. Entraînez le second classificateur et tradez uniquement lorsqu'il affiche 0, c'est-à-dire qu'il filtre les signaux du 1er modèle. Les transactions à perte vont presque disparaître sur le plateau, il faut le tester sur le test - c'en est un.

Vous pouvez entraîner le second modèle non seulement sur un plateau, mais aussi sur la capture des OOS, puis il corrigera les transactions sur les nouvelles données - cela fait deux. Et puis des tests.

C'est exactement ce que j'ai fait, sauf que je n'ai pas utilisé des prédicteurs non liés, mais déjà des feuilles comme prédicteurs, où 1 est le signal de la feuille dans le prédicteur, et les réponses correctes de la classification dans la cible. Bien sûr, ma méthode ne permet pas de trouver de nouvelles relations entre prédicteurs, mais elle permet de rechercher des relations entre des relations existantes.

Je vais aussi essayer votre méthode, merci. Il est toutefois possible de le réaliser dans ce concept uniquement en tant que modèle CatBoost, pour gagner du temps, mais je crains que cela ne réduise encore trop tout.

 
Maxim Dmitrievsky:

alors il s'agit d'une multi-classe. Créez un deuxième modèle qui choisira la meilleure feuille à échanger à ce moment-là. Les avantages ne sont pas évidents et plus difficiles à faire valoir.

Nan, il y a trop de feuilles, une telle classification ne fonctionnera pas...

 
Aleksey Vyazmikin:

Mon idéologie est l'amélioration de la stratégie de négociation de base, alors que la stratégie est le suivi de la tendance, de sorte qu'il ne prévoit pas de retournements à un endroit vide - les entrées du marché de plat, et "Ne pas entrer" élimine essentiellement les fausses ruptures à plat.

De plus, j'ai expérimenté des modèles de fermeture de positions rentables à proximité de pics ZZ longs et le résultat n'a pas été satisfaisant, c'est-à-dire que soit la capacité de prédiction est plus faible à cet endroit, soit mes prédicteurs ne fonctionnent pas bien à cet endroit, ou peut-être est-ce les deux, donc je n'utilise pas la stratégie d'inversion. Au contraire, je pense qu'il est préférable de former deux modèles différents ici.

C'est presque cette approche, avec une classification binaire pour négocier/non négocier où elle est spécifiée par un seuil du modèle, que j'utilise dans mes expériences avec CatBoost, mais le problème est que le modèle est construit comme un aspirateur aspirant le bon et le mauvais et la sortie est une entrée rapide mais pas si nombreuse.

C'estdonc exactement ce que j'ai fait, sauf que je n'ai pas utilisé des prédicteurs dégroupés, mais des feuilles comme prédicteurs, où 1 est le signal de la feuille dans le prédicteur, et les réponses correctes de la classification sont dans la cible. Bien sûr, ma méthode ne permet pas de trouver de nouvelles relations entre prédicteurs, mais elle permet de rechercher des relations entre des relations existantes.

Je vais aussi essayer votre méthode, merci. Cependant, il est possible de le réaliser dans le concept donné seulement comme modèle CatBoost, probablement pour gagner du temps, mais j'ai peur que cela coupe fortement tout à nouveau.

Les renversements ne doivent pas être considérés comme tels, ils seront simplement filtrés par les faux signaux du second modèle. Eh bien, cela dépend de l'implémentation et de ce que vous voulez.

Alors c'est étrange pourquoi il y a beaucoup de trades perdants, ou est-ce une image OOS ? Oui, pour utiliser le deuxième modèle, il doit y avoir beaucoup de transactions à filtrer, vous pouvez même ajouter artificiellement des transactions pour cela (suréchantillonnage).

 
Maxim Dmitrievsky:

Il ne devrait pas y avoir d'inversion en tant que telle, elle filtrera simplement les faux signaux avec le second modèle. Eh bien, cela dépend de la mise en œuvre et de ce que vous voulez.

Alors c'est étrange pourquoi il y a beaucoup de trades perdants, ou est-ce une image OOS ? Oui, nous devrions avoir beaucoup de transactions pour filtrer le deuxième modèle, nous pouvons même ajouter artificiellement des transactions pour cela (oversampling).

Les captures d'écran ci-dessus ont été testées sur des données qui n'ont pas été impliquées dans la formation du modèle de quelque manière que ce soit.

Voici les résultats de la formation, les captures d'écran - la première est ma compilation de fiches sur les données qui ont été utilisées pour la formation (seule la section 1/5 a été prise)

Notez qu'il y a 52,86% de trades longs rentables.

Nous avons ajouté un arbre basé sur les réponses des autres fiches.

Et les résultats se sont améliorés, les transactions longues rentables sont devenues 79,56%.

En résumé, l'approche fonctionne dans l'ensemble, mais le résultat n'est pas aussi bon lorsqu'elle est appliquée dans la vie réelle. La raison en est probablement que certaines des feuilles utilisées pour l'apprentissage ne comportent pas de connexions stables ou que ces connexions sont peu nombreuses. Chaque feuille a un taux de réponse de l'ordre de 1% à 3% par échantillon.

 
Une autre option, je pense, est d'essayer la régression plutôt que la classification, et d'isoler exactement les combinaisons de feuilles à haut rendement, peut-être y aura-t-il un meilleur effet en termes monétaires.
 
Aleksey Vyazmikin:

Les captures d'écran ci-dessus sont des tests sur des données qui n'ont pas été impliquées dans la formation du modèle de quelque manière que ce soit.

Voici les résultats de l'entraînement, les captures d'écran sont ma première mise en page des feuilles sur les données qui ont été entraînées (seul le segment 1/5 a été pris).

Notez qu'il y a 52,86% de trades longs rentables.

Nous avons ajouté un arbre basé sur les réponses des autres fiches.

Et les résultats se sont améliorés, les transactions longues rentables sont devenues 79,56%.

En résumé, l'approche fonctionne dans l'ensemble, mais le résultat n'est pas aussi bon lorsqu'elle est appliquée dans la vie réelle. La raison en est probablement que certaines des feuilles utilisées pour l'apprentissage ne comportent pas de connexions stables ou que ces connexions sont peu nombreuses. Chaque fiche a un taux de réponse de l'ordre de 1% à 3% par échantillon.

Si vous essayez juste d'améliorer ce que vous avez, c'est l'option Folds. Divisez-le en plusieurs morceaux et entraînez le premier sur certains morceaux et le second sur le reste. J'ai fait jusqu'à 500 fautes. Vous pouvez bien sûr en faire moins. Une sorte d'amélioration.

 
Maxim Dmitrievsky:

Eh bien, si vous essayez juste d'améliorer ce que vous avez, c'est l'option avec les fautes. Divisez-le en plusieurs morceaux et entraînez le premier sur certains morceaux et le second sur d'autres. J'ai fait jusqu'à 500 fautes. Vous pouvez bien sûr en faire moins. Cela donne une certaine amélioration.

Diviser l'échantillon en morceaux et entraîner plusieurs modèles, ou quoi ?

Bien que mon échantillon ne compte que 14 000 lignes environ...

 
Aleksey Vyazmikin:

Diviser l'échantillon en plusieurs parties et former plusieurs modèles, ou quoi ?

Je n'ai qu'un échantillon d'environ 14 000 lignes, mais...

J'ai écrit plus haut. Le modèle de base sur une moitié des morceaux, le second modèle correcteur sur l'autre.

5-10 fautes suffiront, peut-être plus.