WAVT:Warensoft交易量趨勢(Warensoft Volume Trend),是根據一定時期内交易量描述出買賣趨勢的名額量,适合于中長期交易。WAVT名額表達形式,如下所示
高頻交易算法研發心得--WAVT名額(Warensoft交易量趨勢名額)算法及應用
注:WAVT名額由Warensoft(王宇)原創。
前面聊了一系列的常見應用名額,包括短線、長線的名額,并且也無耐的指出每種名額的問題。當然每寫一篇文章,也都是一次學習過程。經過一年多的學習研究,筆者也自創了一個應用名額,并将其命名為WAT名額,本次讓我們一起來探讨一下,歡迎大家扔磚!
1.名額定義
WAVT:Warensoft交易量趨勢(Warensoft Volume Trend),是根據一定時期内交易量描述出買賣趨勢的名額量,适合于中長期交易。WAVT名額表達形式,如下所示:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIx0DciV2dmADM30zd-cmbw5ib1c0Y11EVOhXWE10dZpnT0VFRNdXUE5kMBRlT4lFVNhXQ65EeBpWT0tGRNlXVE1Ee4MVT3NGVNdXS6xUNBpWTxEEVNZ3YyI2cKJDT0ljMZVXTzold41WW15UbMFTRE1UeNhlWuZ0ViBXO5xkNNh0YwIFSh9CXt92YuM3YltWas5iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.png)
如圖所示,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來實作。其圖像如下所示:
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名額存在一定的延時性,在應用的時候會錯過最最低值和最最高值。