Utilisation de l'intelligence artificielle chez MTS - page 18

 
rip:
njel:
Mesdames et Messieurs, que donner en guise de contribution ? Une bougie ?
Respect à l'auteur ...
Veuillez formuler une règle de formation du réseau sur le forum.

--
rip
La topologie du réseau est plus ou moins claire dans le code. Au moins, l'auteur a présenté les fonctions et leurs commentaires de manière à ce que l'on puisse les comprendre en général.

J'ai cherché plus loin dans le code et j'ai découvert que mes graphiques ne contenaient pas assez de barres. Je les ai augmentés jusqu'à 16000. Je l'ai exécuté et j'ai obtenu 6 transactions sur l'ensemble de la période avec des pertes pas très importantes, mais de 9% sur le résultat final. Peu de métiers - un petit drain.

En bref, il est clair que rien n'est clair du tout, mais comment utiliser cet Expert Advisor finalement ? Il devrait y avoir des recommandations, non ? Peut-être que je fais quelque chose de mal ?

Il est inutile de continuer à fouiller dans le code et d'essayer de l'analyser par moi-même. Il est inutile de prétendre que le conseiller expert est soit déficitaire, soit rentable après 6 transactions. C'est juste une perte de temps.
 

Apparemment, une petite clarification est nécessaire

Le conseiller expert est un gouffre, ou du moins pas rentable. Il est destiné aux personnes qui veulent jouer avec les réseaux neuronaux, mais qui ne veulent pas tout écrire à partir de zéro.
La configuration du réseau est assez universellement écrite. En fait, il n'y a que deux limitations - au moins deux couches et un neurone de sortie.

Maintenant, pour savoir pourquoi le conseiller expert ne fonctionne pas comme il le fait.
Il ne peut pas le faire car la tâche de prédire n ticks par les m ticks précédents est évidemment insoluble. La grille ne peut pas trouver de dépendances pour une bonne prédiction. Si nous essayons de classer les indicateurs, cela échouera également, mais la grille ne peut pas diviser les données d'entrée en classes.
Cela signifie qu'il est nécessaire de traiter les données pour la grille d'une manière plus créative. C'est ce que je vais faire.

Voici mes conclusions. Ceux qui veulent essayer mon conseiller expert peuvent arriver aux mêmes conclusions ou, peut-être, à de nouvelles idées après une brève enquête et analyse.

En fait, le conseiller expert peut être considéré comme une bibliothèque pour travailler avec les réseaux neuronaux, donnez-vous la peine de les comprendre et de les utiliser.

Si quelqu'un a eu l'idée après mon message précédent que cette EA peut être jouée, soit vous n'avez pas lu attentivement, soit je n'ai pas été assez clair.
J'ai paraphrasé Figar0: "Pas du tout rentable, mais instructif.

Maintenant, quelques réponses personnelles.

Reshetov Et en général, comment l'utiliser correctement et s'il est utile de l'utiliser tout court ? Parce que comprendre le code de quelqu'un d'autre est une tâche fastidieuse et ingrate. Et si vous connaissez l'algorithme, il est beaucoup plus facile d'écrire votre propre programme en partant de zéro que de comprendre celui de quelqu'un d'autre
.

Si vous voulez dire commerce, vous ne devriez probablement pas l'utiliser. Du moins, je ne le ferais pas. Il n'a de valeur que comme code.
En fait, je suis partiellement d'accord pour dire que vous pouvez écrire votre propre programme à partir de zéro en connaissant l'algorithme. Je ne suis pas sûr que ce soit simple.
Mais vous êtes invités à écrire des algorithmes. Vous pouvez facilement trouver des livres sur les réseaux neuronaux, les principes de formation et d'autres choses sur Internet. Pendant que j'écrivais cet Expert Advisor, ma collection a facilement atteint deux douzaines de livres et d'articles.


Mathemat
Je ne pense pas que ce code ait quoi que ce soit en commun avec l'Expert Advisor de Reshetov ...

Ce qu'ils ont en commun, c'est qu'ils ont tous deux des réseaux neuronaux avec des indicateurs comme entrées :) La différence est que je n'ai pas un mais plusieurs neurones, respectivement, j'ai écrit mon propre algorithme pour la formation.


Veuillez formuler une règle d'apprentissage pour le réseau dans le forum.

Si c'est pour moi, veuillez préciser. Je ne comprends pas vraiment ce qui vous intéresse.





 
maveric писал (а):


Veuillez formuler une règle de formation de réseau dans le forum.

Si c'est pour moi, veuillez préciser. Je ne comprends pas vraiment ce qui vous intéresse.


Vous connaissez bien les réseaux neuronaux, pourquoi n'écrivez-vous pas un article sur le sujet, en vous concentrant notamment sur les algorithmes d'apprentissage pour les réseaux multicouches. Cela pourrait intéresser beaucoup de gens. Les articles ici sont rémunérés, votre travail ne sera pas gaspillé.
 
Integer писал (а):
maveric a écrit (a) :


Veuillez formuler une règle de formation de réseau dans le forum.

Si c'est pour moi, veuillez préciser. Je ne comprends pas vraiment ce qui vous intéresse.


Vous avez une bonne connaissance des réseaux neuronaux, pourquoi n'écrivez-vous pas un article sur le sujet, en vous concentrant notamment sur les algorithmes d'apprentissage pour les réseaux multicouches. Cela pourrait intéresser beaucoup de gens. Les articles ici sont rémunérés, votre travail ne sera pas gaspillé.
Cela ne me semble pas être une bonne idée :)
J'ai appris à connaître les réseaux neuronaux grâce à des livres et des articles écrits par des gens sérieux, pas secrets, mais faciles à trouver sur Internet.
J'ai peur que cela se passe comme dans l'anecdote où Moisha a chanté les Beatles à Abram :)
 

Veuillez formuler une règle de formation de réseau dans le forum.

Si c'est pour moi, veuillez préciser. Je ne comprends pas vraiment ce qui vous intéresse.

Vous avez répondu à ma question ;) Dans ce cas, vous avez développé un réseau qui approxime la série temporelle à n pas d'avance. Vous prenez les valeurs de clôture et/ou les valeurs des indicateurs comme entrées. Ok, alors une autre question. En ce qui concerne la classification - vous avez dit que nous devrions essayer de classer les indicateurs, puis-je développer cette idée ? Oui, j'ai une autre remarque. La pratique a montré que les meilleurs résultats sont obtenus lors de la formation de réseaux (formation avec un professeur), dont l'échantillon de formation a une distribution normale. J'ai fait des recherches sur les séries temporelles formées par des citations plusieurs fois, il y a longtemps ... Sa distribution n'a rien à voir avec la distribution normale. Peut-être devrions-nous analyser la construction d'un échantillon d'entraînement et le réduire à un échantillon avec une distribution normale. Dans ce cas, l'EQM diminuera beaucoup plus rapidement et vous obtiendrez de meilleurs résultats dans l'échantillon de test.
 
maveric:


Maintenant, pour savoir pourquoi le conseiller expert ne fonctionne pas comme il le fait.
Cela ne fonctionne pas car la tâche de prédire n ticks sur la base des m ticks précédents est évidemment insoluble. La grille ne peut pas trouver de dépendances pour une bonne prédiction. Si nous essayons de classer les indicateurs, cela échouera également, mais la grille ne peut pas diviser les données d'entrée en classes.
Cela signifie qu'il est nécessaire de traiter les données pour la grille d'une manière plus créative. C'est ce que je vais faire ensuite.


Peut-être pourrions-nous ouvrir un nouveau fil, où nous pourrions discuter de la formation et du pré/post-traitement des échantillons ? Je pense que cela pourrait intéresser un certain nombre de visiteurs.
 
rip:

Veuillez formuler une règle de formation de réseau dans le forum.

Si c'est pour moi, veuillez préciser. Je ne comprends pas vraiment ce qui vous intéresse.

Vous avez répondu à ma question ;) Dans ce cas, vous avez développé un réseau qui approxime la série temporelle à n pas d'avance. Vous prenez les valeurs de clôture et/ou les valeurs des indicateurs comme entrées. Ok, alors une autre question. En ce qui concerne la classification - vous avez dit que nous devrions essayer de classer les indicateurs, puis-je développer cette idée ? Oui, j'ai une autre remarque. La pratique a montré que les meilleurs résultats sont obtenus lors de la formation de réseaux (formation avec un professeur), dont l'échantillon de formation a une distribution normale. J'ai fait des recherches sur les séries temporelles formées par des citations plusieurs fois, il y a longtemps ... Sa distribution n'a rien à voir avec la distribution normale. Peut-être devrions-nous analyser la construction d'un échantillon d'entraînement et le réduire à un échantillon avec une distribution normale. Dans ce cas, l'EQM diminuera beaucoup plus rapidement et vous obtiendrez de meilleurs résultats dans l'échantillon de test.

Pas seulement une distribution normale. Les jeux d'échantillons devraient au moins être cohérents.
D'une manière générale, c'est la façon suivante.
Nous trouvons le début de la première tendance ("up down flat") Un certain nombre de barres avant ce début sera une entrée de grille, toute la tendance qui suit sera enroulée sous la forme 1 0 0 200 6 Les trois premiers nombres sont des identifiants de tendance, les deux derniers sont le changement général de prix et la longueur (en barres) de la tendance. L'exemple suivant est formé au plus tôt à la fin de cette tendance.
Il n'est pas possible de prédire la durée de la tendance, mais seulement la variation absolue des prix au cours de celle-ci.
Cela rendra les ensembles d'exemples (plus) cohérents.
Nous obtiendrons des exemples N1 N2 N3 pour trois types de tendances.
par exemple
UP ( 1 0 0 ) - 100
plat( 0 1 0) - 200
down( 0 0 1) - 250

Comment faire une distribution normale.
1. si le nombre minimum d'exemples (100) nous convient, nous pouvons stupidement couper le reste
2. Les exemples les moins nombreux devraient être proposés plus souvent, pour les équilibrer.
3. Ajoutez aux exemples ceux qui sont peu nombreux, en leur donnant un peu de bruit.
4. plus d'exemples pour la baisse que pour la hausse, ce dernier point pouvant être complété par des exemples de cotations inversées de USDEUR au lieu de EURUSD

