TradingView用のRCI3本を使ったインジケーターです。
≫【無料インジ】RCI3本 短期中期長期クロスでサインとアラートの計算を見直してやや軽量化しました。
RCIは計算量が多くスクリプトエラーが出やすいので・・
根本的には同じなのですが、クロスの仕方の計算で微妙にサインの出方が違ったります。
使っている端末やPCによってはどちらも特に変わらなかったりするのでお好みで。
RCIの短、中、長期線に対し、それぞれクロスすることでサインやアラートを出します。
RCI3LINE CROSSインジケーター Light

コチラがインジケーターの画面。
RCIの短期、中期、長期がそれぞれクロスしたタイミングで背景の色が変わってサインが出ます。
一度確定するとリペイントしません。

コチラがパラメータ画面。
デフォルトのパラメータは
- 短期:9
- 中期:26
- 長期:52
ですが好みで変更できます。
既存のRCI系のインジケーターは、中期が36になっていることが多いですね。

コチラスタイル画面。サインの表示方法や色。濃さなど変更できます。

コチラは長期と中期のクロスだけ表示した状態。
ラインはそれぞれ不透明度を0%にするとラインを消せます。

アラート画面はコチラ。
上から
- 中期が長期を下にクロス
- 中期が長期を上にクロス
- 短期が長期を下にクロス
- 短期が長期を上にクロス
- 短期が中期を下にクロス
- 短期が中期を上にクロス
です。
英語で書いてありますが、まぁなんとなくわかると思います。
全部設定するとうるさくなると思うので、必要なものだけ設定してください。
RCI3LINE CROSSインジケーターLight コード
//@version=5
indicator("RCI Cross Light", shorttitle="RCI Cross Light", overlay=false)
// Periods
itvs = input(9, "Short Term RCI Period")
itvm = input(26, "Mid Term RCI Period")
itvl = input(52, "Long Term RCI Period")
// RCI calculation
d(itv) =>
sum = 0.0
for i = 0 to itv - 1
o = 1.0
s = 0.0
p = close[i]
for j = 0 to itv - 1
if p < close[j]
o := o + 1
else
if p == close[j]
s := s + 1
rank = o + (s - 1) / 2.0
sum := sum + math.pow((i + 1) - rank, 2)
sum
rci(itv) => (1.0 - 6.0 * d(itv) / (itv * (itv * itv - 1.0))) * 100.0
// Cross conditions
crossShortMidUp = ta.crossover(rci(itvs), rci(itvm))
crossShortMidDown = ta.crossunder(rci(itvs), rci(itvm))
crossShortLongUp = ta.crossover(rci(itvs), rci(itvl))
crossShortLongDown = ta.crossunder(rci(itvs), rci(itvl))
crossMidLongUp = ta.crossover(rci(itvm), rci(itvl))
crossMidLongDown = ta.crossunder(rci(itvm), rci(itvl))
// Alert conditions
alertcondition(crossShortMidUp, title="Short-Mid Up Cross", message="Short Term RCI crossed above Mid Term RCI!")
alertcondition(crossShortMidDown, title="Short-Mid Down Cross", message="Short Term RCI crossed below Mid Term RCI!")
alertcondition(crossShortLongUp, title="Short-Long Up Cross", message="Short Term RCI crossed above Long Term RCI!")
alertcondition(crossShortLongDown, title="Short-Long Down Cross", message="Short Term RCI crossed below Long Term RCI!")
alertcondition(crossMidLongUp, title="Mid-Long Up Cross", message="Mid Term RCI crossed above Long Term RCI!")
alertcondition(crossMidLongDown, title="Mid-Long Down Cross", message="Mid Term RCI crossed below Long Term RCI!")
// Plotting
plot(rci(itvs), color=color.red, title="Short Term RCI")
plot(rci(itvm), color=color.green, title="Mid Term RCI")
plot(rci(itvl), color=color.blue, title="Long Term RCI")
hline(80, "Overbought", color=color.red)
hline(-80, "Oversold", color=color.blue)
bgcolor(crossShortMidUp ? color.new(color.red, 90) : crossShortMidDown ? color.new(color.green, 90) : crossShortLongUp ? color.new(color.blue, 90) : crossShortLongDown ? color.new(color.orange, 90) : crossMidLongUp ? color.new(color.purple, 90) : crossMidLongDown ? color.new(color.yellow, 90) : na)
不具合あればコメントなどでお知らせください。
注意点として、RCI系のインジケーターは読み込みに時間がかることが多いです。(計算が複雑)
インジケーター部分に「!」スクリプトエラーと出たら、再読み込みか、表示非表示ボタンを押すと改善されることがあります。


コメント