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

 

humnocode sur python aujourd'hui et j'ai obtenu ceci

stage

test

Peut-être que le testeur n'est pas bon, peut-être autre chose, je revérifierai demain soir. Je le fais pour un article (je veux décrire mon approche), peut-être que catbust est plus adapté que la forêt pour gérer cette stratégie.

 
Maxim Dmitrievsky:

humnocode sur python aujourd'hui et j'ai obtenu ceci

stage

test

Peut-être que le testeur n'est pas bon, peut-être autre chose, je revérifierai demain soir. Je fais pour l'article (je veux décrire mon approche), peut-être catboost est mieux pour gérer cette stratégie que forest.

Ainsi, CatBoost est formé sur un test, selon les échantillons de leur système de dénomination - y a-t-il un problème ?

 
Aleksey Vyazmikin:

Donc CatBoost est formé sur le test, selon leur système de dénomination d'échantillonnage - pas de confusion ?

Je veux dire de toutes nouvelles données, un morceau d'histoire différent. Ça devrait être comme ça dans le train, mais le test est confus. Peut-être que le testeur jette un coup d'œil quelque part.

J'obtiens 0.6-0.7 d'erreur sur ma forêt à peu près aux mêmes données et c'est la même chose sur trayne, et le test n'est pas toujours bon et presque toujours pire que trayne. L'erreur dans le boost est à peu près la même, mais le test est très bon, cela ne se produit pas.

comment allez-vous, avez-vous fait des progrès avec les feuilles ?
 
Maxim Dmitrievsky:

Je veux dire de toutes nouvelles données, un morceau d'histoire différent. Ça devrait être comme ça sur le Train, mais le test est confus. Peut-être que le testeur jette un coup d'œil quelque part.

J'obtiens 0,6-0,7 d'erreur dans ma forêt à peu près aux mêmes données et c'est la même chose sur le sentier, et le test n'est pas toujours bon et presque toujours pire que le sentier. Le boost a à peu près la même erreur, mais le test est douloureusement bon, cela n'arrive pas...

comment allez-vous, avez-vous gagné des feuilles ?

Eh bien, je ne sais pas - sans échantillonnage, il est difficile de savoir ce qui ne va pas.

Mes résultats ne me rendent pas très heureux. J'ai collecté une quantité décente de feuilles, mais vient alors la question de savoir comment les faire fonctionner au mieux les unes avec les autres. Le problème, c'est qu'ils se chevauchent souvent de 20 à 50 % ou plus, et qu'il s'avère donc qu'ils donnent le même signal, ce qui n'est pas très bon. L'idée est de les regrouper et d'établir pour chaque groupe un seuil d'activation - je réfléchis donc à la meilleure façon de le faire.

Pour l'instant, j'expérimente le filtrage mutuel - j'ai entraîné l'arbre en R sur les feuilles, mais pour l'instant seulement sur les achats.

Première capture d'écran sans arbre, et seconde avec arbre. La période est de mars à septembre cette année.

Bien sûr, la courbe d'équilibre n'est pas très attrayante, mais il s'agit d'une stratégie de tendance, dont l'essence est de ne pas perdre plus que ce que l'on gagne pendant la période plate, et le marché (Si) est plat toute l'année avec de rares mouvements forts. Je peux voir que l'ajout d'un arbre a amélioré les indicateurs relatifs, je ferai de même pour la vente plus tard, si le résultat est positif, il fera partie du modèle.

La question de la sélection des feuilles jusqu'à la fin n'est pas résolue, même en sélectionnant les feuilles qui ont montré de bons résultats dans chacune des 5 années peut s'attendre à ce que 20%-40% cessent de fonctionner, ce qui est encore plus triste est l'incapacité de comprendre s'il faut les éteindre ou non - surtout par trimestres ont fait le test, il s'est avéré que les feuilles non rentables dans le trimestre passé chevauchent la perte (beaucoup) dans les trimestres suivants.

La méthode de sélection des feuilles en elle-même semble prometteuse, mais le processus est très lent.

 
Aleksey Vyazmikin:

Eh bien, je ne sais pas - sans échantillon, il est difficile de savoir ce qui ne va pas.

Je ne suis pas très heureux des résultats. J'ai collecté une quantité décente de feuilles, mais la prochaine question est de savoir comment les faire mieux fonctionner ensemble. Le problème, c'est qu'ils se chevauchent souvent de 20 à 50 % ou plus, et qu'il s'avère donc qu'ils donnent le même signal, ce qui n'est pas très bon. L'idée est de les regrouper et d'établir pour chaque groupe un seuil d'activation - je réfléchis donc à la meilleure façon de le faire.

Pour l'instant, j'expérimente le filtrage mutuel - j'ai entraîné l'arbre en R sur les feuilles, mais pour l'instant seulement sur les achats.

Première capture d'écran sans arbre, et seconde avec arbre. La période est de mars à septembre cette année.

Bien sûr, la courbe d'équilibre n'est pas très attrayante, mais il s'agit d'une stratégie de tendance, dont l'essence est de ne pas perdre plus que ce que l'on gagne pendant la période plate, et le marché (Si) est plat toute l'année avec de rares mouvements forts. Je peux voir que l'ajout d'un arbre a amélioré les indicateurs relatifs, je ferai de même pour la vente plus tard, si le résultat est positif, il fera partie du modèle.

La question de la sélection des feuilles jusqu'à la fin n'est pas résolue, même en sélectionnant les feuilles qui ont montré de bons résultats dans chacune des 5 années peut s'attendre à ce que 20%-40% cessent de fonctionner, ce qui est encore plus triste est l'incapacité de comprendre si les éteindre ou non - spécifiquement par trimestres ont fait le test, il s'est avéré que les feuilles non rentables dans le trimestre passé chevauchent la perte (beaucoup) dans les trimestres suivants.

La méthode de sélection des feuilles en elle-même semble prometteuse, mais le processus est extrêmement lent.

Je ne reçois pas de muzen pour ça, dommage.

Il y a très peu de métiers, ce n'est pas représentatif. Et nous devons filtrer les pertes, car elles sont toutes inutiles.
 
Maxim Dmitrievsky:

Ouais, tu ne peux pas te faire de l'argent rapidement avec ça, c'est une honte.

Il y a très peu de métiers, c'est peu représentatif. Et vous devriez filtrer ceux qui ne sont pas rentables, ils sont tous pareils, vous n'en avez pas besoin.

Oui, le problème est que pour chaque signal de feuille alloué 1 lot, respectivement, si beaucoup de feuilles activé, alors plus de lots nécessaires - il ya 71 lots, mais très rarement, et si vous gardez l'argent à 71 lots tout le temps, alors le total serait obtenir 25% par an - GO sur l'échange est grand, et c'est Si.

A propos de la suppression des non rentables - c'est une arme à double tranchant - d'un côté il est possible d'augmenter le nombre de filtres, ce qui réduira le nombre de trades perdants, mais en même temps réduira le nombre de trades rentables, comme je l'ai écrit plus haut, beaucoup de feuilles deviennent rentables au cours de l'année, donc c'est une question de temps, une question de conditions de marché. Le problème de cette approche est qu'elle demande beaucoup de travail et qu'il n'est pas possible d'ajouter rapidement de nouveaux prédicteurs, idées pour lesquelles j'ai et j'ai régulièrement des idées - je travaille actuellement avec un échantillon de février de cette année.

Une autre façon d'améliorer les indicateurs, est de travailler sur la prise de bénéfices - pour l'instant, la clôture se fait principalement par stop et une condition - en de rares occasions.

Malgré tous les inconvénients, le système n'a pas perdu d'argent depuis presque un an, ce qui peut indiquer la bonne direction.

 
Aleksey Vyazmikin:

Oui, le problème est que pour chaque signal de feuille alloué 1 lot, respectivement, si beaucoup de feuilles activé, alors plus de lots nécessaires - il ya 71 lots, mais très rarement, et si vous gardez l'argent à 71 lots tout le temps, alors le total serait obtenir 25% par an - GO sur l'échange est grand, et c'est Si.

A propos de la suppression des non rentables - c'est une arme à double tranchant - d'un côté il est possible d'augmenter le nombre de filtres, ce qui réduira le nombre de trades perdants, mais en même temps réduira le nombre de trades rentables, comme je l'ai écrit plus haut, beaucoup de feuilles deviennent rentables au cours de l'année, donc c'est une question de temps, une question de conditions de marché. Le problème de cette approche est qu'elle demande beaucoup de travail et qu'il n'est pas possible d'ajouter rapidement de nouveaux prédicteurs, idées pour lesquelles j'ai et j'ai régulièrement des idées - je travaille actuellement avec un échantillon de février de cette année.

