过滤高频数据的微小波动using sas

*
1) 均线化
因为行情的日内高频价格序列波动比较剧烈,看起来也几乎是杂乱无章的,所以我们为
了捕捉趋势需要过滤掉一些干扰的噪声,均线是过滤微小扰动的一种常用的方式,而且也适
合用于捕捉趋势。我们将A 个连续的数据取均值,形成MA(A),在本文所作测试中A 取为
10,下文都称经过均值化的数据位MA(10)。由于采用的原始价格序列是6 秒高频数据,所
以均线化后的数据类似于60 秒价格均值。经过均值化后的价格序列明显平滑了很多,不再像之前6
秒价格序列那样波动剧烈。
*;
proc expand data=six_test out=ma_test
   method =none ;
   convert price=ma_price / transformout=(movave 10);
   convert price=ma2_price / transformout=(movave 50);
   convert price=ma3_price / transformout=(movave 100);
run;

proc sgplot data=ma_test;
  series x=time1 y=ma_price;
  series x=time1 y=price;
run;
*
2) 记录极值点
极值点是局部的高点或者低点,在极值点处股价出现了转折,所以这些点是图形分析的
重要点位,它们包含了重要的信息。判断极值点的方法也比较简单:浏览经过均值化的价格
序列MA(10),如果股价上涨至此,接下来又下跌,那么这个点就是极高值点;如果股价下
跌至此,接下来又出现上涨,那么这个点就是极低值点。这些点利用另外一个数组记录下来,
它们是股价变化的关键点,以备进一步制定策略。
*;
data extreme_test;
   set ma_test;
   dif=dif(ma_price);
   if dif>0 then flag=1;*最后一个1(-1)为极值点;
   else flag=-1;
   retain cnt ;
   if flag^=lag(flag) then cnt+1; 
run;

*
3) 过滤极值附近微小波动
均线用于追踪趋势效果比较好,在形成趋势时能紧跟趋势,虽然略有滞后,但是在于用
高频数据分析中,价格波动较多,均线也就摇摆不定,容易频繁发出交易信号,
高频数据中,很容易出现很多极值点连续出现的情况,这对于分析也是很大的干扰。
所以我们必须对极值附近的点进行滤波。我们滤波的方法是,当股价形成一个极点E 后,比如在接下来
股价波动范围在E 点价位正负0.01 元以内,我们就认为股价过滤微小波动后的趋势
线和E 点没有区别,这样我们就得到了过滤了极值点附近微小波动的均线趋势线filtered。
*;
proc sql;
   create table filtrate_test as
   select *,
          sum(dif) as s_dif 
   from extreme_test
   group by cnt;
quit;
data filtrate_test1;
   set filtrate_test;
   if abs(s_dif)< 0.1 then flag1=-flag;
   else flag1=flag;
   drop flag;
   rename flag1=flag; *新的极值点为flag的第一个和最后一个值;
run; 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值