Hypothèse basée sur Fourier - page 9

 
grasn писал(а) >>

Je ne suis pas un expert en algèbre linéaire, mais j'ai vu des descriptions d'algorithmes plus rapides. A propos, si quelqu'un a - passe-le à Urain, ce sera une bibliothèque encore plus utile dans le sens de la vitesse des calculs.

L'algorithme le plus rapide est la méthode gaussienne (avec des modifications appropriées).

J'ai commencé à écrire une bibliothèque sur l'algèbre linéaire hier (je ne me suis pas appuyé sur la bibliothèque Urain ). Ma bibliothèque a plus de possibilités. Attendez.

 
lea писал(а) >>

Un algorithme plus rapide est la méthode gaussienne (avec des modifications appropriées).

J'ai commencé à écrire une bibliothèque sur l'algèbre linéaire hier (je ne me suis pas appuyé sur la bibliothèque Urain ). Ma bibliothèque a plus de possibilités. Attendez.

Pour que mes propos ne vous paraissent pas vides - je vais vous présenter un fichier d'en-tête de ma bibliothèque. Ma bibliothèque elle-même est toujours en cours d'extension et de test (je vérifie les calculs dans maple).

Dossiers :
libmatrix.mqh  18 kb
 
grasn >> :

Je ne suis pas un expert en algèbre linéaire, mais j'ai vu des descriptions d'algorithmes plus rapides. A propos, si quelqu'un l'a - passez-le à Urain, ce sera une bibliothèque encore plus utile dans le sens de la vitesse des calculs.

Vous devez réduire la matrice à une forme triangulaire, par exemple, par la méthode d'élimination de Jordano-Hauss. Le produit de ses éléments diagonaux (triangulaires) est un déterminant de la matrice initiale (il est nécessaire de tenir compte des signes lors de la transposition des lignes lors de l'élimination). Après cela, on peut inverser la matrice entière en utilisant ses mineurs partiels et ses déterminants partiels. Elle fonctionne dix fois plus vite que les méthodes canoniques. Et il est possible de vérifier la correction du programme juste par des algorithmes courts canoniques. 1.

Numerical Recipes in C, deuxième édition (1992).

Résolution d'équations algébriques linéaires

http://www.nrbook.com/a/bookcpdf.php


À propos, il existe également un bon livre gratuit utile (bien que la majeure partie soit sur Fourier)

2. le guide du traitement des signaux numériques à l'usage des scientifiques et des ingénieurs.
Par Steven W. Smith, Ph.D.

http://www.dspguide.com/pdfbook.htm

 
AlexEro >> :

Vous réduisez une matrice à une forme triangulaire - par exemple, par la méthode d'élimination de Jordano-Hauss, le produit de ses éléments diagonaux (triangulaires) est le déterminant de la matrice initiale (là, vous devez également tenir compte des signes lors du réarrangement des lignes lors de l'élimination). Après cela, on peut inverser la matrice entière en utilisant ses mineurs partiels et ses déterminants partiels. Elle fonctionne dix fois plus vite que les méthodes canoniques. Et il est possible de vérifier la correction du programme juste par des algorithmes courts canoniques. 1.

Numerical Recipes in C, deuxième édition (1992).

Résolution d'équations algébriques linéaires

http://www.nrbook.com/a/bookcpdf.php


À propos, il existe également un bon livre gratuit utile (bien que la majeure partie soit sur Fourier)

2. le guide du traitement des signaux numériques à l'usage des scientifiques et des ingénieurs.
Par Steven W. Smith, Ph.

http://www.dspguide.com/pdfbook.htm


En fait, cette méthode est mise en œuvre pour trouver le déterminant, mais existe-t-il une méthode plus rapide pour la conversion ?

Je trouve un mineur pour chaque cellule et je divise par le déterminant (il s'avère qu'il y a N^2 mineurs à trouver, et le mineur est aussi un déterminant par un rang de moins).

 
Urain писал(а) >>

En fait, cette méthode est mise en œuvre pour trouver le déterminant, mais existe-t-il une méthode plus rapide pour la conversion ?

