K<20買,K>80賣真能打敗大盤?用KD指標回測0050歷史股價
· 9 分鐘閱讀
日K<20買,日K>80賣?有點意外,這麼簡單的交易的交易模型竟然能有這樣的討論聲量。其實不太需要爭論,最簡單的方法就是直接寫一支程式回測,這個交易策略能不能用就一目瞭然了
回測時間
2003-06-30 (0050的上市日) ~ 2021-12-13,時間約18年半
買賣條件
- 日K<20買進,日K>80賣出,買賣日為隔天開盤價,ex: 2021-11-25 K值 28.60,2021-11-26 K值 13.65(跌破20),則在下一個交易日 2021-11-29 以開盤價買入
- KD 參數使用台股常用的 933,即
- 第一個參數9:代表RSV值的設定周期為9
- 第二個參數3:代表K值計算公式中的兩個分母
- 第三個參數3:代表D值計算公式中的兩個分母
- 一次即買入或賣出全部資金,無加減碼
- 不放空
- 不考慮股息
- 先不考慮交易成本及滑價(用開盤價買賣也沒有滑價的問題)
回測結果
最近五筆交易為
買進時間 | 買進價位 | 賣出時間 | 賣出價位 | 報酬率 | 持續時間 |
---|---|---|---|---|---|
2021/11/29 | 137.6 | 2021/12/7 | 141.35 | 2.73% | 8天 |
2021/10/4 | 134.7 | 2021/10/20 | 137.05 | 1.75% | 16天 |
2021/8/17 | 135.4 | 2021/8/30 | 138.65 | 2.40% | 13天 |
2021/7/22 | 137.8 | 2021/8/5 | 139.25 | 1.05% | 14天 |
2021/5/6 | 136.3 | 2021/5/26 | 134.85 | -1.06% | 20天 |
肉眼比對程式跑出的結果,和看盤軟體顯示的結果一致,程式看起來沒有寫錯,18年半來總共會進行126筆交易,完整交易記錄下載連結如下: 下載
回測使用的 library 為 backtesting.py,回測結果截圖如下
小評 partⅠ
- 勝率 72.22%,這大概是最亮眼的地方,7成勝率在交易系統中算相當不錯,雖然很多人覺得勝率是交易系統中最不重要的指標
- Max Drawdown -39.90%,還不錯,因為這個區間有經歷到 2008 金融風暴,4成左右的最大虧損還算 OK
- 總報酬率 193.12%,年化報酬率 6.11%,每個人對報酬率的要求不同,我個人是不滿意
- 夏普值 0.398,以我的標準是不及格
眼尖的人應該有看到一欄 Buy & Hold Return
:281.61%,比這個策略的 193.12% 高,即然回測工具都特別寫 Buy & Hold 的報酬了,當然再寫一支程式來做對比
對比 Buy & Hold
直接上圖,藍線為0050 buy and hold 的淨值,橘線上為使用這個交易策略