RSIにはいくつかの種類があり、移動平均の計算方法が異なります。
TradingViewに標準搭載されているRSIは「修正移動平均(RMA)」というもので計算されていますが、日本の国内株では“カトラー版”と呼ばれる「単純移動平均(SMA)」で計算する方もよく利用されているので、このカトラー版RSIを表示できるインジケーターを作成してみました。
Pine言語のサンプルコード付きで公開しますので、ぜひご利用ください。
Pineスクリプトのバージョン5(v5)に対応したサンプルコードも追加しました。
本インジケーターの概要
一般的なRSIと同じく、RSIラインと「買われすぎ」「売られすぎ」ラインをそれぞれ表示します。
初期設定
RSI | 14日(14本)で計算 | 緑色 |
---|---|---|
買われすぎライン | 70 | 白色 |
売られすぎライン | 30 | 白色 |
買われすぎ/売られすぎの間 | 薄い青色で塗りつぶし(不透明度:5%) |
設定変更可能なパラメータ
インジケーターの設定画面は、以下のような構成となっております。
パラメータ
(1) RSIの計算対象価格を変更したい時
「計算価格」を変更すると、高値や出来高などでも計算可能です。
(2) RSIを計算する長さ(足数)を変更したい
たとえば日足で5日RSIに変更したければ、「長さ」を「5」に変更してください。
(3) 「買われすぎ」「売られすぎ」のライン値を変更したい
初期では「70/30」ですが、「80/20」にしたい時は「買われすぎライン」を「80」に、「売られすぎライン」を「20」に、それぞれ変更してください。
色設定
以下の色をそれぞれ変更できます。
・RSIラインの色
・買われすぎラインの色
・売られすぎラインの色
・「買われすぎライン – 売られすぎライン」の間を塗りつぶす色
サンプルコード
以下のコードをコピペしてお使いください。
サンプルコードを元にTradingViewインジケーターを作成する手順が分からない方は、以下の記事を参考にしてください。(記事内の手順3を今回のサンプルコードに置き換えて進めてみてください)
Pine(v5)バージョン
//@version=5
indicator(title="$TTOSample_RSI_Cutler", shorttitle="RSI", precision=2)
src = input.source(close, title="計算価格")
length = input.int(14, title="長さ")
overbuy = input.int(70, title="買われすぎライン")
oversell = input.int(30, title="売られすぎライン")
rsi_sma(x, y) =>
u = math.max(x - x[1], 0)
d = math.max(x[1] - x, 0)
rs = ta.sma(u, y) / ta.sma(d, y)
res = 100 - 100 / (1 + rs)
rsi_value = rsi_sma(src, length)
plot(rsi_value, title="RSI", color=color.green)
p1 = plot(overbuy, title="買われすぎライン", color=color.white)
p2 = plot(oversell, title="売られすぎライン", color=color.white)
fill(p1, p2, color.new(color.blue, 95), title="塗りつぶし色")
Pine(v4)バージョン
//@version=4
study(title="$TTOSample_RSI_Cutler", shorttitle="RSI", precision=2)
src = input(close, type=input.source, title="計算価格")
length = input(14, title="長さ")
overbuy = input(70, title="買われすぎライン")
oversell = input(30, title="売られすぎライン")
rsi_sma(x, y) =>
u = max(x - x[1], 0)
d = max(x[1] - x, 0)
rs = sma(u, y) / sma(d, y)
res = 100 - 100 / (1 + rs)
rsi_value = rsi_sma(src, length)
plot(rsi_value, title="RSI", color=color.green)
p1 = plot(overbuy, title="買われすぎライン", color=color.white)
p2 = plot(oversell, title="売られすぎライン", color=color.white)
fill(p1, p2, color.new(color.blue, 95), title="塗りつぶし色")
おわりに
今後も「かゆいところに手が届く」「日本語表記で分かりやすい」インジケーターのサンプルコードを色々と作ってみようと思っています。
ブログの記事更新はTwitter(@eltraders)または本ページ右から登録できる「メルマガTTO通信」でお知らせしているので、ぜひフォローorご購読よろしくお願いします。
コメント