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

 
Alexey Burnakov:

Évaluez-vous les performances de la stratégie sur la base de l'historique ou y a-t-il un long terme ? L'enfer peut être en évaluation sur l'histoire.

Entrée sur le momentum, sortie via OR sur un certain nombre de conditions. En principe, ça marche. Mais si vous entrez au sommet, puis attendez un an pour sortir du creux de la vague...

Je le vérifie sur le forex. Si vous êtes entré sur un pic, il y a du SL.
 
Andrey Dik:

Plus de détails : signal d'achat sur la barre actuelle, comme l'achat, compter le moins de barres possible avant.......

J'ai aussi une version similaire de la façon dont on peut lisser les choses, je vous en ai parlé il y a une centaine de pages, mais c'est à un niveau plus abstrait...

Nous ne savons pas comment faire du commerce, où entrer, où sortir.

c'est pourquoi tout ce que nous avons inventé (tendances, zz, couleurs des chandeliers, rebonds) n'est qu'un non-sens pour tenter de décrire les mouvements du marché, subjectivisme oblige.

Chacun a choisi sa propre direction et chacun s'y enfonce - certains utilisent les couleurs des chandeliers, d'autres les zz, personnellement j'utilise les zz rebonds, etc. Tout cela est très subjectif et c'est ce qui nous sépare, bien qu'au fond nous fassions tous la même chose et que le résultat soit le même.

Je propose de prendre quelque chose qui nous unit tous et qui ne sera pas subjectif, à savoir la cible sous la forme - on peut dire le désir

"Je veux que l'algorithme gagne de l'argent. 5 % par semaine avec un prélèvement maximal. 2%"

cible normale ? tout le monde aime et s'adapte, non ? et tout est clair...

Il ne s'agit pas d'entraîner le filet en fonction d'objectifs que nous avons conçus, comme le GZ et d'autres, qui sont subjectifs, mais il s'agit d'entraîner le filet à la recherche d'un certain minimum ou maximum de profit ou de drawdown, ou de sharp-ratio ou de PV ou d'une combinaison de ces indicateurs.

Je ne me soucie pas de la façon dont vous tradez, mais chaque semaine je devrais obtenir +5% avec un drawdown jusqu'à 2%...... Laissez le filet lui-même négocier et déterminer s'il y a une tendance ou un renversement, en fait, tout ce qui nous intéresse, c'est le profit et le drawdown, et nous contrôlons cela, et nous ne savons pas comment négocier, donc nous ne devrions pas nous lancer là-dedans.....

Comment faire...

Il existe des réseaux qui nous apprennent déjà à jouer à des jeux, notamment Super Mario http://gekkoquant.com/2016/03/13/evolving-neural-networks-through-augmenting-topologies-part-1-of-4/, je propose d'apprendre au réseau la même chose, utilisons une analogie ...

1) Il y a un environnement - les tortues qui crachent, les obstacles sous forme de tuyaux, les boîtes qu'il faut sauter, etc.

2) Il y a des actions - les boutons du joystick sur lesquels le réseau appuie pour contrôler Mario.

3) il y a des points - une récompense pour le réseau

4) il y a une sanction - la mort de Mario

Une fois dans l'environnement (1), le filet commence à appuyer sur les boutons du joystick (2) et ainsi de suite pendant des milliers d'itérations jusqu'à ce qu'il apprenne à terminer le niveau, en marquant un nombre raisonnable de points (3) sans mourir (4).

Analogie avec le commerce

1) il y a un environnement - réception des données dans le réseau - prédicteurs

2) il y a des actions - acheter/vendre/ne rien faire

3) Il y a des points - bénéfice reçu

4) il y a une pénalité - prélèvement obtenu

 
mytarmailS:

Vous ne devez pas entraîner le réseau en fonction de nos objectifs développés comme GZ et autres qui sont subjectifs, mais entraîner le réseau à la recherche d'un minimum ou d'un maximum de profit ou de drawdown ou de sharp-ratio ou de PV ou d'une combinaison de ces indicateurs.

Je suis d'accord, la cible choisie est subjective et déraisonnable. J'ai essayé de créer un modèle de trading avec le paquet rneat, qui a appris un peu de trading sur l'historique, mais qui ne pouvait toujours pas prédire correctement sur les nouvelles données.

Il existe une différence très importante : dans toutes ces expériences avec des jeux, le modèle est entraîné des dizaines de milliers de fois sur chaque jeu. Et son résultat est estimé en jouant à ces mêmes jeux, l'évaluation sur les données pour l'apprentissage, pour ainsi dire. Pour Forex, de bonnes performances sur les données ne suffisent pas pour la formation, il faut que le modèle fonctionne également sur les nouvelles données, et cela semble être un gros problème pour un tel algorithme.

 
Dr. Trader:

