Optimisation et tests hors échantillon.

 

Bonjour à tous.

Après avoir optimisé un EA, nous sommes souvent amenés à sortir de l'échantillonnage plus d'une douzaine de jeux de paramètres suggérés par l'optimiseur.

J'ai une idée pour optimiser les Expert Advisors en dehors de l'échantillon. Supposons que nous "chargions" le conseiller expert d'une optimisation par un certain nombre de paramètres. Par exemple, nous avons fixé une date allant du 1er janvier 2006 au 1er janvier 2007. 2006 au 1er janvier 2007.

Nous avons reçu plusieurs milliers d'Expert Advisors. Après cela, nous sauvegardons la page avec lesRÉSULTATS DE L'OPTIMISATION comme un fichier séparé. Ensuite, nous fixons la période historique suivante pour l'optimisation, c'est-à-dire que nous ajoutons un mois ou deux, ou autant que nécessaire.

Dans notre cas, nous avons fixé par exemple la date du 1er janvier. Et encore une fois, nous permettons l'optimisation. L'optimiseur ne doit pas prendre les paramètres dans les PROPRIÉTÉS DE L'EXPERT, mais les resélectionner un par un à partir du fichier que nous avons enregistré après la première optimisation. Après cette seconde optimisation, il ne nous reste plus que les vAriens qui ont rapporté des bénéfices en dehors de l'échantillon !

Le résultat, idéalement, est que nous obtenons les "paramètres idéaux" avec lesquels travailler et que nous pouvons tester en ligne par la suite !

Je pense que ce sera un ajout utile au testeur mt4. Probablement, et très probablement, elle est déjà mise en œuvre par quelqu'un quelque part. Si quelqu'un le sait, merci de partager le lien !

En raison de mes modestes connaissances, je ne parviens pas à trouver comment mettre cette idée en pratique.

 
leonid553, vous allez dans la bonne direction, puisque l'"optimisation" existante sans test sur les données hors échantillon est un pur ajustement de courbe. Mais l'algorithme de base devrait être plus complexe, comme dans les programmes de réseaux neuronaux. Toute "optimisation" devrait être exécutée sur tous les ensembles de données à la fois (c'est le souhait des développeurs). Vous pouvez, bien sûr, travailler avec seulement deux ensembles de données, mais il est préférable d'en prévoir trois - formation (A), validation (B) et test (C). Eh bien, dans les conditions actuelles, vous devrez travailler plus ou moins comme vous le suggérez.
 
Il est possible pour l'expert de spécifier un fichier avec des paramètres, qui sera ensuite utilisé dans l'optimisation. Ou cela peut être plus simple, optimiser sur un intervalle de temps, puis sur un autre, enregistrer le tout dans excel et comparer :-)
 
dimontus:
Ou cela pourrait être plus simple, optimiser sur un intervalle de temps, puis sur un autre, enregistrer le tout dans excel et comparer :-)
Non, Dimontus, ça ne marche pas comme ça. Deux ajustements de courbe différents sur des données différentes ne serviront à rien.
 
Donc, s'ils sont identiques, c'est-à-dire que les mêmes paramètres sur des intervalles de temps différents donnent des résultats similaires, n'est-ce pas ce que veut l'auteur du fil de discussion ?
 
Quel est l'intérêt de faire un ajustement de courbe sur le second si vous pouvez simplement passer les ensembles d'optimisation prometteurs sur le premier à travers le second ?
 
Qu'est-ce que tu veux dire ?
 
J'ai essayé la variante suivante :
Je teste le conseiller expert sur l'ensemble de la période disponible, je sélectionne le segment avec le pire gain attendu (creux sur le graphique) et je l'optimise, ce pire intervalle
J'élimine (autant que possible) les extrema locaux à la main.
Le travail de routine consiste ensuite à insérer les données d'optimisation du pire intervalle dans l'optimiseur et à exécuter le conseiller expert avec ces données sur l'ensemble de l'intervalle disponible.
d'après ce que je reçois, je sélectionne la viande...:-)
 

À la lumière de ce qui précède, je vois le chemin suivant :

Pour construire un simple conseiller expert supplémentaire, - et y charger tous les jeux de paramètres obtenus après la première optimisation.

Chaque ensemble aura son propre index. Et ensuite, nous insérons simplement cet EA supplémentaire dans le testeur à la place du premier et nous l'optimisons au-delà de l'échantillon, et le paramètre d'optimisation sera le NOMBRE LOCAL de jeux insérés !

C'est peut-être un peu délicat, mais c'est bien mieux que l'optimisation manuelle hors échantillon ...

Il ne nous reste plus qu'à considérer la polyvalence de ce complément.

 
C'est logique, leonid553. Quand vous l'aurez fait, déposez-le dans la base de code ou ici, si vous le voulez bien. Je suis sûr que beaucoup de gens le veulent déjà... J'y pense depuis longtemps, mais je n'arrive pas à mettre la main dessus. Ce n'est que pour les paramètres d'optimisation hors échantillon que je dois y réfléchir, car je dois d'une manière ou d'une autre tenir compte des résultats des tests sur le premier ensemble de données.
 
leonid553:

À la lumière de ce qui précède, je vois le chemin suivant :

Pour construire un simple conseiller expert supplémentaire, - et y charger tous les jeux de paramètres obtenus après la première optimisation.

Chaque ensemble aura son propre index. Et ensuite, nous insérons simplement cet EA supplémentaire dans le testeur à la place du premier et nous l'optimisons au-delà de l'échantillon, et le paramètre d'optimisation sera le NOMBRE LOCAL de jeux insérés !

C'est peut-être un peu délicat, mais c'est bien mieux que l'optimisation manuelle hors échantillon ...

Il ne nous reste plus qu'à considérer la polyvalence de ce complément.

Je ne pense pas que ce sera aussi simple, pour chaque paramètre optimisé, plusieurs extrema seront identifiés en relation avec d'autres paramètres. Il sera peut-être possible de trouver une solution si ces extrema sont introduits à l'entrée du réseau neuronal.
Raison: