無料チャートアプリ、TradingViewでインジケーターを自作する ~ ③ RSIにボリンジャーバンドを表示させる
おはこんばんわ!たこやきです。
今回は、無料チャートアプリ「TradingView」のインジケーター自作第3弾として、
「RSIにボリンジャーバンドを表示させる」
について、解説していきます。
RSIというインジケーターの中に、ボリンジャーバンドというインジケーターを組み込む、という作業になります。
TradingViewは、インジケーター内に別のインジケーターを組み込む機能がそなわっています。
ですがこの方法だと、インジケーターを2つ表示させたことになってしまいます。
無料会員だとインジケーターは3つまでしか表示させられません。
ですので、インジケーターを自作して、RSIとボリンジャーバンドをくっつけてしまえ、というわけです。
TradingViewでインジケーターを自作するための基本的な操作については、
第一弾・第二弾にて、写真付きで詳しく述べていますので、ぜひ参考にしてみて下さい。
インジケーターのRSIってなに?
RSIとは、日本語では「相対力指数」と言います。
トレンドの強さをしめす、いわゆる「オシレーター系」のインジケーターです。
直近の一定期間において、終値ベースで上昇と下落、どちらの勢いが強いのか!を示します。
50%を中心として、0~100%の中で、値が変化します。
50%より多い:「上昇傾向」
50%より少ない:「下降傾向」
また、市場の過熱感を示すサインとしても使えます。
70%以上:「買われすぎ」
30%未満:「売られすぎ」
RSIが30%になったら買って、70%になったら売る、と言った、いわゆる「逆張り」手法に使えます。
ただ、RSIだけだと、RSIが30%を切ってからも株価が下がったり、70%以上になっても株価が上がり続けたりしますので、ほかのインジケーターと組み合わせて使い、売買の精度を上げた方がいいでしょう。
RSIにボリンジャーバンドを組み込む意味は?
RSIにボリンジャーバンドを組み込んだ場合、ただのRSIだけより、「買い」「売り」のチャンスを見つけやすくなります。
例えば、いまトレンド方向がはっきりしない、いわゆる「レンジ相場」にいたとします。
RSIは60を少し超えた程度、とします。「上昇傾向」ではありますが、70未満ですので「売り」とは言えません。
ですがそんなとき、RSIがRSIボリンジャーの幅を上抜けた、なんて時は、そこからRSIが下落に転ずるサインとなることがあります。
もちろんそこからさらに価格が上昇していくなんてこともありますので、現実的には「RSIがボリンジャーバンドを超えて、また戻ってきたとき」が転換点、くらいがいいかもしれませんね。
単純移動平均線や、MACDのゴールデンクロス・デッドクロスより早くサインが確認できます。
他にも、RSIボリンジャーバンドは、一緒に表示される「RSIの移動平均線」が参考になります。最近のRSIの推移がわかりやすくなり、意外と便利です♪
さて、ではさっそくRSIにボリンジャーバンドを組み込む方法について、説明していきますね。
インジケーター自作手順①:内蔵のRSIを表示する
まずは前回同様、内蔵のインジケーターを表示します。
画面上の「インジケーター」をクリックし、「内蔵」から「RSI(相対力指数)」を選択します。
インジケーター自作手順②:RSIをコピペする
このへんも前回と一緒です。
画面中央に追加されたの「RSI」にカーソルを合わせ、「{ }」をクリックします。
画面下にソースコードが表示されます。
画面真ん中の右側、「・・・」をクリックし、「コピーを作成」をクリックします。
わかりやすい名前を付けてあげてください。
はい、RSIのコピーができました。ここに、ボリンジャーバンドを付け加えていきます。
インジケーター自作手順③:RSIに、ボリンジャーバンドを表示させる
まずは一度、内蔵のインジケーターを「×」をクリックして消します。
再び「インジケーター」「マイスクリプト」から、さきほどコピーしたRSIインジケーターを選択します。
つぎは、いつもとはちょっと違う操作になります。
RSIの「・・・」をクリックし、「RSI(14,close)にインジケーター/ストラテジーを追加」をクリックします。
すると、「インジケーター&ストラテジー」のウインドウが表示されますので、「BB(ボリンジャーバンド)」を選んでください。
おお!RSIにボリンジャーバンドを組みこめましたよ♪
この表示が、目指す最終形態です。
でもこれだと、インジケーター枠を2個使ってしまっていますよね。
ですので、RSIのPineコード内に、ボリンジャーバンドを表示するよう書き込んでいきます。
インジケーター自作手順④:ボリンジャーバンドのソースコードをコピペする
RSIの下に追加された、「BB」にカーソルを合わせ、「{ }」をクリックします。
画面下にソースコードが表示されます。
このソースコードのうち、下の太線黄色マーカーの部分を、コピーしてください。
//@version=4
study(shorttitle="BB", title="Bollinger Bands", overlay=true, resolution="")
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
インジケーター自作手順⑤:RSIのコードにボリンジャーバンドのコードをコピペし、数値やタイトルを直す
さきほどコピーしたボリンジャーバンドのコードを、RSIのコードの下に追加します。
すると、下のようになったと思います。
//@version=4
study(title="Relative Strength Index", shorttitle="RSI", format=format.price, precision=2, resolution="")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
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))
plot(rsi, "RSI", color=#7E57C2)
band1 = hline(70, "Upper Band", color=#787B86)
bandm = hline(50, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(30, "Lower Band", color=#787B86)
fill(band1, band0, color=color.rgb(126, 87, 194, 90), title="Background")
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
RSIの部分だけ、すこし解説しておきます。
「len」は、RSIを算出する期間を指します。デフォルトは「14」日です。
「src」は、RSIをわりだす元となるデータソースです。デフォルトは「close」(終値)ですね。
「up」は、「len」期間の値上がり幅の平均値を収納しています。「chenge」で前日の終値との差を計算し、「max」で前日の終値との差と0のどちらか大きい方を選択、「rma」で平均値を出しています。
「down」は、「len」期間の値下がり幅の平均値を収納しています。「chenge」で前日の終値との差を計算し、「-min」で前日の終値との差と0のどちらか小さい方を選択したうえでー1倍して整数にし、「rma」で平均値を出しています。
「rsi」は、「up」と「down」からRSIの値を計算しています。
「plot」で、RSIを描画します。
「band1」「bandm」「band0」はそれぞれ70、50、30のところに点線を引きます。
「fill」という命令は、「band1」から「band0」までを塗りつぶせ、という命令ですね。
さすがにこのままでは、正しく表示されません。
ですので、下のように、タイトル部分とボリンジャーバンドのコードのみ、直してください。
//@version=4
study(title="RSI+BB2sd", shorttitle="RSI+BB", format=format.price, precision=2, resolution="")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
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))
plot(rsi, "RSI", color=#7E57C2)
band1 = hline(70, "Upper Band", color=#787B86)
bandm = hline(50, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(30, "Lower Band", color=#787B86)
fill(band1, band0, color=color.rgb(126, 87, 194, 90), title="Background")
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(rsi, length)
dev = mult * stdev(rsi, length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
直すのは、たったこれだけ。
要はボリンジャーバンドの元となる単純平均線を、終値ではなくRSIの値を元に算出し、標準偏差も終値ではなくRSIの値を元に算出するように変えるだけですね。
例によって、コピペではうまく機能しません…。
どうも「"」と「-」が文字化けするみたいです。
ご自分でこの通りに入力するか、PCでメモ帳などを起動し、コピペ後に「"」「-」をすべて置換などして全部直せばうまく機能します。
最後に、画面真ん中の右側、「保存」をクリックし、完成です☆彡
みごと、RSIにボリンジャーバンドを表示することができました!!
《まとめ:RSIにボリンジャーバンドを組み込む!インジケーター自作》
- TradingViewは、見やすくて多機能、優秀なチャートツールです!
- TradingViewの無料会員は、同時に3つまでしかインジケーターの表示ができない・・・・。
- TradingViewは、オリジナルのインジケーターが作れる!
- 一つのインジケーターに、複数のインジケーターをぶっこんだ、オリジナルのインジケーターを作ろう!
- RSIにボリンジャーバンドを表示に挑戦!ほとんどコピペで完成しました!
- 注意:無料会員は、オリジナルのインジケーターは一つまでしか同時表示できません。
ディスカッション
コメント一覧
まだ、コメントがありません