Utilisation des réseaux neuronaux dans le trading.

 

Chers commerçants ! Récemment, les passions autour de l'utilisation des réseaux neuronaux dans le domaine de l'éducation ont augmenté.

les prévisions sur les marchés financiers. Je pense que le public est divisé en deux catégories : ceux qui ont essayé, mais qui, lorsqu'ils sont confrontés à

Questions et ont été déçus (il est plus facile d'utiliser les mains) ou se sont retirés temporairement, et ceux qui ont quelques (et peut-être de très bons) résultats.

résultats et travaillent tranquillement et améliorent leur système... Cependant, de nouveaux malades apparaissent avec

désireux de réussir et de poser des questions. Beaucoup de choses ont déjà été discutées, mais peut-être que les neuro-traders expérimentés ont

de nouvelles idées ?

Je m'intéresse depuis peu aux non-croissants et j'ai accumulé quelques questions. J'aimerais connaître l'avis des personnes qui savent le faire.

Je comprends que lorsqu'on utilise des réseaux neuronaux dans le trading, de nombreux détails sont importants... Dans l'ordre.

1. Quelle est la tâche à fixer pour NS ? Je pense que le problème de la classification (c'est-à-dire la division des moments du marché en classes

"Acheter", "Vendre", "Rester en dehors du marché") est le plus prometteur pour obtenir de bons résultats en matière de trading.

2. Comment formuler cette tâche ? Je vois deux façons.

а. La première est d'apprendre au réseau à déterminer de manière indépendante la meilleure

Entrez sur le marché lorsqu'il est le plus probable que vous fassiez des bénéfices.

Dans ce cas, le réseau analysera constamment le marché (par exemple, à l'ouverture de chaque nouveau bar) et déterminera

Quel doit donc être l'échantillon de formation ? Elle doit évidemment contenir

Valeurs d'entrée (valeurs de prix ou d'indicateurs) de chaque barre de l'échantillon.

la valeur de sortie souhaitée. COMMENT ? C'est une question de questions ! Ainsi, dans le programme Réseaux de neurones 4 de STATISTICA, il est souhaitable que

qu'il faut attribuer à chaque barre une valeur fixe indiquant à quelle classe elle appartient...

à une certaine classe... comme 1, 0 ou -1... ou même avec le texte "vendre" "hors marché" "acheter".

D'autre part, j'ai lu que les valeurs de sortie d'un échantillon d'entraînement ne doivent pas être discrètes.

et devrait être distribué dans une fourchette allant de (par exemple) -1, qui signifie 100% de vente ! à 1, qui signifie 100% d'achat, et 0 serait alors

"Je ne sais pas" ou "Je ne suis pas sur le marché". C'est-à-dire que chaque barre devrait avoir un ensemble d'entrées et une valeur de sortie de (par exemple) 0,8745.

ce qui signifie qu'il y a 87 chances sur 100 d'acheter.

Et bien sûr, comment trouver ces valeurs de sortie ? Dois-je utiliser un Zig-Zag ? Et entre les sommets du Zig-Zag

calculer ses "chances" ?

б. La deuxième façon est de filtrer les signaux d'un certain système... un bon système en lui-même qui génère

et les neurones ne font que "permettre" ou non d'en faire le commerce.

... dans ce cas, l'échantillon d'entraînement devrait être tiré uniquement sur les barres où le système donne le signal de négocier... ou sur toutes les barres de toute façon ?

Et encore, la sortie (disaer) doit-elle être discrète ou avec des valeurs intermédiaires ?

3. Valeurs d'entrée. Ils suggèrent de ne pas prendre les valeurs indicatrices comme telles. Je pense que c'est une idée fausse.

Les indicateurs "regardent" dans l'histoire, chacun à sa propre profondeur et sous son propre angle, et sur la base de cela ils donnent le

Si nous prenons un ensemble de valeurs d'indicateurs, le vecteur entrant rappelle un certain "code-barres" du marché

et les NS reconnaîtront et résumeront les situations de marché à l'aide de ces codes-barres. Il est proposé de prendre comme variante la différence

de valeurs d'indicateurs (pour fournir au réseau des informations sur la direction du mouvement des prix). Quelles sont les autres variantes ?

QUELLE EST LA BONNE MÉTHODE ? J'ai essayé de prendre l'angle Phi d'un nombre complexe (l'angle Phi est une valeur géométrique).

interprétation d'un nombre complexe) par Cloth, mais dans mes expériences avec NeuroSolution par rapport à une série de

des valeurs de l'indicateur ont donné des résultats bien pires. Qu'est-ce que la communauté des experts a à dire ? ;-)

4. Normalisation des valeurs d'entrée. Le sens de la procédure est clair, ce qui ne l'est pas, c'est la manière de l'appliquer correctement. Laissez-moi vous expliquer. Normalisation -

consiste à rassembler les valeurs dans une seule plage. Pour ce faire, nous devons trouver la valeur maximale de l'échantillon et la valeur minimale.

C'est bien. Jusqu'à quelle profondeur devons-nous chercher ? Disons que nous avons 100 valeurs d'indicateur dans l'échantillon. Nous devons normaliser

75ème valeur. Où devons-nous chercher le minimum et le maximum ? A 74 ans auparavant ? ou à 50 ans auparavant ? ou à tous les 100 ans (c'est-à-dire

Il est nécessaire d'avoir des certitudes... car dans la classification, chaque barre doit être calculée indépendamment et en fonction de...

ou bien tout cela n'a pas de sens... Je pense qu'elle devrait être basée uniquement sur les valeurs du passé et prendre

Je pense qu'il est nécessaire de ne donner que les valeurs passées et de prendre une profondeur unique strictement définie (par exemple toujours il y a 100 barres ou 500 ou la valeur d'un échantillon d'entraînement).

5. Rééchantillonnage aléatoire de l'échantillon entrant. Abeille ou pas tu abeilles ! Les avis divergent... La théorie stipule que l'affaire

de la classification est utile. Mais comment cela se passe-t-il dans la réalité ? Qui l'a essayé ? Des avis ?

6. Et enfin une dernière question sur la formation du réseau. Est-ce que quelqu'un utilise le C.V. (validation croisée) d'échantillonnage ?

Est-ce nécessaire ? Aide-t-elle vraiment à prévenir le surentraînement du réseau ? Et en général, comment gérez-vous cela

un surentraînement sournois ? Ça gâche tout ! Comme sur les échantillons de formation, tout est beau ! Et sur Out of

Échantillon - absurde.

Personnellement, j'utilise NeuroSolution 5 DE pour étudier l'utilité de NS dans le trading. C'est un bon programme flexible.

Il permet à de générer des résultats sous forme de DLL.

Plutôt intelligent. (mais il n'est pas clair comment, après l'entraînement et l'optimisation, trouver quelles valeurs de la sélection d'entrée sont utiles et quelles valeurs sont exclues.

La seule chose que je veux savoir, c'est quelles sont les valeurs utiles et celles qui sont exclues par le programme comme étant nuisibles ou inutiles.

Ne passez pas à côté. Critique ! Suggestions ! Partagez vos réflexions !

 
Bien sûr, c'est beaucoup de charabia, mais regardez au moins les liens sous votre message, ce n'est pas un nouveau sujet après tout.
 
читайте================================>хайкина=========================> :О)
 
PraVedNiK >> :
читайте================================>хайкина=========================> :О)

Je l'ai déjà trouvé ! Je le lirai certainement.

 
sayfuji >> :
Bien sûr, cela fait beaucoup de mots, mais regardez au moins les liens sous votre message, ce n'est pas un nouveau sujet après tout.

Je n'ai pas de problème avec beaucoup de mots. Tout est là... tout est là... vous pensez que c'est fini, n'est-ce pas ?

 

полагаете что тема исчерпана полность?

Pas du tout. Au contraire, creuser et creuser, une plus grande pelle et un sac de temps.


 
alexish писал(а) >>

4. Normaliser les valeurs d'entrée. Le sens de la procédure est clair. Ce qui n'est pas clair, c'est la manière de le mettre en œuvre correctement. Laissez-moi vous expliquer. Normalisation -

consiste à rassembler les valeurs dans une seule plage. Pour ce faire, nous devons trouver la valeur maximale de l'échantillon et la valeur minimale.

C'est bien. Jusqu'à quelle profondeur devons-nous chercher ? Disons que nous avons 100 valeurs d'indicateur dans l'échantillon. Nous devons normaliser

