Répondre

Question pour Mark - Détails de l'évolution génétique ?

4 réponses

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #114067

Bonjour,

 

J'ai quelques questions à poser : que se passe-t-il exactement lors de la mutation ou de l'accouplement des stratégies en mode évolution génétique ?

 

S'agit-il de deux stratégies du groupe initial ou de plus de deux ?

Prend-il au hasard la règle d'entrée de l'un et la combine-t-il avec la règle de sortie d'un autre ?

Ce processus modifie-t-il les paramètres d'une manière ou d'une autre (comme le fait l'optimisation) ?

Le processus de combinaison est-il aléatoire et à quel niveau ?

 

J'essaie de comprendre à quoi il est plus important de consacrer du temps :

 

  1. Créer des stratégies plus aléatoires
  2. Passer plus de temps à améliorer et à optimiser les stratégies aléatoires
  3. Consacrer du temps à la construction génétique

Il serait très utile d'avoir un aperçu des détails de ce qui arrive aux éléments constitutifs et aux règles au cours du processus génétique.

 

Merci,

 

Mike

0

gentmat

Client, bbp_participant, communauté, 234 réponses.

Visiter le profil

Il y a 8 ans #132028

Bonjour Mike, je pense que Mark utilise la fonction Matlab car il est développeur. Pour comprendre GA, il faut lire ou suivre un cours. 

Je vais essayer d'expliquer ce dont je me souviens de mes études universitaires.

 

Le pool aléatoire est choisi en premier et la première génération aléatoire aura une aptitude de disons 1 ... puis d'autres viendront et se verront attribuer un numéro d'aptitude en fonction de vos critères choisis pour cette aptitude. 

Lorsque toutes les stratégies aléatoires sont créées ... L'algorithme tournera très probablement autour de la stratégie la plus adaptée et c'est pourquoi vous voyez que de nombreuses stratégies se ressemblent lorsque vous choisissez génétique contre aléatoire. L'algorithme génétique produira plus de stratégies similaires en raison de l'aptitude. 

Disons qu'il s'agit d'un énorme cercle à l'intérieur duquel se trouvent de petits points... Vous verrez tous les points qui essaient de se mettre en place mais relativement à cette forme.

 

Maintenant la mutation se produit mais elle est si rare que 10% est si élevé . rappelez-vous l'algorithme génétique est utilisé pour trouver de nombreux problèmes comme l'évolution humaine . donc la mutation se produit chez l'homme pendant des millions d'années d'une manière insignifiante . Vous pouvez donc fixer la mutation à 0,1 pour être plus réaliste, même dans le domaine du commerce. 

 

Aujourd'hui, le croisement est le moyen de résoudre les problèmes plus rapidement et il a été mis au point par de nombreux chercheurs qui ont travaillé avec l'AG et l'ont amélioré. N'oubliez pas non plus que l'AG est toujours une méthode NAIVE et non pas géniale, mais elle a vraiment aidé même pour les problèmes de la NASA et ils ont trouvé que le croisement était la meilleure solution. 

Le croisement va échanger A, Z et Y de la chaîne et commencer à les échanger. Il ne changera pas A ou B, mais la combinaison le fera changer logiquement, mais en tant que paramètres, je doute qu'il change quelque chose, en théorie, il devrait garder A, Z et Y identiques et les croiser jusqu'à ce que la condition physique s'améliore. 

 

Existe-t-il une méthode par défaut, une meilleure méthode ou des paramètres ? NON 

C'est un fait que si vous augmentez le nombre de pools de génération aléatoire, vous obtiendrez de meilleurs résultats génétiques, mais rappelez-vous que cela prend du temps et que vous avez besoin de beaucoup de cpu pour le faire (et un grand pool conduira parfois à des stratégies plus similaires parce que sur 1000, 1 de ces trades est toujours le mieux adapté ; ici vous vivrez un cercle et vous devrez le rendre plus proche d'un pool de 100). et parfois 1000 aide plus et en effet cela augmentera les chances de meilleures stratégies (seulement cette chose peut échouer, mais vous pouvez essayer 1000 ou 2000 et vérifier ce qui se passera).

Random peut donner les mêmes résultats que genetic mais cela prendra plus de temps ... mais comme la consommation de SQ du cpu est un peu bizarre, je peux vous dire que random est bien plus rapide que genetic.

En théorie, la recherche génétique doit donc être plus rapide, mais avec SQ, la recherche génétique prend plus de temps pour préparer le pool, le croisement et ainsi de suite, ce qui aboutit au même résultat.

 

