見出し画像

【Tradingview:プログラミングTIPS】ボリンジャーバンド/BB%B/BBW

おはロング。

ボリンジャーバンド(ボリバン)をPineScriptプログラミングでデータを利用・加工していく時の、初歩的なポイントをおさえていきます。


※このシリーズでは、TradingviewでPineScriptのプログラミングで気になって調べた事のティップスをつらつらと書いています。

※この記事は、投げ銭ノートです。無料で最後まで読むことが出来ます。
※気に入って下さりましたら、いいね!コメントななどよろしくお願いいたします。


はじめに

――――――――――――――――――――――――

ボリンジャーバンドを内蔵インジケーターで表示してみる

普通にボリンジャーバンドを使うだけだったら、、「インジケーター&ストラテジー」から「bb」「ボリンジャーバンド」等と打ち込めばすぐ出てきます。

画像1

内蔵のインジケーターには、普通のボリバン以外にも、関連したものが2つありますので、こちらもデータ抽出して有効活用していきたいと思います。

・BB (ボリンジャーバンド)

・BB%B(ボリンジャーバンド%B)

・BBW(ボリンジャーバンド幅)

――――――――――――――――――――――――


BB (ボリンジャーバンド)

普段よく目にする、いわゆるボリバンですね。

ボリバンは、単純移動平均(SMA)と、上と下の方向に標準偏差の分だけ離れてプロットされるラインで構成されています。


内蔵の関数(bb)を使ったボリンジャーバンドの表現方法

Tradingviewでは、以下のような表現で、ボリンジャーバンド専用の関数コードが用意されています。

bb(series, length, mult) → [series[float], series[float], series[float]]

series (series)  ・・・処理する値の系列
length (integer) ・・・バーの数(長さ) 
mult (float) ・・・標準偏差ファクター

bb関数の戻り値は、上の3つです。

以下がサンプルコードになります。「終値、5MA、標準偏差4」で設定。

//@version=4
study('My Script',overlay=true)
[middle, upper, lower] = bb(close, 5, 4)

plot(middle, color=color.green)
plot(upper, color=color.green)
plot(lower, color=color.green)

サンプルコードをそのまま読み込ませるとこんな感じです。

画像2


標準偏差関数(stdev)を使ったボリンジャーバンドの表現方法

一方、bb関数を使わない表現方法もあります。

ボリンジャーバンドの元々の計算方法を基礎とした実装ですね。
移動平均線(sma)と標準偏差(stdev)を使って、ボリンジャーバンドを表現するとと、こんな感じになります。

//@version=4
study( "MyScript2" ,overlay=true )

price = input(close)
length = input(5)
mult = input(4)
sma = sma (price ,length)
dev = stdev(price ,length)

plot( sma , color=color.green)
plot( sma + dev * mult , color=color.green)
plot( sma - dev * mult , color=color.green)

表示されたラインは同じですが、ソースがこんな風に違いますね。用途に応じて使い分ける事が出来ると思います。


画像3


――――――――――――――――――――――――


BB%B(ボリンジャーバンド%B)

ボリンジャーバンド%B(パーセントBチャート)は、

「ボリンジャーバンド幅の中で、どの値位置に価格がいるか?」

をオシレーター風に、定量的に把握するためのインジケーターです。

<計算式>
%B = ( Current Price - Lower Band ) / ( Upper Band - Lower Band )

特に専用の関数は用意されていないようなので、(2020年5月現在)
自分でコードを書くとこんな感じでしょうか。

//@version=4
study('My Script',overlay=false)
[middle, upper, lower] = bb(close, 20, 2)

price = input(close)

percentB = ( price - lower ) / ( upper - lower )

plot(percentB, color=color.green)

hline(1, color=color.blue, linestyle=hline.style_dotted, linewidth=1)
hline(0, color=color.blue, linestyle=hline.style_dotted, linewidth=1)



//移動平均線を追加してみた
plot(sma(percentB, 5), color=color.red)

折角の自作コードなので、パーセントBチャートに、5期間の移動平均線を追加してみました。↑ ↓

画像4


――――――――――――――――――――――――

BBW(ボリンジャーバンド幅)

BBWは、名前の通り、ボリンジャーバンドの上下幅を中央のバンドで割ったオシレーター風のチャートです。

画像5

​上部バンドと下部バンドの間の幅が定量的に分かるとどんな良い事があるか?というと、

「スクイーズ」と「エクスパンション」

が数値的に分かっちゃうという事ですね。

内蔵の関数(bbw)を使ったボリンジャーバンド幅の表現方法

上下のボリンジャーバンドの差を中央のバンドで割ったものです。

引数は、普通のボリバン同様3つで、戻り値は1つのラインになります。

関数
bbw(series, length, mult) → series[float]

コードは超シンプルに書くと、こんな風になります。

//@version=4
study('My Script')

plot(bbw(close, 20, 2), color=color.blue)


移動平均線と標準偏差を使ったボリンジャーバンド幅の表現方法

PineScriptのリファレンスからの引用です。

//@version=4
study('My Script')

// the same on pine
f_bbw(src, length, mult) =>
   float basis = sma(src, length)
   float dev = mult * stdev(src, length)
   ((basis + dev) - (basis - dev)) / basis
plot(f_bbw(close, 20, 2))


以上

※この記事を気に入って下さったら、いいね!お願いします。
※また、質問、コメント、励ましのお言葉など、心よりお待ちしております!

ありがとうございます!頂いたサポートは開発活動費に使わせていただきます!