Comment former correctement les valeurs d'entrée pour le NS. - page 23

 
StatBars писал (а) >>

Je ne développe pas NS, je suis actuellement à la recherche des entrées et sorties optimales pour construire un échantillon d'entraînement, je pense qu'un échantillonnage correct est plus important que NS, il y a beaucoup de variantes de NS dans différentes langues sur le web...

Bien. L'architecture avec de bonnes entrées n'est pas un problème. On pourrait dire : les entrées sont tout, l'architecture n'est rien.


Ici, ces messieurs ont pris des entrées normales et ont obtenu des résultats corrects avec MTS "Сombo" :




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


C'est lorsque l'EA fonctionne avec un lot fixe. Je n'y ai pas encore ajouté de MM.
réponse 11.05.2008 14:17 zxc
Valio:

J'ai aussi essayé de mettre la main sur ce miracle. Je l'ai essayé pendant une semaine, j'ai débogué l'algorithme dans la version de base et j'ai ajouté quelques fonctions de mon cru dans basicTradingSystem, c'est-à-dire que j'ai refait le "BTS de base" dans la langue de l'auteur. Les résultats sont fantastiques sur les données historiques : rentabilité de 8 à 12, gain attendu d'environ 1000, mais c'est réel avec mon propre indicateur. Je l'ai testé sur 1H EUR, l'intervalle de temps est d'environ six mois. Le mois suivant après - résultat

"Le mois suivant - le résultat" ? ??

Valio, alors quel résultat obtenez-vous en avant ? Très intéressant !

C'est juste que j'ai refait cet EA aussi, et au début la rentabilité sur euromoney (pas même pour une demi-année, mais pour une année) par H1 était supérieure à 18 (et plus) !!! Mais les attaquants se sont avérés ne pas être si bons, pour ne pas dire plus...

Maintenant, après une autre révision, la rentabilité pendant l'optimisation est plus faible (environ 10), mais maintenant le forward se maintient décemment (plus de 3 mois). Dans le forward de plus de 3 mois, la rentabilité est supérieure à 2,5. Je travaille encore dessus, je pense que cela peut être un conseiller expert très intéressant.

réponse
 
Reshetov писал (а) >>

Bien. L'architecture, avec les bonnes entrées, n'est plus un problème. On pourrait dire : les entrées sont tout, l'architecture n'est rien.


Ici, ces messieurs ont capté les bonnes entrées et obtenu les résultats appropriés avec MTS "Combo" :

Je suis d'accord avec vous dans une certaine mesure. Mais l'architecture du réseau joue un rôle important ... Par exemple, les réseaux RBF sont bien meilleurs pour résoudre certains problèmes d'interpolation.

 
rip писал (а) >>

Je suis d'accord avec vous sur certains points. Mais l'architecture du réseau joue un rôle important ... Les réseaux RBF, par exemple, sont bien meilleurs pour résoudre certains problèmes d'interpolation.

Lorsqu'ils sont appliqués au trading, les problèmes d'interpolation et d'approximation sont absolument inutiles, car le marché change en permanence et les cotations ne sont pas des fonctions lisses. Ici, nous devons résoudre les problèmes d'extrapolation, afin que la stratégie de trading puisse passer avec succès les tests avant, plutôt que de se limiter à s'adapter à l'historique. Nous n'avons pas besoin de savoir quelle valeur le prix avait entre untel et untel date, car elle est déjà connue sans aucune interpolation.


Ne perdez donc pas votre temps avec les interpolations et les architectures. En outre, l'interpolation et l'approximation peuvent être réalisées à l'aide de différentes méthodes et sont beaucoup plus faciles et précises.


Choisissez des entrées adéquates pour que la classification des modèles puisse être effectuée même sur une architecture élémentaire. Après cela, il n'est plus nécessaire de sélectionner l'architecture correspondante. Essayer de faire le contraire n'est qu'une perte de temps.


Pour construire une maison, le plus important est la fondation, pas la finition. Bien que le fini soit plus attrayant que le fond de teint.


Il en va de même pour l'architecture de la NS. Il ajoute certainement des fonctionnalités, mais seulement si les entrées sont adéquates. S'il est insuffisant, le plâtre ne sauvera pas la maison de l'effondrement, si les fondations s'effondrent.

 
Reshetov писал (а) >>

La chose la plus importante pour construire une maison est la fondation, pas la finition. Bien que le fini soit plus attrayant que le fond de teint.

Il en va de même pour l'architecture de la SN. Il ajoute certainement des fonctionnalités, mais seulement si les entrées sont adéquates. S'ils sont inadéquats, le plâtre ne sauvera pas la maison de l'effondrement si les fondations s'effondrent.

OK, je suis d'accord - les signaux d'entrée et de sortie sont importants. Il s'agit de l'énoncé du problème qui définit l'architecture du SN. La classification des modèles, c'est l'un d'entre eux.

Pourquoi un signal d'entrée ne pourrait-il pas être la détermination du signe de la prochaine barre + la détermination des extrema de la même barre ? Qu'est-ce qui ne va pas ?


