Prédire l'avenir avec les transformées de Fourier - page 4

 
À propos, j'ai écrit hier que la période de la demi-onde de gauche devrait être plus courte et celle de droite plus longue. Et alors l'extrapolation porterait aussi la même loi. Et cette journée l'a certainement confirmé. Une chute rapide de l'euro suivie d'une tentative de redressement lente mais intense.
 

Bien sûr, je devrais autoriser l'utilisation de la DLL, la DLL elle-même est connectée, mais elle ne voit pas les fonctions qu'elle contient.

Bon, pendant que je compte les fonctions de front, alors peut-être que mq5 sortira, et que les classes y apparaîtront aussi.

 
m_keeper:

Je pense que les réseaux neuronaux devraient être utilisés lorsqu'il n'est pas possible de tirer des conclusions à l'aide d'une analyse mathématique, statistique, différentielle ou autre.


Il y a une certaine logique à cela - la NS n'est pas l'outil le plus facile à tous les égards, donc il vaut mieux d'abord tirer le maximum des outils classiques.


m_keeper:

Ne faites rien de mon indicateur pour l'instant, il est trop inachevé.

Mais il dessine magnifiquement :)
 
ANG3110:
goldtrader:

Et si le signal de l'indicateur (ou plutôt la différence entre la lecture et le prix actuel) est envoyé à l'entrée NS ?

Puis-je répondre à la question, mais elle ne m'a pas été posée, puisque je consulte cette page.

En fait, la question n'est pas très correcte, car il existe différents réseaux avec un nombre différent d'entrées et de sorties.

Il en existe des approximatives, des classificatrices et des associatives. Avec ou sans professeur.

Mais si vous supposez ce que l'auteur voulait dire, vous pouvez le faire. Mais le résultat sera-t-il satisfaisant ?

C'est clair. J'avais une suggestion plus générale que spécifique. La réponse de m_keeper est satisfaite.

 

Troublé par l'indicateur d'un autre jour

Remplacement de la transformée de Fourier rapide par des transformées habituelles, maintenant la fenêtre peut être fixée à n'importe quelle longueur.


J'ai expérimenté avec la taille de la fenêtre en essayant de "prendre une vague" et j'ai trouvé beaucoup de choses intéressantes

)S'il y a des harmoniques, ils ne dépassent pas trois ou quatre

) Ces harmoniques ne coïncident pas précisément avec les ondes de marché correspondantes par fréquence (ce serait étrange si c'était le cas).

)cela provoque des battements pendant le mouvement de la fenêtre - la phase est perdue

nous avons plusieurs fréquences non-harmoniques sur le marché

Ils peuvent être isolés, comme l'a écrit ANG3110, par l'amplitude maximale

J'ai pensé à augmenter la période pour avoir plus d'harmoniques dans la gamme dont j'ai besoin.

) Si la fréquence souhaitée est présente sur toute la plage, elle est décalée,

puis il accélère (la non-linéarité est évidente), il ne se met pas en phase correctement à la fin

)une longue période n'est pas très bonne, il y a trop de redondance


En fait, deux idées me sont venues à l'esprit à ce moment-là.

)Qui a dit que les fréquences doivent être des harmoniques de la fréquence principale (Fourier a probablement dit cela)

1/T 2/T 3/T pourquoi ne pas prendre 10/10T 11/10T 12/10T et nous obtenons une densité de fréquence plus élevée.

dans la gamme qui nous intéresse.

) pourquoi prendre des harmoniques ? Il suffit de calculer les fréquences fondamentales (amplitude et phase).

pour toutes les largeurs de bande inférieures à celle donnée. Je pense que le tracé de l'amplitude sera

assez lisse dans la gamme des basses fréquences) nous devons prendre des maxima locaux et ces harmoniques

peut déjà donner une prédiction.


Et je voudrais aussi demander.

Quel critère pourrait-on utiliser pour déterminer l'importance de l'amplitude en fonction de la fréquence ?

Après tout, avant de chercher des maxima locaux, il serait bon de pronormaliser le spectre.

 