75ème valeur. Où devons-nous chercher le minimum et le maximum ? A 74 ans auparavant ? ou à 50 ans auparavant ? ou à tous les 100 (c.-à-d.

Il est nécessaire d'avoir des certitudes... car dans la classification, chaque barre doit être calculée indépendamment et en fonction de

ou bien tout cela n'a pas de sens... Je pense qu'elle devrait être basée uniquement sur les valeurs du passé et prendre

Je pense que nous devrions utiliser uniquement les valeurs passées et prendre la même profondeur (par exemple toujours il y a 100 barres ou 500 ou la même valeur qu'un échantillon d'entraînement). - Cherchez une méthode universelle et lisez des articles sur des sites spécialisés dans les réseaux neuronaux.

5. Re-tri aléatoire de l'échantillon entrant. - pas un point essentiel

6. Et enfin la dernière question sur la formation du réseau. Est-ce que quelqu'un utilise le C.V. (validation croisée) d'échantillonnage ?

Est-ce vraiment nécessaire ? Aide-t-elle vraiment à prévenir le surentraînement du réseau ? Et en général, comment combattez-vous ce

un surentraînement sournois ? Ça gâche tout ! Comme sur les échantillons de formation, tout est beau ! Et sur Out of

Sample - nonsense... - Dans tous les cas, l'échantillon test décide de tout.

Absurdités sur les OOS : 1. pas d'échantillon représentatif 2. Données non stationnaires 3. Mauvais prétraitement, peut-être d'autres choses...

Personnellement, j'utilise NeuroSolution 5 DE pour étudier l'utilité de NS dans le trading. C'est un bon programme flexible.

Il est possible de générer les résultats sous forme de DLL à l'adresse .

Assez intelligent. (mais il n'est pas clair comment, après l'entraînement et l'optimisation, trouver quelles valeurs de la sélection d'entrée sont utiles et quelles valeurs sont exclues.

La seule chose que je veux savoir, c'est quelles valeurs sont utiles et lesquelles sont exclues par le programme comme étant nuisibles ou inutiles).

Ne passez pas à côté. Critique ! Suggestions ! Partagez vos idées !

Dans un bon sens, je dois tout écrire moi-même, au moins pour mieux comprendre ce qui se passe et pourquoi...

 
alexish писал(а) >>

1. Quelle est la tâche du SN ? Je pense que la tâche de la classification (c'est-à-dire la division des moments du marché en classes

"acheter", "vendre", "rester en dehors du marché") est la plus prometteuse pour obtenir de bons résultats commerciaux.

Oui, c'est vrai. Et, en règle générale, l'État " hors marché " est lié à l'élargissement du spread, tout le reste, NS le trace et doit l'exploiter à son avantage. C'est pourquoi la classification uniquement sur la base d'"achat" ou de "vente" est cruciale pour NS, et dans le TS lui-même, nous fixons une "allocation-banque" pour le commerce en fonction de la valeur actuelle de la commission des sociétés de courtage.

2. Comment formuler cette tâche ? Je vois deux façons.

а. La première - apprendre au réseau à déterminer de manière indépendante les moments les plus rentables sur le marché.

б. La deuxième façon - en théorie, l'échantillon d'entraînement devrait être tiré uniquement sur les barres où il y a un signal du système pour trader... ou sur toutes les barres de toute façon ?

Et encore... l'échantillon de sortie (disaer) doit être discret ou avec des valeurs intermédiaires ?

Exact - pour faciliter au maximum la tâche à résoudre par le NS, nous devrions déterminer le TS optimal (pour des conditions spécifiques) de manière indépendante et l'alimenter avec des séries temporelles déjà disséquées comme données d'entrée, c'est-à-dire pas chaque barre, mais les points clés probables, et seulement après cela nous pouvons espérer que le NS prenne une décision d'entrée-sortie adéquate. Et il décidera si le point critique que vous avez suggéré est tel ou non.

Quant à la réponse à la question de la discrétisation des valeurs de sortie du NS, elle n'est pas évidente et dépend avant tout de la loi de distribution des amplitudes des incréments du quotient "tranché" par le signal d'entrée du NS. Si la distribution est proche de la symétrie, alors nous pouvons nous limiter à une sortie discrète +/-1 (achat/vente), mais si la distribution n'est pas symétrique, alors nous devons considérer son amplitude (probabilité) en plus du signe.

3. Valeurs d'entrée.

Réponse ci-dessus.

4. Normalisation des valeurs d'entrée.

La normalisation est nécessaire pour que le SN fonctionne correctement.

La manière correcte d'effectuer cette procédure est de réaliser la mise en correspondance de toute la gamme des valeurs reçues à l'entrée/aux entrées du NS dans la région de +/-1 avec une distribution uniforme (creuse). Cela peut être fait en agissant sur le vecteur d'entrée avec une tangente hyperbolique, puis en lissant la distribution par un moyen quelconque (facultatif).

5. Recours aléatoire à l'échantillon entrant. Bi ou ort tu bi ! Les avis divergent.

La procédure est inutile !

Le fait est qu'en utilisant la méthode de propagation d'erreurs inversée, nous additionnons les erreurs sur l'ensemble de l'échantillon d'apprentissage et l'ordre dans lequel nous additionnons les valeurs aberrantes individuelles ne fait aucune différence pour nous - le fait de réorganiser les emplacements des syllabes ne change pas la somme.

6. Et comment faire face à ce surentraînement sournois ?

Il existe une relation non ambiguë entre la longueur minimale de l'échantillon d'apprentissage P, le nombre de poids W dans le NS et la dimension de l'entrée d: P>4*(W^2)/d

Si cette condition est remplie, il est évident que le surentraînement ne se produira jamais. Le processus d'apprentissage doit être arrêté lorsque le paramètre caractérisant l'erreur d'apprentissage atteint l'asymptotique.

Personnellement, j'utilise NeuroSolution 5 DE pour étudier l'utilité de NS dans le trading. C'est un bon programme flexible.

C'est assez délicat.

Dommage !

Vous devez écrire le code du NS directement dans MQL. C'est le seul moyen d'éviter la mer de pièges et d'économiser du temps et des efforts.

 
Neutron >> :


1.

La bonne chose à faire est de rendre la résolution du problème aussi facile que possible pour le NS, pour cela vous devez déterminer le TS optimal (pour des conditions spécifiques) par vous-même et envoyer comme données d'entrée des séries temporelles déjà disséquées, c'est-à-dire pas chaque barre, mais les points clés probables, et seulement après cela vous pouvez vous attendre à ce que le NS prenne une décision adéquate d'entrée-sortie du marché. Il décidera si le point critique que vous avez suggéré est tel ou non.


2.

Mauvais !

Vous devez écrire le code NS directement dans MQL. C'est le seul moyen d'éviter la mer de pièges et d'économiser du temps et des efforts.


1. En facilitant les choses, ne perdez pas de données. Le plus important est de ne pas alimenter le réseau avec essentiellement les mêmes données. Il vaut mieux réfléchir à ce qui peut influencer le prix et à la manière de le présenter comme données pour le réseau neuronal.


2. N'écrivez PAS le code NS pour MQL. Vous dépenserez beaucoup de temps et de nerfs et tout fonctionnera très lentement. Mieux vaut apprendre à connecter votre dll avec MT4 et à écrire votre propre réseau neuronal en C, par exemple avec le package FANN. Cela permettra d'éviter de nombreux problèmes, notamment la portabilité du code vers le nouveau terminal MQL5.

 
Neutron писал(а) >>

La bonne façon de procéder consiste à faire en sorte que toute la gamme des valeurs d'entrée/de sortie du NS apparaisse dans la zone +/-1 avec une distribution uniforme (creuse). Cela peut se faire en agissant sur le vecteur d'entrée avec une tangente hyperbolique, puis en lissant la distribution (facultatif) d'une manière ou d'une autre.

Il existe une relation non ambiguë entre la longueur minimale P de l'échantillon d'apprentissage, le nombre de poids W ajustables dans le NS et la dimension de l'entrée d: P>4*(W^2)/d

Si cette condition est remplie, il est évident que le surentraînement ne se produira jamais. Le processus d'apprentissage doit être arrêté lorsque le paramètre caractérisant l'erreur d'apprentissage atteint l'asymptotique.

Mauvais !

Il est nécessaire d'écrire le code NS pour MQL en une seule fois. C'est le seul moyen d'éviter la mer de pièges et d'économiser du temps et des efforts.

Une fonction sigmoïde par elle-même n'égalise pas la distribution... À mon avis, il est plus important de résoudre le problème de la stationnarité des données lors du prétraitement.

Au fait, avec la formule que vous avez citée, j'obtiens W=420, d=14, donc P>50400 - ne vous semble-t-il pas que l'échantillon est un peu trop grand ?

D'après mon expérience, le nombre d'échantillons dans l'échantillon ne dépend pas de ce que vous proposez...

 
alexish писал(а) >> J'utilise personnellement NeuroSolution 5 DE pour étudier l'utilité de NS dans le trading.

De manière générale, avant d'appliquer des programmes aussi spécifiques et assez complexes, il est conseillé de consulter les développeurs de ces logiciels sur l'opportunité de leur utilisation dans ce domaine, à savoir sur les marchés financiers. Donc, si vous les consultez, ils vous diront que NeuroSolution n'est pas destiné à être utilisé sur les marchés financiers, et vous recommanderont un autre programme. NeuroSolution est conçu pour résoudre des problèmes généraux, alors que l'utilisation des réseaux neuronaux sur les marchés financiers présente certaines spécificités qui ne sont pas prises en compte dans ce logiciel. Peut-être que NeuroSolution peut être lié d'une manière ou d'une autre aux marchés financiers, mais c'est assez compliqué et c'est sous le pouvoir de grands spécialistes dans le domaine des réseaux neuronaux + traders en une seule personne, qui comprennent clairement quel résultat et surtout comment l'obtenir des réseaux neuronaux. D'où tous les problèmes que vous avez énumérés ci-dessus - définition du problème, normalisation des données, surentraînement, etc. ......