Une autre façon d'améliorer les indicateurs, est de travailler sur la prise de bénéfices - pour l'instant, la clôture se fait principalement par stop et une condition - en de rares occasions.

Malgré toutes ces lacunes, le système n'a pas perdu d'argent depuis près d'un an, ce qui peut être un signe de la bonne direction.

Il est possible d'entraîner un deuxième modèle par-dessus le premier, sur les mêmes caractéristiques. Mais il ne fera que corriger les entrées d'actions, c'est-à-dire qu'il interdira/autorisera les transactions. Au moins, il n'y aura pas d'échanges inutiles.

 
Maxim Dmitrievsky:

il est possible d'entraîner un deuxième modèle par-dessus le premier, avec les mêmes caractéristiques. Mais il ne corrigera que les entrées en actions, c'est-à-dire qu'il interdira/autorisera les transactions. Au moins, il n'y aura pas d'échanges inutiles.

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

 
Maxim Dmitrievsky:

il est possible d'entraîner un deuxième modèle par-dessus le premier, avec les mêmes caractéristiques. Mais il ne corrigera que les entrées en actions, c'est-à-dire qu'il interdira/autorisera les transactions. Au moins, il n'y aura pas d'échanges inutiles.

Je ne comprends pas très bien comment vous suggérez de modifier l'objectif - pour l'instant, j'ai déjà trois objectifs - acheter/vendre/ne pas négocier. Et, je sélectionne les feuilles à acheter / vendre, et puis à chacune de ces feuilles à la recherche d'un filtre de feuilles "ne pas échanger", autant que 3 pièces (pour certains, il est suffisant pour certains, il n'est pas suffisant - a effectué les tests). Après les résultats de ces paires - feuille d'activation + feuille de filtre, j'ai construit un arbre basé sur le signal final, qui a pris en compte les réponses de toutes les feuilles et leur exclusion mutuelle, c'est-à-dire que j'ai obtenu un filtre supplémentaire.

Voici un arbre

Je veux essayer le modèle sur CB au lieu de l'arbre, peut-être que la généralisation de toutes les feuilles utilisées sera meilleure, bien que la précision soit augmentée de 1%, ce qui n'est pas beaucoup, mais le résultat est positif.

 
Aleksey Vyazmikin:

Je ne comprends pas très bien comment vous suggérez de modifier l'objectif. Pour l'instant, j'ai essentiellement trois objectifs : acheter/vendre/non négocier. Et, je sélectionne des feuilles d'achat/vente, et ensuite pour chacune de ces feuilles je cherche un filtre de feuilles "ne pas échanger", jusqu'à 3 pièces (pour certains c'est suffisant, pour d'autres pas - j'ai fait des tests). Après les résultats de ces paires - feuille d'activation + feuille de filtre, j'ai construit un arbre basé sur le signal final, qui a pris en compte les réponses de toutes les feuilles et leur exclusion mutuelle, c'est-à-dire que j'ai obtenu un filtre supplémentaire.

Voici un arbre

Je veux essayer le modèle sur CB au lieu de l'arbre, peut-être que la généralisation de toutes les feuilles utilisées sera meilleure.

Eh bien, vous devriez 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 à acheter est à vendre, et vice versa. C'est pourquoi nous avons besoin d'un classificateur binaire ordinaire. En outre, si nous procédons de cette manière, pourquoi avons-nous besoin d'une classe distincte "do not trade", alors que vous pouvez simplement filtrer les entrées par un seuil plus élevé. Le modèle peut accorder un poids excessif à la classe "ne pas échanger", ce qui réduit l'erreur du modèle et diminue la capacité de prédiction (généralisation) en général.

L'intérêt du second modèle est que le premier modèle présentera 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 2ème modèle et à la sortie du premier modèle, où 0 - la transaction était rentable, 1 - la transaction était non rentable. 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 les tests.

Il est possible de diviser l'échantillon en morceaux et d'enseigner les modèles dans un ordre en damier, à travers certains morceaux. Par exemple, 5 fautes. Le premier modèle est entraîné en une fois sur 1,3,4 fautes. Le deuxième modèle correctif sur 2,5. Cela permettrait d'améliorer encore la généralisation.