Je trouve un mineur pour chaque cellule et je divise par le déterminant (il s'avère que N^2 mineurs doivent être trouvés, et qu'un mineur est aussi un déterminant d'un rang inférieur).

La méthode de Gauss peut être adaptée à cela. O(N^3). Cherchez "matrice inverse" sur wikipedia.

 
Urain >> :

En fait, cette méthode est mise en œuvre pour trouver le déterminant, mais existe-t-il une méthode plus rapide pour la conversion ?

Je trouve un mineur pour chaque cellule et je divise par le déterminant (il s'avère que N^2 mineurs doivent être trouvés, et qu'un mineur est aussi un déterminant d'un rang inférieur).

Ce cycle prend juste un peu de temps. Le problème est que vous comptez un mineur de manière récursive, n'est-ce pas ? Vous pouvez l'accélérer en comptant chaque mineur non pas par récursion, mais en convertissant VER chaque matrice (mineur, privé, sous-matrice) en une forme triangulaire.

 
grasn >> :

La ligne d'une telle matrice est essentiellement la dynamique du coefficient KP sur une histoire donnée. Et ces séries, aussi étrange que cela puisse paraître, sont stationnaires et présentent de nombreux avantages. Voici quelques exemples à titre d'illustration :

Fréquence 0 :

Merci pour le programme de Mathcade. J'ai essayé de le reproduire, mais je me suis aperçu qu'il se comporte un peu différemment de votre exemple. Pour les prévisions, j'ai pris une section de la semaine dernière sur M15 avec une longueur de 1500 barres sur EURUSD. C'est à peu près la même chose que votre section de test.

Mais après avoir utilisé CreateModeMatrix(), j'ai obtenu une image très différente à la fréquence 0 :


La même image est à peu près la même à d'autres fréquences. Autrement dit, pas de grandes périodes comme dans votre exemple. Si vous n'y voyez pas d'inconvénient, veuillez donner votre avis sur les options qui sont correctes :

a) ensemble de données différent - caractéristiques différentes ;

b) une mauvaise interprétation des résultats de la matrice DW ;

c) des erreurs de frappe dans le programme.

 
equantis >> :

Merci pour le programme de Mathcade. J'ai essayé de le reproduire mais je me suis aperçu qu'il se comporte un peu différemment de votre exemple. Pour la prédiction, j'ai pris une section de la dernière semaine sur M15 avec une longueur de 1500 barres sur EURUSD. C'est à peu près la même chose que votre section de test.

Mais après avoir utilisé CreateModeMatrix(), j'ai obtenu une image très différente à la fréquence 0 :


La même image est à peu près la même à d'autres fréquences. Autrement dit, pas de grandes périodes comme dans votre exemple. Si vous n'y voyez pas d'inconvénient, veuillez donner votre avis sur les options qui sont correctes :

a) ensemble de données différent - caractéristiques différentes ;

b) mauvaise interprétation des résultats de la matrice DW ;

c) des erreurs de frappe dans le programme.


Une mise en œuvre 1:1 ?


PS : Une correction. Si c'est 1:1 et que la ligne d'entrée est citée, c'est assez bizarre. Si l'image est stable, alors c'est déjà très bizarre.

 
Urain >> :

Je trouve un mineur pour chaque cellule et je divise par le déterminant. (C'est N^2 mineurs à trouver, et un mineur est aussi un déterminant par un rang de moins).

Bien sûr, c'est une méthode lente. Je me demande comment vous avez encore obtenu quelque chose pour une matrice de 100 par 100.

 

Juste au cas où, pour soulager votre conscience:o)

Avertissement

En regardant le sujet de l'application de la transformée de Fourier, je me suis souvenu de ce avec quoi j'avais l'habitude de m'amuser, et j'ai écrit, en pensant que ce serait "un magasin de modèles qui ne devraient pas être là". Pour être honnête, j'ai abandonné ce modèle à l'époque, ayant pris pleinement conscience de la complexité et de l'impossibilité pratique de mettre en œuvre cette approche. Ce n'est que dans le concept que nous décomposons le complexe en simple. Dans la pratique, il s'avère qu'il est impossible de faire 50, 100 ou plus de prévisions avec une précision suffisante, pour ne pas dire plus. La nature est plutôt difficile à tromper, plus précisément - impossible. Et ce qui aggrave les choses, c'est que nous n'avons pas besoin des premiers résultats (ils sont les plus précis) mais du dernier de la série de prévisions, et c'est tout simplement le moins précis. Et la série elle-même n'est pas si simple. Par conséquent, il est pratiquement impossible d'utiliser les prévisions pour le trading (il n'est pas nécessaire de prêter attention à une seule image chanceuse).


Jene suis pas sûr qu'il soit nécessaire de passer du temps dans cette direction... La solution peut certainement exister, mais elle est très, très, très, très difficile à trouver, compte tenu de toutes les spécificités des cotations du marché.