高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用

高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用算法

 

注:WAVT指标由Warensoft(王宇)原创。学习

前面聊了一系列的常见应用指标,包括短线、长线的指标,而且也无耐的指出每种指标的问题。固然每写一篇文章,也都是一次学习过程。通过一年多的学习研究,笔者也自创了一个应用指标,并将其命名为WAT指标,本次让咱们一块儿来探讨一下,欢迎你们扔砖!测试

1.指标定义spa

WAVTWarensoft交易量趋势(Warensoft Volume Trend,是根据必定时期内交易量描述出买卖趋势的指标量,适合于中长期交易。WAVT指标表达形式,以下所示:code

 

 

 

 

如图所示,WAVT指标包括两种显示形式,一个是曲线图,一个是方波图,方波图是由曲线图计算获得的。其中,曲线图能够较为直观的显示当前行情的变化趋势,可是不便于量化交易;而方波图是对曲线图进行了一次数值变换,适合计算机进行量化交易。blog

2.趋势线的计算class

我相信有不少程序猿和我同样,一直都但愿经过行情变化曲线的极值点,来捕获最合理的买卖时机。这里存在两个技术难点:软件

  • 曲线是否平滑(曲线不平滑,就难以肯定极值点)
  • 曲线的末端是否稳定(不稳定,就会经常出现误判)

对于趋势线的计算,最简单的想法是利用K线进行绘制。因为K线是市场的最直接反映,因此其波动性会比较大,所以,以K线做为数据源的话,整个图像中出现的M头或W底会很是的多。List

前段时间,研究了一下OBV指标,同时,有一个10多年的老股民朋友(也是资深软件工程师)告诉我说:“能够利用交易量来模拟行情”。本人大受启发,所以,WAVT的趋势线的数据源是来自市场交易量的。软件工程

前一篇文章中(谈RSI指标),咱们说过经典的MACD以及MA均线,都是从固定周期的价格做为判读的指导思想,并将价格进行平滑处理,而后获得可参考的判读结果。排除我的经验外,这些计算方法从方法论层面上来讲是一种数值化断定方法(即:先有数据,再断定结果)。

然而基于交易量的OBV指标,则是从交易量的角度,分析人们的交易信心(信心是没法量化的),所以,OBV指标是带有预测性。另外,相同周期的OVB指标要比MA指标更靠近真实行情,同时OBV的曲线要比MA的曲线平滑得多!

我们书归正文,WAVT指标中的趋势线算法描述以下:

 

public List<TimeValuePair> GetWAVTTrendLine()

        {

            //1.首先获取带有Vol值的K线数据。

            var kline = GetKline();

            //2.计算OBV指标值,注意这里使用40作为平滑周期

            var obv = GetOBV(kline,40);

            //3.获取极值点采样,注意这里须要进行两次采样,所以参数为2

            var peeks = GetPeekPoints(obv, 2);

            //4.由于极值点数据,在时间上是不连续的,

            //所以,须要对极值点数据进行线性插值,以保证每一个时间点上都有数据

            peeks = InterplotData(peeks);

 

 

        }

 

通过上面4个步骤,咱们就能够获得WAVT趋势线。具体算法比较复杂,看官们能够本身实现,或者调用Warensoft Stock Service Client来实现。其图像以下所示:

 

 

3.方波图的计算

趋势线的特色是比较直观,适合人眼来观察行情,可是不便于计算机量化处理。下面咱们来进行方波化变换,以便计算机量化。其过程以下:

//1.计算WAVT趋势线

            var trendLine = GetWAVTTrendLine();

            //2.全部数据减去前一个数值,获得方波值

            var value = trendLine[i] - trendLine[i - 1];

            //3.对方波数据进行噪声滤波,以去掉干扰数据

            value = MakeFilter(value);

 

通过上面3个步骤,咱们就能够获得WAVT方波图,其图像以下所示:

 

 

 

4.应用方式

经过前面的算法描述,咱们不难发现,方波图能够较好的把握大致的买卖时机,即:

  • 当数据由负值向上穿越0线时,能够买入
  • 当数据由正值向下穿越0线时,能够卖出

以下图所示:

 

5.总结

本指标算法尚在测试中,应用须要谨慎。

WAVT指标能够用于中长期的交易,可是只能大致来把握趋势,和其余技术指标同样,WAVT指标存在必定的延时性,在应用的时候会错过最最低值和最最高值。