Python 繪製 一目均衡表

康韡瀚
6 min readApr 17, 2021

--

一目均衡表簡介:

一目均衡表為二次世界大戰前,由一個日本記者一目山人所創,原名Ichimoku Kinko Hyo 日文原意為「快速查看圖表」中文譯為一目均衡表。

一目均衡表由五條線及一個雲帶(阻抗帶)所組成,有別於傳統指標支持與阻力皆為一點或一直線,一目均衡表以雲帶作為支撐或阻力,並藉由雲帶的厚薄量化支撐或阻力的強弱。現今被廣泛用於股市、匯市和債市,主要用來預測市場走向或是交易時機。其優點為容易判斷單邊市場行情,為投資者提供入市點及出市點,缺點沒在市場震盪,盤整時無法精準提供交易訊號。

一目均衡表使用方法:

1.上升趨勢(多頭買入信號)

價格線位於基準線上方推移(此時基準線為支撐)

價格線位於雲帶上方(此時雲帶為支撐)

轉換線在基準線上方推移(超強勢的情況下,價格線在轉換線上方推移)

遲行線向上穿越價格線

2.下降趨勢(空頭買入訊號)

價格線位於基準線下方推移(此時基準線為阻力)

價格線位於雲帶上方(此時雲帶為阻力)

轉換線在基準線上方推移(超強勢的情況下,價格線在轉換線上方推移)

遲行線向下跌破價格線

3.調整期

1.由上升轉為下降:

價格線由上往下進入雲帶(雲帶由支撐改為阻力)

價格線由上往向下穿越基準線

遲行線向下穿越價格線

2.由下降轉為上升:

價格線由下往上進入雲帶(雲帶由阻力改為支撐)

價格線由下往上穿越基準線

遲行線向上穿越價格線

  • 遲行線穿透日日線和雲層的時候,容易出現暴跌;
  • 在下降市中,通常難以觸及基準線。

一目均衡表計算方法:

短軸快線,又稱轉換線(TenKan-Sen / Conversion Line)

短軸快線 = (9日內最高價 + 9日內最低價) ÷ 2

# 轉換線 (Conversion Line): (7-period high + 7-period low)/2))seven_period_high = data['High'].rolling(window= 7).max()seven_period_low = data['Low'].rolling(window= 7).min()data['Conversion_Line'] = (seven_period_high + seven_period_low) /2

中軸慢線,又稱基準線(Kijun-Sen / Base Line)

中軸慢線(樞紐線)= (26日內最高價 + 26日內最低價) ÷ 2

# 基準線 (Base Line): (22-period high + 22-period low)/2))period22_high = data['High'].rolling(window=22).max()period22_low = data['Low'].rolling(window=22).min()data['Base_Line'] = (period22_high + period22_low) / 2

後移指標,又稱遲行帶(Chinkou Span / Lagging Span)

後移指標(後行時間)= 將今日收盤價往後移至一中線周期(26日)。

# 遲行線 The most current closing price plotted 22 time periods behind (optional)data['chikou_span'] = data['Adj_Close'].shift(-22)

前移指標A,又稱先行帶A(Senkou Span A / Leading Span A)

前移指標A(先行時間A)= (轉換線 + 基準線) ÷ 2,前移至一中線周期。

# 先行線 A (Leading Span A): (Conversion Line + Base Line)/2))data['Leading_Span_A'] = ((data['Conversion_Line'] + data['Base_Line']) / 2).shift(22)

前移指標,又稱先行帶B(Senkou Span B / Leading Span B)

前移指標B(先行時間B)= (52日內最高價 + 52日內最低價) ÷ 2,前移至一中線周期。

# 先行線 B (Leading Span B): (44-period high + 44-period low)/2))period44_high = data['High'].rolling(window=44).max()period44_low = data['Low'].rolling(window=44).min()data['Leading_Span_B'] = ((period44_high + period44_low) / 2).shift(22)

雲帶/雲層(Kumo / Cloud)

雲帶(抵抗帶、阻抗帶)= 先行帶A與先行帶B之間的區域。

# create a quick plot of the results to see what we have createddata.drop(['Date','High','Low','Open','Adj_Close','chikou_span'], axis=1).plot(figsize=(15,8))plt.fill_between(data['Date'], data['Leading_Span_A'], data['Leading_Span_B'], facecolor='green', alpha=0.3)

完整程式碼:

以下一目均衡表以達能(3686.TW)為例,時間為2010/01/01至2019/12/31

載入套件:

爬取股價:

繪製一目均衡表:

參考資料:

MBA智庫

Pchome 股市

https://pchome.megatime.com.tw/column/sto14/20140520/140056460059.html

知乎

https://zhuanlan.zhihu.com/p/69230298

--

--