Interpolation, Approximation und Ähnliches (Paket alglib) - Seite 8

 
Alle diese Konvertierungen sind für meine Aufgabe nicht geeignet, die Bibliotheken sind nutzlos (studiert). Lassen Sie uns einen anderen Weg gehen. Da aber niemand etwas über den Kern der Frage weiß, werde ich Ihnen nicht sagen, welche es ist.
 
Maxim Dmitrievsky:
All diese Transformationen sind für meine Aufgabe nicht geeignet, die Bibliotheken sind nutzlos (studiert). Lassen Sie uns einen anderen Weg einschlagen. Aber da niemand den Kern der Frage versteht, werde ich Ihnen nicht sagen, welche es ist.

Vielen Dank, Maxim, für diesen Thread. Ich bin persönlich an Ihnen interessiert. Ich werde Ihren kreativen Prozess verfolgen.

Ich wurde immer wieder in den Abgrund der KI gezogen.
Der Abgrund zieht mich an.

 
Ja, es war sehr interessant zu lesen. Vielen Dank @Nikolai Semko
 
Maxim Dmitrievsky :
Alle diese Transformationen passen für meine Aufgabe nicht, sie sind nutzlos (gelernt). Gehen wir einen anderen Weg. Aber da niemand etwas versteht, werde ich nicht sagen, wie.

Ich verstehe die Vorzüge bis zu einem gewissen Grad und möchte auf jeden Fall helfen und das Problem lösen, da ich den allgemeinen theoretischen Teil des Problems bis zu einem gewissen Grad verstanden habe, aber wenn es um die praktische Umsetzung in MQL5-Code geht, dann ohne das genaue Verständnis des Codes, wo Sie stecken es immer schwierig für mich richtig zu verstehen, um eine Idee zu geben, wie das Problem zu lösen oder wo genau das Problem ist. Ich meine, inwieweit Sie in MQL5 implementiert haben und was suchen Sie genau in Bezug auf MQL5-Code oder Formel oder Funktion usw.

Wenn Sie Ihre Gedanken oder das Problem in Form von ein paar Zeilen MQL5-Code umwandeln können, in denen Sie feststecken, dann werde ich mein Bestes tun, um zumindest eine Idee zur Lösung des Problems zu geben.

 
Nikolai Semko:

Entschuldigung, ich habe nicht verstanden, was Sie meinen. Offenbar aufgrund meiner Einschränkungen. Aber ich habe es versucht.
Aber sehen Sie es sich an und verwenden Sie dieses Beispiel:
https://www.mql5.com/ru/forum/216298/page5#comment_6484839


Die Idee, dass jede periodische Funktion als eine Reihe von harmonisch zusammenhängenden Sinus- und Kosinusfunktionen dargestellt werden kann, wurde von Baron Jean Baptiste Joseph Fourier (1768-1830)vorgeschlagen.


Definition einer Fourier-Reihe

Eine Funktionf(x)hat eine PeriodeP, wennf(x+P)=f(x)für alle Werte vonx.Die Periode der Funktionf(x) sei. In diesem Fall istes ausreichend, das Verhalten der Funktion im Intervall[-π]zu betrachten.
  1. Angenommen, die Funktionf(x) mit der Periode ist im Intervall[-π] perfekt integrierbar. In diesem Fall ist das sogenannteDirichlet-Integral endlich:π∫-π|f(x)|dx< ∞;

  2. Nehmen wir weiter an, dass die Funktionf(x) einwertig, stückweise stetig (d.h. mit einer endlichen Anzahl von Unstetigkeiten) und stückweise monoton (mit einer endlichen Anzahl von Maxima und Minima) ist.

Wenn die Bedingungen 1 und 2erfüllt sind, dannexistiertdie Fourier-Reihefür die Funktionf(x)und konvergiert gegen die gegebene Funktion

Kann eine nicht-periodische Funktion in eine Fourier-Reihe erweitert werden? Ja - dazu nehmen wir an, dass das Intervall, auf dem wir die Expansion erhalten wollen, die Periode ist und skalieren es auf[-π]
. Wenn man dann aber über das Zerlegungsintervall hinaus extrapoliert (über den rechten Rand), sollte man die Werte der periodischen Funktion im Grenzwert erhalten, die die Werte des linken Randes mit einer entsprechenden Verschiebung sind - Periode P.
Zeichnen ist faul - es gehört zu den numerischen Methoden an den Universitäten, etwa im zweiten oder dritten Studienjahr. Genauer gesagt, wurde es früher (zu meiner Zeit) studiert - ich habe keine Ahnung, wie es jetzt ist.
 
Vladyslav Goshkov:

Die Idee, dass jede periodische Funktion als eine Reihe von harmonisch zusammenhängenden Sinus- und Kosinusfunktionen dargestellt werden kann, wurde von Baron Jean Baptiste Joseph Fourier (1768-1830)vorgeschlagen.

Definition einer Fourier-Reihe

Eine Funktionf(x)hat eine PeriodeP, wennf(x+P)=f(x)für alle Werte vonx.Die Periode der Funktionf(x) sei. In diesem Fall istes ausreichend, das Verhalten der Funktion im Intervall[-π]zu betrachten.
  1. Angenommen, die Funktionf(x) mit der Periode ist im Intervall[-π] perfekt integrierbar. In diesem Fall ist das sogenannteDirichlet-Integral endlich:π∫-π|f(x)|dx< ∞;

  2. Nehmen wir weiter an, dass die Funktionf(x) einwertig, stückweise stetig (d.h. mit einer endlichen Anzahl von Unstetigkeiten) und stückweise monoton (mit einer endlichen Anzahl von Maxima und Minima) ist.

Wenn die Bedingungen 1 und 2erfüllt sind, dannexistiertdie Fourier-Reihefür die Funktionf(x)und konvergiert zu der gegebenen Funktion

Kann eine nicht-periodische Funktion in eine Fourier-Reihe erweitert werden? Ja - dazu nehmen wir an, dass das Intervall, auf dem wir die Expansion erhalten wollen, die Periode ist und skalieren es auf[-π]
. Wenn man dann aber über das Zerlegungsintervall hinaus extrapoliert (über den rechten Rand), sollte man die Werte der periodischen Funktion im Grenzwert erhalten, die die Werte des linken Randes mit einer entsprechenden Verschiebung sind - Periode P.
Zeichnen ist faul - es gehört zu den numerischen Methoden an den Universitäten, etwa im zweiten oder dritten Studienjahr. Genauer gesagt, sie haben es (zu meiner Zeit) studiert - wie, weiß ich nicht.

Es scheint, dass Sie den Sinn der Zerlegung der Funktion in Harmonische nicht verstehen.
Welche linke Kante wird über die rechte Kante getragen? Wie meinen Sie das?

Sie wissen, dass es bei einer Fourier-Zerlegung darum geht, eine Reihe von Oberschwingungen (Sinuskurven) mit unterschiedlicher Frequenz, Amplitude und Phasenverschiebung zu erhalten, so dass man bei ihrer Addition etwas erhält, das der ursprünglichen Funktion des Datensatzes ähnelt.

Jede Sinuskurve ist wie eine unendliche Funktion und hat weder einen linken noch einen rechten Rand. Um sie zu extrapolieren, muss man sie nur fortsetzen und nicht die "linke" Kante mit der "rechten" Kante verbinden.

Und die Periodizität dieser Oberschwingungssumme entspricht nicht dem Abtastbereich der ursprünglichen approximierten Daten, sondern dem Abstand zwischen den Zeitpunkten, an denen alle Oberschwingungen mit unterschiedlichen Frequenzphasenverschiebungen gleichzeitig zu ihren Ausgangswerten zurückkehren, und nicht der Tatsache, dass dies geschehen kann, denn es kann nur geschehen, wenn alle Oberschwingungsfrequenzen Vielfache desselben Wertes sind.

Die blaue Linie ist die Annäherung, die rote Linie ist die Extrapolation.

Dateien:
 
Nikolai Semko:

Sie scheinen die Bedeutung der Zerlegung der Funktion in Oberschwingungen falsch zu verstehen.
Welche linke Kante geht in die rechte über? Was soll das heißen?

Sie wissen, dass es bei der Fourier-Zerlegung darum geht, eine Reihe von Oberschwingungen (Sinuskurven) mit unterschiedlicher Frequenz, Amplitude und Phasenverschiebung zu erhalten, so dass man bei ihrer Addition etwas erhält, das der ursprünglichen Funktion des Datensatzes ähnelt.

Jede Sinuskurve ist wie eine unendliche Funktion und hat weder einen linken noch einen rechten Rand. Um sie zu extrapolieren, muss man sie nur fortsetzen und nicht die "linke" Kante mit der "rechten" Kante verbinden.

Und die Periodizität dieser Oberschwingungssumme entspricht nicht dem Abtastbereich der ursprünglichen approximierten Daten, sondern dem Abstand zwischen den Zeitpunkten, an denen alle Oberschwingungen mit unterschiedlichen Frequenzphasenverschiebungen gleichzeitig zu ihren Ausgangswerten zurückkehren, und nicht der Tatsache, dass dies geschehen kann, denn es kann nur geschehen, wenn alle Oberschwingungsfrequenzen Vielfache desselben Wertes sind.

Die blaue Linie ist die Annäherung, die rote Linie ist die Extrapolation.

