Question sur l'optimisation génétique

 

J'ai décidé de commencer à optimiser le TS, mais comme il y a beaucoup de paramètres à optimiser - 13, et que le TS est conçu pour M1 et qu'il n'y a pas plus de 10 transactions par mois, j'ai décidé d'utiliser un algorithme génétique et de prendre l'historique pour 1 mois.

Au premier passage, le temps calculé était de plus de 250 heures et le nombre de combinaisons de plus de 83 milliards. Dans l'article "Algorithmes génétiques dans MetaTrader 4. A Comparison with the Optimizer's Direct Search" affirme que nous ne devons pas nous concentrer sur le temps calculé car il ne correspond pas à la réalité dans l'optimisation génétique, mais l'article a été écrit il y a longtemps, peut-être que les dernières versions de MT4 y correspondent déjà ? Alors, je dois attendre ? Je ne m'attendais à aucun problème d'optimisation lorsque j'ai créé le TS, mais il s'avère que le TS semble être bon, mais je ne peux pas le régler manuellement, il y a trop de paramètres et de petites modifications de ceux-ci entraînent une restructuration importante du système.

Pouvez-vous également me dire ce que signifient les chiffres en bas à gauche : le premier est le nombre de courses, entre parenthèses - le nombre de combinaisons, et ce qui se trouve entre les deux sous / ?

 
Angela >> :

J'ai décidé de commencer à optimiser le TS, mais comme il y a beaucoup de paramètres à optimiser - 13, et que le TS est conçu pour M1 et qu'il n'y a pas plus de 10 transactions par mois, j'ai décidé d'utiliser un algorithme génétique et de prendre l'historique pour 1 mois.

Lors de la première exécution, le temps calculé était de plus de 250 heures et le nombre de combinaisons était de plus de 83 milliards. Dans l'article "Algorithmes génétiques dans MetaTrader 4. A Comparison with the Optimizer's Direct Search" affirme que nous ne devons pas nous concentrer sur le temps calculé car il ne correspond pas à la réalité dans l'optimisation génétique, mais l'article a été écrit il y a longtemps, peut-être que les dernières versions de MT4 y correspondent déjà ? Alors, je dois attendre ? Je ne m'attendais à aucun problème d'optimisation lorsque j'ai créé le TS, mais il s'avère que le TS semble être bon, mais je ne peux pas le régler manuellement, il y a trop de paramètres et de petites modifications de ceux-ci entraînent une restructuration importante du système.

Dites-moi aussi ce que signifient les chiffres dans le coin inférieur gauche : le premier est le nombre de courses, entre parenthèses - le nombre de combinaisons, et ce qui se trouve entre les deux sous / ?

Les nombres en génétique signifient le nombre de combinaisons / combinaisons en génétique.

C'est une sorte d'auto-promotion pour montrer à quel point nous sommes de grands MetaQuotesters et combien de temps nous pouvons gagner grâce à la génétique.

\Il y a beaucoup de paramètres à optimiser. Je conseille de diviser les paramètres en paires et en trios,

(ici, vous devrez réfléchir à ce qui est associé à quoi) et faire la sélection par étapes.

Il est plus pratique de regarder un graphique d'optimisation bidimensionnel de cette façon.

En général, la génétique choisit des maxima épars et il est toujours préférable d'effectuer une recherche simple.

J'utilise personnellement la génétique pour trouver une zone locale où je fais déjà une recherche complète.

 
Urain писал(а) >>

