Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
1030
Rating:
(40)
Veröffentlicht:
2016.06.29 10:01
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\
dt_fft.mqh (26.02 KB) ansehen
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Echter Autor:

klot

Bibliothek von Fast Fourier Transformations Funktionen (FFT).

Dieser Indikator wurde erstmalig in MQL4 implementiert und in der CodeBase am 2. Oktober 2006 veröffentlicht.

Die Bibliothek hat sieben Fast Fourier Transformationsfunktionen;

  1. FFT einer komplexen Funktion (direkt und invers)
  2. FFT einer realen Funktion (direkt und invers)
  3. FFT von zwei realen funktionen (nur direkt)
  4. Schnelle diskrete Sinustransformation
  5. Schnelle diskrete Cosinustransformation
  6. Schnelle Vereinfachung mit FFT
  7. Schnelle Korrelation mit FFT.

1. FFT einer komplexen Funktion (direkt und invers) void fastfouriertransform(double& a[], int nn, bool inversefft);

Der Algorithmus führt eine FFT einer komplexen Funktion definiert durch nn Zähler auf einer realen Achse aus. Abhängig von den übergebenen Parametern können beide - direkte oder inverse - Transformationen ausgeführt werden.

Eingabeparameter:

  • nn - Anzahl von Werten der Funktion. Muss eine Potenz von zwei sein!!! Der Algorithmus prüft nicht die Richtigkeit des übergebenen Wertes.
  • a - Array [0 .. 2*nn-1] des Typs Real. Werte der Funktion. Die Elemente a[2*I] (Realteil) und a[2*I+1] (Imaginärteil) korrespondieren mit dem ersten Wert.
  • InverseFFT - Richtung der Transformation. True, wenn sie rückwärts ist; False, wenn sie direkt ist.

Eingabeparameter:


2. FFT einer realen Funktion (direkt und invers)void realfastfouriertransform(double& a[], int tnn, bool inversefft);

Der Algorithmus führt die FFT einer realen Funktion definiert nur n Zähler auf einer realen Achse aus. Abhängig von den übergebenen Parametern können beide - direkte oder inverse - Transformationen ausgeführt werden.

Eingabeparameter:

  • tnn - Anzahl von Werten der Funktion. Muss eine Potenz von zwei sein!!! Der Algorithmus prüft nicht die Richtigkeit des übergebenen Wertes.
  • a - Array [0 .. nn-1] des Typs Real. Werte der Funktion.
  • InverseFFT - Richtung der Transformation. True, wenn sie rückwärts ist; False, wenn sie direkt ist.

Eingabeparameter:


3. FFT von zwei realen funktionen (nur direkt) void tworealffts(double a1[], double a2[], double& a[], double& b[], int tn);

Der Algorithmus fürht die FFT von zwei realen Funktionen aus, wovon jede durch tn Zähler auf einer realen Achse definiert sind. Der Algorithmus spart Ihnen Zeit aber führt nur eine direkte Transformation aus.

Eingabeparameter:

  • tn - Anzahl von Werten der Funktion. Muss eine Potenz von zwei sein. Der Algorithmus prüft nicht die Richtigkeit des übergebenen Wertes.
  • a1 - Array [0 .. nn-1] des Typs Real. Werte der ersten Funktion.
  • a2 - Array [0 .. nn-1] des Typs Real. Werte der zweiten Funktion.

Eingabeparameter:


4. Schnelle diskrete Sinustransformation void fastsinetransform(double& a[], int tnn, bool inversefst);

Der Algorithmus führt eine schnelle Sinustransformation einer realen Funktion aus, die durch tnn Zähler auf einer realen Achse definiert ist. Abhängig von den übergebenen Parametern können beide - direkte oder inverse - Transformationen ausgeführt werden.

Eingabeparameter:

  • nn - Anzahl von Werten der Funktion. Muss eine Potenz von zwei sein. Der Algorithmus prüft nicht die Richtigkeit des übergebenen Wertes.
  • a - Array [0 .. nn-1] des Typs Real. Werte der Funktion.
  • InverseFST - Richtung der Transformation. True, wenn sie rückwärts ist; False, wenn sie direkt ist.

