Python 投資

Pythonで簡単に計算!%Rオシレータの算出方法

2023年4月7日

Pythonで%Rオシレータ

Pythonを使ったトレードにおいて重要なテクニカル指標の1つです。
%Rオシレータの使い方や算出方法を分かりやすくさらにPythonでの実装も解説するので、
必見の記事です。

①%Rオシレータとは?

%Rオシレータとは?

%Rオシレータとは、ウェルズ・ワイルダーによって開発されたテクニカル指標の1つで
価格チャートのトレンドや過剰買い・過剰売りの状態を示すオシレータで重要な指標の1つです。

%Rオシレータを使うことで、過去の価格データから現在の相場が買われすぎているか、
売られすぎているかを判断することができます。

また、トレンドの変化を捉えることも可能です。

②%Rオシレータの使い方

%Rオシレータの使い方

%Rオシレータは、株価の急騰・急落を見極めるために用いられるテクニカル指標の一つです。
主に、過剰買いと過剰売りのシグナルを探ることができます。

%Rオシレータは、0〜100の範囲で表示され、
数値が0に近づくと『過剰買い』、100に近づくと『過剰売り』と判断します。
縦軸の最大を0最小を100とすればRSIと同じ感覚で分析することが可能です。

あわせて読みたい
PythonでRSI
PythonでRSIを使う!トレンド転換のサイン捉えよう!

Pythonを使って効率的に投資する方法を知りたい方必見!RSIを活用する方法を解説します。さらにPythonでのRSIの計算方法もわかりやすく説明しています。 ①RSIとは RSI(Relative ...

続きを見る

一般的には20を下回ると『過剰売り』と判断され、80を上回ると『過剰買い』と判断します。
また、50を下回ると上昇トレンド、50を超えると下降トレンドと解釈されます。

%RオシレータはRSIと似たテクニカル指標ですが、
RSIが相場の長期的な変化を捉えるのに対して、
%Rオシレータは短期的な変化を捉えることができます。

%Rオシレータは、RSIが示すことができない急騰・急落のサインを捉えることができるので重要な指標となっています。

ただし、%Rオシレータ単体で使用すると偽のシグナルを出すことがあるので、
他の指標と併用することが重要です。

③%Rオシレータの算出方法

%Rオシレータを計算

%Rオシレータの算出方法について解説します。%Rオシレータは、以下の式で算出されます。

\begin{align} %Rオシレータ = \frac{n日間の最高値-当日の終値}{n日間の最高値-n日間の最安値}\times100 \end{align}

nは一般的に14日間を用いますが、他の値を用いることもできます。

例えば、14日間の最高値が100円、最安値が50円、当日の終値が80円だった場合、%Rは以下のように算出されます。

%R = (100 - 80) / (100 - 50) × 100 = 40

\begin{align} %Rオシレータ = \frac{100-80}{100-50}\times100=40 \end{align}

このように、%Rオシレータは価格の変動率を表す指標として用いられます。

④Pythonで%Rオシレータの実装方法

import mplfinance as mpf
import pandas as pd
import pandas_datareader.data as pdr
import yfinance as yf

yf.pdr_override()

# 期間
start = "2022-10-01"
end = pd.Timestamp.today()

# 銘柄(トヨタ自動車)
ticker = "7203" + ".T"

# データ取得
df = pdr.get_data_yahoo(ticker, start, end)
df.sort_index(ascending=True, inplace=True)

# %Rオシレータを計算
period=14
highest_high = df['High'].rolling(period).max()
lowest_low = df['Low'].rolling(period).min()
r_percent = (highest_high-df['Close']) / (highest_high - lowest_low) * 100
df['%R'] = r_percent

# チャートプロット
apd_roscillator = [
    mpf.make_addplot(df['%R'], panel=1, ylabel='%R', color='b', ylim=(100, -30)),
    mpf.make_addplot([20] * len(df.index), panel=1,  color='gray'),
    mpf.make_addplot([80] * len(df.index), panel=1,  color='gray')
]

mpf.plot(df, type='candle', style='yahoo', tight_layout=True, title=str(7203),
         addplot=apd_roscillator, figratio=(6, 3), volume=False)
%Rオシレータプロット

問題なく実行できれば上のようなグラフがプロットされると思います。

コードは過去に出来高・移動平均・ボリンジャーバンド・MACD・ストキャスティクス・RSIの
記事を書いたので、そちらを参考にすればプログラムは理解できると思います。

あわせて読みたい
パイソン-出来高
Pythonで出来高チェック!買い時・売り時を見極めよう!

以前にPythonを使った株価のローソク足チャートを描く方法を紹介しました。 Pythonを使って株価の出来高を分析し、買い時・売り時を見極める方法について紹介します。 以前にPythonを使った株価 ...

続きを見る

あわせて読みたい
移動平均
テクニカル分析に役立つ!Pythonで移動平均計算と実装方法

時系列データの分析には移動平均が不可欠です。 また、移動平均には複数の種類があり、それぞれに特徴があるのでどれを使うかはデータの性質によって異なります。 Pythonを使えば簡単に移動平均を計算し、デ ...

続きを見る

あわせて読みたい
ボリンジャーバンド
【ボリンジャーバンド】Pythonでの実装方法とコードを紹介

ボリンジャーバンドという名前を聞いたことがありますか? ボリンジャーバンドはトレンドの強さやトレンドやボラティリティを分析するためのテクニカル指標で相場の変動幅に応じて上下に動くバンドで表され、相場の ...

続きを見る

あわせて読みたい
Pythonで学ぶMACDの使い方
Pythonで学ぶMACDの使い方

『MACDって聞いたことはあるが、どう使えばいいかわからない。』こんな悩みはありませんか? MACDとは何か?さらにPythonを使って基本的な使い方を初心者でもわかりやすく解説します。 毎日、日経平 ...

続きを見る

あわせて読みたい
Pythonでストキャスティクス
Pythonでストキャスティクスを使ったテクニカル分析

こんな悩みはありませんか? 『ストキャスティクスってよく聞くけどどんな指標かわからない。』または『Pythonでストキャスティクスってどうプログラムするの?』 そこで、ストキャスティクスについて詳しい ...

続きを見る

あわせて読みたい
PythonでRSI
PythonでRSIを使う!トレンド転換のサイン捉えよう!

Pythonを使って効率的に投資する方法を知りたい方必見!RSIを活用する方法を解説します。さらにPythonでのRSIの計算方法もわかりやすく説明しています。 ①RSIとは RSI(Relative ...

続きを見る

おすすめのテクニカル分析とPython関連の書籍も紹介しておきます。

今回は以上です。

  • この記事を書いた人

メカタナ

副業ブロガー【経歴】関西出身▶︎理系国立大学院▶︎東証プライム上場企業メーカー開発職▶︎妻と息子1人と暮らしています。▶︎メカタナブログを開設⇒仕事や日常で役立つPythonプログラムを紹介していきます!

-Python, 投資