MetaTrader 4 - Tester Algorithmes génétiques vs Simple Search dans le MetaTrader 4 Optimizer 1. Quels sont les algorithmes génétiques La plate-forme MetaTrader 4 offre maintenant des algorithmes génétiques d'optimisation des entrées Expert Advisors. Ils réduisent considérablement le temps d'optimisation sans aucune invalidation importante des tests. Leur principe de fonctionnement est décrit dans l'article intitulé Genetic Algorithms: Mathematics in details. Cet article est consacré à l'optimisation des inputs de EAs en utilisant des algorithmes génétiques par rapport aux résultats obtenus en utilisant une recherche directe et complète des valeurs de paramètres. 2. Le conseiller expert Pour mes expériences, j'ai légèrement terminé l'EA nommée CrossMACD que vous avez pu connaître à partir de l'article intitulé Gestion des commandes - Simple: Ajout de StopLoss et TakeProfit aux positions placées. Ajout de Trailing Stop. Paramètre utilisé OpenLuft pour filtrer les signaux: Maintenant le signal viendra si la ligne zéro est croisée à un certain nombre de points (avec la précision à une décimale). Ajout du paramètre CloseLuft pour le filtrage similaire des signaux proches. Mettez en variables expérimentales les périodes de la lente et les moyennes rapides utilisées pour les calculs MACD. Maintenant, il est pratiquement terminé Expert Advisor. Il sera pratique pour l'optimiser et l'utiliser dans le commerce. Vous pouvez télécharger EA CrossMACDDeLuxe. mq4 sur votre PC et le tester indépendamment. 3. Optimisation Maintenant, nous pouvons commencer à optimiser l'EA. Trois tests seront effectués avec différentes quantités d'optimisation des recherches. Cela aidera à comparer les bénéfices obtenus en utilisant des algorithmes génétiques dans diverses situations. Après chaque test, je supprimerai manuellement le cache du testeur pour les tests suivants afin de ne pas utiliser les combinaisons déjà trouvées. Ceci n'est nécessaire que pour que l'expérience soit plus précise - normalement, le chaching automatisé des résultats améliore simplement l'optimisation répétée. Comparer les résultats. L'optimisation à l'aide d'algorithmes génétiques sera faite deux fois: la première fois - afin de trouver le profit maximal (Profit), la deuxième fois pour trouver le plus grand facteur de profit (Profit Factor). Ensuite, les trois meilleurs résultats pour les deux méthodes d'optimisation seront donnés dans le tableau récapitulatif classé par les colonnes données. L'optimisation est purement expérimentale. Cet article n'est pas destiné à trouver des intrants qui ferait vraiment les plus grands profits. Symbole du diagramme EURUSD diagramme de temps 1 période de test 2 années de modélisation Entrées de prix ouverts uniquement recherchées: Il faut noter que, lors de l'utilisation d'algorithmes génétiques, le temps d'optimisation attendu est approximativement le même que celui de l'optimisation par recherche d'entrées directes. La différence est qu'un algorithme génétique évalue en permanence les combinaisons certainement infructueuses et, de cette façon, réduit la quantité de tests nécessaires plusieurs fois (peut-être plusieurs dizaines, des centaines, des milliers de fois). C'est pourquoi vous ne devriez pas être adaptés au temps d'optimisation attendu lors de l'utilisation d'algorithmes génétiques. Le temps réel d'optimisation sera toujours plus court: Comme vous le voyez, l'optimisation utilisant des algorithmes génétiques a pris moins de quatre minutes au lieu des cinq heures et demie prévues. Graphique d'optimisation avec des algorithmes génétiques diffère également de celui avec la recherche directe. Comme les mauvaises combinaisons ont déjà été éliminées, les tests ultérieurs sont conduits avec des combinaisons d'entrées qui sont plus rentables par défaut. C'est pourquoi le graphe d'équilibre monte: Considérons les résultats des deux méthodes d'optimisation dans tous les détails. La situation a changé. Les périodes d'optimisation coïncident (une erreur insignifiante est admissible), et les résultats sont identiques. Cela peut s'expliquer par le fait que l'optimisation se composait de seulement 1331 recherches et cette quantité de passes n'est tout simplement pas suffisant pour l'utilisation d'algorithmes génétiques. Ils n'ont pas le temps de prendre de la vitesse - l'optimisation est plus rapide en raison du filtrage des combinaisons d'intrants certainement perdants, mais avec une telle quantité de combinaisons que ci-dessus, les algorithmes génétiques ne peuvent pas définir ce que les parents (combinaisons d'intrants) Donc, il n'y a aucun sens à les utiliser. 4. Conclusions Les algorithmes génétiques sont un bon ajout à l'optimiseur de 4 stratégies. L'optimisation est considérablement améliorée si la quantité de recherches est importante, les résultats coïncident avec ceux obtenus par une optimisation régulière. Maintenant, il n'y a aucun sens à utiliser la recherche complète dans les entrées. Les algorithmes génétiques trouveront le meilleur résultat plus rapidement et non moins efficacement. 5. Postface Après avoir écrit l'article, j'ai satisfait ma curiosité et lancé l'optimisation de CrossMACDDeLuxe sur toutes les entrées. Le montant des combinaisons faites plus de cent millions (103 306 896). L'optimisation utilisant des algorithmes génétiques a pris seulement 17 heures, tandis que l'optimisation en utilisant la recherche dans toutes les entrées prendrait environ 35 ans (301 223 heures). Conclusions sont à vous. Utiliser des algorithmes génétiques pour prévoir les marchés financiers Burton a suggéré dans son livre, A Random Walk Down Wall Street, (1973) que, Un singe yeux bandés jetant des fléchettes sur les pages financières des journaux pourrait sélectionner un portefeuille qui ferait exactement comme Bien choisi par des experts. Bien que l'évolution ait pu rendre l'homme plus intelligent à la cueillette des stocks, la théorie de Charles Darwins est très efficace lorsqu'elle est appliquée plus directement. (Pour vous aider à choisir des stocks, consultez Comment choisir un stock.) Quels sont les algorithmes génétiques Les algorithmes génétiques (AG) sont des méthodes de résolution de problèmes (ou heuristiques) qui imitent le processus de l'évolution naturelle. Contrairement aux réseaux neuronaux artificiels (RNA), conçus pour fonctionner comme des neurones dans le cerveau, ces algorithmes utilisent les concepts de sélection naturelle pour déterminer la meilleure solution pour un problème. En conséquence, les AG sont couramment utilisés comme optimiseurs qui ajustent les paramètres pour minimiser ou maximiser une certaine mesure de rétroaction, qui peut ensuite être utilisé indépendamment ou dans la construction d'une ANN. Sur les marchés financiers. Les algorithmes génétiques sont le plus couramment utilisés pour trouver les meilleures valeurs de combinaison de paramètres dans une règle de négociation, et ils peuvent être intégrés dans les modèles ANN conçus pour cueillir des actions et identifier les métiers. Plusieurs études ont démontré que ces méthodes peuvent s'avérer efficaces, y compris les algorithmes génétiques: Genesis of Stock Evaluation (2004) de Rama, et The Applications of Genetic Algorithms in Stock Market Data Mining Optimization (2004) par Lin, Cao, Wang, Zhang. (Pour en savoir plus sur ANN, voir Réseaux de neurones: Profits de prévision.) Comment fonctionnent les algorithmes génétiques Les algorithmes génétiques sont créés mathématiquement à l'aide de vecteurs, qui sont des quantités qui ont une direction et une grandeur. Les paramètres de chaque règle commerciale sont représentés par un vecteur unidimensionnel qui peut être considéré comme un chromosome en termes génétiques. En attendant, les valeurs utilisées dans chaque paramètre peuvent être considérées comme des gènes, qui sont alors modifiés en utilisant la sélection naturelle. Par exemple, une règle de négociation peut impliquer l'utilisation de paramètres tels que la convergence-divergence moyenne mobile (MACD). Moyenne mobile exponentielle (EMA) et stochastique. Un algorithme génétique introduirait alors des valeurs dans ces paramètres dans le but de maximiser le bénéfice net. Avec le temps, de petits changements sont introduits et ceux qui font un impact souhaitable sont retenus pour la prochaine génération. Il existe trois types d'opérations génétiques qui peuvent alors être effectuées: Les croisements représentent la reproduction et le croisement biologique vu en biologie, par lequel un enfant prend certaines caractéristiques de ses parents. Les mutations représentent une mutation biologique et sont utilisées pour maintenir la diversité génétique d'une génération d'une population à l'autre en introduisant de petits changements aléatoires. Les sélections sont l'étape à laquelle les génomes individuels sont choisis parmi une population pour une reproduction ultérieure (recombinaison ou croisement). Ces trois opérateurs sont ensuite utilisés dans un processus en cinq étapes: Initialiser une population aléatoire, où chaque chromosome est n-longueur, n étant le nombre de paramètres. Autrement dit, un nombre aléatoire de paramètres est établi avec n éléments chacun. Sélectionnez les chromosomes, ou les paramètres, qui augmentent les résultats souhaitables (probablement le bénéfice net). Appliquer des mutations ou des opérateurs de croisement aux parents sélectionnés et générer une progéniture. Recombiner la progéniture et la population actuelle pour former une nouvelle population avec l'opérateur de sélection. Répétez les étapes 2 à 4. Au fil du temps, ce processus se traduira par des chromosomes (ou paramètres) de plus en plus favorables à utiliser dans une règle commerciale. Le processus est alors terminé lorsqu'un critère d'arrêt est respecté, ce qui peut inclure le temps de fonctionnement, l'aptitude, le nombre de générations ou d'autres critères. (Pour en savoir plus sur MACD, lisez Trading The MACD Divergence.) Utilisation des algorithmes génétiques dans le commerce Alors que les algorithmes génétiques sont principalement utilisés par les commerçants institutionnels quantitatifs. Les commerçants individuels peuvent exploiter la puissance des algorithmes génétiques - sans un diplôme en mathématiques avancées - en utilisant plusieurs progiciels sur le marché. Ces solutions vont de paquets logiciels autonomes orientés vers les marchés financiers vers Microsoft Excel add-ons qui peuvent faciliter plus d'analyse pratique. Lors de l'utilisation de ces applications, les opérateurs peuvent définir un ensemble de paramètres qui sont ensuite optimisés à l'aide d'un algorithme génétique et d'un ensemble de données historiques. Certaines applications peuvent optimiser quels paramètres sont utilisés et leurs valeurs, alors que d'autres se concentrent principalement sur l'optimisation des valeurs pour un ensemble donné de paramètres. (Pour en savoir plus sur ces stratégies dérivées des programmes, voir La puissance des métiers du programme.) Conseils et astuces d'optimisation importants La mise en place d'un système de négociation autour des données historiques plutôt que d'identifier un comportement répétitif représente un risque potentiel pour les commerçants utilisant algorithmes génétiques. Tout système commercial utilisant des GA devrait être testé sur le papier avant l'utilisation en direct. Le choix des paramètres est une partie importante du processus et les opérateurs doivent rechercher des paramètres corrélés aux variations du prix d'un titre donné. Par exemple, essayez différents indicateurs et voyez si tout semble se corréler avec les virages du marché majeur. Les algorithmes génétiques sont des moyens uniques pour résoudre des problèmes complexes en exploitant la puissance de la nature. En appliquant ces méthodes à la prévision des prix des titres, les opérateurs peuvent optimiser les règles de négociation en identifiant les meilleures valeurs à utiliser pour chaque paramètre pour un titre donné. Cependant, ces algorithmes ne sont pas le Saint Graal, et les commerçants devraient faire attention de choisir les bons paramètres et pas l'ajustement de courbe. (Pour en savoir plus sur le marché, consultez Écoutez le marché, pas ses experts.) SnowCron Algorithme génétique dans les systèmes de négociation FOREX utilisant Algorithme génétique pour créer rentable FOREX Trading Strategy. Algorithme génétique dans le réseau de réseaux neuronaux du cortex Feedforward Backpropagation Réseau neuronal Application pour les calculs génétiques basés trading Forex. Cet exemple utilise des concepts et des idées de l'article précédent, alors s'il vous plaît lisez Algorithme génétique réseau neuronal dans Forex Trading Systems d'abord, mais il n'est pas obligatoire. À propos de ce texte Tout d'abord, veuillez lire l'avertissement. Ceci est un exemple d'utilisation de la fonctionnalité de l'algorithme génétique du logiciel de réseaux neuronaux de Cortex, et non un exemple de la façon de faire du commerce rentable. Je ne suis pas votre gourou, je ne devrais pas non plus être responsable de vos pertes. Cortex Neural Networks Software a des réseaux de neurones en elle, et FFBP nous avons discuté avant est seulement une façon de choisir des stratégies de trading forex. C'est une bonne technique, puissante et appliquée correctement, très prometteuse. Cependant, il a un problème - pour enseigner le Réseau Neural. Nous devons connaître la sortie souhaitée. Il est assez facile de le faire lorsque nous faisons l'approximation de la fonction, nous prenons simplement la valeur réelle d'une fonction, parce que nous savons ce qu'elle devrait être. Quand nous faisons des prévisions de réseaux neuronaux. Nous utilisons la technique (décrite dans les articles précédents) d'enseigner le réseau neuronal sur l'histoire, encore une fois, si nous prédisons, disons, un taux de change, nous savons (pendant la formation) ce que la prédiction correcte est. Cependant, lorsque nous construisons un système de négociation, nous n'avons aucune idée de ce que la décision de négociation correcte est, même si nous savons le taux de change Comme la question de fait, nous avons beaucoup de stratégies de trading de forex, nous pouvons utiliser à tout moment, Nous devons trouver un bon - comment Que devons-nous nourrir comme la sortie souhaitée de notre réseau neuronal Si vous avez suivi notre article précédent, vous savez, que nous avons triché pour faire face à ce problème. Nous avons enseigné le réseau neuronal pour faire la prévision du taux de change (ou taux de change basé indicateur), puis utilisé cette prédiction pour faire du commerce. Ensuite, en dehors de la partie réseau neuronal du programme, nous avons pris une décision sur quel réseau neuronal est le meilleur. Algorithmes génétiques peuvent traiter ce problème directement, ils peuvent résoudre le problème déclaré comme trouver les meilleurs signaux commerciaux. Dans cet article, nous allons utiliser Cortex Neural Networks Software pour créer un tel programme. Utilisation de l'algorithme génétique Les algorithmes génétiques sont très bien développés et très diversifiés. Si vous voulez en savoir plus sur eux, je vous suggère d'utiliser Wikipedia, car cet article est seulement sur ce que le logiciel Cortex Neural Networks peut faire. Avoir un logiciel de réseaux neuronaux Cortex. Nous pouvons créer un réseau neuronal qui prend une certaine entrée, disons, les valeurs d'un indicateur, et produit une certaine sortie, disons, les signaux de négociation (acheter, vendre, tenir.) Et arrêter la perte de prendre des niveaux de profit pour les postes à ouvrir. Bien sûr, si nous semons ce réseau neuronal poids s au hasard, les résultats commerciaux seront terribles. Cependant, disons que nous avons créé une douzaine de tels NN. Ensuite, nous pouvons tester la performance de chacun d'entre eux, et choisir le meilleur, le gagnant. C'était la première génération de NN. Pour continuer à la deuxième génération, nous devons permettre à notre gagnant de procréer, mais pour éviter d'obtenir des copies identiques, permet d'ajouter un bruit aléatoire à ses poids descendants. Dans la deuxième génération, nous avons notre gagnant de première génération et ses copies imparfaites (mutées). Permet de faire des tests à nouveau. Nous aurons un autre gagnant, qui est MIEUX alors tout autre réseau neuronal dans la génération. Etc. Nous permettons simplement aux gagnants de se reproduire, et d'éliminer les perdants, tout comme dans l'évolution de la vie réelle, et nous obtiendrons notre meilleur réseau commercial de neurones. Sans aucune connaissance préalable sur ce que le système commercial (algorithme génétique) devrait être comme. Réseau neuronal Algorithme génétique: Exemple 0 C'est le premier exemple d'algorithme génétique. Et un très simple. Nous allons le parcourir étape par étape, pour apprendre toutes les astuces que les exemples suivants utiliseront. Le code contient des commentaires en ligne, alors laissez-nous nous concentrer sur les moments clés. Tout d'abord, nous avons créé un réseau de neurones. Il utilise des poids aléatoires et n'a pas encore été enseigné. Ensuite, en cycle, nous en faisons 14 copies, en utilisant MUTATIONNN fumction. Cette fonction fait une copie d'un réseau neuronal source. En ajoutant des valeurs aléatoires de 0 à (dans notre cas) 0,1 à tous les poids. Nous gardons les poignées à 15 NNs résultants dans un tableau, nous pouvons le faire, car handle est juste un nombre entier. La raison pour laquelle nous utilisons 15 NNs n'a rien à voir avec la négociation: Cortex Neural Networks Software peut tracer jusqu'à 15 lignes sur un graphique simultanément. Nous pouvons utiliser différentes approches pour les tests. Tout d'abord, nous pouvons utiliser l'ensemble d'apprentissage, tout cela à la fois. Deuxièmement, nous pouvons tester sur, disons, 12000 resords (sur 100000), et marcher à travers l'ensemble d'apprentissage, du début à la fin. Cela rendra les apprentissages différents, car nous allons chercher des réseaux neuronaux qui sont rentables sur une partie donnée de données, et pas seulement sur l'ensemble. La deuxième approche peut nous donner des problèmes, si les données changent, du début à la fin. Ensuite, le réseau va évoluer, l'obtention de la capacité de négocier à la fin de l'ensemble de données, et la perte de la capacité de négocier à son début. Pour résoudre ce problème, nous allons prendre des fragments de 12000 enregistrements aléatoires à partir de données, et de l'alimenter au réseau neuronal. Est simplement un cycle sans fin, car 100000 cycles ne seront jamais atteints à notre vitesse. Ci-dessous nous ajoutons un enfant pour chaque réseau, avec des poids légèrement différents. Notez que 0.1 pour mutation tange n'est pas le seul choix, comme la question de fait, même ce paramètre peut être optimisé en utilisant l'algorithme génétique. Les NN nouvellement créés sont ajoutés après 15 noms existants. De cette façon, nous avons 30 NN dans un tableau, 15 anciens et 15 nouveaux. Ensuite, nous allons faire le prochain cycle de tests, et de tuer les perdants, des deux générations. Pour faire des tests, nous appliquons le réseau neuronal à nos données, pour produire des sorties, puis appelez la fonction Test, qui utilise ces sorties pour simuler la négociation. Les résultats de la négociation sont utilisés pour deside, qui NNs sont les meilleurs. Nous utilisons un intervalle de nLearn enregistrements, de nStart à nStart nLearn, où nStart est un point aléatoire dans le jeu d'apprentissage. Le code ci-dessous est un truc. La raison pour laquelle nous l'utilisons est d'illustrer le fait que l'algorithme génétique peut créer un algorithme génétique. Mais ce ne sera pas nécessairement le meilleur, et aussi, pour suggérer, que nous pouvons améliorer le résultat, si nous impliquons quelques limitations au processus d'apprentissage. Il est possible que notre système de négociation fonctionne très bien sur les métiers de longue durée, et très pauvre sur le court, ou vice versa. Si, par exemple, les métiers longs sont TRÈS bons, cet algorithme génétique peut gagner, même avec des pertes importantes sur les métiers de courte durée. Pour l'éviter, nous attribuons plus de poids aux métiers longs dans les métiers bizarres et courts dans des cycles pairs. C'est juste un exemple, il n'y a aucune garantie, qu'il améliorera quelque chose. Plus d'informations ci-dessous, dans la discussion sur les corrections. Techniquement, vous n'avez pas à le faire, ou peut le faire différemment. Ajoutez du profit à un tableau trié. Il retourne une position d'insertion, puis nous utilisons cette position pour ajouter le gestionnaire de réseau neuronal, l'apprentissage et les bénéfices de test aux matrices non triées. Maintenant nous avons des données pour le réseau neuronal actuel au même indice de tableau que son profit. L'idée est d'arriver à un tableau de NN, triés par la rentabilité. Comme le tableau est trié par le profit, pour supprimer 12 des réseaux, qui sont moins rentables, nous avons juste besoin d'enlever NNs 0 à 14 Les décisions commerciales sont basées sur la valeur du signal réseau neuronal, de ce point de vue le programme est identique à des exemples de Article précédent. Stratégie Trading FOREX: Discuter exemple 0 Tout d'abord, nous allons jeter un oeil à des graphiques. Le premier graphique de profit au cours de la première itération n'est pas bon du tout, comme on peut s'y attendre, le réseau neuronal perd de l'argent (image evolution00gen0.png copié après la première itération du dossier images): L'image pour le profit sur le cycle 15 est meilleure, parfois , Algorithme génétique peut apprendre très vite: Cependant, remarquez la saturation sur une courbe de profit. Il est intéressant également de regarder la façon dont les profits individuels changent, en gardant à l'esprit, que le nombre de courbes, disons, 3 n'est pas toujours pour le même réseau neuronal. Comme ils sont nés et résiliés tout le temps: Notez également, que peu Forex système commercial automatisé effectue pauvres sur les métiers de courte durée, et beaucoup mieux sur longs, qui peut ou non être lié au fait, que le dollar a été en baisse par rapport à Euro pendant cette période. Il peut aussi avoir quelque chose à voir avec les paramètres de notre indicateur (peut-être, nous avons besoin de période différente pour les courts métrages) ou le choix des indicateurs. Voici l'histoire après 92 et 248 cycles: À notre grande surprise, l'algorithme génétique a échoué complètement. Essayons de comprendre pourquoi, et comment aider la situation. Tout d'abord, n'est pas chaque génération censé être mieux que le previuos La réponse est non, du moins pas dans le modèle que nous avons utilisé. Si nous avons pris ENTIER ensemble d'apprentissage à la fois, et utilisé à plusieurs reprises pour enseigner nos NN, alors oui, ils vont améliorer sur chaque génération. Mais au lieu de cela, nous avons pris des fragments aléatoires (12000 enregistrements dans le temps) et les avons utilisés. Deux questions: pourquoi le système a échoué sur des fragments aléatoires de l'ensemble d'apprentissage, et pourquoi havent nous avons utilisé tout ensemble d'apprentissage Bien. Pour répondre à la deuxième question, je l'ai fait. NNs ont accompli beaucoup - sur l'ensemble d'apprentissage. Et ils ont échoué sur l'ensemble de tests, pour la même raison, il échoue lorsque nous avons utilisé l'apprentissage FFPB. En d'autres termes, nos NN se sont surspécialisés, ils ont appris à survivre dans l'environnement auquel ils sont habitués, mais pas à l'extérieur. Cela arrive beaucoup dans la nature. L'approche que nous avons prise à la place était destinée à compenser cela, en obligeant NNs à effectuer de bonnes sur n'importe quel fragment aléatoire de l'ensemble de données, de sorte que, espérons-le, ils pourraient également effectuer sur un ensemble de tests peu familier. Au lieu de cela, ils ont échoué à la fois sur les tests et sur l'ensemble d'apprentissage. Imaginez des animaux, vivant dans un désert. Beaucoup de soleil, pas de neige du tout. Il s'agit d'une métafor pour rizing marché, comme pour nos données NNs jouer le rôle de l'environnement. Les animaux ont appris à vivre dans un désert. Imaginez des animaux qui vivent dans un climat froid. Neige et pas de soleil du tout. Eh bien, ils ont ajusté. Cependant, dans notre expérience, nous avons placé au hasard nos NN dans un désert, dans la neige, dans l'eau, sur les arbres. En les présentant avec différents fragments de données (hausse aléatoire, baisse, plat.). Des animaux sont morts. Ou, pour le dire autrement, nous avons sélectionné le meilleur réseau neuronal pour l'ensemble de données aléatoires 1, qui, disons, était pour la hausse du marché. Ensuite, nous avons présenté, aux gagnants et à leurs enfants, une baisse des données sur les marchés. NNs mal exécuté, nous avons pris le meilleur des artistes pauvres, peut-être, l'un des enfants mutants, qui a perdu la capacité de commerce sur la hausse du marché, mais a obtenu une certaine capacité à faire face à la chute. Ensuite, nous avons tourné la table à nouveau, et encore, nous avons obtenu le meilleur interprète - mais le meilleur parmi les mauvais interprètes. Nous n'avons tout simplement pas donner à nos NN toutes les chances de devenir universel. Il existe des techniques permettant à l'algorithme génétique d'apprendre de nouvelles informations sans perdre de performance sur les anciennes informations (après tout, les animaux peuvent vivre en été et en hiver, alors l'évolution est capable de gérer des changements répétitifs). Nous pouvons discuter de ces techniques plus tard, bien que cet article est plus sur l'utilisation de Cortex Neural Networks Software. Que sur la construction d'un système de trading automatisé forex succès. Algorithme génétique du réseau neuronal: Exemple 1 Il est maintenant temps de parler de corrections. Un algorithme génétique simple que nous avons créé au cours de l'étape précédente comporte deux failles majeures. Premièrement, il n'a pas échangé avec le profit. Il est ok, nous pouvons essayer d'utiliser partiellement formé système (il était rentable au début). Le deuxième défaut est plus grave: nous n'avons aucun contrôle sur les choses, que ce système fait. Par exemple, il peut apprendre à être rentable, mais avec des tirages énormes. C'est un fait bien connu, que dans la vie réelle, l'évolution peut optimiser plus d'un paramètre simultanément. Par exemple, nous pouvons obtenir un animal, qui peut courir vite et être résistant au froid. Pourquoi ne pas essayer de faire de même dans notre système de trading automatisé forex. C'est quand nous utilisons des corrections, qui ne sont rien d'autre que l'ensemble des peines supplémentaires. Disons, notre système trades avec drawdown 0,5, alors que nous voulons le confirmer à 0 - 0,3 intervalle. Pour dire au système qu'il a fait une erreur, nous diminuer son bénéfice (un utilisé pour déterminer, quel algorithme génétique a gagné) au degré, qui est proportionnel à la taille de DD. Ensuite, l'algorithme d'évolution s'occupe du reste. Il y a peu d'autres facteurs que nous voulons prendre en considération: nous pouvons vouloir avoir un nombre plus ou moins égal d'opérations d'achat et de vente, nous voulons avoir plus d'opérations rentables, puis d'échecs, Être linéaire et ainsi de suite. Dans evolution01.tsc, nous mettons en œuvre un ensemble simple de corrections. Tout d'abord, nous utilisons un grand nombre pour une valeur de correction initiale. Nous le multiplions à une petite (habituellement, entre 0 et 1) valeurs, en fonction de la punition que nous voulons appliquer. Ensuite, nous multiplions notre profit par cette correction. En conséquence, le profit est corrigé, pour refléter à quel point l'algorithme génétique correspond à nos autres critères. Ensuite, nous utilisons le résultat pour trouver un réseau neuronal gagnant. Stratégie de trading FOREX: Discussion de l'exemple 1 L'exemple 1 fonctionne beaucoup mieux que l'exemple 0. Au cours des 100 premiers cycles, il a beaucoup appris et les graphiques de bénéfices semblent rassurants. Cependant, comme dans l'exemple 0, les métiers longs sont beaucoup plus rentables, ce qui signifie très probablement qu'il ya un problème dans notre approche. Néanmoins, le système a trouvé un équilibre entre deux conditions initiales contradictoires: Il ya une certaine dynamique positive à la fois dans le jeu d'apprentissage et, plus important, dans l'ensemble de tests. En ce qui concerne les apprentissages ultérieurs, au cycle 278, nous pouvons voir que notre système a été surexposé. Cela signifie que nous avons encore des progrès sur le jeu d'apprentissage: Mais l'ensemble de tests montre la faiblesse: C'est un problème commun avec les NN: quand on l'enseigne sur le jeu d'apprentissage, il apprend à y faire face et parfois, il apprend trop bien - Degré, quand il perd la performance sur l'ensemble d'essai. Pour faire face à ce problème, une solution traditionnelle est utilisée: nous continuons à chercher le réseau neuronal. Qui effectue le meilleur sur le jeu de test, et l'enregistrer, en écrasant le meilleur précédent, chaque fois que le nouveau pic est atteint. C'est la même approche, nous avons utilisé dans la formation FFBP, sauf, cette fois, nous devons le faire nous-mêmes (l'ajout de code, qui cherche un meilleur réseau neuronal sur un ensemble de tests, et d'appeler SAVENN, ou d'exporter des poids de réseau neuronal à un fichier). De cette façon, lorsque vous arrêtez votre formation, vous aurez le meilleur interprète sur le SET test enregistré et vous attend. Notez également que ce n'est pas le max. Profit que vous êtes après, mais les performances optimales, alors envisager d'utiliser des corrections, lors de la recherche d'un meilleur interprète sur un ensemble de tests. Algorithme génétique pour l'analyse technique de FOREX: Où maintenant Après que vous ayez obtenu votre réseau de neurones gagnant. Vous pouvez suivre les étapes, décrites dans l'article précédent, pour exporter les poids de ce réseau neuronal. Et puis de les utiliser dans votre plateforme de trading en temps réel, comme Meta Trader, Trade Station et ainsi de suite. Alternativement, vous pouvez vous concentrer sur d'autres façons d'optimiser le réseau neuronal. Contrairement à l'algorithme FFBP, ici vous pouvez obtenir avay d'utiliser des ensembles d'apprentissage et de test, et de déplacer l'apprentissage séquentiel. Télécharger Cortex Order Cortex Voir la liste des prix La visibilité est très importante pour ce site. Si vous le désirez, veuillez accéder à cette URL
No comments:
Post a Comment