無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ビュー:
1276
評価:
(40)
パブリッシュ済み:
2016.10.25 08:23
アップデート済み:
2016.11.22 07:34
\MQL5\Include\
dt_fft.mqh (26.02 KB) ビュー
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

実際の著者:

klot

高速フーリエ変換関数(fast Fourier transformation、FFT)のライブラリ

この指標は初めにMQL4で実装されコードベースで2006年10月2日に公開されました。

ライブラリは7の高速フーリエ変換関数を含みます。

  1. 複素関数のFFT(直接変換および逆変換)
  2. 実関数のFFT(直接変換および逆変換)
  3. 2つの実関数のFFT(直接変換)
  4. 高速離散サイン変換
  5. 高速離散コサイン変換
  6. FFTによる高速簡素化
  7. FFTによる高速相関

1. 複素関数のFFT(直接変換および逆変換)void fastfouriertransform(double& a[], int nn, bool inversefft);

このアルゴリズムは、実軸上のnn数によって定義された複素関数の高速フーリエ変換を行います。渡されたパラメータによって、直接/逆変換の両方が実行できます。

入力パラメータ:

  • nn - 関数の値の数。2の累乗である必要があります。アルゴリズム渡された値の正しさをチェックしません。
  • a - 配列 array [0 .. 2*nn-1] 。関数のReal Values 。要素 a[2*I] (実部)と a[2*I+1] (虚部)が初めの値に対応します。
  • InverseFFT - 変換の方向。逆変換はTrueで直接変換はFalse。

入力パラメータ:


2. 実関数のFFT(直接変換および逆変換)
void realfastfouriertransform(double& a[], int tnn, bool inversefft);

このアルゴリズムは、実軸上のn数によって定義された実関数の高速フーリエ変換を行います。渡されたパラメータによって、直接/逆変換の両方が実行できます。

入力パラメータ:

  • tnn - 関数の値の数。2の累乗である必要があります。アルゴリズム渡された値の正しさをチェックしません。
  • a - 配列 array [0 .. nn-1] 。関数のReal Values 。
  • InverseFFT - 変換の方向。逆変換はTrueで直接変換はFalse。

入力パラメータ:


3. 2つの実関数のFFT(直接変換)
void tworealffts(double a1[], double a2[], double& a[], double& b[], int tn);

このアルゴリズムは、実軸上のtn数によって定義された2つの実関数の高速フーリエ変換を行います。このアルゴリズムは時間を節約しますが、直接変換のみを行います。

入力パラメータ:

  • tn - 関数の値の数。2の累乗である必要があります。アルゴリズム渡された値の正しさをチェックしません。
  • a1 - 配列 array [0 .. nn-1] 。1番目の関数のReal Values 。
  • a2 - 配列 array [0 .. nn-1] 。2番目の関数のReal Values 。

入力パラメータ:


4. 高速離散サイン変換
void fastsinetransform(double& a[], int tnn, bool inversefst);

このアルゴリズムは、実軸上のtnn数によって定義された実関数の高速離散サイン変換を行います。渡されたパラメータによって、直接/逆変換の両方が実行できます。

入力パラメータ:

  • nn - 関数の値の数。2の累乗である必要があります。アルゴリズム渡された値の正しさをチェックしません。
  • a - 配列 array [0 .. nn-1] 。関数のReal Values 。
  • InverseFST - 変換の方向。逆変換はTrueで直接変換はFalse。

入力パラメータ:


5. 高速離散コサイン変換
void fastcosinetransform(double& a[],int tnn, bool inversefct);

このアルゴリズムは、実軸上のnn数によって定義された実関数の高速離散コサイン変換を行います。渡されたパラメータによって、直接/逆変換の両方が実行できます。

入力パラメータ:

  • tnn - 関数の値の数引く1.2の累乗(例:1024)である必要があります。アルゴリズム渡された値の正しさをチェックしません。
  • a - 配列 array [0..nn] 。関数の Real Values(例:1025)。
    関数転送のための配列の準備の特異性:
    int element_count2=ArrayResize(array,tnn1+1); // コサイン用
  • InverseFCT - 変換の方向。逆変換はTrueで直接変換はFalse。

入力パラメータ:

6. FFTによる高速簡素化
void fastcosinetransform(double& a[],int tnn, bool inversefct);

簡略化。関数の1つがシグナルとして想定されています。2つ目が応答と考えられています。

入力:

  • Signal - 簡素化されるシグナル。実数配列で要素は0~SignalLen-1。
  • SignalLen - シグナルの長さ。
  • Response - 応答関数。これは引数の正及び負の値に対応する2つの部分から構成されています。
    0~NegativeLenの配列要素に対応する-NegativeLen~0のポイントでの応答値。
    NegativeLen+~NegativeLen+PositiveLenの配列要素に対応する1~PositiveLenの応答値。
  • NegativeLen - 応答の「Negative length(負の長さ)」。
  • PositiveLen - 応答の「Positive length(正の長さ)」。
    [-NegativeLen, PositiveLen]を越した場合の応答はゼロです。

出力:

  • Signal - 0~SignalLen-1のポイント単位での関数簡素化の値。


7. FFTによる高速相関
void fastcorellation(double& signal[], int signallen,  double& pattern[],  int patternlen);

入力:

  • Signal - 相関が行われる配列シグナル。要素番号は0~SignalLen-1。
  • SignalLen - シグナルの長さ。
  • Pattern - 探しているシグナルの配列パターン相関。要素番号は0~PatternLen-1。
  • PatternLen - パタンの長さ。

出力:

  • Signal - 0~SignalLen-1のポイント単位での相関の値。より詳細な説明はウェブサイトをご覧ください。http://alglib.net/fasttransforms/

MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/7000

BackgroundСandle_AMkA_HTF BackgroundСandle_AMkA_HTF

この指標はAMkA指標の値に応じてより長い時間枠のローソク足を色で塗りつぶされた長方形として描きます。

AMkA_Signal AMkA_Signal

AMkA_Signal指標は、固定された時間枠でのAMkA指標の値を使用して、現在の動向に関する情報を示します。

i-SpectrAnalysis i-SpectrAnalysis

この指標は、より大きな次数の高調波の濾過によって価格時系列の平滑化を例示します。

i-SpectrAnalysis_RSI i-SpectrAnalysis_RSI

この指標は、より大きな次数の高調波の濾過によってRSI指標の価格時系列の平滑化を例示します。