Je vais maintenant analyser ces exemples par ordre décroissant de coolitude :)
4. L'idéal Il n'y a pas de figures de gauche, tout est chair et sang du marché. Mais c'est fastidieux à écrire, je vais devoir recalculer beaucoup d'indices par moi-même + les calculer moi-même.
3. C'est un peu plus grave, car nous donnons au moins un peu de légèreté à la grille sous la forme de ce bruit que nous ajoutons.
2. Si nous montrons plusieurs fois la même chose à la grille, elle s'en souviendra simplement et ne généralisera pas.
1. Bien que pour la formation de prendre énormément de temps histoire (pour s'assurer que, après le rejet des exemples restants assez) - alors cette méthode prend tous les trois Powerfully bat tous les trois autres Pour tous les paramètres :)


Donc ça donne quelque chose comme ça. À propos, mon conseiller expert est un mélange des éléments 1 et 2.
 
maveric:

Pas seulement normal. À tout le moins, les séries d'exemples devraient également être cohérentes.
En général, cela ressemble à ceci.
Nous trouvons le début de la première tendance ("up down flat") Un certain nombre de barres avant ce début sera une entrée de grille, toute la tendance qui suit sera enroulée sous la forme 1 0 0 200 6 Les trois premiers nombres sont des identifiants de tendance, les deux derniers sont des changements généraux de prix et la longueur (en barres) de la tendance. L'exemple suivant est formé au plus tôt à la fin de cette tendance.
Il n'est pas possible de prédire la durée de la tendance, mais seulement la variation absolue des prix au cours de celle-ci.
Cela rendra les ensembles d'exemples (plus) cohérents.
Nous allons obtenir des exemples N1 N2 N3 pour trois types de tendances.
par exemple
UP ( 1 0 0 0 ) - 100
flat( 0 1 0 ) - 200
down( 0 0 1 ) - 250
La distribution normale est la distribution de probabilité d'une variable aléatoire. Un ensemble de données ne peut être contradictoire ou non contradictoire - il s'agit de la valeur d'une fonction f décrivant un processus physique et c'est tout simplement cela. Seule notre interprétation de ses valeurs peut être contradictoire.

Vous savez, je ne comprends pas une chose, que voulez-vous qu'un réseau neuronal fasse ? Approximer une série ou obtenir une classification de la situation du marché ? Selon moi, il s'agit de tâches fondamentalement différentes, de sorte que les données d'entrée et de sortie doivent être préparées de manière totalement différente.

Définissons un peu les termes :
1. L'approximation d'une série est la construction d'une correspondance multidimensionnelle F : x->y qui généralise un ensemble donné d'exemples {xt, yt}. Sur la base de cette cartographie, il s'agit de réaliser une vision du futur en H sur la base d'une certaine dépendance latente dans les termes de la série. C'est-à-dire qu'il peut être généralisé - nous essayons d'opérer avec la valeur des membres de la ligne eux-mêmes ainsi qu'avec un ensemble de valeurs décrivant la ligne - ce sont des extrema locaux, etc. (nous définissons un corridor de prix pour un certain intervalle, disons)
2. Classification - c'est-à-dire qu'une image du marché est formée - disons, une tendance ascendante. Il est nécessaire de reconnaître cette image.

Que pensez-vous de cela ? A en juger par votre code, vous essayez de prédire les points d'entrée et de sortie du marché. Pour être franc, je doute profondément de la pertinence de
pour une telle tâche.

Je vous serais reconnaissant - si vous pouvez me prouver que j'ai tort.

--
rip
 
rip:
Maveric:

Pas seulement normal. Les exemples devraient au moins être cohérents.
En général, ça se passe comme ça.
Nous trouvons le début de la première tendance ("up down flat") Un certain nombre de barres avant ce début sera une entrée de grille, la tendance entière qui suit sera enroulée sous la forme 1 0 0 200 6 Les trois premiers nombres sont des identifiants de tendance, les deux derniers sont des changements de prix généraux et la longueur (en barres) de la tendance. L'exemple suivant est formé au plus tôt à la fin de cette tendance.
Il n'est pas possible de prédire la durée de la tendance, mais seulement la variation absolue des prix au cours de celle-ci.
Cela rendra les ensembles d'exemples (plus) cohérents.
Nous obtiendrons des exemples N1 N2 N3 pour trois types de tendances.
par exemple
UP ( 1 0 0 ) - 100
plat( 0 1 0) - 200
down( 0 0 1) - 250
La distribution normale est la distribution de probabilité d'une variable aléatoire. Un ensemble de données ne peut être contradictoire ou non contradictoire - il s'agit de la valeur d'une fonction f décrivant un processus physique et c'est tout simplement cela. Seule notre interprétation de ses valeurs peut être contradictoire.

Vous savez, je ne comprends pas une chose, que voulez-vous faire faire à un réseau neuronal ? Approximer une série ou obtenir une classification de la situation du marché ? Selon moi, il s'agit de tâches fondamentalement différentes, de sorte que les données d'entrée et de sortie doivent être préparées de manière totalement différente.

Définissons les termes :
1. L'approximation des séries est une construction de cartographie multidimensionnelle F : x->y, qui généralise un ensemble donné d'exemples {xt, yt}. Sur la base de cette cartographie, nous pouvons imaginer le futur en H étapes sur la base de certaines dépendances cachées des termes des séries. C'est-à-dire qu'il peut être généralisé - nous essayons d'opérer avec la valeur des membres de la ligne eux-mêmes ainsi qu'avec un ensemble de valeurs décrivant la ligne - ce sont des extrema locaux, etc. (nous définissons un corridor de prix pour, disons, un certain intervalle).
2. Classification - c'est-à-dire qu'une image du marché est formée - disons, une tendance ascendante. Cette image doit être reconnue.

Que pensez-vous de cela ? D'après ce que j'ai compris de votre code, vous essayez de prédire les points d'entrée et de sortie du marché. Franchement, j'ai des doutes sur la validité
de la tâche.

Je vous serais reconnaissant - si vous pouvez prouver le contraire.

--
rip


Pour les problèmes de classification, c'est notre interprétation des données qui compte. En gros, dans une tâche de reconnaissance de lettres, dans un ensemble d'exemples de la lettre A, vous ne devriez pas trouver les lettres X et U, etc. :)

Je veux faire les deux. Peut-être deux grilles, peut-être une seule, comme il s'avère. La première étape de la grille consiste à classer la situation actuelle. S'il donne un signal suffisamment clair du début d'une tendance, la deuxième étape consiste à essayer de se projeter dans l'avenir afin d'estimer combien d'argent peut être gagné sur cette tendance.

Je suppose que l'approximation des séries financières est pire que la classification.

 
maveric писал (а):

Je pars du principe que les séries financières se prêtent moins bien à l'approximation qu'à la classification.

Les séries de prix, comme toute autre série continue, peuvent être approximées sans problème. Il ne faut pas confondre interpolation et extrapolation. L'interpolation avec un neurone multicouche peut se faire comme deux doigts sur l'asphalte. L'extrapolation de séries non périodiques par des réseaux neuronaux est une perte de temps.
Raison: