【TradingViewのPineスクリプト入門】ボリンジャーバンドを書く方法

ボリンジャーバンド

「Pineスクリプトを勉強したいけど何から始めたらいいかわからない。」という方も多いのではないでしょうか。

今回はPineスクリプトの入門ということで、実際にPineスクリプトの内容を理解しながらオリジナルのボリンジャーバンドのインジケーターを書いていきたいと思います。

ボリンジャーバンドは移動平均線から標準偏差の概念を加えた伴線を表示させ、価格の乖離を表示する人気のあるテクニカル指標です。
トレンドの有無や強弱がわかるトレンド系の指標です。

TradingViewでも内蔵インジケーターに搭載されており、ワンクリックでチャートに挿入することができます。
そんな使い勝手のいいボリンジャーバンドですが、チャートを表示して作業しながら読み進めていただくのがオススメなので口座をお持ちでない方は下記から口座開設してみてください。
今ならTradingViewの有料版が30日間無料! 登録は以下のボタンから。

TradingView公式サイトへ
アカウント登録の仕方は「TradingViewの有料版を30日間おためしで使ってみよう」を、有料プランの選び方は「TradingViewのプランを無料から有料に切り替えた3つの理由、プランの選び方」をご覧ください。
TradingViewに関する記事はCXRが監修しています。
CXRは公式TradingView Japan 窓口です。

どのプランがいいかわからないという方はこちらの記事も読んでみてくださいね。

Pineスクリプトでボリンジャーバンド±2σまでを表示

Pineスクリプトによるカスタムインジケーターで作成すれば、複数のボリンジャーバンドを一つのインジケーターとして利用することができます。

どういうことかというと、一般的にボリンジャーバンドの標準偏差を±1σ~±3σまでを表示することが多いですが、これをTradingViewの内蔵インジケーターで表示しようとすると、ボリンジャーバンドの1つの伴線が1つのインジケーターとしてカウントされているので、その分インジケーターの利用可能枠を使ってしまうことになります。

無料プランの方をはじめ、インジケーター表示数に制限のある人にとっては他のインジケーターを同時に使用することが難しくなります。そこで、Pineスクリプトを編集して±1σ~±3σの3種類の線と中心線を1つのインジケーターとして納めてしまおうというのが今回の趣旨です。

Pineスクリプトを編集したことがない方でもすぐにできます。
ボリンジャーバンド

TradingViewチャートへ

Pineスクリプトでのインジケーター利用方法

便宜上一つのインジケーターでボリンジャーバンド±1σ~2σまでを同時に表示させる書き方を紹介していきます。
まずはPineスクリプトの利用方法のさわりです。

Pineスクリプトはチャート画面下の「Pineエディタ」を選択し、ここにコードを書き込んで保存し登録することでカスタムインジケーターとして利用することができます。

pineエディタ
Pineスクリプトのコードに詳しい方はゼロからコードを書き込んで作成することもできますが、今回は内蔵されているボリンジャーバンドのコードを参照して書き換える形で作成します。

まず、「新規作成」のタブを選択しインジケーターの一覧から「Bollinger Bands」を選択します。

pineスクリプトの編集
すると、ボリンジャーバンドを構成するコードが画面に表示されます。
pineスクリプトの編集
コード内の青字や赤字にカーソルを当てると、そのコードの関数について説明が表示されるのでそれぞれ確認しておきましょう。

pineスクリプトの編集

ちなみに、ボリンジャーバンドで必要な標準偏差(σ)を算出する関数は「stdev」になります。これを書き換えて改良させていきます。

改良したボリンジャーバンドの作成方法

表示されたソースコードは上から
1行目→Pineスクリプトのバージョン
2行目→Pineスクリプトの種類及び名称
3~9行目は各項目の設定や定義づけ
10行目以降にある「plot」がチャートにデータを描画するための関数になります。
Pineスクリプト
実際に描画されているのは「basis」「upper」「lower」ということが分かり、それぞれその定義や記入項目を上の行から当てはめていくとbasisが移動平均線、upperとlowerが上下の±σの伴線に該当します。

まず、5行目の「mult」内のデータが標準で「2.0」となっているので「1.0」に変更します。これでupperとlowerのラインが±1σのラインとして描画されます。
変更する箇所
次に、13~14行目に±2σのラインを描画するために、新たに「plot(basis + dev*2)」「plot(basis – dev*2)」を書き加えます。
チャートに追加

最後に、「チャートに追加」を押して実際にチャートにインジケーターが表示されているか確認します。
保存方法

うまく表示できていれば保存を押して名前をつければ、以降は「インジケーター&ストラテジー」の「マイスクリプト」内から呼び出すことができます。
保存先
これで一連の操作は終わりで、次からは作成したインジケーターを改良していきたいと思います。

Pineスクリプトで作成したボリンジャーバンドを分かりやすく改良しよう、ラインの間に色をつける

改良で、具体的にはボリンジャーバンドの各ラインの間に色をつけることと、設定画面の名称を変更していきます。

まずは、TradingViewのPineエディタを開いて以前作成・保存したボリンジャーバンドを選択し、コードを呼び出します。
保存していない場合は下記のスクリプトをコピー&ペーストして使ってみてください。

//@version=4
study(shorttitle=”BB”, title=”Bollinger Bands”, overlay=true)
length = input(20, minval=1)
src = input(close, title=”Source”)
mult = input(2.0, minval=0.001, maxval=50)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis – dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
plot(basis + dev*2)
plot(basis – dev*2)
fill(p1, p2)

スクリプトを開く
今回もここからボリンジャーバンドのコードを書き換える形で作成します。

もともと、内蔵のボリンジャーバンドを利用しているため±1σの間は青く色がついています。
なので、±1σはそのままの色を残し、±2σの間に色をつけていきましょう。

pineスクリプト

コードをみると、最後の行にfill(p1,p2)と書かれています。

これがチャート上のライン間に色をつけるfill関数になります。

前回のおさらいですが、現時点のコードには+1σに「upper」、-1σに「lower」という名称をつけ、さらにチャート上に描画させるplot関数の部分もそれぞれ「p1」「p2」と表示できるように書いてあり、最後の行のfill関数につながっています。

±2σもこれにならって同じようにコードを書いていきます。

スクリプトの編集

まず、plot関数の中から±2σの設定を規定している部分を外に出して、±1σと同様に「upper2」「lower2」と定義してコードを書き直します。

抜き出したplot()の中にはあらためて定義した名称に置き換えます。

最後に、このplot関数の頭にそれぞれ「p3=」「p4=」とつけ、コードを整理します。

p1、p2同様に()内に続けて「color=」と色を指定します。

ここでは特定の色については英語、または「#000000」=blackといったカラーコードと呼ばれる表記で色を指定します。

今回は±1σが青なので「color.green」として緑色を設定します。

スクリプトの編集

最後に18行目にfill(p3,p4)を記入すれば±2σのライン間に色がつきます。
スクリプトの編集
この状態でインジケーターをチャートに挿入してボリンジャーバンドが機能しているかどうか確認してみてください。

各項目に名称をつける

次に各ラインや色のついた部分に設定画面で分かりやすいように名称をつけていきます。

現時点では挿入したインジケーターの設定を開くと全て同じ名称になっており、ここから設定変更する際に分かりづらくなっています。

設定変更
そこで、各plotやfillの()の中に、「title=”名称”」を書きこんでいきます。

今回のボリンジャーバンドではそれぞれの名称を「移動平均線」「BB +1σ」「BB -1σ」「BB +2σ」「BB -2σ」と「±1σの間」「±2σの間」としておきます。

書き込んだ後にこれを改めてチャートに挿入し、設定タブのパラメータを開いて書いた名称が表示かつ対応しているかを確認してみて下さい。

スクリプトの編集

大丈夫であれば、スクリプトを保存して完了です。
設定変更

終わりに

いかがでしたでしょうか。ボリンジャーバンドを使ってPineスクリプトの編集と活用方法のさわりをお伝えしました。いい練習になるのではと思います。

この要領で、1つのインジケーターのスクリプト内に複数のインジケーターを表示させてオリジナルのPineスクリプトを作成し、テンプレートのように活用することもできますね。

Pineスクリプトを理解し編集することができるようになれば、オリジナルのインジケーターやストラテジーを作ったり、バックテストで自分の投資戦略を確かめることも可能になってきます。

まずは簡単な内容のスクリプトの編集から始めて、Pineスクリプトの勉強を進めていってみてください。

TradingViewチャートへ
About ひろぴー 222 Articles
ラジオ日経パーソナリティ兼FX・BTCコラムニスト(週5本・・・。) FXトレードで毎日ゆったりまったり勝負中!最近はどっぷりBTCトレードにハマっております。過去にXRP70万枚のハッキング経験あり^p^詳しくはこちら! >ひろぴーの略歴・経歴