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

 
Aleksey Vyazmikin:

Oui, les paramètres de base y sont bien donnés, surtout si vous exécutez directement en Python. Mais ce n'est pas suffisant pour moi.

C'est vrai, Anna Veronica est une meilleure narratrice et danse plus.

 
Maxim Dmitrievsky:

Le spectacle est vrai, Anna Veronica est une meilleure narratrice, et elle danse aussi.

Je ne sais pas, je n'y prête pas attention, je le regarde généralement en mode rapide.

En tout cas, il y a des questions qui demandent une réponse de la part des créateurs, et je ne sais pas comment les poser, ni où les poser.

 
Aleksey Vyazmikin:

Je ne sais pas, je n'y prête pas attention, je le regarde généralement en accéléré.

En tout cas, il y a des questions qui nécessitent des réponses de la part des créateurs, et je ne sais pas comment les poser, ni où les poser.

sur githab probablement

 
Maxim Dmitrievsky:

sur un githa, peut-être.

Ils sont tous tellement anglophones là-bas - je ne sais pas où je suis :)

 
Aleksey Vyazmikin:

Tout le monde y parle tellement anglais que je ne sais pas où je suis :)

il semble que nous devions pomper R au lieu de python, Renat a écrit que bientôt il y aura un lien direct sans béquilles

c'est-à-dire que vous pourrez exécuter catbust en 1 ligne depuis mt5

 
Maxim Dmitrievsky:

il semble que nous devions pomper R plutôt que python, Renat a écrit que bientôt il y aura un bundle direct sans béquilles

i.e. catbust peut être exécuté en 1 ligne depuis mt5

Je n'ai jamais pu faire fonctionner catbust sous R..... Peut-être que je ne suis pas très doué. Si elle sera groupée, c'est bien, mais elle ne permettra pas d'exécuter l'optimisation et la vitesse de réponse est en question...

 

Réalisation d'une étude sur l'impact de la division de l'échantillon en échantillons de formation et de validation (celui pour lequel la formation s'arrête et la sélection du modèle a lieu).

L'échantillon utilisé s'étendait de 2014 à 2018, chaque tranche de 20 % correspondant à environ 1 an. La méthodologie est la suivante : on prend l'échantillon total et on commence à augmenter l'échantillon de validation de 10 %, en réduisant l'échantillon de formation de ces mêmes 10 %, ce qui donne 9 ensembles d'échantillons. Pour chaque échantillon, un modèle a été créé avec un Seed de 1 à 200, soit un total de 200 modèles par échantillon, 1800 modèles au total.

Le test du modèle a été effectué sur un échantillon fixe - 2018, non impliqué dans la formation.

L'instrument est la colle du contrat à terme Si.

En dessous, dans le tableau, il y a des indicateurs pour juger les résultats des modèles - la partie gauche est constituée d'indicateurs financiers, comme nous avons l'habitude de voir dans le terminal, et la partie droite est constituée d'indicateurs sur la balance d'erreur (je l'appelle ainsi - je ne sais pas comment la corriger, si quelqu'un l'utilise), c'est-à-dire que si la cible 1 a été déterminée correctement, alors +1, si elle n'est pas correcte, alors -1, cela permet d'évaluer exactement la qualité de la classification sur l'ensemble de l'échantillon. En vert clair, j'ai marqué la meilleure performance en termes de moyenne.

Vous trouverez ci-dessous les valeurs métriques des modèles

Les résultats montrent clairement que la formation pour 2014 (80%-90%) a donné les plus mauvais résultats, et la chute de 70% était significative, ce qui suggère plutôt non pas que la taille de l'échantillon était petite, mais que les modèles de 2014 ne sont presque jamais rencontrés, c'est-à-dire que le marché a changé de manière significative, ce qui signifie que théoriquement cette période peut être complètement supprimée de la formation.

J'utilise maintenant le critère suivant pour la sélection des motifs dans l'échantillon de test (examen)

if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;

Voici les données sur le nombre de modèles qui répondent à ce critère

Le tableau ci-dessous présente une sélection de modèles prenant en compte les indicateurs des trois échantillons selon les critères suivants

if(t==0)if (FinRez>10000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_01=1;
if(t==1)if (FinRez>3000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_02=1;
if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;


Il faut ici tenir compte du fait que le critère de profit est fixe et que le temps nécessaire pour atteindre ce profit est différent pour les différents ensembles (il faudrait probablement réduire les chiffres pour que la comparaison soit correcte).

Et quelle conclusion peut-on en tirer ? Il semble que le volume optimal soit de 60% à 70% de l'échantillon de validation, c'est-à-dire que la formation doit se faire sur un échantillon plus petit que la validation du modèle. Mais il est impossible de ne pas souligner la répartition de 30%, là aussi le résultat de tous les indicateurs n'est pas mauvais, et les échecs sont assez proches de 40% et 50%. Je ne sais pas ce qui influence le plus la taille de l'échantillon ou le contenu et comment l'établir...

Et quelle est votre opinion sur les résultats de cette expérience, peut-être que j'interprète mal les résultats ? Avez-vous des idées pour un changement de méthodologie ou toute autre suggestion pour résoudre cette question de la proportion des échantillons de formation et de sélection ?

Ajouté :

En ce qui concerne les moyennes à 80-90%, il y a beaucoup de zéros (aucun signal d'entrée des modèles) et il y a donc une distorsion, comme on peut le voir dans l'indicateur StDV_K_Korrekt_Balans.

Histogramme pour StDV_K_Korrekt_Balans 90 %.


Histogramme pour StDV_K_Korrekt_Balans 70 %.


Histogramme pour StDV_K_Korrekt_Balans 30%.

Et voici à quoi ressemblent les graphiques (les histogrammes sont cliquables afin de ne pas scintiller de façon gênante).

30%


40%


50%


60%

 

Je dois également noter que la formation est toujours effectuée sur des données plus anciennes que celles sur lesquelles le contrôle de la formation est effectué - peut-être devrions-nous les intervertir et voir ce qui se passe...

Le faible rappel moyen attire l'attention - peut-être devons-nous poursuivre la formation des modèles, plutôt que d'arrêter la formation lorsqu'il n'y a pas d'amélioration après 100 arbres, ou lorsqu'il n'y a pas autant de modèles stables que nous le souhaiterions.

Nous devons voir dans quelle mesure les modèles se chevauchent. Si le taux de rappel est faible, il est possible qu'il existe des modèles peu corrélés, mais tout aussi rentables, qu'il est idéal de combiner en un seul pool.

 
Aleksey Vyazmikin:
Et je noterai également que la formation porte toujours sur des données plus anciennes que celles sur lesquelles porte le contrôle de la formation - peut-être faudrait-il les intervertir et voir ce qui se passe....

Tout ce qui précède est cool et très instructif, mais "contrôle de la formation", qu'est-ce que ça veut dire ???

Par exemple, vous entraînez le système sur un échantillon de données de 2014, puis vous donnez un échantillon de 2015 et vous voulez voir la probabilité des modèles ? Si c'est le cas, alors vous n'avez pas besoin de changer quoi que ce soit, tout est correct. Seulement, je ne vois pas de problème à ce que le contrôle donne des résultats différents de ceux attendus, il en sera toujours ainsi.

 

Si l'application pratique du MO dans votre cas est la suivante à mon avis.

Puisqu'il n'est tout simplement pas réaliste d'obtenir une probabilité de 100% du vrai résultat, alors passez par une méthode simple, par exemple le rapport entre les vrais et les faux résultats, s'il est dans la région de 50/50, alors encore une fois nous devons comprendre quels profits vous obtenez avec ces résultats, si 50% du profit est une moyenne de 100 points et les 50% restants des pertes moyennes de 50 points, alors je pense que votre système est déjà adapté à une utilisation pratique.