L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 90

 

J'ai essayé diverses méthodes de validation auto-écrite, y compris celles décrites dans ces articles. Mes conclusions sont les suivantes :

En forex, il n'existe pas de relation stricte entre la variable cible et les prédicteurs, le forex n'est pas une formule que l'on peut trouver et appliquer pour calculer de nouvelles données. Tout ce qu'un modèle peut faire, c'est trouver une certaine régularité et extrapoler les résultats pour le commerce sur de nouvelles données.
En d'autres termes, il existe un certain espace multidimensionnel (la dimensionnalité est égale au nombre de prédicteurs), dans lequel se trouvent de multiples points (variables cibles connues). Le modèle construit un hyperplan dans cet espace qui sépare les points de l'espace (la classe "achat" de la classe "vente"). Les façons de construire cet hyperplan sont infinies (dans un cas simple - dessiner quatre points sur la feuille, et tracer une ligne courbe entre eux de sorte qu'il y ait deux points à droite de la courbe, et deux à gauche également. Les possibilités de dessiner une courbe sont infinies). Il n'y a donc aucune garantie que le modèle construit reflète la dépendance correcte de la variable cible par rapport aux prédicteurs. Afin de vérifier l'adéquation du modèle, la validation est utilisée - certains points n'ont pas été utilisés dans la formation et il est facile de savoir si le modèle a échoué, s'il montrera le bon résultat sur ces points de test.

Si le modèle n'a pas passé la validation correctement, cela peut être dû à de nombreuses raisons, par exemple
- le modèle a trouvé des dépendances inexistantes qui n'existent que dans les exemples de formation
- il y avait une certaine dépendance dans les données de formation, qui n'existait pas dans les données pour le test. Par exemple, si toutes les données pour le test sont prises plus tard dans le temps et que le comportement du symbole forex a changé
- le modèle lui-même a été initialisé avec une graine infructueuse. Il arrive souvent qu'un modèle entraîné sur les mêmes données donne des résultats différents lors de la validation après de multiples tentatives de réentraînement.

On ne sait pas ce qui a provoqué un mauvais résultat dans un cas particulier. Tout ce que nous pouvons faire, c'est estimer la qualité d'un modèle en moyenne - construire un modèle des dizaines de fois, estimer sur la validation. Les données de formation/validation doivent être redivisées à chaque fois.
Ce que je pense être une méthode valable est de diviser les données de façon aléatoire dans un rapport 50%/50% (pas par temps, mais pour que tout soit mélangé de façon égale, par exemple les lignes 1,2,5,7 pour la formation, 3,4,6,8 pour la validation), former le modèle sur la première partie, puis faire la validation sur la seconde, pour l'évaluation du modèle j'utilise la précision. Répétez ceci 50 fois (repartition des données en 2 parties aléatoires, formation, validation). Calculez ensuite la précision moyenne sur les données d'apprentissage, et la précision moyenne sur les données de validation. Supposons que la précision moyenne sur l'échantillon d'apprentissage soit de 90%, sur l'échantillon de validation de 80%. La précision du fronttest sera encore plus faible, j'utilise cette règle empirique : calculer la différence (90%-80%=10%), et la soustraire du résultat de la validation (80%-10% = 70%). Il s'avère qu'un tel modèle sur fronttest aura une précision moyenne d'environ 70%. De plus, j'ajuste génétiquement les paramètres du modèle et les prédicteurs pour augmenter cette estimation de 70% (c'est beaucoup plus difficile qu'il n'y paraît, il est difficile d'obtenir même plus de 50%).

Mais je n'aime pas le fait que ce résultat ne soit qu'une moyenne, sans aucune garantie. La précision réelle lors de la négociation sera de 60 à 80 %, voire de 50 à 90 %, en fonction de votre manque de chance. J'ai beau essayer, il est impossible de repêcher le meilleur modèle, quelle que soit l'indication. La seule solution est probablement de construire des dizaines de modèles avec les meilleurs paramètres et prédicteurs trouvés, et de prendre le résultat là où la plupart des gens regardent (congrès des modèles).

Ceci est étroitement lié à ce que SanSanych a dit au début du fil de discussion. Vous pouvez également suivre son conseil de supprimer la dernière partie des données connues pour le dernier échantillon de contrôle. N'utilisez pas ces données pour la formation et les validations, mais stockez-les séparément jusqu'à la fin de la formation du modèle. Ensuite, testez le modèle fini, ou le congrès, sur ces données. L'avantage est qu'il montre comment le modèle se comporte sur les nouvelles données temporelles. L'inconvénient est qu'il y aura moins de données pour la formation et la validation, et que le modèle sera un peu dépassé au début de la négociation. Il y a une petite nuance ici, si vous n'aimez pas le résultat sur ces données de référence, et que vous avez commencé à sélectionner un modèle qui montrera un bon résultat dans ce domaine - alors vous avez commencé à utiliser ces données pour la validation, en conséquence le modèle est déjà sélectionné avec eux à l'esprit, et donc il y a un peu de regard vers l'avenir, le contrôle et toute l'opération devient inutile, et dans ce cas il était plus facile de ne pas faire un échantillon de contrôle du tout.

 
Dr. Trader:

J'ai essayé diverses méthodes de validation auto-écrite, y compris celles décrites dans ces articles. Mes conclusions sont les suivantes :

En forex, il n'existe pas de relation stricte entre la variable cible et les prédicteurs, le forex n'est pas une formule que l'on peut trouver et appliquer pour calculer de nouvelles données. Tout ce qu'un modèle peut faire est de trouver une sorte de modèle et d'extrapoler les résultats pour négocier sur de nouvelles données.
En d'autres termes, il existe un certain espace multidimensionnel (la dimensionnalité est égale au nombre de prédicteurs), dans lequel se trouvent de multiples points (variables cibles connues). Le modèle construit un hyperplan dans cet espace qui sépare les points de l'espace (la classe "achat" de la classe "vente"). Les façons de construire cet hyperplan sont infinies (dans un cas simple - dessiner quatre points sur la feuille, et tracer une ligne courbe entre eux, de sorte qu'il y ait deux points à droite de la courbe, et deux à gauche également. Les possibilités de dessiner une courbe sont infinies). Il n'y a donc aucune garantie que le modèle construit reflète la dépendance correcte de la variable cible par rapport aux prédicteurs. Afin de vérifier l'adéquation du modèle, la validation est utilisée - certains points n'ont pas été utilisés dans la formation et il est facile de savoir si le modèle a échoué, s'il montrera le bon résultat sur ces points de test.

Si le modèle échoue à la validation, il peut y avoir plusieurs raisons.
- le modèle a trouvé des dépendances qui n'existaient pas et qui n'étaient présentes que dans les exemples d'apprentissage.
- il existe une dépendance dans les données d'apprentissage, qui n'est pas présente dans les données de test. Par exemple, dans le cas où toutes les données pour un test sont prises plus tard dans le temps et que le comportement du symbole forex a changé.
- le modèle lui-même a été initialisé avec une graine qui a échoué. Il arrive souvent qu'un modèle entraîné sur les mêmes données donne des résultats différents lors de la validation après de multiples tentatives de réentraînement.

On ne sait pas ce qui a provoqué un mauvais résultat dans un cas particulier. Tout ce que nous pouvons faire, c'est estimer la qualité d'un modèle en moyenne - construire un modèle des dizaines de fois, estimer sur la validation. Les données de formation/validation doivent être redivisées à chaque fois.
Ce que je pense être une méthode valable est de diviser les données de façon aléatoire dans un rapport 50%/50% (pas par temps, mais pour que tout soit mélangé de façon égale, par exemple les lignes 1,2,5,7 pour la formation, 3,4,6,8 pour la validation), former le modèle sur la première partie, puis faire la validation sur la seconde, pour l'évaluation du modèle j'utilise la précision. Répétez ceci 50 fois (repartition des données en 2 parties aléatoires, formation, validation). Calculez ensuite la précision moyenne sur les données d'apprentissage, et la précision moyenne sur les données de validation. Supposons que la précision moyenne sur l'échantillon d'apprentissage soit de 90%, sur l'échantillon de validation de 80%. La précision en fronttest sera encore plus faible, j'utilise cette règle empirique : calculer la différence (90%-80%=10%), et la soustraire du résultat de validation (80%-10% = 70%). Il s'avère qu'un tel modèle sur fronttest aura une précision moyenne d'environ 70%. En outre, j'ajuste génétiquement les paramètres du modèle et les prédicteurs pour augmenter cette estimation de 70% (c'est beaucoup plus difficile qu'il n'y paraît, il est difficile d'aller même au-delà de 50%).

Mais je n'aime pas le fait que ce résultat ne soit qu'une moyenne, sans aucune garantie. La précision réelle du trading sera de 60 à 80 %, voire de 50 à 90 %, en fonction de votre manque de chance. J'ai beau essayer, il est impossible de repêcher le meilleur modèle, quelle que soit l'indication. La seule solution est probablement de construire des dizaines de modèles avec les meilleurs paramètres et prédicteurs trouvés, et de prendre le résultat là où la plupart des gens regardent (congrès des modèles).

Ceci est étroitement lié à ce que SanSanych a dit au début du fil de discussion. Vous pouvez également suivre son conseil de supprimer la dernière partie des données connues pour le dernier échantillon de contrôle. N'utilisez pas ces données pour la formation et les validations, mais stockez-les séparément jusqu'à la fin de la formation du modèle. Ensuite, testez le modèle fini, ou le congrès, sur ces données. L'avantage est que cela montre comment le modèle se comporte sur les nouvelles données temporelles. L'inconvénient est qu'il y aura moins de données pour la formation et la validation, et que le modèle sera un peu dépassé au début de la négociation. Il y a une petite nuance ici, si vous n'aimez pas les résultats sur les données de référence et que vous commencez à choisir un modèle qui donnera de bons résultats dans ce domaine - vous commencez à utiliser ces données pour la validation, respectivement un modèle est choisi en les prenant en compte et donc il y a un léger regard vers le futur et toute cette opération devient insensée, et dans ce cas il était plus facile de ne pas faire la sélection de référence du tout.

C'est bon ! ©

Mais, une nuance cruciale. Pour la validation croisée et le cv imbriqué de la couche supérieure, nous devons prendre des observations séparées dans le temps. Eh bien, ou au moins pour la couche supérieure, prenez des échantillons épars de dates qui ne coïncident pas avec la formation et le CV inférieur.

Les résultats devraient être pires, mais plus vrais.

Si nous obtenons une corrélation entre les résultats sur le CV et le CV imbriqué (corrélation). Ensuite, le modèle s'adapte aux données.
 
Vizard_:
Pas encore)))
J'ai vérifié. Les coupes ne sont pas meilleures que la version d'il y a six mois, ou quand j'ai regardé, je ne me souviens pas exactement. Dans la fenêtre et les statistiques fylo écrites différentes. Choisir l'importance des intrants
discutable, comparé de front avec rf et quelques autres, et peut donner une priorité élevée à des choses très peu importantes. Si vous prenez la meilleure coupe (de la fenêtre), ce n'est toujours pas bon.
Sur ces données, j'obtiens au moins 92%. La pièce (en l'état) est encore peu utile à des fins pratiques. Félicitations pour l'effort de développement et l'envol des idées.

