ボリンジャーバンドを最大4本まで同時表示できるTradingView用インジケーター【PineScriptサンプルコード付き(v5対応済)】

ボリンジャーバンドを最大4種類(± 1σ~4σ)まで同時に引けるTradingView用インジケーターを公開します。不要なラインは設定から非表示にもできるので扱いやすいと思います。

Pine言語のサンプルコードを公開しますので、カスタマイズも自由です。ぜひご利用ください。

【2022年3月12日 追記】
Pineスクリプトのバージョン5(v5)に対応したサンプルコードも追加しました。
【2022年3月18日 追記】
noteにてサンプルコードの解説とカスタマイズ例を公開しました。
=> https://note.com/tradetech/n/n973e49322074
目次

本インジケーターの概要

1つのインジケーターで複数のボリンジャーバンドをまとめて表示できます。初期設定では1σ~3σのラインが表示されます。パラメータ設定で日数や色、4σラインの表示、1σ~3σライン非表示設定なども可能。

初期設定

1σライン終値の20日ボリンジャーバンド(±1σ)薄いオレンジ 
2σライン終値の20日ボリンジャーバンド(±2σ)やや薄いオレンジ 
3σライン終値の20日ボリンジャーバンド(±3σ)やや濃いオレンジ 
4σライン終値の20日ボリンジャーバンド(±4σ)濃いオレンジ(初期は非表示)

設定変更可能なパラメータ

・計算対象の価格(終値以外に変更可能)
・各ラインを計算する足数
・各ラインの色
・各ラインの表示/非表示

サンプルコード

以下にPine言語のサンプルコードを掲載しておりますので、コピペでPineエディタに貼り付けてお使いください。

サンプルコードを元にTradingViewインジケーターを作成する手順が分からない方は、以下の記事を参考にしてください。(記事内の手順3を今回のサンプルコードに置き換えて進めてみてください)

Pine(v5)バージョン

//@version=5
indicator(title="$TTOSample_Boll4", shorttitle="Boll4", overlay=true)

src = input.source(close, title="価格")
boll_length = input.int(20, title="長さ", minval=1)
visible_middle = input.bool(true, title="ミドルラインを表示するか?")
visible_s1 = input.bool(true, title="1σラインを表示するか?")
visible_s2 = input.bool(true, title="2σラインを表示するか?")
visible_s3 = input.bool(true, title="3σラインを表示するか?")
visible_s4 = input.bool(false, title="4σラインを表示するか?")

middle = ta.sma(src, boll_length)
std = ta.stdev(src, boll_length)
plot_color = color.orange

bb_s4_upper = middle + std * 4
bb_s3_upper = middle + std * 3
bb_s2_upper = middle + std * 2
bb_s1_upper = middle + std * 1
bb_s1_lower = middle + std * -1
bb_s2_lower = middle + std * -2
bb_s3_lower = middle + std * -3
bb_s4_lower = middle + std * -4

plot(visible_s4 ? bb_s4_upper : na, color=color.new(plot_color, 0))
plot(visible_s3 ? bb_s3_upper : na, color=color.new(plot_color, 20))
plot(visible_s2 ? bb_s2_upper : na, color=color.new(plot_color, 50))
plot(visible_s1 ? bb_s1_upper : na, color=color.new(plot_color, 80))
plot(visible_middle ? middle : na,  color=color.new(color.white, 50))
plot(visible_s1 ? bb_s1_lower : na, color=color.new(plot_color, 80))
plot(visible_s2 ? bb_s2_lower : na, color=color.new(plot_color, 50))
plot(visible_s3 ? bb_s3_lower : na, color=color.new(plot_color, 20))
plot(visible_s4 ? bb_s4_lower : na, color=color.new(plot_color, 0))

Pine(v4)バージョン

//@version=4
study(title="$TTOSample_Boll4", shorttitle="Boll4", overlay=true)

src = input(close, type=input.source, title="価格")
boll_length = input(20, title="長さ", minval=1)
visible_middle = input(true, title="ミドルラインを表示するか?", type=input.bool)
visible_s1 = input(true, title="1σラインを表示するか?", type=input.bool)
visible_s2 = input(true, title="2σラインを表示するか?", type=input.bool)
visible_s3 = input(true, title="3σラインを表示するか?", type=input.bool)
visible_s4 = input(false, title="4σラインを表示するか?", type=input.bool)

middle = sma(src, boll_length)
std = stdev(src, boll_length)
plot_color = color.orange

bb_s4_upper = middle + std * 4
bb_s3_upper = middle + std * 3
bb_s2_upper = middle + std * 2
bb_s1_upper = middle + std * 1
bb_s1_lower = middle + std * -1
bb_s2_lower = middle + std * -2
bb_s3_lower = middle + std * -3
bb_s4_lower = middle + std * -4

plot(visible_s4 ? bb_s4_upper : na, color=color.new(plot_color, 0))
plot(visible_s3 ? bb_s3_upper : na, color=color.new(plot_color, 20))
plot(visible_s2 ? bb_s2_upper : na, color=color.new(plot_color, 50))
plot(visible_s1 ? bb_s1_upper : na, color=color.new(plot_color, 80))
plot(visible_middle ? middle : na,  color=color.new(color.white, 50))
plot(visible_s1 ? bb_s1_lower : na, color=color.new(plot_color, 80))
plot(visible_s2 ? bb_s2_lower : na, color=color.new(plot_color, 50))
plot(visible_s3 ? bb_s3_lower : na, color=color.new(plot_color, 20))
plot(visible_s4 ? bb_s4_lower : na, color=color.new(plot_color, 0))

おわりに

今回はボリンジャーバンドのサンプルコードをご紹介しました。

今後も色々とPine言語のサンプルを公開していこうと思いますのでよろしくお願い致します。

※リクエスト等あればTwitter(@eltraders)までどうぞ。

TradingViewの
基本操作を覚えたい方へ

約1時間でTradingViewの基本操作をマスターできるオンライン講座を用意しました。アカウント開設からチャートの使い方まで動画でサクッと学べます。

講座を受講する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (2件)

  • いつも有難うございます。
    初歩的なことですみません。
    サンプルコードをコピペして、動いたのですが
    チャート上ではなく、別枠で表示されるのですが
    何が問題なのでしょうか?
    チャート上に表示させるにはどうしたらいいですか?

    • ご質問ありがとうございます。サンプルコードはoverlay=trueを初期設定にしているのでチャート上に重ねて表示されると思いますが・・

      上手くいかない場合は表示されたインジケーターを右クリック→「移動」→「上の既存ペインへ」を選んでいただくと、ローソク足チャートに重ねて表示されますのでお試しください。

コメントする

目次