Genau dieser "Abstand zwischen den Momenten, in denen alle Phasenverschiebungen..." in der Fourier-Reihe ist genau gleich einer Periode, da die Argumente der trigonometrischen Funktionen in ihr x, 2x, 3x,...nx sind und ihre Perioden jeweils 1, 2, 3...n-mal gemeinsam sind. Aus diesem Grund hat ein solcher Satz trigonometrischer Funktionen die Eigenschaft der Orthogonalität, die zur Unabhängigkeit der Koeffizienten der Fourier-Erweiterung voneinander und von der Anzahl der in der Erweiterung verwendeten Frequenzen führt. Nachdem wir die Expansionskoeffizienten für n=1 (a1 und b1) berechnet haben, wissen wir bereits, dass sich diese Werte nicht ändern werden, wenn wir ai und bi in der Expansion mit 5 Frequenzen finden. Das ist das Schöne daran.

Warum, ist es nicht das, was Sie tun? Ändern sich die Werte der ersten Zerlegungskoeffizienten, wenn Sie die Anzahl der berücksichtigten Oberschwingungen ändern?

 
Vladyslav Goshkov:

...

Es gibt eine spezielle Fourier-Extrapolationstechnik. Es wird eine Zerlegung in Obertöne vorgenommen, die Amplituden werden extrapoliert, und dann werden die Obertöne mit dieser veränderten Amplitude gesammelt. Ich weiß es nicht mehr genau, aber es geht ungefähr so. Ein Beispiel für diese Methode finden Sie hier in der Codebasis.

 
Maxim Dmitrievsky:

Alle haben es herausgefunden, sie wissen nur nicht, wie sie es machen sollen.

eine zufällige Umwandlung von Merkmalen für ein neuronales Netz als Ausgangsfunktion, so dass neue Daten ersetzt werden können

Sehr interessant)) "Umwandlung von Merkmalen für ein neuronales Netz". Wo hat ein neuronales Netz Merkmale? Ein neuronales Netz hat Eingänge und Ausgänge. Durch eine deduktive Methode würde man zu dem Schluss kommen, dass es sich um die Eingabe dieser Zeichen in das neuronale Netz handelt. Aber!!! "...als eine Ausgangsfunktion"...

Es ist ein Trauerspiel, Marivanna, ein Trauerspiel!

 
Vladimir:

Genau dieser "Abstand zwischen den Momenten, in denen alle Phasenverschiebungen..." in der Fourier-Reihe ist genau gleich der Periode, da die Argumente der trigonometrischen Funktionen in ihr x, 2x, 3x,...nx sind und ihre Perioden jeweils in ein gemeinsames 1, 2, 3...n-faches passen. Aus diesem Grund hat ein solcher Satz trigonometrischer Funktionen die Eigenschaft der Orthogonalität, die zu einer Unabhängigkeit der Koeffizienten der Fourier-Reihenentwicklung voneinander und von der Anzahl der in der Entwicklung verwendeten Frequenzen führt. Nachdem wir die Expansionskoeffizienten für n=1 (a1 und b1) berechnet haben, wissen wir bereits, dass sich diese Werte nicht ändern werden, wenn wir ai und bi in der Expansion mit 5 Frequenzen finden. Das ist das Schöne daran.

Warum, ist es bei Ihnen anders? Ändern sich die Werte der ersten Zerlegungskoeffizienten, wenn Sie die Anzahl der berücksichtigten Oberschwingungen ändern?

Nein, dieser Algorithmus zur Ermittlung von Oberwellen verwendet nicht die schnelle Fourier-Transformation, sondern den Queen-Fernandez-Algorithmus zur Frequenzberechnung. (Quellcode) Übrigens, sind Sie nicht der Autor? Der Name ist derselbe, aber die Profile sind unterschiedlich.

Die Frequenzen werden nacheinander berechnet und sind keine Vielfachen voneinander. Dies ist sowohl aus dem animierten Gif als auch aus dem Code ersichtlich, den ich oben und jetzt vorgestellt habe.
Hier ein Beispiel für harmonische Frequenzkoeffizienten aus diesem Beispiel (einfach ausgedruckt w):

2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 1 = 0.00492908
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 2 = 0.01176861
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 3 = 0.02124126
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 4 = 0.02651676
2018.08.24 00:22:11.921 !Fourier (EURUSD,M1)    Гармоника 5 = 0.03511149
2018.08.24 00:22:11.922 !Fourier (EURUSD,M1)    Гармоника 6 = 0.01191667
2018.08.24 00:22:11.922 !Fourier (EURUSD,M1)    Гармоника 7 = 0.00586503
2018.08.24 00:22:11.922 !Fourier (EURUSD,M1)    Гармоника 8 = 0.04684633
2018.08.24 00:22:11.923 !Fourier (EURUSD,M1)    Гармоника 9 = 0.07585431
2018.08.24 00:22:11.923 !Fourier (EURUSD,M1)    Гармоника 10 = 0.05593456
Dateien:
6Fourier.mq5  16 kb