时间序列主要特性的分析·综合运用
(3/3)·把前篇的均值方差与自相关串成完整工具链,免参数跑通初步假设筛查
◍ 用双正弦叠加加噪构造测试序列
想在 MT5 里验证指标对周期性信号的敏感度,手搓一段确定性波形比直接读行情更可控。下面这段把两个低频正弦相加,再叠高斯噪声,生成 800 个点的数组,专门用来压测滤波或周期检测逻辑。 核心频率选了 0.064 和 0.071 乘 2π,这两个值靠得近但不相等,叠加后会出现慢速拍频,肉眼在脚本图表里能看出包络起伏。n 固定为 800,意味着窗口长度有限,超出部分不会自动延展,回测时别指望它无限生成。 噪声部分走 RNDXor128 的 Rand_Norm(),也就是标准正态扰动,让纯正弦不再‘太干净’。外汇与贵金属实盘信号本质也是带噪周期叠加,这类合成数据能帮你先排除代码层 bug,再上真 tick 高风险验证。
for(i=class="num">0;i<n;i++)x[i]=MathSin(class="num">0.064*a*i)+MathSin(class="num">0.071*a*i); class="type">int i,n; class="type">class="kw">double a,x[]; RNDXor128 *rnd=new RNDXor128; n=class="num">800; ArrayResize(x,n); a=class="num">2*M_PI; for(i=class="num">0;i<n;i++)x[i]=MathSin(class="num">0.064*a*i)+MathSin(class="num">0.071*a*i)+rnd.Rand_Norm(); class="kw">delete rnd;
「删均值带来的低频失真」
谱估值若基于自相关系数,输入序列的均值会被默认剔除。多数情况下移除恒定分量是必要的,但换成自回归思路时,这种删除在部分场景下会让低频段的谱估计出现偏差。 Marple 在《Digital Spectral Analysis with Applications》的“谱估值相关结果汇总”章末给过具体例子:低频失真肉眼可见。本文用的这套频谱方法没有绕开均值删除的余地,所以只能记死一条——谱估值永远是针对“已删均值序列”算出来的。 做 MT5 自定义指标验证时,别把输出谱当成原始价格序列的完备描述;低频能量偏弱很可能只是算法副作用,不是行情真没波动。外汇与贵金属杠杆高,据此下单前先用历史数据复算一遍。
把工具请下神坛
这套正态性检验与序列分析的文章,底层引用了 Wuertz & Katzgraber(2009)的有限样本 Jarque-Bera 量化方法,以及 Bulashev《交易者统计学》(2003,245 页)等硬文献,但作者 Victor 在讨论区说得很直白:TSAexample.mq5 里 bd[] 数组装好序列,丢给 TSAnalysis 类的 Calc 方法就能跑,读者该自己写脚本接数据。 附件 RNDXor.zip(54.87 KB)和 TSAnalysis.zip(79.7 KB)就是让你在 MT5 里实测的,不是供着的圣物。外汇与贵金属波动带杠杆,高风險,任何统计结论都只是概率倾向,别把 p 值当进场令。 打开 MT5 把 ZIP 解到 Include 和 Scripts,改两行数组来源,你就能看见自己品种的偏度峰度——工具下坛,活用它才归你。