天天看點

高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用

WAVT:Warensoft交易量趨勢(Warensoft Volume Trend),是根據一定時期内交易量描述出買賣趨勢的名額量,适合于中長期交易。WAVT名額表達形式,如下所示

高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用

注:WAVT名額由Warensoft(王宇)原創。

前面聊了一系列的常見應用名額,包括短線、長線的名額,并且也無耐的指出每種名額的問題。當然每寫一篇文章,也都是一次學習過程。經過一年多的學習研究,筆者也自創了一個應用名額,并将其命名為WAT名額,本次讓我們一起來探讨一下,歡迎大家扔磚!

1.名額定義

WAVT:Warensoft交易量趨勢(Warensoft Volume Trend),是根據一定時期内交易量描述出買賣趨勢的名額量,适合于中長期交易。WAVT名額表達形式,如下所示:

高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用

如圖所示,WAVT名額包括兩種顯示形式,一個是曲線圖,一個是方波圖,方波圖是由曲線圖計算得到的。其中,曲線圖可以較為直覺的顯示目前行情的變化趨勢,但是不便于量化交易;而方波圖是對曲線圖進行了一次數值變換,适合計算機進行量化交易。

2.趨勢線的計算

我相信有很多程式猿和我一樣,一直都希望通過行情變化曲線的極值點,來捕獲最合理的買賣時機。這裡存在兩個技術難點:

  • 曲線是否平滑(曲線不平滑,就難以确定極值點)
  • 曲線的末端是否穩定(不穩定,就會常常出現誤判)

對于趨勢線的計算,最簡單的想法是利用K線進行繪制。由于K線是市場的最直接反映,是以其波動性會比較大,是以,以K線作為資料源的話,整個圖像中出現的M頭或W底會非常的多。

前段時間,研究了一下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來實作。其圖像如下所示:

高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用

3.方波圖的計算

趨勢線的特點是比較直覺,适合人眼來觀察行情,但是不便于計算機量化處理。下面我們來進行方波化變換,以便計算機量化。其過程如下:

//1.計算WAVT趨勢線

            var trendLine = GetWAVTTrendLine();

            //2.所有資料減去前一個數值,得到方波值

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

            //3.對方波資料進行噪聲濾波,以去掉幹擾資料

            value = MakeFilter(value);      

經過上面3個步驟,我們就可以得到WAVT方波圖,其圖像如下所示:

高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用

4.應用方式

通過前面的算法描述,我們不難發現,方波圖可以較好的把握大體的買賣時機,即:

  • 當資料由負值向上穿越0線時,可以買入
  • 當資料由正值向下穿越0線時,可以賣出

如下圖所示:

高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用

5.總結

本名額算法尚在測試中,應用需要謹慎。

WAVT名額可以用于中長期的交易,但是隻能大體來把握趨勢,和其他技術名額一樣,WAVT名額存在一定的延時性,在應用的時候會錯過最最低值和最最高值。

高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用