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

 
Maxim Dmitrievsky:

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

alors 5-10 fautes seront suffisantes, et même plus

Ce qui a été écrit ci-dessus est clair.

Je ne comprends pas ce que signifie "5-10 fautes".

 
Aleksey Vyazmikin:

Ce qui a été écrit ci-dessus est clair.

Je ne comprends pas ce que signifie "5-10 fautes".

diviser le jeu de données en sections égales, disons 5 pièces

fusionner 1,3,4 et enseigner le modèle principal sur ceux-ci

combinez 2,5. Entraînez le 1er modèle sur eux et obtenez les résultats.

Entraînez le 2ème modèle sur ces 2.5 en utilisant les résultats du 1er modèle et corrigez les trades non rentables.

Exécutez les deux modèles sur l'ensemble des données et sur les nouvelles données et voyez les résultats.

 
Aleksey Vyazmikin:

Qu'est-ce qui doit être recalculé exactement ?

Comme d'habitude dans un portefeuille - les pondérations (actifs, systèmes). Dans votre cas, cela pourrait être, par exemple, 0 - feuille virtuelle signal trade, 1 - réel et vous pouvez ajouter -1 - signal reversal. Chaque portefeuille correspond à un vecteur de longueurs de 0, 1 ou -1. L'optimisation se fait, par exemple, pour chaque dernier mois par le bénéfice avec des pénalités pour le drawdown et le volume du portefeuille.

 
Maxim Dmitrievsky:

diviser l'ensemble de données en sections égales, disons 5 pièces

combiner les modèles 1, 3 et 4 et former le modèle principal sur ces derniers.

combinez 2,5. Exécutez le premier modèle sur eux, obtenez des résultats.

Entraînez le 2ème modèle sur ces 2.5 en utilisant les résultats du 1er modèle et corrigez les trades non rentables.

Exécutez les deux modèles sur l'ensemble des données et les nouvelles données et voyez les résultats.

Ah, maintenant je vois, je voulais juste mélanger l'échantillon et entraîner le second modèle là où le premier n'a pas été entraîné. Je dois réfléchir à la façon dont il peut être mis en œuvre, mais probablement pas dans ce projet, sauf pour enseigner le deuxième modèle en 2019, mais alors il n'y aura aucun endroit pour vérifier les résultats en dehors de la formation.

 
Aleksey Nikolayev:

Comme d'habitude dans un portefeuille - les pondérations (actifs, systèmes). Dans votre cas, cela pourrait être, par exemple, 0 - feuille virtuelle signal trade, 1 - réel et vous pouvez ajouter -1 - signal reversal. Chaque portefeuille correspond à un vecteur de longueurs de 0, 1 ou -1. L'optimisation se fait, par exemple, pour chaque dernier mois par le bénéfice avec des pénalités pour le drawdown et le volume du portefeuille.

Ici, la question est de savoir à quelle fréquence les coefficients sont modifiés - s'ils sont rares, nous sommes à la traîne de la tendance, s'ils sont fréquents, nous devrons faire face à un ajustement horrible, car la stratégie elle-même permet des tirages, alors que la feuille peut ne jamais donner de signal pendant un trimestre, ce qui complique cette approche.

 
Maxim Dmitrievsky:

Il semble avoir réparé le testeur, pas de coup d'œil nulle part, résultats :

EURUSD train+valid, 10k bars


L'EURUSD teste les barres de 50k

Même modèle entraîné sur EURUSD mais testé sur GBPUSD, 50k barres

Le même modèle a également été entraîné sur l'USDCHF

Cela semble avoir du sens. Il y a une tendance à la croissance, pour ainsi dire).