1)Je suis d'accord, la cible choisie est subjective et déraisonnable. J'ai essayé de créer un modèle de trading avec le paquet rneat, qui a appris un peu sur l'historique, mais qui ne pouvait toujours pas prédire correctement sur les nouvelles données.

2) Pour forex, de bonnes performances sur des données d'entraînement ne suffisent pas, le modèle doit aussi fonctionner sur de nouvelles données, et apparemment c'est un gros problème pour un tel algorithme.

1) Je ne sais pas comment le dire correctement, mais dans votre expérience vous n'avez pas laissé le réseau penser, vous ne l'avez pas laissé faire des transactions en fixant votre objectif, ainsi vous avez transformé le réseau en un modèle très simple, son idée principale est d'auto-apprendre et vous l'avez fait pour lui, comprenez-vous ?

J'ai dit : laissez-le faire les transactions, laissez-le faire les transactions et tirer les conclusions par lui-même.

nous contrôlons les profits et les retraits, c'est tout... elle est toute seule...

2) Oui, c'est un problème pour n'importe quel algorithme, mais il y a un espoir que si le réseau s'entraîne à bien commercer, sans nos cibles, sans notre subjectivisme, alors il y a une chance qu'il perçoive les nouvelles données de manière plus objective et nous savons déjà comment les algorithmes avec nos cibles traitent les nouvelles données.

 
Andrey Dik:
Je vérifie l'avant. Si vous êtes entré sur le pic - il y a le SL pour cela.
SL est là.
 
Dr. Trader:

Même si c'est implicite, je préfère l'ajouter pour que ce soit plus clair pour tout le monde.

En général, le sur-apprentissage dans les modèles a pour effet que le modèle se souvient très précisément des exemples d'apprentissage. L'apprentissage commence avec le modèle qui dérive certaines règles générales, des dépendances de valeurs cibles sur les prédicteurs, mais plus l'apprentissage se poursuit, plus ces règles dans le modèle deviennent strictes, pour finalement aboutir à des exemples complètement mémorisés, avec une incapacité totale du modèle à prédire sur de nouvelles données. Ceci est géré par la validation croisée, et l'arrêt de la formation lorsque le modèle a appris certaines règles généralisées mais n'a pas encore commencé à apprendre des exemples spécifiques, ce qui donnera de meilleures performances prédictives sur de nouvelles données.

Cela fonctionne très bien pour les données dont les dépendances restent constantes dans le temps - reconnaissance d'images ou de sons, par exemple. Mais le forex est différent dans la mesure où un grand nombre des dépendances trouvées ne sont pas persistantes dans le temps. Le problème n'est pas seulement de parvenir à apprendre sans mémoriser d'exemples d'entraînement, mais aussi de s'assurer d'une manière ou d'une autre que les modèles trouvés restent dans le futur.


Vous soulevez un bon point. La reconnaissance des images et des sons est un processus pseudo-stationnaire, à condition que l'échantillon soit représentatif et que la façon dont les images sont dessinées dans l'échantillon de contrôle ne soit pas donnée à des patients gauchers atteints de paralysie cérébrale (en gros, désolé).

La tâche est plus complète : il s'agit de développer une méthode d'estimation des prédicteurs par rapport à la variable cible qui garantisse que la relation entre les prédicteurs et la variable cible est constante et existera également sur les nouvelles données.

Sélectionner des prédicteurs en fonction de leur importance pour la variable prédite sur la base de leur persistance dans le temps revient presque à rechercher des prédicteurs sur un seul échantillon plus important. En d'autres termes, si vous sélectionnez, dans plusieurs échantillons consécutifs, des prédicteurs qui présentent les mêmes performances dans tous les graphiques, l'ajustement à ces graphiques est simple.

En substance, parmi les N prédicteurs, on en sélectionne n qui auront une bonne performance générale (sur tous les échantillons disponibles). Installé, quelle est la suite ? Et puis vient la véritable avancée, sur laquelle on observe une dégringolade. Quelle en est la raison ?

La raison en est que la méthodologie de sélection des prédicteurs de la parcelle K n'a pas été testée pour générer des résultats de qualité similaire à la parcelle M. En d'autres termes, chaque sous-ensemble de prédicteurs sélectionné doit produire des résultats corrélés sur K et M.

Je peux sélectionner pour vous de tels prédicteurs et un modèle correspondant qui n'apprend pas hors échantillon mais qui parcourt néanmoins très bien la parcelle. En fait, c'est le genre de modèle qui apprendrait bien si tous les échantillons étaient collés ensemble, et je fais en quelque sorte ce collage à la main.

Nous devons trouver un moyen de sélectionner les prédicteurs de manière à ce que, lors de la formation et de la validation, les modèles se comportent comme dans l'image de gauche :

Et c'est seulement à ce moment-là que nous pouvons dire que le modèle passe le test hors échantillon. Pas seulement que certains modèles (prédicteurs) passent hors échantillon.

 
SanSanych Fomenko:

