L'étiquette du marché ou les bonnes manières dans un champ de mines - page 20

 
Neutron >> :

Donnez-moi un indice sur le problème que vous rencontrez avec la corrélation des signaux d'entrée. Qu'est-ce que vous saisissez, et pourquoi vous pensez qu'il y a un problème. Après tout, il est plus facile de s'assurer qu'il n'existe pas que de le résoudre :-)

Ce n'est pas le problème, c'est mon analphabétisme mathématique.

Tu penses que je suis comme le PS ? Vous n'allez pas le croire ! Ayant divisé à l'avance la plage -/+1 en intervalles égaux de 0.02, dans la boucle j'ai parcouru toute la BP et si la valeur de la BP sur une barre donnée tombait dans la plage -0.98 : +1 j'ai mis dans cette "poche" un "chatl" = 0.01. Puis j'ai affiché le contenu de ces 100 poches sur les 100 dernières barres. Et pour normaliser la PS, j'ai multiplié la PS étudiée par un facteur K > 1.

Voici mon code :

for(int i = limit; i >= 0; i--)
{
if(first)
for(int k = 200; k >0; k--)
Ind2[k] = 0.0; // Инициализация нулем
first = false;
//---------------------------------------------------
res = th(kf*(Close[i] - Close[i+1])/Close[i+1]); // Входной ВР
Ind1[i] = res;
//-------------------------------------------------------

pos = -1.0;
for(int j=200; j>0; j--)
{
if((res > pos) && (res < (pos+step))) // расчет МО
{
if( i > 2 )
{Ind2[j] = Ind2[j] + chatl;}
break;
}
else
{pos = pos + step;}
}

}


Autrement dit, je relève ce coefficient "manuellement", à l'aide d'un indicateur, puis je l'insère comme une constante dans le code NS. Cela fonctionne, mais seulement si les incréments BP d'entrée sont pris à des périodes de temps égales - par exemple à chaque barre ou à n barres égales. Mais si les incréments d'entrée sont pris à des intervalles de temps inégaux - par exemple, selon la série de Fibonacci - 2,3,5,8... ... alors pour chacune de ces références, le coefficient de normalisation du MO devrait être différent ! En général, la façon dont je le fais est efficace, mais pas intelligente - :)

 

Je vois.

Alors, quelle est la corrélation sur les entrées de la NS ?

 
Neutron >> :

Je vois.

Alors, qu'en est-il de la corrélation sur les entrées NS ?

Apparemment, il y a peu ou pas de corrélation du tout. Voir l'indicateur sous le graphique. Chaque ligne bleue est l'une des entrées.



Ce qui est surprenant, c'est que la NS se comporte remarquablement bien ! Deux mois après "l'affûtage", il est en croissance avec un drawdown très acceptable (27%).

 

Voici une autre question que je voulais poser :

Le neurone de sortie de la grille est dépourvu de FA, puisque nous en prélevons l'amplitude, que nous utilisons comme mesure de la probabilité de succès de la transaction prévue, mais il n'est pas non plus normalisé.

La normalisation est-elle nécessaire sur la sortie ? Si ce n'est pas le cas, comment évaluer la probabilité qui en résulte, puisqu'elle se situe généralement en dehors de la fourchette +/-1 ?

 
paralocus писал(а) >>

Elle semble être négligeable ou inexistante. Reportez-vous à l'indicateur situé sous le tableau. Chaque ligne bleue représente une des entrées.

Ce qui est surprenant, c'est que le SN fonctionne remarquablement bien ! Deux mois après l'"affûtage", il croît avec un rabattement très acceptable (27 %).

Il n'est donc pas nécessaire de blanchir quoi que ce soit !

En fait, il serait bon d'obtenir une mesure numérique du coefficient de corrélation par paire pour les deux BP sélectionnés. Voici à quoi ressemble un compteur universel de corrélation par paire :

Transférer à MQL, mettre deux BP (X,Y) de même longueur - n, et obtenir un nombre d'entrée dans l'intervalle +/-1. Pour faire une estimation rapide, le coefficient de corrélation par indices atteint +0.6

Quant au neurone de sortie, si sa sortie est utilisée pour estimer la probabilité d'un événement, il est nécessaire d'avoir un FA non linéaire en entrée. N'importe quel FA fera l'affaire (ceci est prouvé strictement), alors mettez le th.

 
Neutron >> :


...

Je ne comprends pas, comment définir la valeur de n ??????.

 

Je pense que c'est plus simple et plus clair :o) :



Dans ce cas, il n'est pas très utile de créer une boucle, l'opérateur de sommation fera le même travail en termes de temps.

PS Aussi, ce n'est pas du tout un "FAC", le sens est un peu différent.

 
Neutron >> :

Quant au neurone de sortie, si vous utilisez sa sortie pour estimer la probabilité d'un événement, vous devez avoir un FA non linéaire en entrée. N'importe laquelle fera l'affaire (ceci est prouvé rigoureusement), alors mettez-la.

C'est ce que je fais. J'ai tout via th() - :) jeu de mots, cependant.

