見出し画像

RSI50%以上を緑、50%以下を赤で表示するインジケーター(ダマシ除去ver)【TradingView】

スクリプトの説明

チャート上でRSI 50%以上のところを緑色、50%以下のところを赤色で表示します。
1のスクリプトはオシレータ用、2のスクリプトはトレンド用です。
両方実装するのがおすすめです。

前回の記事で紹介したスクリプトではダマシによって頻繫に色が変わってしまうため、RSIの移動平均線(以下シグナル)を表示し、シグナルが50以上か50以下かを色の表示条件とした。
(シグナルが50以上の時は緑、シグナルが50以下の時は赤)

【改善前】
ノイズが多い

20201221_ラクス

【改善後】
ノイズが減っている

20201221_ラクス1

実装方法

https://youtu.be/-NFE0xZ4J14
この動画の(2:21~)で説明しています。

注意!!

スクリプトの利用は自己責任でお願い致します。
何かしらの不備があった場合も責任は負いかねますので、
使用の際にはスクリプトの確認をお願い致します。

スクリプト

1.

//@version=4
study(title="Relative Strength Index", shorttitle="RSI+Sig_half and half", format=format.price, precision=2, resolution="")

//入力
len = input(defval=14, title="Length", minval=1)
src = input(close, "Source", type = input.source)
sgl = input(defval=5, title="Signal", minval=1)

//RSIの計算式
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//RSIを表示
plot(rsi, "RSI", color=color.yellow, linewidth=2)

//RSIの移動平均線
rsima = sma(rsi,sgl)
plot(rsima, "Signal", color=color.silver, linewidth=2)

//描画表示
band0 = hline(30, title="Lower Band", color=color.white, linestyle=hline.style_dashed, linewidth=1) //水平線30
band1 = hline(70, title="Upper Band", color=color.white, linestyle=hline.style_dashed, linewidth=1) //水平線70
line0 = plot(50, title="Middle Band", color=color.white, linewidth=1, transp=5) //水平線50
line1 = plot(80, title="Upper Upper Band", color=color.white, linewidth=1, transp=25) //水平線80
line2 = plot(90, title="Upper Upper Upper Band", color=color.red, linewidth=1, transp=25) //水平線90
line3 = plot(20, title="Lower Lower Band", color=color.white, linewidth=1, transp=25) //水平線20
line4 = plot(10, title="Lower Lower Lower Band", color=color.red, linewidth=1, transp=25) //水平線10
fill(band1, band0, color=color.orange, transp=90, title="Background") //背景

//背景表示
bgcolor(color = rsima > 50 ? color.green : color.red, transp=80)

2.

//@version=4
study(title="RSI_display_Helod", shorttitle="Display_RSI+Sig_half and half", overlay=true)

//入力
len = input(defval=14, title="Length", minval=1)
src = input(close, "Source", type = input.source)
sgl = input(defval=5, title="Signal", minval=1)

//RSIの計算式
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//RSIの移動平均線
rsima = sma(rsi,sgl)

//背景表示
bgcolor(color = rsima > 50 ? color.green : color.red, transp=80)

この記事が気に入ったらサポートをしてみませんか?