Il semble qu'il n'y ait que nous deux ici, car la position d'Alexei n'est pas tout à fait claire pour moi.


Je ne vois pas en quoi ma position est compliquée. J'ai déjà dit que si je ne vois pas de corrélation entre les performances des modèles dans l'échantillon et hors échantillon, alors je ne produis pas un modèle robuste. Soit vous ne comprenez pas, soit vous ne l'avez jamais fait.

Je dis que si vous ajustez les prédicteurs, ou les paramètres du modèle de manière à ce que le modèle fonctionne bien partout, c'est tout simplement FINE chose à faire. Le modèle sera surajusté, même s'il est protégé contre le surajustement.

 
Alexey Burnakov:

La raison en est que la méthodologie de sélection des prédicteurs sur le site K n'a pas été testée pour générer des résultats de qualité similaire sur le site M. En d'autres termes, chaque sous-ensemble de prédicteurs sélectionnés doit produire des résultats corrélés sur K et M.

Qu'est-ce qui doit être corrélé avec quoi ? Comment faire ? Je ne comprends pas non plus...

Alexey Burnakov:

Soit vous ne comprenez pas, soit vous ne l'avez jamais fait.

Je pense que personne ne l'a fait ici à part vous.)

 
Alexey Burnakov:

Je ne vois pas en quoi ma position est compliquée. J'ai déjà dit que si je ne vois pas de corrélation entre les performances des modèles dans l'échantillon et hors échantillon, alors je ne produis pas un modèle robuste. Soit vous ne comprenez pas, soit vous ne l'avez jamais fait.

Je dis que si vous ajustez les prédicteurs, ou les paramètres du modèle de manière à ce que le modèle fonctionne bien partout, c'est tout simplement une bonne chose à faire. Le modèle sera surajusté, même s'il est protégé contre le surajustement.

Je me suis souvenu - on en a déjà parlé, mais je suis désolé, j'ai oublié.

Il me semble que vous posez des exigences trop rigides, et au prix d'une complexification de l'outil, et un outil plus simple est toujours préférable à un outil complexe.

J'utilise le schéma suivant :

1. Je formule la variable cible

2. j'invente un ensemble de prédicteurs qui se rapportent intuitivement à ma variable cible.

3. À l'aide de mon algorithme, j'élimine les prédicteurs que j'attribue au bruit pour des raisons formelles. Cela me laisse généralement 15 à 20 % du chiffre initial que j'ai inventé.

4. Générer un gros fichier de pas moins de 10000 barres.

5. Je divise ce dossier en deux parties : 7000 и 3000

6. A 7000, j'enseigne le modèle, je teste et je valide.

7. Si les trois chiffres sont approximativement les mêmes, alors je passe à l'étape 8. Sinon, je retourne à l'étape 1.

8. Le modèle formé est utilisé dans la pratique. Je sélectionne les prédicteurs par un des algorithmes (j'utilise rfe) dans la fenêtre courante. Je fais cette sélection sur les sorties pour H1. Rfe à partir de l'ensemble sur lequel j'ai appris le modèle, sélectionne parmi 5 prédicteurs ou plus pour la fenêtre actuelle. La liste des prédicteurs change tout le temps, mais elle est extraite de l'ensemble obtenu lors de la formation initiale.

L'ensemble du dispositif fonctionne de manière robuste depuis l'automne dernier sur le réel. Mais il y a un "mais" essentiel : ce n'est qu'une partie de l'EE. Auparavant, mes EA sur TA ne vivaient pas plus de six mois. Maintenant, je ne vois pas ce problème.

 
mytarmailS:

J'ai aussi une option similaire sur la façon de l'aplanir, je l'ai exprimée il y a environ 100 pages, mais c'est à un niveau plus abstrait...

Nous ne savons pas comment faire du commerce, où entrer, où sortir, nous ne savons rien du tout.

c'est pourquoi tout ce que nous avons inventé (tendances, zz, couleurs des chandeliers, rebonds) n'est qu'un non-sens pour tenter de décrire les mouvements du marché, subjectivisme oblige.

Chacun a choisi sa propre direction et chacun s'y enfonce - certains utilisent les couleurs des chandeliers, d'autres les zz, personnellement j'utilise les zz rebonds, etc. Tout cela est très subjectif et c'est ce qui nous sépare, bien qu'au fond nous fassions tous la même chose et que le résultat soit le même.

Je propose de prendre quelque chose qui nous unit tous et qui ne sera pas subjectif, à savoir la cible sous la forme - on peut dire le désir

"Je veux que l'algorithme gagne de l'argent. 5 % par semaine avec un prélèvement maximal. 2%"

cible normale ? tout le monde aime et s'adapte, non ? et tout est clair...

Vous semblez m'avoir mal compris. Je ne dis pas au filet où entrer, ni avec zz ni avec aucun autre indicateur. Un filet entraîné choisit lui-même où entrer.