你所不知道的「大盤漲跌」特性 [附程式碼]

台股當沖比率相當高,以成交金額來看,占比已接近30%,可是卻很少人知道台股每日K棒的漲跌特性。或者說,很少人知道台股其實是會看時段漲跌的。

以下我們簡單做個統計,比較看看開盤時段(日內漲跌幅)和收盤時段(跳空漲跌幅)有何差異。
日內漲跌幅-跳空漲跌幅
從2010年開始,累計日內漲跌幅為-150%,累計跳空漲跌幅為180%。

從圖中,可以明顯看出開盤時段大盤傾向下跌,收盤時段大盤傾向上漲。

此外,每年發放現金股利(除息)所蒸發掉的大盤點數,都算在跳空漲跌幅當中,也就是說跳空漲跌幅要先加回除息蒸發點數,再跟日內漲跌幅比較,才算合理。

台股每年殖利率平均約為4%,除以每年交易天數約250天,平均每日受到除息影響而下跌0.016%,所以我們將每日跳空漲跌幅加回去0.016%。
日內漲跌幅-跳空漲跌幅
從2010年開始,累計日內漲跌幅為-150%,累計跳空漲跌幅為180%,累計除息還原跳空漲跌幅為220%。

最後,認真的讀者不難發現,在2015年中以後,日內漲跌幅不再偏向下跌,跳空漲跌幅的上漲傾向也大幅下降。
日內漲跌幅-跳空漲跌幅

# 載入需要用到的函式庫
import ffn # 金融函式庫
import IPython # 互動模組
import matplotlib.pyplot as plt # 繪圖函式庫

# 取得歷史資料
stock = ffn.get('^TWII:Open, ^TWII:Close', column_names=['open', 'close']) # 下載加權指數歷史資料

# 計算跳空漲跌幅、日內漲跌幅
stock['gap'] = 100 * (stock['open'] / stock['close'].shift(1) - 1) # 跳空漲跌幅
stock['intraday'] = 100 * (stock['close'] / stock['open'] - 1) # 日內漲跌幅

# 殖利率還原
stock['gap_with_dividend'] = stock['gap'] + (4/250) # 加回平均每日殖利率

# 設定圖片輸出位置
IPython.get_ipython().enable_matplotlib(gui='qt') # 圖片輸出於新視窗

# 繪圖
plt.figure()
plt.plot(stock.index, stock['gap_with_dividend'].cumsum(), color='b', label='gap+dividend') # 累積跳空漲跌幅(殖利率還原)
plt.plot(stock.index, stock['gap'].cumsum(), color='r', label='gap') # 累積跳空漲跌幅
plt.plot(stock.index, stock['intraday'].cumsum(), color='g', label='intraday') # 累積日內漲跌幅
plt.axhline(y=0, color='grey')
plt.legend(fontsize=20)
plt.show()