下载MetaTrader 5

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

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

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

指标

基于奇异频谱分析的趋势指标 - MetaTrader 5脚本

| Chinese English Русский Español Deutsch 日本語 Português

显示:
535
等级:
投票: 18
已发布:
2016.12.22 12:09
\MQL5\Include\SSA\\MQL5\Indicators\

使用奇异频谱分析的方法提取趋势并过滤噪声。调整指标参数可以控制提取的趋势和噪声过滤阈值的平滑度。

交易策略的时间边际确定将数据完美分割为趋势, 低频和高频附加成份, 随后是信号重建。指标 (平滑趋势) 不像传统的滤波方法和平滑均值, 因此不会有相位延迟, 。

趋势指标基于 "卡特彼勒" 方法, 涉及将价格系列扩展为附加成份。它不要求系列是固定的, 知道趋势模型或其周期的存在信息即可 [1-4]。

开发的指标所具有的能力允许平滑系列, 提取趋势并 (通过选择初始价格系列模型的调整参数) 考虑振荡器在更小时间尺度上的贡献加成 — 滤除 "噪声" 波动 。


指标参数

主要参数为:

  1. SegmentLength — 在价格系列 "最后历史" 片段的长度。
  2. SegmentLag — 卡特彼勒长度。从片段长度内 1/4 到 1/2 的范围内选择。影响成份的可辨别性和趋势平滑性。
  3. EigMax — 主要成份数量 (分割模式)。定义信号子空间的维度并考虑不同尺度的波动。
  4. EigNoiseFlag 计算主要成份数量的标志, 在模式的 "固定" 数量和允许的噪声值之间切换。选项 = 0,1,2。
  5. EigNoiseLevel — 计算期间如果 EigNoiseFlag != 0. 覆盖 EigMax, 在全部序列 "波动能量" 中允许的噪音占比。

EigNoiseFlag 选项的整数参数:

  • 0 - 信号空间维度是固定的: [1,EigMax] ( EigNoiseLevel 忽略。如果 EigMax 大于允许值, 则限制为允许值)。
  • 1 — 单独模式的数值占数值总和的份额不小于指定误差 EigNoiseLevelEigMax 自动被选择。
  • 2 — 总份额模式不同于 "一" (全部) 不超过 EigNoiseLevel。EigMax 自动选择。

参数的典型选择和影响:

  • SegmentLength — 在数据历史结束时价格系列片段的长度。它的选择基于历史稳定性, 以及或多或少的数据或策略周期变化的均匀性质。
  • SegmentLag — 为独立模式设置 "滤波器宽度" 维度 (反比)。影响价格图表波动性的平滑性, 和趋势的调整。
  • EigMax — 为 "信号" 子空间的维度设置有用的信息。设置 "噪音" 阀值。
  • EigNoiseLevel — 设置系列总色散中的 "噪声" 值。应指定为 百分比


实现

在 CCaterpillar.mqh 文件中实现的 CCaterpillar 类包括计算趋势所需的一切, 除了线性代数过程 (使用 ALGLIB 库进行轨迹矩阵的奇异分割)。文件中呈现的代码包括类成员和过程的描述。

指标操作所需文件:

  • 1) MQL5\Include\SSA\CCaterpillar.mqh
  • 2) MQL5\Indicators\SingularMA.mq5
  • ALGLIB 库 (我与很多人一起, 感谢谢尔盖·博奇卡诺夫提供的神奇 ALGLIB 数值方法库)


用法的特殊性

由于计算量负载过高, 不建议将数据片段设置为大于 300 个值。最好使用 150-200。您可以随时切换到另一个图表计算周期, 以覆盖更大的历史记录间隔。

建议在片段长度的 1/3 到 1/2 的范围内修改 "caterpillar" 窗口。如果窗口超过片段的一半, 则由于轨迹的对称性和其转置的矩阵, 等效于该长度的片段, 相对于片段的中间对称。小窗口长度不提供某些模式的信息定量均化和分割。

如果在价格系列的图形界面中存在缓慢的数据流, 则可能的解决方案可以是: a) 降低片段长度; b) 在 OnCalculate 函数里增加重计算分割参数 ReCalcLim

5 分钟周期两条趋势 SSA(120,50,4), SSA(50,20,7) 和移动均线 MA(14)

图例.1. 5 分钟周期两条趋势 SSA(120,50,4), SSA(50,20,7) 和移动均线 MA(14)


1 小时周期。两条趋势 SSA(120,50,4), SSA(50,20,7) 和移动均线 MA(14)

图例. 2. 1 小时周期。两条趋势 SSA(120,50,4), SSA(50,20,7) 和移动均线 MA(14)


1 日周期两条趋势 SSA(120,50,4), SSA(50,20,7) 和移动均线 MA(14)

图例. 3. 1 日周期两条趋势 SSA(120,50,4), SSA(50,20,7) 和移动均线 MA(14)

使用奇异分析来实现这种形式的趋势指标是一个基本的例证。在金融部门普遍使用 SSA 方法来分析和预测时间序列, 见 [5-7]。


参考

  1. Elsner J.B., Tsonis A.A. 奇异谱分析: 时间序列分析中的新工具。Plenum 出版社。纽约, 1996。164 页。
  2. D. L. Danilov 和 A. A. Zhiglyavskii 时间序列中的主成份: 卡特彼勒方法。圣彼得堡州立大学, 圣彼得堡, 1997 -308 页。
  3. N. E. Golyandina "卡特彼勒" - SSA 方法: 时间序列分析: 研究指南。圣彼得堡: 2004。- 76 页。
  4. 时间序列中的主成份: 卡特彼勒方法, 由 D. L. Danilov, A. A. Zhigljavsky 编辑。圣彼得堡: Presskom, 1997。308 页。
  5. «卡特彼勒» 方法 - SSA — ARIMA — SIGARCH 和 ARSIMA — SIGARCH 模型来分析和预测金融和经济时间序列: 第二届国际科学会议论文集 "经济中的数学方法, 模型和信息技术", 2011 年 5 月 4-6 日, 切尔诺夫斯。— 306—308 页。
  6. Kozhihova N.A., Shiryaev V.I。使用混沌成份的时间序列预测。南乌拉尔国立大学通讯, 2010 年第 22 期, 第 22-25 页。
  7. A.M. Avdeenko 基于 SSA 模型和非线性推广的智能系统和指标 // 参阅 arXiv:

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

Volume_Weighted_MA_Cloud_Digit Volume_Weighted_MA_Cloud_Digit

指标 Volume_Weighted_MA 以图表背景颜色填充, 并将通道价位截取到需要的位数, 并显示最近的数值作为价格标签。

Volume_Weighted_MA_StDev_HTF Volume_Weighted_MA_StDev_HTF

指标 Volume_Weighted_MA_StDev 在输入参数中有时间帧选项。

Exp_Fisher_org_v1 Exp_Fisher_org_v1

此 Exp_Fisher_org_v1 EA 的入场信号由 Fisher_org_v1 振荡器中生成。

Fisher_org_v1_Sign Fisher_org_v1_Sign

信号量箭头指标, 基于 Fisher_org_v1 振荡器远离超买和超卖区域。