下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

显示:
360
等级:
投票: 34
已发布:
2016.12.22 11:27
\MQL5\Include\
dt_fft.mqh (26.02 KB)预览

真实作者:

klot

快速傅立叶变换函数库 (FFT)。

此函数库首次以 MQL4 实现, 并于 2006.10.02 发表在 代码库

词库有七个快速傅立叶变换函数。

  1. 复函数 FFT (直接和逆向)
  2. 实函数 FFT (直接和逆向)
  3. 双实函数 FFT (仅有直接)
  4. 快速离散正弦变换
  5. 快速离散余弦变换
  6. FFT 快速简化
  7. FFT 快速相关。

1. 复函数 FFT (直接和逆向)
void fastfouriertransform(double& a[], int nn, bool inversefft);

此算法依据实轴上定义的 nn 计数进行复函数快速傅立叶变换。根据传递的参数, 可以执行直接或逆变换。

输入参数:

  • nn - 函数值的数量。必须是二的指数!!!该算法不检查所传递数值的正确性。
  • a - 实数 [0 .. 2*nn-1] 数组。函数值。元素 a[2*I] (实数部分) 和 a[2*I+1] (虚数部分) 对应于第一个值。
  • InverseFFT - 直接变换。True, 如果为逆向; False, 如果为直接。

输入参数:


2. 实函数 FFT (直接和逆向)
void realfastfouriertransform(double& a[], int tnn, bool inversefft);

此算法依据实轴上定义的 n 计数进行实函数快速傅立叶变换。根据传递的参数, 可以执行直接或逆变换。

输入参数:

  • tnn - 函数值的数量。必须是二的指数!!!该算法不检查所传递数值的正确性。
  • a - 实数 [0 .. nn-1] 数组。函数值。
  • InverseFFT - 直接变换。True, 如果为逆向; False, 如果为直接。

输入参数:


3. 双实函数 FFT (仅有直接)
void tworealffts(double a1[], double a2[], double& a[], double& b[], int tn);

此算法依据实轴上定义的 tn 计数进行双实函数快速傅立叶变换。算法可以节省您的时间, 但只能执行直接转换。

输入参数:

  • tn - 函数值的数量。必须是二的指数!!!该算法不检查所传递数值的正确性。
  • a1 - 实数 [0 .. nn-1] 数组。第一个函数的值。
  • a2 - 实数 [0 .. nn-1] 数组。第二个函数的值。

输入参数:


4. 快速离散正弦变换
void fastsinetransform(double& a[], int tnn, bool inversefst);

此算法依据实轴上定义的 tnn 计数进行实函数快速正弦变换。根据传递的参数, 可以执行直接或逆变换。

输入参数:

  • nn - 函数值的数量。必须是二的指数!!!该算法不检查所传递数值的正确性。
  • a - 实数 [0 .. nn-1] 数组。函数值。
  • InverseFST - 逆变换。True, 如果为逆向; False, 如果为直接。

输入参数:


5. 快速离散余弦变换
void fastcosinetransform(double& a[],int tnn, bool inversefct);

此算法依据实轴上定义的 nn 计数进行实函数快速余弦变换。根据传递的参数, 可以执行直接或逆变换。

输入参数:

  • tnn - 函数值的数量减一。必须是二的指数 (例如 1024)。该算法不检查所传递数值的正确性。
  • a - 实数 [0..nn] 数组。函数值 (例如, 1025)。
    函数变换数组准备的特性:
    int element_count2=ArrayResize(array,tnn1+1); //对于余弦!!!
  • InverseFCT - 逆变换。True, 如果为逆向; False, 如果为直接。

输入参数:

6. FFT 快速简化
void fastcosinetransform(double& a[],int tnn, bool inversefct);

简化。函数之一被假设为一个信号。第二个认为是响应。

输入:

  • Signal - 即简化的信号。实数数组, 从 0 到 SignalLen-1 的元素编号。
  • SignalLen - 信号长度。
  • Response - 响应函数。它由两个部分组成, 对应于一个参数的正/负值。
    从 -NegativeLen 到 0 的响应值点数, 对应于从 0 到 NegativeLen 的数组元素。
    从 1 到 PositiveLen 的响应值点数, 对应于从 NegativeLen 到 NegativeLen+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 - 形态长度

输出:


本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/7000

MQL5 中的热度图, 颜色渐变和刻度 MQL5 中的热度图, 颜色渐变和刻度

此代码的目的是演示如何轻松地使用 MQL5 语言和函数来创建彩色刻度, 颜色渐变和热度图。

Astro 指标 Astro 指标

显示两颗行星的方位, 行星的磁偏角或体位。

CandleColorCounter CandleColorCounter

指标计算 Bar_Period 根柱线内的阳线和阴线, 并计算百分比。

动态自动阻力支撑 动态自动阻力支撑

技术指标检测稳定的价格区域, 并绘制阻力和支撑线。