PS Je pense que je me suis trompé sur les fréquences principales seulement, au moins 2 ou 3 périodes doivent être surveillées.

 

Vous pouvez simplement normaliser la fenêtre et séparer le segment de prévision, ci= (Close[i] - min)/(max - min) ; cela améliore un peu les choses, mais seulement légèrement. Il est généralement assez difficile d'obtenir une correspondance en termes d'amplitude. L'identification des points de pivot potentiels est ici plus précieuse.


Là, les 2-4 harmoniques sont vraiment optimales. J'avais l'habitude de faire un script de dessin pour voir rapidement ce qui s'y passait. J'ai réussi à dessiner des courbes à partir de barres. Ensuite, la période peut être modifiée avec la souris, et tout est rapidement et bien visible. Ou, une autre façon est de développer un indicateur et un script pour mettre à jour les données dans la fenêtre, sinon la fonction start() de l'indicateur ne sera pas lancée. Il est possible d'utiliser le canal de régression dans le script et d'envoyer ses paramètres à l'indicateur en utilisant les variables globales, ainsi que de changer le nombre d'harmoniques en appuyant sur les touches du clavier.

#import "user32.dll"
int GetAsyncKeyState(int nVirtKey) ;
int PostMessageA(int hWnd,int Msg,int wParam,int lParam) ;
#import
#define WM_COMMAND 0x0111


Ensuite, l'image de l'indicateur peut être déplacée avec la souris. A propos, la RMS est calculée dc=Close[i]-fx ; sq+=dc*dc ; et à la fin sq=MathSqrt(sq/T) ; et les amplitudes totales MathSqrt(ak[k]*ak[k]+bk[k]*bk[k]) ;

Une combinaison est faite par les extrêmes, d'abord grossièrement à l'œil, puis par le RMS minimum et l'amk maximum ;

Ceci est pour la recherche afin de tout voir rapidement. Pour l'automatisation, c'est un peu différent, rien n'est fait à l'œil.

Si la phase est flottante, il n'y a pas d'onde stationnaire et la prévision se détériore. Vous pouvez mettre un mouving ou une régression, alors la phase est plus stable. Mais en principe, la différence de phase devrait être utilisée dans l'automatisation pour l'auto-réglage de la période, comme les récepteurs radio utilisent l'auto-réglage de la phase de la fréquence.

Mais c'est pour une seule fréquence. Pour augmenter la précision, on prend des périodes de plus en plus grandes et le nombre d'harmoniques pour chacune d'entre elles de 1 à 5, pas plus, et on les additionne pour obtenir la moyenne. Mais une fois encore, il est presque impossible d'obtenir de bonnes prédictions à tout moment avec une échelle de temps linéaire. Nous devons plutôt combiner la prévision et l'autotuning continu. En général, l'automatisation n'est pas simple, même si, bien sûr, si elle était réussie, je pense que les résultats commerciaux seraient très bons.


 
m_keeper:

Et je voudrais aussi demander.

Quel critère peut-on utiliser pour déterminer l'importance de l'amplitude en fonction de la fréquence ?

Après tout, avant de chercher des maxima locaux, il serait bon de pronormaliser le spectre.

Essayez peut-être la normalisation proposée par l'auteur de l'article (archive, p.17).

Dossiers :
1.zip  246 kb
 

Neutron

Je n'y trouve pas de rationnement normal.


à m_keeper

Essayez de normaliser à l'énergie totale.

 

J'ai tracé le périodogramme - dans la figure ci-dessous


la valeur la plus à droite est l'amplitude de la seconde harmonique de la période maximale.

chaque unité successive (une mesure, pas une harmonique) plus petite, et ainsi de suite, jusqu'à ce que la période soit égale à la 12e harmonique de la valeur maximale.


Comme je m'y attendais, le graphique est assez lisse et montre des maxima locaux clairs.

chaque maximum correspond à une fréquence et à une phase déjà calculées, et la phase au maximum doit

sans aucune déviation.


Il ne reste plus qu'à tracer l'ensemble.