【Pythonテクニカル分析】ウィリアムズ%Rの計算と描画

ウィリアムズ%Rは相場の過熱感を見るためのオシレーター系分析の指標です。今回はこちらをPythonで計算して描画してみたいと思います。

\( ウィリアムズ\%R =\frac{当日終値-過去N日間の高値}{(過去N日間の高値-過去N日間の安値)} \times 100\)

計算式はシンプルです。ある期間における高値と安値の差に対して高値と始値の差、終値と安値の差の割合を見ています。

あえて分母がマイナスをとるような式にしておくことで、チャートで描画した際に、上が買われすぎ、下が売られすぎとなるようになります。

コード

日経平均を例にウィリアムズ%Rを計算するコードです。

# ライブラリの読み込み
import pandas_datareader as pdr
from datetime import datetime, timedelta
import pandas as pd
import matplotlib.pyplot as plt

# データ取得期間設定
current_date = datetime.now()
two_years_ago = current_date - timedelta(days=365) # 1年間を設定
formatted_date = two_years_ago.strftime("%Y-%m-%d")
df = pdr.DataReader('^NKX', 'stooq',start=formatted_date) # データの取得
df.sort_values('Date', inplace=True) # 日付順にソート

# ウィリアムズ%Rを計算
N = 20
WR = (df['Close']-df['High'].rolling(N).max())/(df['High'].rolling(N).max()-df['Low'].rolling(N).min()) * 100

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(WR, label='Williams %R')
ax1.tick_params(axis="x", labelrotation=45)
ax1.legend()

基本的な読み方

-20%以上は買われすぎ⇒売り検討

-80%以下は売られすぎ⇒買い検討

というように逆張り的に使う指標。

以上

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です