J'espère que j'ai essayé d'aider et que MARK répondra, mais je pense qu'il n'aura pas de paramètres spécifiques car même les professeurs et les personnes qui ont créé GA ne savent toujours pas quels sont les meilleurs paramètres pour GA.

Mais la plupart des mathématiciens s'accordent sur la mutation 0,1 et le croisement 65%.  

0

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #132031

Je suppose que l'essentiel de ce que j'essaie de comprendre est le suivant : GA combine-t-il simplement des éléments de deux stratégies et vérifie-t-il ensuite s'il est meilleur que les stratégies parentes, et à quel niveau combine-t-il les éléments ? Est-ce au niveau de l'entrée, de la sortie, du stop loss, ou des éléments individuels de la logique d'entrée, de sortie et de stop, et les constantes telles que la période de l'indicateur sont-elles modifiées ? La combinaison se fait-elle au niveau de l'opérateur/du bloc de construction ?

 

L'approche GA donne-t-elle de meilleurs résultats que de consacrer du temps à l'amélioration suivie de l'optimisation ou est-il préférable d'opter pour l'approche GA ?

 

Aléatoire -> Améliorer les parties de la stratégie -> Optimiser, et ne pas utiliser GA du tout ?

0

gentmat

Client, bbp_participant, communauté, 234 réponses.

Visiter le profil

Il y a 8 ans #132033

Je suis un développeur mais je n'ai pas écrit sq mais voici les faits de ce que je crois être vrai.
1- Ga combine les règles d'entrée, disons que la stratégie 1 a cci > rsi et que la stratégie 2 a wp > bbands
ga prend le plus adapté de ces 2, restons str 1, et il fait ce qui suit
soit ajouter, remplacer ou échanger
Le premier scénario serait donc cci>wp
ou cci>rsi && wp>bbands
et ainsi de suite
Ga ferait la même chose pour sl et prendrait le profit
Ga n'échangera pas le type d'ordre, il conservera donc le type d'ordre le plus approprié mais ne le modifiera que pour l'entrée et la sortie.
2- Improver ne s'utilise que si l'on a quelque chose en tête pour accélérer la recherche.
3- Il n'y a aucun moyen de répondre à la question de savoir si l'aléatoire puis l'amélioration puis l'optimisation font mieux ou non. Personne ne répondra jamais à cette question à moins d'être ignorant et de penser qu'il sait, mais ce n'est pas le cas.
C'est une question de chance et de vitesse, je suis sûr que si vous avez 200 cœurs à 50ghz, vous aurez plus de chances de trouver de bonnes stratégies qu'un utilisateur normal.
Le hasard a des avantages et des inconvénients, donc l'AG
-radom pros :
a-très rapide surtout en sq3 par rapport à ga
b-peut trouver une variété de nouvelles combinaisons différentes les unes des autres
c-n'utilise pas beaucoup de béliers et n'attend pas de compter, puis attend quelques secondes pour vérifier l'adéquation, puis commence à traiter les nouvelles générations (vitesse à nouveau).
contre :
a - S'il est plus rapide de trouver des stratégies, il est plus lent d'en trouver de bonnes, car parfois le hasard trouve de bonnes entrées mais pas de bonnes sorties, donc si c'était le cas, cette stratégie mènerait à quelque chose plutôt que d'être ignorée par le hasard.
Les pros de l'AG
1 - plus efficace dans la recherche de solutions à des problèmes complexes qui prendraient 400 ans à résoudre, mais qui pourraient prendre 1 an avec l'AG. Pro les scientifiques utilisent l'AG et non le hasard pour résoudre les problèmes
GA cons :
Lenteur due au mode multithread de sq (il y a quelque chose qui ne va pas, espérons que sq4 soit meilleur). random utilise aussi des multi-cœurs mais il semble beaucoup plus rapide.
-Comme je vous l'ai déjà dit, le problème de l'algorithme génétique est qu'il peut tourner autour de la meilleure stratégie et produire à l'infini les mêmes résultats.
Ceci est dû à un indicateur qui donne le meilleur ajustement avec n'importe quelle stratégie aléatoire, donc ga l'utilisera toujours.
Pour résoudre ce problème, il faut réduire le nombre de pools générés aléatoirement, mais il ne faut pas oublier qu'un plus grand nombre d'aléas donne plus de chance à une meilleure stratégie. c'est une épée à deux faces.
Le meilleur et le meilleur, je ne peux pas le dire, même celui qui a créé ga ne peut pas le dire 🙂 .
Essayez le grand bassin, essayez le petit bassin, essayez seulement l'aléatoire .
Je ne pense pas que le forex soit très complexe et que l'on puisse le faire seul.
Vous avez juste besoin de vitesse, d'un ordinateur en panne. Ne vous embêtez pas avec l'amélioration et l'optimisation, juste une banque stricte à la stabilité > 0.85.
De cette façon, vous obtiendrez 10 stratégies en un jour et vous mettrez le nombre de transactions > les transactions maximales dans votre esprit, de cette façon, seules les stratégies qui sont à moitié terminées sont stockées et il n'y a pas beaucoup de travail à faire autre que d'essayer la stratégie sur différents symboles et différents temps.