Eingabeparameter:


5. Schnelle diskrete Cosinustransformation void fastcosinetransform(double& a[],int tnn, bool inversefct);

Der Algorithmus führt eine schnelle Cosinustransformation einer realen Funktion aus, die durch nn Zähler auf einer realen Achse definiert ist. Abhängig von den übergebenen Parametern können beide - direkte oder inverse - Transformationen ausgeführt werden.

Eingabeparameter:

  • tnn - Anzahl von Werten der Funktion minus eins. Muss eine Potenz von zwei sein (zum Beispiel 1024). Der Algorithmus prüft nicht die Richtigkeit des übergebenen Wertes.
  • a - Array [0..nn] des Typs Real. Werte der Funktion (beispielsweise 1025).
    Besonderheit der Vorbereitung eines Arrays für die Funktion Transfer:
    int element_count2=ArrayResize(Array,tnn1+1); //Für Cosinus!!!
  • InverseFCT - Richtung der Transformation. True, wenn sie rückwärts ist; False, wenn sie direkt ist.

Eingabeparameter:

6. Schnelle Vereinfachung mit FFTvoid fastcosinetransform(double& a[],int tnn, bool inversefct);

Vereinfachung. Eine der Funktionen wird als Signal betrachtet. Die zweite wird als Antwort betrachtet.

Eingabe:

  • Signal - ein Signal mit dem eine Vereinfachung durchgeführt wird. Array realer Zahlen, Nummerierung der Elemente von 0 bis SignalLen-1.
  • SignalLen - Signallänge.
  • Response - Antwortfunktion. Sie besteht aus zwei Teilen die den positiven und negativen Werten eines Argumentes entsprechen.
    Antwortwerte in Punkten von -NegativeLen bis 0 korrespondieren mit Arrayelementen mit den Zahlen von 0 bis NegativeLen.
    Antwortwerte in Punkten von 1 bis PositiveLen korrespondieren mit Arrayelementen mit den Zahlen von NegativeLen+ bos NegativeLen+PositiveLen.
  • NegativeLen - "Negative Länge" einer Antwort.
  • PositiveLen -"Positive Länge" einer Antwort.
    Eine Antwort ist gleich Null außerhalb [-NegativeLen, PositiveLen].

Ausgabe:

  • Signal - Werte der Funktion Simplification in Punkten von 0 bis SignalLen-1.


7. Schnelle Korrelation mit FFT.void fastcorellation(double& signal[], int signallen,  double& pattern[],  int patternlen);

Eingabe:

  • Signal - Array signal mit dem die Korrelation ausgeführt wird. Nummerierung der Elemente von 0 bis SignalLen-1
  • SignalLen - Signallänge.
  • Pattern - Array Muster Korrelation eines Singal nach dem wir suchen. Nummerierung der Elemente von 0 bis PatternLen-1
  • PatternLen - Musterlänge

Ausgabe:

  • Signal - Werte der Korrelation in Punkten von 0 bis SignalLen-1. Besuchen Sie die Web-site für eine detailliertere Beschreibung. http://alglib.net/fasttransforms/

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/7000

BackgroundСandle_AMkA_HTF BackgroundСandle_AMkA_HTF

Der Indikator zeichnet Kerzen größerer TimeFrames als farbig gefüllte Rechtecke in Übereinstimmung mit den Farben der AMkA Indikatorpunkte.

Imp_XMA_HTF Imp_XMA_HTF

Der Imp_XMA Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.

i-SpectrAnalysis i-SpectrAnalysis

Der Indikator zeigt exemplarisch die Glättung von Preiszeitreihen durch Filterung von Harmonischen einer größeren Ordnung.

i-SpectrAnalysis_RSI i-SpectrAnalysis_RSI

Der Indikator zeigt exemplarisch die Glättung von Preiszeitreihen des RSI-Indikators durch Filterung von Harmonischen einer größeren Ordnung.