Tout cela est bien sûr subjectif. Maintenant pour maintenant)))


Quand nous avons affaire à quelqu'un du niveau de Reshetov, nous pouvons exiger sans risque :

1. une revue des analogues

2. Une indication des lacunes qui sont censées être surmontées dans ces analogues

3. Indication du mécanisme permettant d'éliminer ces déficiences (vous pouvez cacher les spécificités dans l'économie de marché)

4. Comparaison des analogues avec votre développement. Cette comparaison devrait prouver que tous les inconvénients susmentionnés des prototypes existants ont été éliminés. Et on obtient un outil qui n'est PAS pire que les analogues.

Si une personne du niveau de Reshetov ne le fait pas, alors.. : Il convient de féliciter Reshetov pour les efforts qu'il a déployés pour développer et faire évoluer sa pensée.

 
SanSanych Fomenko:

alors vous pouvez demander en toute sécurité :

))))))
 
Vizard_:
Pas encore)))
7 regardé. Il n'est pas meilleur que la version d'il y a six mois, ou quand j'ai regardé, je ne me souviens pas exactement. Dans la fenêtre et les statistiques fylo écrites différentes. Choisir l'importance des intrants
discutable, comparé de front avec rf et quelques autres, et peut donner une priorité élevée à des choses très peu importantes. Si vous prenez la meilleure coupe (de la fenêtre), ce n'est toujours pas bon.
Sur ces données, j'obtiens au moins 92%. La pièce (en l'état) est encore peu utile à des fins pratiques. Félicitations pour l'effort fourni pour développer cette fantaisie.

Tout cela est bien sûr subjectif. Au revoir maintenant)))


Les résultats dans la fenêtre sont un comité de deux modèles. Si vous regardez le fichier, qui enregistre le prédicteur deux modèles Dans la fenêtre est le résultat du comité de ces deux modèles. comme il est so....
 
Vizard_:
Je vois.Notepad est compressé, et je ne l'ai pas tordu vers le bas)))Mais je l'ai pris dans la fenêtre pour comparer.
J'ai supprimé immédiatement pour manque d'utilité, bien que quelqu'un puisse être utile...
En général, je pense que vous ne devriez pas aimer ce travail. Premièrement, elle répond à une question très importante, à savoir le pourcentage d'informations généralisantes contenues dans les données d'entrée par rapport à la sortie. Et deuxièmement, si Yuri écoute ce que je lui ai suggéré, vous obtiendrez une bombe qui répondra à beaucoup de questions. Je n'ai malheureusement pas réussi à enseigner le modèle à 100% sur mes données (sans manipulations avec les données qui augmentent la capacité de généralisation, comme cela s'est avéré imaginatif) pour voir comment le modèle fonctionnera à l'avenir. Cependant, une fois que vous avez obtenu une généralisation à 100 % par comité, vous devez vous assurer que chaque modèle a les mêmes 100 %, c'est-à-dire que les données d'entrée décrivent entièrement la sortie. Nous verrons alors.... En attendant, les conclusions sur l'inopérabilité de l'optimiseur sont prématurées. Par ailleurs, chacun d'entre nous essaie de construire un modèle de sortie IDEAL. Ce qui est à son tour extrêmement difficile, voire impossible. Et si la sortie n'est pas IDEALE, mais avec un peu d'erreurs...... C'est ce qui est intéressant...... Disons qu'il faut marquer d'une croix non pas les signaux qui ont un profit de 100 pips, mais aussi ceux qui ont un profit de -30 pips et plus..... En connaissant cette hypothèse, il suffira de prendre un signal 30 pips mieux et le problème sera résolu si nous parvenons à construire un modèle avec un niveau de généralisation de 100%.
 
En général, pour construire des modèles de classification, l'ordre des enregistrements n'est pas très important, il est important que le modèle l'apprenne à 100% et il est important que la réaction du marché dans un futur proche aux mêmes événements soit la même. C'est dire l'absence de données contradictoires. Quant aux modèles de pronostic, l'ordre des enregistrements est important pour eux. C'est l'une des différences entre la classification et la prédiction......
 

Je me demande si cela va nous aider.... Je comprends donc que la puissance de traitement d'une telle chose est d'un ordre de grandeur supérieur, voire de plusieurs.....

https://hi-tech.mail.ru/news/compact-quantum-computer/?frommail=1

 
SanSanych Fomenko:
Mihail Marchukajtes:
Et tous ceux qui viennent. Dans l'archive z1 il y a deux fichiers train et test. Pour la cible, construire un modèle sur le train, l'appliquer au test, afficher les résultats en % (prédiction réussie).
des cas) pour les deux échantillons (train = xx%, test = xx%). Les méthodes et les modèles ne doivent pas être annoncés, mais seulement les chiffres. Toute manipulation de données est autorisée
et les méthodes d'exploitation minière.
Dossiers :
z1.zip  43 kb
 
Vizard_:
Et tous ceux qui viennent. L'archive z1 contient deux fichiers train et test. Pour Target, construire un modèle sur le train, l'appliquer au test, afficher les résultats en % (prédiction réussie).
des cas) pour les deux échantillons (train = xx%, test = xx%). Les méthodes et les modèles ne doivent pas être annoncés, mais seulement les chiffres. Toute manipulation de données est autorisée
et les méthodes d'exploitation minière.

Merci ! Je vais essayer.

Convenons de ne pas examiner le test tant que le modèle entraîné n'a pas été évalué. Je l'ai déjà fait.

C'est-à-dire que nous entraînons jusqu'à ce que nous soyons bleus dans le visage le meilleur modèle sur le train. Peut-être deux ou trois modèles. Puis leur test unique.