KD是很長壽且被普遍使用的指標,市場高手拿不同天期KD來綜合衡量大盤的多空方向,我今天就東施效顰,看看能不能自訂出一個綜合考量不同天期KD的大盤多空指標。
先檢複習一下KD的計算公式
計算KD指標的第一步,先求出未成熟隨機值 ( Raw Stochastic Value,簡寫為RSV), 其公式如下:
第N天收盤價 - 最近N日內最低價
RSV = —————————————————- x 100
最近N日內最高價 - 最近N日內最低價
一般N取9天
接下來再用加權平均的方式算出K值及D值,公式分別如下
Kt = ( 1-1/N ) Kt-ı + ( 1 / N ) RSVt (公式1)
Dt = ( 1-1/N) Dt-ı + ( 1 / N ) Kt (公式2)
其中t為當日值, t-ı 為前一日值。這兩個公式是MACD之外另一種「指數平滑法」的「加權移動平均」計算法。
這裡的N大多是用3天
根據這樣的公式,這N日來的收盤價如果愈接近最低價,K值跟D值就會愈小
XS用stochastic這個函數來計算KD值
例如想要畫出KD指標,腳本如下
input: Length(9), RSVt(3), Kt(3); variable: rsv(0), k(0), _d(0); SetInputName(1, "天數"); SetInputName(2, "RSVt權數"); SetInputName(3, "Kt權數"); Stochastic(Length, RSVt, Kt, rsv, k, _d); Plot1(k, "K(%)"); Plot2(_d, "D(%)");
在這樣的基礎上,如果我們想要知道現在收盤價在不同天期區間裡,距離最低點的位置,或是它的發展方向,就可以使用不同天期的KD值來計算
我試著用這樣的精神,寫了一個大盤的KD多空指標,腳本如下
input: Length1(5),Length2(9),Length3(14),length4(20),length5(30),length6(40),length7(60), RSVt(3), Kt(3); var: rsv1(0), k1(0), d1(0); var: rsv2(0), k2(0), d2(0); var: rsv3(0), k3(0), d3(0); var: rsv4(0), k4(0), d4(0); var: rsv5(0), k5(0), d5(0); var: rsv6(0), k6(0), d6(0); var: rsv7(0), k7(0), d7(0); Stochastic(Length1, RSVt, Kt, rsv1, k1, d1); Stochastic(Length2, RSVt, Kt, rsv2, k2, d2); Stochastic(Length3, RSVt, Kt, rsv3, k3, d3); Stochastic(Length4, RSVt, Kt, rsv4, k4, d4); Stochastic(Length5, RSVt, Kt, rsv5, k5, d5); Stochastic(Length6, RSVt, Kt, rsv6, k6, d6); Stochastic(Length7, RSVt, Kt, rsv7, k7, d7); var:count(0); count=0; if k1>d1 then count=count+1; if k2>d2 then count=count+1; if k3>d3 then count=count+1; if k4>d4 then count=count+1; if k5>d5 then count=count+1; if k6>d6 then count=count+1; if k7>d7 then count=count+1; if count >=4 then value1=1 else value1=-1; plot1(value1,"大盤KD多空");
用這個指標畫出來的多空分界如下
我用這個指標寫成腳本,翻紅就進場,翻黑就出場,用加權指數去回測,回測報告如下
如果回測五年,回測報告如下
從回測數字來看,這個訊號雜訊雖多,但波段是掌握得住的