TradingViewにボリンジャーバンドと3本の移動平均線を表示したい!
無料版でボリンジャーバンド・MACD・RSIを表示するとSMAを表示できない・・・
ということで、スクリプトを弄って足掻いた痕跡です(笑)
BB(ボリンジャーバンド)とSMA(単純移動平均)のスクリプトをコピーして合体して手を加えて自分のスクリプトとして保存すればできそうです、、、できました。
でも意外と不便です・・・常にSMA 3本もいらないし・・・
SMA 1本、2本、3本バージョンを作っておけば良いのだけど、切り替えるたびに消して呼び出してパラメータを設定して(初期設定に戻ってしまうので)とかなり苦痛です。
そこで、とりあえずSMAのLengthを3つ入れられるようにしておいて、Lengthに0を指定すると線が消えるようにすれば少しは便利になるのでは?と思い改良しました。
最初はPine(TradingViewで動くスクリプト言語)のif文の挙動が分からず5分で諦めようかと思いましたが、15分くらい調べて何とか落とし込めました😊
(Pineではベクター演算しかできないと思えば楽になります(あくまでマインドセットです))
BBのスクリプトをベースにして以下のようなスクリプトを適当に追加すればなんとなくOKそうです。
(実行する場合は自己責任でお願いします)
smalen1 = input(50, minval=0, title="SMA1 Length")
smalen2 = input(100, minval=0, title="SMA2 Length")
smalen3 = input(200, minval=0, title="SMA3 Length")
out1 = smalen1 > 0 ? sma(src, smalen1) : na
out2 = smalen2 > 0 ? sma(src, smalen2) : na
out3 = smalen3 > 0 ? sma(src, smalen3) : na
plot(out1,
color=color.orange, title="SMA1", offset=offset, style=plot.style_circles, linewidth=1)
plot(out2,
color=color.blue, title="SMA2", offset=offset, style=plot.style_circles, linewidth=1)
plot(out3,
color=color.purple, title="SMA3", offset=offset, style=plot.style_circles, linewidth=1)
思った以上に便利になりました!
同期してるスマホ版でもちゃんと使えます!
plot()のstyleやlinewidthなどはお好みで指定しなくてもOKです。
しかし私は結局セールでPro版を契約してしまいましたが・・・(笑)
Pro版でも制限があるので、今でもスクリプトをカスタマイズしながら便利に使っています。
そのうちオリジナルの処理なんかも作ってみたいですね。
(特にオシレータ系の計算方法は単純なIIRフィルタがベースだったりして親近感があるのと同時に、もっとこうした方が良いんじゃないのかな〜とか思ったり(膨大な実績があるのでそう簡単には行かないとは思いますが楽しそうです :-))
#TradingView #Pine