Même pour la classification, la question importante sera de savoir quels NS vous prenez et comment vous préparez les données. Un réseau n'est pas un outil précis, il ne peut pas

Pour donner le résultat aux centièmes, mais ça peut donner les critères... par rapport à laquelle un autre outil donnera le calcul.

 
Reshetov писал (а) >>

Pour le trading, les problèmes d'interpolation et d'approximation sont absolument inutiles, car le marché change tout le temps et les cotations ne sont pas des fonctions lisses. Ici, nous devons résoudre les problèmes d'extrapolation, afin que la stratégie de trading passe avec succès les tests avant, plutôt que de se limiter à s'adapter à l'historique. Nous n'avons pas besoin de savoir quelle était la valeur du prix entre telle et telle date, car elle est déjà connue sans aucune interpolation.

Ne perdez donc pas votre temps avec les interpolations et les architectures. En outre, l'interpolation et l'approximation peuvent être réalisées par diverses autres méthodes et sont beaucoup plus faciles et beaucoup plus précises.


Choisissez des entrées adéquates pour que la classification des modèles puisse être effectuée même sur une architecture élémentaire. Après cela, il n'est pas nécessaire de sélectionner l'architecture correspondante. Essayer de faire le contraire n'est qu'une perte de temps.


Pour construire une maison, le plus important est la fondation, pas la finition. Bien que le fini soit plus attrayant que le fond de teint.


Il en va de même pour l'architecture de la SN. Cela ajoute certainement de la fonctionnalité, mais seulement si les entrées sont adéquates. S'il est insuffisant, le plâtre ne sauvera pas la maison de l'effondrement si les fondations s'effondrent.

Je suis tout à fait d'accord. Comme me l'a dit un camarade estimé (Steve Ward) - "Cherchez les entrées" )))))

 
TheXpert писал (а) >>

Ne bougez plus ! !! J'ai déjà une libc VC++ toute prête.

Seulement il y a 2 problèmes :

1. reliant à Boost, je veux m'en débarrasser, il est préférable de le sérialiser manuellement, il glitche de toute façon.

2. quelque chose avec une hauteur de son adaptable.


Pourquoi faire une bicyclette ? Surtout là

1. MLP avec possibilité de créer une structure arborescente.

2. std::valarray + optimisation agressive des opérations pour un comptage plus rapide.

3. il existe une étape adaptative

4. modèles avec auto-normalisation.

5. de nombreuses possibilités d'expansion.



Ы ?

Oui, c'est très bien, merci pour la suggestion. Mais comme on dit, il vaut mieux le faire une fois pour soi :)

J'ai vraiment appris beaucoup de choses ce week-end.

Surtout quand j'ai réussi à réduire le nombre de cycles de 10e7 à environ 10e4.

Je l'ai fait de deux façons.

1. Le neurone présentant l'erreur la plus importante est corrigé à double vitesse. (j'ai essayé de le remplacer par un neurone avec une erreur minimale - pire)

2. Si la correction d'un neurone est inférieure à un certain minimum (par exemple, 10e-6), sa correction est multipliée par 10.

J'ai beaucoup aimé. :)

Pour ce qui est d'utiliser celui de quelqu'un d'autre, tant que vous ne comprenez pas vous-même le besoin d'une chose, vous n'en avez pas encore besoin.

D'autant plus que la vitesse est importante ici, et qu'il est inacceptable d'augmenter les fonctionnalités au détriment de la vitesse. À mon avis, il est préférable d'écrire une grille pour une tâche spécifique. Bien sûr, pas sans avoir des objets normaux et une structure bien pensée, mais...

Pour les points 2 et 3, c'est déjà intéressant. Y a-t-il un moyen de connaître les méthodes que vous utilisez ?

-----------------------------------

J'ai lu les messages. Dommage qu'on soit encore là. :) Tout ce que je fais, c'est écrire L'IMPORTANCE DES INPUTS ! !! L'architecture n'est rien - les inputs sont tout, Cherchez les inputs. etc.

Mais il n'y a rien de concret. Peut-être que les gourous aimeraient partager ? А ?

 
rip писал (а) >>

>> Qu'est-ce qu'un lib ?

Le mien, je l'ai déjà posté sur le RSDN. Je ne suis pas encore arrivé à SourceForge, et il faut encore travailler dessus...

 
sergeev писал (а) >>

Je l'ai fait de deux façons.

1. Le neurone présentant l'erreur la plus importante est corrigé à double vitesse. (j'ai essayé de le remplacer par un neurone avec une erreur minimale - pire)

2. Si la correction d'un neurone est inférieure à un certain minimum (par exemple, 10e-6), sa correction est multipliée par 10.

J'ai beaucoup aimé. :)

Ouais, cool, pourquoi je ne le construirais pas moi-même ?

Pour ce qui est d'utiliser celui de quelqu'un d'autre, tant que vous ne comprenez pas vous-même le besoin d'une chose, vous n'en avez pas encore besoin.

D'autant plus que la vitesse est importante ici, et que l'augmentation de la fonctionnalité au détriment de la vitesse est inadmissible. À mon avis, il est préférable d'écrire une grille pour une tâche spécifique. Bien sûr, pas sans avoir des objets normaux et une structure réfléchie, mais...

En ce qui concerne la vitesse - j'ai fait de mon mieux, je pense que je peux accélérer mon code de 3 à 5 % au maximum. Et ce ne sera pas facile :).

En ce qui concerne les points 2 et 3, je suis déjà curieux. Existe-t-il un moyen de savoir quelles méthodes sont utilisées ?

2. "Le langage C++", Bjorn Straustrup, recherche une optimisation agressive, le but étant de réduire les opérations de copie.

3. Les notes de cours de V. Golovko, essayez de rechercher ses travaux ou google "adaptive step learning", je ne peux pas donner de lien particulier maintenant.

5. Extension pas au détriment de la vitesse, règle des gabarits :).

 
sergeev писал (а) >>

-----------------------------------

J'ai lu les messages. C'est une honte qu'il soit encore là. :) Tous écrivent simplement COMME IL EST IMPORTANT de créer des entrées !!! L'architecture n'est rien - les entrées sont tout, Cherchez des entrées, etc.

Et il n'y a aucune spécificité. Peut-être que les gourous peuvent partager ? А ?

Plus précisément, je peux vous conseiller sur la façon de rechercher des intrants adéquats.


Prenez le perceptron le plus simple (voir Comment trouver une stratégie de trading rentable ) et connectez à son entrée certains inductances et leurs combinaisons. Ce qui donne le plus grand facteur de profit sur ce même perceptron, c'est-à-dire le meilleur ajustement dans les tests avec lot constant (sans MM), a de grandes chances de réussir les tests avancés sur une architecture plus complexe. Pourquoi, c'est facile à expliquer. Après tout, le perceptron est une classification linéaire. Ce qui signifie que nous obtiendrons une séparabilité linéaire sur les entrées par des modèles. Par architecture, nous ajouterons la classification par paramètres non linéaires et obtiendrons un meilleur résultat.


Si vous faites le contraire, vous n'aurez rien. L'architecture sophistiquée consomme d'immenses ressources et recherche les signes des motifs à la fois par séparabilité non linéaire en ignorant la séparabilité linéaire. Et la non-linéarité sans linéarité n'est rien d'autre qu'un simple ajustement. Ce que nous obtenons est une perte de temps.


Encore une collation. Si la grille est entraînable, elle ne doit jamais être entraînée jusqu'au bout. Il doit toujours être sous-entraîné. Par exemple, pour un entraînement complet, il faut 1000 époques, divisez par 3 et vous obtenez environ 300 époques. C'est bien suffisant. Pourquoi ? Si nous surentraînons complètement le réseau, il ne sera adapté qu'aux environnements stationnaires. Et les instruments financiers sont des environnements commutables non stationnaires. C'est-à-dire qu'il ne peut passer que partiellement d'un état stationnaire à un autre en un certain temps, tout en restant dans son état précédent pour l'essentiel. Il peut aussi revenir à l'état précédent. Par conséquent, un recyclage complet de la maille est un ajustement nu à un environnement temporaire commutable.


Et enfin, pour les nerds qui pensent que les capacités d'interpolation de NS sont nécessaires pour le trading, je peux vous donner un contre-argument spécifique. Prenez n'importe quel indicateur ou oscillateur de redécoupage et vous obtiendrez une interpolation étonnante sur l'histoire sans réseaux neuronaux ni architectures compliquées. Bien entendu, les traders évitent de redessiner les indices car ce qui convient à l'interpolation ou à l'approximation ne convient pas à l'extrapolation dans des conditions de non-stationnarité.



 
Reshetov писал (а) >> Encore une collation . Si le filet est entraînable, il ne doit jamais être entraîné jusqu'au bout. Il doit toujours être sous-entraîné. Par exemple, vous avez besoin de 1000 époques pour l'entraîner complètement, divisez par 3 et vous obtenez environ 300 époques. C'est bien suffisant. Pourquoi ? Si nous surentraînons complètement le réseau, il ne sera adapté qu'aux environnements stationnaires. Et les instruments financiers sont des environnements commutables non stationnaires. C'est-à-dire qu'il ne peut passer que partiellement d'un état stationnaire à un autre en un certain temps, tout en restant dans le même état la plupart du temps. Il peut aussi revenir à l'état précédent.
Je renforcerais encore ce conseil : divisez par 10. Pour une raison quelconque, une branche sur la résonance stochastique me vient à l'esprit. Apprendre le maillage jusqu'au bout peut conduire la fonction cible à un minimum profond, c'est-à-dire à un état stable. Les états stables ne sont pas du tout typiques des marchés financiers. Elles sont quasi-stables, c'est-à-dire telles qu'elles sont prêtes à se transformer en catastrophe (tendance) à tout moment sous l'influence du moindre "bruit". Mais ce n'est qu'une réflexion philosophique...