Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Messieurs ! Si ce n'est pas trop difficile, veuillez me donner quelques exemples d'utilisation de la bibliothèque de l'UGA.
Quel type d'exemples (sur quel sujet) vous intéresse ?
Dans l'article, il y a un exemple avec zig-zag, pouvons-nous avoir des exemples avec d'autres indicateurs (RSI, CCI....) ?
Ecrivez un script dans lequel :
1) chargement dans le tableau de données de l'instrument nécessaire au calcul de l'indicateur
2) calcul de l'indicateur/des indicateurs avec un ensemble de paramètres (ces paramètres d'indicateur doivent être optimisés).
3) détermination des points d'entrée/sortie sur la base des signaux de l'indicateur
4) calcul d'un indicateur statistique intéressant (le nombre de pips gagnés en tenant compte du spread, du drawdown, etc.)
Les points 2), 3) et 4) sont des étapes d'une itération de l'AG - le calcul du FF pour un individu. Rédigez un tel script, et j'essaierai à mon tour de vous aider à y "visser" l'UGA.
PS. Je doute que quelqu'un publie un exemple de trading prêt à l'emploi utilisant l'UGA - si quelqu'un est sérieusement engagé dans des recherches utilisant cette bibliothèque (ou toute autre bibliothèque similaire), il est fort probable que ces développements soient privés (le temps est consacré à l'étude de quelque chose qui n'est pas directement lié au trading).
Excellent article ! Je vous remercie.
1) Comme je peux le voir, vous vouliez utiliser l'UGA pour optimiser l'entraînement des NNs. Est-ce que cela a réussi ?
2) Quels étaient les gènes du chromosome dans ce cas ?
3) Avez-vous également développé votre propre bibliothèque NN ou avez-vous trouvé une implémentation NN existante prenant en charge l'intégration avec MT5 et GA ?
2) Je représente les poids et les biais des neurones d'un réseau comme des gènes chromosomiques.
3) J'ai écrit ma propre réalisation d'un réseau neuronal.
Andrey, bonjour à vous. J'essaie d'apprendre à utiliser votre bibliothèque par la "méthode scientifique" (sur l'exemple de UGA_script.mq5 et skin.mqh proposé par vous). Si vous le voulez bien, donnez-moi une introduction supplémentaire sur la manière de définir correctement les paramètres d'entrée pour résoudre le problème de l'apprentissage du réseau de Kohonen, lorsque nous avons un ensemble de points sur le plan, que nous devons assigner (classer) à certains noyaux. C'est-à-dire que nous avons N points avec des coordonnées (x,y), M noyaux (qui seront "décalés" après l'entraînement), la fonction FF - "mesure de proximité". Si j'ai bien compris, dans le fichier UGA_script.mq5, les paramètres doivent être définis comme suit : ChromosomeCount_P= ? ??? (je ne comprends pas comment régler), GeneCount_P=2*M (2 coordonnées pour chaque noyau), Epoch_P= ? ??? (je ne comprends pas comment le paramétrer). Merci d'avance.
Andrey, bonjour à vous. J'essaie d'apprendre à utiliser votre bibliothèque par la "méthode scientifique" (sur l'exemple de UGA_script.mq5 et skin.mqh proposé par vous). Si vous le voulez bien, donnez-moi une introduction supplémentaire sur la manière de définir correctement les paramètres d'entrée pour résoudre le problème de l'apprentissage du réseau de Kohonen, lorsque nous avons un ensemble de points sur le plan, que nous devons assigner (classer) à certains noyaux. C'est-à-dire que nous avons N points avec des coordonnées (x,y), M noyaux (qui seront "décalés" après l'entraînement), la fonction FF - "mesure de proximité". Si j'ai bien compris, dans le fichier UGA_script.mq5, les paramètres doivent être définis comme suit :
1) ChromosomeCount_P= ? ??? (je ne comprends pas comment le définir),
2) GeneCount_P=2*M (2 coordonnées pour chaque noyau),
3) Epoch_P= ? ??? (je ne comprends pas comment le paramétrer).
Merci d'avance.
1) Mettez 50 pour commencer, si ce n'est pas suffisant, augmentez la valeur (n'exagérez pas, jusqu'à 200-300, sinon vous risquez de ne pas attendre le résultat).
2) Oui.
3) Commencez par 50-100, si ce n'est pas suffisant, augmentez la valeur (pas trop, jusqu'à 200-1000, sinon vous risquez de ne pas obtenir de résultats).
Les chiffres sont empiriques, vous pouvez les modifier à votre guise, en vous concentrant soit sur la vitesse de convergence, soit sur la précision du résultat (il s'agit, en général, d'exigences qui s'excluent mutuellement, le milieu se situant quelque part entre les deux - pardonnez le jeu de mots).
Je suis en train de fouiller dans la bibliothèque.
Andrew, je ne comprends pas pourquoi vous devriez calculer la fonction d'aptitude AVANT d'éliminer les doublons de la population. C'est coûteux.
Je contrôlerais la présence de clones au stade de la génération des descendants. (Ce que je vais faire, d'ailleurs).
1) Andrew, je ne comprends pas pourquoi vous devriez calculer la fonction d'aptitude AVANT d'éliminer les doublons de la population. C'est coûteux.
2) Je contrôlerais la présence de clones au stade de la génération des descendants. (Ce que je vais faire, en fait).
1) Les calculs répétés de FF ne sont pas effectués, car la vérification est effectuée sur la base de données historique des chromosomes - si au moins un FF a été effectué auparavant pour un tel individu, la valeur est prise dans la base de données.
2) Il existe une nuance concernant l'établissement d'une nouvelle colonie dans la population. Mais je n'en parlerai pas. :) Faites-le de la manière qui vous semble la plus correcte et donnez-moi les résultats - après quoi je vous parlerai de la nuance.
PS En général, et sans rapport avec ce commentaire, vous pouvez suivre de nombreuses stratégies différentes de recherche aléatoire par AG, chaque variante étant digne d'attention dans une certaine mesure. Les résultats (taux de convergence, précision de la recherche, blocage dans les extrema locaux) dépendront presque directement des stratégies de recherche utilisées.
1) Il n'y a pas de calculs répétés des FF, car la base de données chromosomique historique est vérifiée - si un FF a été effectué au moins une fois auparavant pour un tel individu, la valeur est tirée de la base de données.
2) Il existe une nuance concernant l'installation d'une nouvelle colonie dans la population. Mais je n'en parlerai pas. :) Faites ce que vous pensez être le plus correct et donnez-moi les résultats - après quoi je vous parlerai de la nuance.
1) Eh bien, eh bien, eh bien. Le conteur. :) Il y a au moins une erreur.
C'est ainsi que les nombres réels sont comparés uniquement par... mmmm... les mathématiciens, oui.
Dans une telle comparaison, une différence de quinze chiffres après une virgule flottante reconnaît les gènes comme différents. Et il y aura toujours une différence, parce que c'est le destin. ;)
Du moins, il doit en être ainsi :
Je ne doute pas que vous ayez testé la suppression des doubles séparément de l'algorithme des gènes, donc vous devez avoir l'illusion que ce fragment fonctionne.
2) Comme tout est mystérieux... Là où le mince est mince, le déchiré est déchiré :)
Tout y est soluble, avec ou sans nuances. Bon, je vais vous montrer comment j'ai fait.
1) Bien, bien, bien. Conteur. :)
2) Il y a au moins une erreur. C'est ainsi que les nombres réels ne sont comparés que par... mmmm... les mathématiciens, oui. Dans une telle comparaison, une différence de quinze chiffres après une virgule flottante reconnaît les gènes comme différents. Et il y aura toujours une différence, parce que c'est le destin. ;)
Du moins, c'est ainsi que cela doit se passer :
3) Et vous avez exactement la même chose en supprimant les doublons. Je ne doute pas que vous ayez testé la suppression des doublons séparément de l'algorithme des gènes, donc vous devez avoir l'illusion que ce fragment fonctionne.
4) Comme tout est mystérieux... Là où le mince est mince, le déchiré est déchiré :) Tout y est soluble, avec ou sans nuances. Bon, je vais vous montrer comment j'ai fait.
1) Le conteur ? Hmm, malheureusement je n'ai pas compris l'humour. La vérification de la base de données se fait dans la fonction CheckHistoryChromosomes(chromos,historyHromosomes ) qui est appelée à partir de GetFitness(historyHromosomes). C'est pourquoi j'ai dit correctement - il n'y a pas d'exécutions répétées de FF.
2) Le rapprochement avec la base de données s'effectue en vérifiant les gènes. Et chaque gène est normalisé par SelectInDiscreteSpace(temp,RangeMinimum,RangeMaximum,Precision,3) lorsqu'un nouveau chromosome apparaît. Il n'y a donc pas de "contes de fées" ici non plus.
3) Voir 2)
4) Pas de mystère. Le code est ouvert et transparent. Il y a bien une nuance (elle n'est pas liée à des problèmes d'implémentation, mais à la qualité de la convergence).