Je fais tout comme vous l'avez expliqué :

1. Tous les neurones n'ont qu'une seule entrée (+1) (ceci exclut bien sûr les autres entrées de données).

2. A la sortie de tous les neurones sauf le dernier, la sortie FA est non linéaire - j'utilise th(x)

Maintenant, si je veux obtenir une probabilité sur la sortie, cette sortie devrait être à +/-1 (d'après ce que je comprends). Voyons maintenant comment cette dernière sortie est formée.

Si l'on tient compte du fait que OUT1 - OUT3 sont des sorties hypertangentes des neurones de la couche précédente et prennent des valeurs de l'ordre de -/+1, et que W1 - W4 sont leurs poids prenant des valeurs de l'ordre de -/+1, alors l'amplitude du neurone de sortie est de -/+ 4. D'accord, mais si vous tenez compte du fait que les poids peuvent varier sur une large plage - comme vous l'avez dit +/-20 est la norme - alors la plage d'amplitude de la grille de sortie disparaît à l'horizon.

Questions :

1. Comment estimer la probabilité d'une transaction dans de telles conditions ?

2. Avez-vous besoin de normaliser le signal de sortie et si oui, avec quoi ?


A propos des sorties de MathLab - malheureusement, pour moi, c'est une forêt sombre... MathLab lui-même l'est aussi.

Je n'ai pas compris grand-chose à ce que vous m'avez dit il y a quelques posts, mais je me suis creusé la tête pendant une heure et demie.

Et, pardonnez mon intrusion, mais j'ai encore beaucoup plus de questions que de réponses sur l'algorithme du BGC.

Avec le blanchiment, tout semble clair - tout fonctionne.

Je comprends l'architecture.

Les époques et l'échantillonnage optimal sont presque clairs :

J'ai essayé de calculer la taille optimale de l'échantillon pour votre "beau plan" et j'ai abouti à ceci :

nombre d'entrées - 4

nombre de synapses - 4*6 + 3*3 + 4 = 37

facteur 4.

P = k*w*w/d = 4*37*37/4 = 1369 .... et il devrait être de 1500.

Question : faut-il compter les synapses des entrées uniques ? J'ai compté.

 
grasn писал(а) >>

Je ne comprends pas, comment déterminez-vous la valeur de n ??????.

De l'extérieur.

Salut, Sergei !

Vous avez cinq cycles indépendants, et moi un seul ! Qu'est-ce qui est le mieux, avoir l'air élégant, ou être toujours comme ça ?

paralocus a écrit >>

Questions :

1. Comment estimez-vous la probabilité d'une transaction dans ces conditions ?

2. Est-il nécessaire de normaliser le signal de sortie et si oui, avec quoi ?

Mettez th() sur la sortie du dernier neurone - tous vos problèmes vont disparaître ! Et ça ne rendra pas l'entraînement de la maille plus difficile.

J'ai essayé de calculer la taille optimale de l'échantillon pour votre "beau plan", et j'ai abouti à ceci :

nombre d'entrées - 4

nombre de synapses - 4*6 + 3*3 + 4 = 37

facteur - 4

P = k*w*w/d = 4*37*37/4 = 1369 .... et il devrait être de 1500.

Question : faut-il compter les synapses des entrées uniques ? Je le fais.

Calculons la longueur optimale du vecteur d'apprentissage pour chaque membre. Puisque nous avons tous les membres avec la même architecture, nous trouvons pour un :

1. Nombre d'entrées d=3+1=4.

2. Nombre de synapses w=2*4+3+1=12

Longueur optimale du vecteur d'apprentissage P=4*w*w/d=4*12*12/4=144

Ainsi, pour former le comité de réseaux, nous avons besoin de trois vecteurs de formation (le nombre de membres du comité), chacun ayant une longueur de 144. Si vous, paralocus, pensez que cette valeur est faible, augmentez le nombre de neurones de la couche cachée de deux à 4 ou 8 et vous obtiendrez 500 ou 2000 échantillons d'un coup ! N'oubliez pas que vous devez former tous ces éléments dans chaque échantillon.

 
Neutron писал(а) >>

De l'extérieur.

Bonjour, Sergei !

Vous avez cinq cycles indépendants et moi un seul ! Qu'est-ce qui est mieux - avoir l'air élégant, ou être comme ça pour toujours ?

Je l'ai deviné :o)

Pendant que je crée, j'ai besoin d'avoir l'air d'un artiste ! Mais quand je codifie... :о)))

PS: Serega, c'est presque monopolistique dans MathCAD, mais dans C++/FORTRAN ... sera différent, mais dans MathCAD - pour ne pas dire plus (pour ce cas particulier). Et si vous utilisez mean, il comptera encore plus vite, et si vous utilisez corr, par exemple, votre algorithme "rapide" fera la tortue :o) Je ne sais pas comment ils font, mais l'opérateur "addition" est beaucoup plus rapide que la boucle. Si vous ne l'avez pas de cette façon - alors mettez une nouvelle version.