0

seaton

Client, bbp_participant, communauté, 161 réponses.

Visiter le profil

Il y a 8 ans #132038

Les AG en général sont un moyen de rechercher rapidement de grands espaces d'entrée pour donner des résultats qui, bien qu'ils ne soient pas optimaux, sont généralement très bons, contrairement à une approche par force brute qui prendra beaucoup de temps pour rechercher le même espace d'entrée et trouver les mêmes résultats, cependant si vous utilisez l'approche par force brute et que vous disposez de suffisamment de temps, vous trouverez les résultats que vous recherchez. BEST L'approche aléatoire est tout simplement une recherche aléatoire dans l'espace d'entrée qui, avec un peu de chance, aboutira à un résultat intéressant.

 

La théorie qui sous-tend l'AG est que les entrées d'un vaste espace de recherche sont mappées/encodées dans un génome (c'est-à-dire qu'il peut s'agir d'un tableau ou d'une chaîne représentant les entrées à rechercher). Dans le cas de SQ, ce sont les fonctions qui sont mappées pour former une stratégie, et l'espace de recherche, le marché. Une fonction d'aptitude basée sur des règles est appliquée au génome pour déterminer quel est le bon résultat et qui doit survivre jusqu'à la population suivante.

 

Une population initiale est créée à l'aide de génomes générés de manière aléatoire (ou parfois ensemencés avec des génomes prépeuplés, c'est-à-dire que vous pouvez avoir quelques solutions non optimales que vous souhaitez approfondir). Comme dans la théorie de l'évolution, les génomes qui ont la meilleure forme survivent (résultat de l'application de la fonction de forme à chaque génome de la population), seuls ceux qui ont la meilleure forme survivent et, avec les nouveaux génomes générés aléatoirement pour constituer la population, des croisements et des mutations se produiront, Le croisement simule la reproduction et une paire de génomes parentaux échangent une partie de leur génome pour former les enfants de la nouvelle génération. Chaque génome de la nouvelle population a une petite chance aléatoire de mutation, cette mutation permet à la population de ne pas rester bloquée dans des situations de type maxima locaux, la fonction d'aptitude est appliquée et tout recommence.

 

Au fil du temps, la valeur d'aptitude globale de la population augmente généralement jusqu'à un point où elle n'augmentera plus beaucoup, c'est-à-dire qu'il y a stagnation de l'aptitude. Lorsque cela se produit, c'est généralement parce que la population a trouvé un maximum local dans l'espace de recherche et c'est généralement le signe qu'elle ne peut plus évoluer. Il est donc préférable de recommencer avec une nouvelle population pour essayer de trouver un autre maximum local.

 

Pour répondre à votre question, dans SQ les résultats utilisant GA VS Random, IMHO est que GA trouvera des stratégies rentables plus rapidement que Random, cependant la population résultante sera similaire et peut ne pas être plus optimale que les stratégies générées par Random, donc les deux auront besoin d'une certaine forme d'optimisation. En réalité, il s'agit dans les deux cas d'une forme de recherche, mais l'AG trouvera des solutions plus rapidement, mais la solution trouvée, bien que bonne, peut ne pas être optimale, c'est-à-dire qu'elle ne correspond pas à un maximum global. Ce que je fais, c'est que je commence par une solution aléatoire et que mes meilleures solutions sont utilisées pour ensemencer GA.

 

Il y a bien longtemps (à la fin des années 90), pour mon projet de fin d'études, j'ai écrit un système d'exploitation multitâche pour les systèmes embarqués sur le MPU Motorola 68HC11 qui utilisait GA comme planificateur de tâches.

 

Stephen...

1

Affichage de 4 réponses de 1 à 4 (sur un total de 4)