En génétique, les chiffres font référence au nombre de quotas/quotas en génétique (le nombre d'échantillonnages directs).

Il s'agit d'une sorte d'auto-publicité pour montrer à quel point nous sommes cool en tant que MetaQuotesters et combien de temps nous vous faisons gagner grâce à la génétique.

\Il y a beaucoup de paramètres à optimiser. Je conseille de les diviser en paires et en trios,

(vous devrez réfléchir à ce qui est associé à quoi) et effectuer la sélection par étapes.

Il est plus pratique de regarder un graphique d'optimisation bidimensionnel de cette façon.

En général, la génétique choisit des maxima épars et il est toujours préférable d'effectuer une recherche simple.

J'utilise personnellement la génétique pour rechercher une zone locale que j'utiliserais ensuite pour effectuer une recherche par force brute.

Le problème est que la plupart des paramètres d'optimisation sont liés les uns aux autres par des rétroactions et que la modification de l'un d'entre eux entraîne la restructuration de plusieurs autres et que l'image change. La stratégie est conçue de telle sorte que l'optimum sera recherché sur l'ensemble de l'hyperplan des paramètres utilisés. Je vais donc probablement devoir abandonner cette stratégie, bien que ce soit dommage bien sûr, en l'exécutant sur l'historique du 1.01.2007 jusqu'à maintenant, même sans optimisation, le TS a montré une stabilité, au moins il n'est pas tombé à zéro, bien qu'il soit conçu pour une sur-optimisation hebdomadaire. Au cours des deux dernières années, il y a eu des hauts et des bas cycliques.

Je vais y aller pour déstresser, et commencer à élaborer une nouvelle stratégie.

 
A l'ouverture de la barre, essayez d'optimiser
 
83 milliards de dollars, ça pourrait vous mettre dans le mauvais endroit. D'après ce que j'ai compris, un testeur, si le nombre total d'exécutions dépasse un certain nombre (et le vôtre le fait certainement), ne fait pas plus de 10 000 exécutions en génétique. C'est-à-dire que le testeur peut, après avoir obtenu des résultats positifs quelque part dans un espace énorme de variantes, commencer à croiser ces résultats, et peut simplement ne pas avoir le temps de regarder les résultats vraiment bons.... Vous devriez essayer d'augmenter le pas des paramètres. Il y aura alors moins d'options. Puis, après une première approximation, examinez plus en détail le domaine qui vous intéresse le plus.
 
Angela >> :

Le problème est que la plupart des paramètres d'optimisation sont liés les uns aux autres par des rétroactions, et que la modification de l'un d'entre eux entraîne le réarrangement de certains autres, ce qui modifie l'image.

C'est généralement bien. Ainsi, grâce à un graphique d'optimisation bidimensionnel, vous pouvez identifier la corrélation et l'exprimer par un coefficient dans le code.

exclure complètement un terme d'optimisation. Par exemple, vous remarquez que les valeurs maximales sur un graphique en 2D vont en diagonale.

Cela signifie que vous pouvez rendre un paramètre dépendant dans le code ( x2 = x1 + 3 )et optimiser uniquement x1. Bonne chance.

 

Je ne voulais pas attendre la fin de l'optimisation, alors je l'ai désactivée. Bien que TS soit stable et montre de bons résultats sur les trades rentables, mais attendre des semaines pour l'optimisation est trop.

Par exemple, voici l'intervalle présenté dans le graphique ci-dessus mais sur les deux derniers mois.

D'ailleurs, j'ai une optimisation séparée de l'achat et de la vente. En outre, il y a trop peu d'offres et, à cause de la mauvaise qualité de l'Internet, j'ai dû éteindre mon système de négociation le soir, alors que je pouvais attendre au moins 2 à 3 semaines pour trouver des offres.

J'ai donc supprimé le stress hier et commencé à développer de nouvelles TS. Je vais faire plus simple et 390 lignes de code avec des conditions logiques c'est trop, et freine fort, le test par les prix d'ouverture depuis 2007 a pris 4,5 heures. En outre, dans un mois, je ne comprendrai pas moi-même ce qu'il y a dans ces conditions logiques nakochelya.

 
Angela >> :

De plus, dans un mois, je ne saurai même pas ce que j'ai fait dans ces conditions logiques.

Rédigez des commentaires détaillés. ;-). Puisque le TS est rejeté, il peut être publié dans la base de code comme exemple, peut-être qu'une refactorisation sera possible.

 

Réaliser une nouvelle version du TS. J'ai fait un bloc, et avant de continuer, j'ai décidé d'optimiser certains paramètres, de sorte que je puisse continuer à ajuster avec des réglages initiaux plus ou moins optimaux. J'ai optimisé 7 paramètres, le temps estimé de l'optimisation - 106 heures, bien qu'après l'exécution de l'optimisation il augmente peu à peu, le nombre de combinaisons - 44,274,384, le nombre estimé d'exécutions - 10,496. Au départ, j'ai réglé l'historique sur 1 mois, l'optimisation a commencé, les résultats des runs ont commencé à apparaître dans la fenêtre "résultats de l'optimisation". J'ai reçu 186 offres en un mois. J'ai décidé de diviser par deux l'historique pour accélérer l'optimisation, après le lancement le temps était de 57 heures, mais les fenêtres "résultats d'optimisation" et "calendrier d'optimisation" n'ont rien montré, quel est le problème ?

 
Angela >> :

Réaliser une nouvelle version du TS. J'ai fait un bloc, et avant de continuer, j'ai décidé d'optimiser certains paramètres, afin de pouvoir continuer à régler avec des paramètres initiaux plus ou moins optimaux. J'ai optimisé 7 paramètres, le temps estimé de l'optimisation - 106 heures, bien qu'après le début de l'optimisation il augmente étape par étape, le nombre de combinaisons - 44,274,384, le nombre estimé d'exécutions - 10,496. Au départ, j'ai réglé l'historique sur 1 mois, l'optimisation a commencé, les résultats des runs ont commencé à apparaître dans la fenêtre "résultats de l'optimisation". J'ai reçu 186 offres en un mois. J'ai décidé de diviser par deux l'historique pour accélérer l'optimisation, après avoir fait tourner le robot pendant 57 heures, mais les fenêtres "résultats d'optimisation" et "calendrier d'optimisation" n'ont rien montré, quel est le problème ?

1 Les paramètres de la fenêtre "Optimisation" sont probablement fixés dans les contraintes, qu'aucune exécution n'a pu surmonter,

S'il n'y a pas de seuil gagnant, cela signifie qu'il n'y a rien à choisir. Laissez un crochet à côté de "Profit maximum",

Si au moins une manche permet de franchir la barrière et de réaliser au moins quelques bénéfices, elle sera affichée.


2 Si vous ne pouvez pas réduire le nombre de paramètres optimisés en même temps, augmentez le pas.

Puis, après avoir vu le résultat (dans le champ de quelles valeurs), exécutez avec un pas plus petit.

Par exemple : Per { début, étape, fin}

Si x1 {10,10,100}, en conséquence, nous verrons un cluster sombre sur x1 de 60 à 80.

Effectuez une deuxième exécution avec les paramètres x1 {60,1,80} et trouvez l'optimum.

(Quand je parle d'un graphique, je veux dire un graphique dimensionnel).

 
Angela >> :

>> Quel est le problème ?

Qui sait, les miracles arrivent. Habituellement, avant de l'exécuter pour l'optimisation, je fais des exécutions visuelles avec les paramètres prévus, en affichant les données maximales requises en commentaire. J'arrive à voir beaucoup de choses intéressantes en même temps, ainsi qu'en examinant le journal. Mauvais historique, erreurs d'indicateurs, erreurs de conseillers experts, etc. Après leur élimination, on a davantage confiance dans la précision de l'optimisation.