首页 技术指标 帖子

基于奇异谱分析的趋势指标 - MetaTrader 5的实用工具

附件
15865.zip (7.77 KB, 下载 0次)

今天我们来聊聊如何利用奇异谱分析(SSA)来提取趋势并过滤噪音。调整指标参数可以控制提取趋势的平滑度以及噪音过滤的阈值。

交易策略的时间范围决定了数据的最佳分解方式,将其分解为趋势、低频和高频的加性成分,随后再进行信号重构。与传统的滤波方法和滑动平均线不同,这个指标(平滑趋势)不具有相位延迟。

基于“毛毛虫”方法的趋势指标涉及将价格序列扩展为加性成分。这种方法不要求序列是平稳的,也不需要了解趋势模型或周期成分及其周期的信息。

这个开发出的指标能平滑序列,提取趋势,并通过选择初始价格序列模型的调整参数,考虑在更小时间尺度下振荡成分的贡献,从而过滤掉“噪音”波动。


指标参数

主要参数包括:

  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 — 考虑总比例不同于“1”(完整)的模式,不超过 EigNoiseLevelEigMax 自动选择。

参数的典型选择与影响:

  • SegmentLength — 数据历史末端的价格序列片段长度,选择时应根据历史的稳定性和数据变化的均匀性或策略周期来确定。
  • SegmentLag — 设置单个模式的“滤波宽度”的维度(与之成反比)。影响趋势的平滑度和调整与价格图表波动的匹配。
  • EigMax — 设置有用信息的“信号”子空间的维度,设置“噪音”阈值。
  • EigNoiseLevel — 设置序列的总离散中的“噪音”值,需以 百分比 的形式指定。


实现方法

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

指标的运行需要以下文件:

  • 1) MQL5\Include\SSA\CCaterpillar.mqh
  • 2) MQL5\Indicators\SingularMA.mq5
  • ALGLIB库(感谢谢尔盖·博赫卡诺夫提供了这个出色的ALGLIB数值方法库)


使用注意事项

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

建议将“毛毛虫”窗口的范围设置在片段长度的1/3到1/2之间。如果窗口超过片段的一半,则由于轨迹的对称性及其转置矩阵,这相当于一个与片段中点对称的长度的片段。窗口长度过小无法提供优质的平均和按特定模式分割信息。

如果在价格序列的图形界面中数据流动缓慢,可能的解决方案包括:a) 减少片段长度;b) 增加ReCalcLim参数,以提高在OnCalculate函数中的重新计算离散度。

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方法在金融领域分析和预测时间序列的广泛应用将在相关文献中介绍。


参考文献

  1. Elsner J.B., Tsonis A.A. 奇异谱分析:时间序列分析的新工具。普伦姆出版社。纽约,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. 使用混沌成分进行时间序列预测。南乌拉尔国立大学学报,第22期,2010年,22-25页。
  7. A.M. Avdeenko 基于SSA模型和非线性推广的顾问和指标 // 见arXiv:

相关帖子

评论 (0)