如果把股價比喻成溫泉,那KD指標就是這個溫泉裡的溫度計。
KD指標的全名是隨機指標(Stochastic Oscillator),也是非常常見的技術分析工具,聽起來很厲害對吧?實際上就是用來告訴投資人市場是「過熱」或「過冷」,來判斷股票或其他資產的買賣時機(過熱就會降溫,過冷就會升溫,屬於擺盪類型技術指標的一種)。
實際計算方式可以參考維基百科的說明,其概念主要是透過過去幾天的最高價和最低價,去判斷目前的股價是位於較高還是較低的位置。
KD指標顧名思義會有K線和D線2條線,K線反應股價的速度較快,能夠反映短期市場變化,所以又被稱為快線;D線反應較慢(因為是將K線再進行平均一次),用來反映較長期的市場趨勢,因此又被稱為慢線。
KD指標計算出來的結果會介於0~100之間,越高的話表示目前的股價相較於過去來說處於較高的位置,而一般來說主要是透過下面的規則來進行判讀:
表示目前的股價相較於過去的時間,是處在比較低的位置,但又沒有低到過低,代表股價偏弱勢可能繼續下跌。
表示目前的股價相較於過去的時間,是處在比較高的位置,但又沒有高到過高,代表股價偏強勢可能繼續上漲。
身為一家經營溫泉的老板,當然不會放任溫泉過冷會過熱,也就是說股價也不太可能一路漲上去就不會投(輝達表示:...),因此KD指標若有出現以下情形則可能代表轉折即將發生(溫泉老闆要降水溫或提高水溫囉!):
有時候溫度計也會失靈的,比如水溫一直很高或很低,溫度計就會停在80以上或20以下不動,這代表我們的溫度計可能需要修理了。
這時候的KD指標會失靈,因為如果股價持續上漲,那代表一段特定時間的高低點都相似,KD指標公式的分母與分子每天也都會差不多,導致KD指標很難反應過去一段時間高低點位置的狀況,因此會一直維持在高檔(>80)或低檔(<20)的情況,在專業術語上會將此情形稱為KD指標鈍化。
指標鈍化是所有擺盪指標都會出現的狀況,這代表目前的股價有很強的動能,導致股價是有趨勢的持續往同一個方向跑,我自己在閱讀技術分析書籍的時候覺得這點也是蠻有趣的,究竟股價是有動能的時候居多(一直向前衝)還是維持漲高就跌、跌低就漲的情形居多?之後再用這個主題和大家做分享提供我的觀點。
如果你看到水面沸騰,但溫度計卻顯示低溫;或者水面結冰,溫度計卻顯示高溫,這時候可能就要換個地方泡湯了。
KD指標背離指的是當市場價格創新高或新低,但KD卻沒有同樣發生新高點或新低點,就是產生指標背離的現象,一般來說會認為此時市場即將有機率發生轉折,通常會被做為交易訊號尋找適合的進出場時機,可以區分成2種背離情形:
為什麼背離就代表即將反轉,他背後隱含的邏輯也是很簡單,假設是在股價創新高的時期,但KD指標的數值反而變低,代表推動股價向上的動能已經減緩,所以就藉此來預測股價即將反轉。
好了,已經有這些知識就足夠了,我們來實測過去的資料看看,首先從yahoo finance下載0050的日資料,在yahoo finance可以下載到最多從2008年到現在的股價資料,雖然離0050成立日期2003年還少了5年的時間,只是這邊應該算能最快速下載到股價的資料,就先省略前5年的時間了。
這邊我所下給AI的指令如下:
以給定資料期間,回測若在K小於20時一次全部買進,當K大於80時一次全部賣出,列出總共會進行多少次交易,每次的買進及賣出日期及價格,以及報酬率
呈現出來的結果如下(總共有204次交易紀錄,這邊只列出前面幾項):
對AI產生的結果也是要時時刻刻抱持懷疑的心,這邊我再回到yahoo finance的圖表,打開技術指標,來看一下他的這些買賣時間點合不合理,用2008/4/24買進到2008/4/28賣出,當時K值的確先小時20然後又大於80沒錯,下一次交易的2008/4/29也同樣是K值小於20然後於2008/5/13大於80,推論產生的結果應該還OK。
有了這些數據,接下來就是發揮AI強大的數據分析能力了,這邊同時請ChatGPT和Claude這兩個AI工具給我針對上述策略的總結,首先是ChatGPT的結果:
而Claude的回應則是:
這一回合我覺得Claude的回應比較優秀,計算了勝率和最大虧損,同時也給予一些建議。而因為總共有209次交易,為了更直觀的瞭解策略的盈虧,我這邊以假設每年初有1,000元初始資金,每一年的年末回報是多少來瞭解各年度的損益狀況,結果如下:
同樣針對結果也是要抱持著懷疑的心,我們來檢視2008年的報酬率計算是否正確,根據資料2008年總共有進行這幾次交易,把它貼到萬能的excel來檢查結果:
2008/12/23這次的交易因為是到2009年才賣出,我在指令裡有要求:「
所以這邊使用2008年最後一個交易日來計算市值,而2009年則沒有這個情形,因此最後的市值1,907元和回測結果一致,推論資料應該正確沒問題。也請ChatGPT用折線圖的方式呈現這幾年的資產變化情形:
好了,橫跨16年的KD策略,表現最好的是2009年拿到了90.73%的報酬,表現最差則是2022年的-24.01%。而如果是維持這個投資策略都不改變的投資人,可以拿到多少報酬呢?答案是:
2,519.84元,報酬率是151.98%,年化報酬率5.59%
151.98%的報酬率,聽起來好像還不錯吧!不過回到策略好壞評斷的本身,就是究竟能否贏過單純的買進並持有策略,所以這邊我們再請AI提供每一年的買進並持有報酬率來做比較:
而從2008年投入1,000元持有到現在,最終會變成…
3,181.64元,總報酬率218.16%,年化報酬率7.05%
明顯高於K值策略的結果。
這一次的AI幫幫忙我們請出的是新朋友-Claude,這是由美國科技公司Anthropic所開發的大語言模型,該公司是原本任職於OpenAI的工程師在2021年所創立,在最近發布的新模型-Sonnet(單字原為英國莎士比亞十四行詩,好浪漫的一個用字)據說有著和ChatGPT 4o不相上下的能力,這次使用的感想是ChatGPT在數值計算結果比較好一點(Claude不知道為什麼連買進並持有的報酬率都會算錯…原本這篇只想使用Claude結果試了好多次都不行)不過在本文生產的方面Claude給的結果比較詳細也較會衍生,各有千秋。
而回到策略本身,我們也請Claude針對這兩種策略給一些評論:
總結這次的回測結果,如果是單純從2008年開始投資,兩個策略的結果如下表,表格中可以看到K值策略雖然有著較小的最大損失(年度表現波動相對較小,範圍大致在760元到1,907元之間,而買進持有則是在552元到最高的1,717元),但是整體來說在持續向上股市行情的這10幾年間,比起單純買進持有是少賺很多的(尤其2019年之後),加上買進持有頻繁的買賣交易,結果是沒辦法單敗單純的買進並持有策略。不過相對的,對於較沒辦法承受較大市場起伏變化的投資人來說,K值策略可能會是較佳的選擇(但會錯過股市大多頭時的行情)。
市場會永遠持續向上嗎?
大家都會有個疑問,市場還會一直持續向上嗎?在過去雖然的確展示了市場持續向上,但這的確不代表市場會永遠持續向上,也會經歷像是2008年或2022年的大幅虧損,或是2020年3月疫情期間連續觸發熔斷機制的崩跌,只是隨著科技公司的創新、溫和的通貨膨脹和穩定的政經情勢,對於未來市場持續向上我還是保有一定的信念,重點是保持長期視角,在市場低迷或瘋狂時保持冷靜與理性,瞭解自己的投資原則,在投資道路上朝向正確的方向持續前進。