Peut-être ai-je raté quelque chose, mais, à la volée, c'est clairement mieux que la forêt d'alglib (bien que j'aie ajouté beaucoup d'autres choses pour l'améliorer)

Il fonctionne rapidement, il y a beaucoup de signaux, on peut essayer de créer un portefeuille. Quelle est la durée de l'échantillon ?

 
Aleksey Vyazmikin:

En courant vite, avec beaucoup de signaux, vous pouvez essayer de faire un portefeuille. Et quelle est la fourchette de temps de l'échantillon ?

Un an et demi sur 15 minutes environ.

Je dois nettoyer le drawdown et tout le reste, c'est ce que je vais faire.

 
Maxim Dmitrievsky:

Un an et demi sur 15 minutes environ.

Eh bien c'est un essai, je dois nettoyer les drawdowns et tout le reste, et c'est ce que je vais faire.

Il semble y avoir beaucoup de transactions, comme si le spread ne mangeait pas tout... Quoi qu'il en soit, le potentiel est là - bonne chance !

 

J'ai décidé de regarder un peu la dynamique des indicateurs métriques des modèles pendant le fractionnement, j'ai pris 1, 20 et 48 étapes (la dernière traitée), le tableau récapitulatif suivant est apparu.

Indicateurs de l'échantillon utilisé pour la formation.

Les résultats me semblent intéressants ; tout d'abord, je dois faire attention au fait que nous travaillons avec des arbres qui ne donnent qu'une précision de 52%-53%, ce qui est très faible pour le modèle dans son ensemble.Cependant, nous ne sommes pas intéressés par l'ensemble du modèle, car pour le trading, il est plus important d'entrer dans la bonne direction que de manquer une entrée et, par conséquent, nous devrions nous intéresser avant tout à la précision de la classification et nous pouvons voir que la précision des classes "-1" et "1" est devenue à un moment donné supérieure de 4 % et 3 % à celle de la version initiale, tandis que la précision de la classe "0" n'a perdu que 1 à 2 %, mais en même temps, la complétude des classes "-1" et "1" a diminué et la complétude de la classe "0" a augmenté en même temps.

À ce stade, environ 10 % des prédicteurs racines ont été retirés de l'échantillon - un à chaque étape - mais le modèle ne s'est pas effondré et même les indicateurs individuels, importants pour nous, se sont améliorés.

Bien sûr, il est possible d'obtenir plus d'informations sur la dynamique en traitant l'ensemble des 48 splits, peut-être y a-t-il des lacunes dans les indicateurs, ou au contraire, tous les indicateurs évoluent dans le vecteur sélectionné. Mais je pense surtout que le commerce a besoin de sa propre méthode de création de modèles, dont le principe n'est pas d'essayer de décrire toute la structure, mais de comprendre une partie de la structure mieux que d'autres parties, et maintenant un bon modèle, dans toutes les méthodes que je connais, le modèle est estimé par l'entropie ou le logloss, c'est-à-dire pour l'apprentissage de l'ensemble du modèle - la connaissance du zéro et du un, si vous voulez, alors que nous avons juste besoin d'en savoir plus sur le un.

Eh bien, comme je l'ai montré précédemment, l'arbre par feuilles, et ma méthode de sélection par feuilles, améliore la précision de la classification sur l'échantillon d'entraînement de 20 à 25 % par rapport au modèle conventionnel.

La question est de savoir comment nous pouvons accélérer le processus. Je recherche des personnes intéressées avec lesquelles nous pouvons travailler ensemble pour repenser le fonctionnement du script R, qui génère maintenant des arbres, et pour réfléchir à l'amélioration et à l'accélération de la méthodologie.

 
Aleksey Vyazmikin:

J'ai décidé de regarder un peu la dynamique des indicateurs métriques des modèles pendant le fractionnement, j'ai pris 1, 20 et 48 étapes (la dernière traitée), le tableau récapitulatif suivant est apparu.

Indicateurs de l'échantillon utilisé pour la formation.

Les résultats me semblent intéressants ; tout d'abord, je dois faire attention au fait que nous travaillons avec des arbres qui ne donnent qu'une précision de 52%-53%, ce qui est très faible pour le modèle dans son ensemble.Cependant, nous ne sommes pas intéressés par l'ensemble du modèle, car pour le trading, il est plus important d'entrer dans la bonne direction que de manquer une entrée et, par conséquent, nous devrions nous intéresser avant tout à la précision de la classification et nous pouvons voir que la précision des classes "-1" et "1" est devenue à un moment donné supérieure de 4 % et 3 % à celle de la version initiale, tandis que la précision de la classe "0" n'a perdu que 1 à 2 %, mais en même temps, la complétude des classes "-1" et "1" a diminué et la complétude de la classe "0" a augmenté en même temps.

À ce stade, environ 10 % des prédicteurs racines ont été retirés de l'échantillon - un à chaque étape - mais le modèle ne s'est pas effondré et même les indicateurs individuels, importants pour nous, se sont améliorés.

Bien sûr, il est possible d'obtenir plus d'informations sur la dynamique en traitant l'ensemble des 48 splits, peut-être y a-t-il des lacunes dans les indicateurs, ou au contraire, tous les indicateurs évoluent dans le vecteur sélectionné. Mais je pense surtout que le commerce a besoin de sa propre méthode de création de modèles, dont le principe n'est pas d'essayer de décrire toute la structure, mais de comprendre une partie de la structure mieux que d'autres parties, et maintenant un bon modèle, dans toutes les méthodes que je connais, le modèle est estimé par l'entropie ou le logloss, c'est-à-dire pour l'apprentissage de l'ensemble du modèle - la connaissance du zéro et du un, si vous voulez, alors que nous avons juste besoin d'en savoir plus sur le un.

Eh bien, comme je l'ai montré précédemment, l'arbre par feuilles, et ma méthode de sélection par feuilles, améliore la précision de la classification sur l'échantillon d'entraînement de 20 à 25 % par rapport au modèle conventionnel.

La question est de savoir comment accélérer le processus. Je recherche des personnes intéressées avec lesquelles travailler pour repenser le fonctionnement du script R qui génère actuellement les arbres, et réfléchir à l'amélioration et à l'accélération de la méthodologie.

donc vous avez un logloss de ~1, donc le modèle est dans le désordre.

Voulez-vous trouver un logloss séparé pour une seule entrée ? C'est-à-dire la quantité d'information entre les valeurs de la feuille et les valeurs cibles ?

la classe "ne fait rien" est clairement déséquilibrée par rapport aux autres, comme j'ai écrit plus haut que cela pourrait être un problème à cause du modèle à 3 classes. D'autres indicateurs sont déprimants.