Zufallsstromtheorie und FOREX - Seite 17

 

Hier ist der AKF, schauen Sie ihn sich an. Ich muss nur sicher sein, dass es richtig zählt. Sehen Sie sich das an.

Dateien:
akf_01.mq4  7 kb
 
Prival:

Hier ist der AKF, schauen Sie ihn sich an. Ich muss nur sicher sein, dass es richtig zählt. Sehen Sie sich das an.


Die ACF-Berechnung selbst erfolgt per Definition, und das ist zunächst einmal richtig - der Code ist einfach und transparent. Es wäre jedoch interessant, die Geschwindigkeit zu vergleichen, wenn die Berechnung mittels FFT erfolgt. Übrigens eignet sich dieser Code auch für eine spürbare Beschleunigung.
 
lna01:
Privatperson:

Hier ist der AKF, schauen Sie ihn sich an. Ich muss nur sicher sein, dass es richtig zählt. Prüfen.


Die ACF-Berechnung selbst erfolgt per Definition, und das ist zunächst einmal richtig - der Code ist einfach und transparent. Es wäre jedoch interessant, die Geschwindigkeit zu vergleichen, wenn Sie mittels FFT berechnen. Übrigens eignet sich dieser Code auch für eine spürbare Beschleunigung.


Durch die FFT wird nicht exakt, auf der 8. Seite des Diagramms ('Random Flow Theory and FOREX') ist die rote Linie nach der Formel ACF, die blaue Linie ist symmetrisch um den Mittelpunkt. Vielleicht habe ich aber auch etwas falsch gemacht (die Datei selbst ist auf der gleichen Seite oben angehängt). lna01 Können Sie mir sagen, wie man ACF korrekt mit FFT erstellt, ich habe es aus dem Gedächtnis getan, vielleicht habe ich einen Fehler gemacht.

Vorwärts-FFT -> Modulus+ ^2 -> Rückwärts-FFT -> Extraktion des Realteils Re() -> Normalisierung

 
Prival:

Hier ist der AKF, schauen Sie ihn sich an. Ich muss nur sicher sein, dass es richtig zählt. Sehen Sie sich das an.

Haben Sie es nicht mit Matcad verglichen? Ich habe WriteToFile extra zum Überprüfen gemacht ;)
 
lna01:
Es wäre jedoch interessant, die Geschwindigkeit zu vergleichen, wenn die Zählung über FFT erfolgt.
In der ersten Variante gab es auch die Methode über FFT - sie ist wirklich um mehrere Größenordnungen schneller. Sie wurde wegen ihrer fragwürdigen Genauigkeit aufgegeben.

lna01:
Übrigens eignet sich dieser Code auch für eine spürbare Beschleunigung.
Ich stimme zu, dass der Code optimiert werden kann. Aber es geht noch nicht um die Geschwindigkeit, also will ich es nicht tun.
 
2 Prival , komposter:

ACF über fft war symmetrisch, wahrscheinlich aufgrund von Nullen bei der Zeichnung. Und die Genauigkeit ist aus irgendeinem Grund fragwürdig.



Aber irgendetwas scheint mir, dass die Echtzeitberechnung mit verstärktem Frontalaufprall schneller sein sollte als die FFT-Version. Der geschätzte Gesamtbetrag der Berechnungen ist jedoch weiterhin sehr verwirrend. Insbesondere die Willkür bei der Wahl der linearen Regressionslänge ist bereits in diesem Stadium fragwürdig. Ein ähnliches Problem stellt sich bei linearen Regressionskanälen nach wie vor im Großen und Ganzen. Tatsächlich habe ich bereits früher in diesem Thread darüber geschrieben.
 

Ja, es gibt mehr Fragen als Antworten. Aber jetzt wird es interessant.

1. Der Korrelationskoeffizient sollte nicht modulo größer als 1 sein, ist es aber.

2. Warum a*x+b, Prival? Wollen Sie das Diagramm auf diese Weise entzerren? Es gibt andere Möglichkeiten, die genauer sind. Zum Beispiel die lineare Regression (das Analogon zu mach, aber mit einer kleineren Verzögerung). Indem wir den aktuellen LR-Wert vom Preis abziehen, können wir Trends, auch nicht-lineare, perfekt ausgleichen.

Wir können einfach die erste Preisdifferenz nehmen (d. h. eine Reihe von Renditen bilden), aber das entfernt nur die linearen Komponenten der Trends. Wenn wir die zweite Differenz nehmen, entfernen wir auch die quadratischen usw.

Wenn Sie die Verzögerung loswerden wollen (aber die Historie zurückverfolgen wollen), können Sie etwas wie Fourier-MA machen, d.h. auf der Grundlage der Fourier-Transformation und der Unterdrückung hoher Frequenzen. Klot hat das auch.

 
Mathemat:

1. Der Korrelationskoeffizient sollte eigentlich nicht größer als 1 sein, ist es aber.

Wenn wir über das Bild mit fft sprechen, dann fällt aus irgendeinem Grund das erste Element aus der Reihe heraus, und es ist das, was für die Normalisierung verwendet wird. Ich habe nicht versucht, anhand der Bilder in dem Beitrag herauszufinden, was es ist.
 
Vorsicht bei der FFT: tnn (oder nl im Text) muss eine Zweierpotenz sein, d. h. 2^n, wobei n eine ganze Zahl ist.
 
rsi:
Bei der FFT muss man vorsichtiger sein: tnn (oder nl im Text) sollte eine Zweierpotenz sein, d.h. 2^n, wobei n eine ganze Zahl ist.
In diesem Sinne ist alles in Ordnung, aber ich habe ein paar Elemente der Spektraldichte verloren :). Es gibt also kein Problem mit fft, ich werde die Quelle in diesem Beitrag jetzt ersetzen.


P.S. Ich habe einfach die falsche Quelle entfernt und hier die richtige eingefügt.

P.P.S. Nur für den Fall, dass Sie mehr Details über die Datenverarbeitung wissen möchten: Die Größe des ursprünglichen Arrays muss um das Zweifache erhöht werden, dann noch einmal um den nächsten Grad von zwei. Alle hinzugefügten Zellen sollten mit Nullen geschrieben werden. Das Array der Spektraldichte für inverse fft sollte ebenfalls eine erweiterte Größe haben; Amplitudenquadrate sollten in Zellen für reale Komponenten geschrieben werden, und (natürlich) Nullen sollten in Zellen für imaginäre Komponenten geschrieben werden. Als Ergebnis nehmen wir die Elemente vom Anfang bis zur ursprünglichen Größe des Arrays.
2 Prival: Ich weiß nicht, wie man das in Matkadec genau reproduzieren kann, Versuch und Irrtum sollten am Ende helfen. Der ACF sollte mit angemessener Genauigkeit übereinstimmen.
Dateien:
akf_01_fft.mq4  13 kb
Grund der Beschwerde: