【初心者向け】pine scriptでチャートに移動平均線を絵画してみよう!サンプルコード付き

2018年10月20日

今回は、チャートサービスTradingView(トレーディングビュー)で使えるプログラミング言語pine script(パインスクリプト)を使ってチャート上にSMAを表示してみようと思います。

あくまでpine scriptを学ぼうを思っている方向けの内容となります。

サンプルコードを見ながら1行づつ説明をしていきます。

スポンサーリンク

SMAを表示するためのサンプルコード

早速サンプルコードを見ていきましょう。

これから紹介するコードは期間21と50の移動平均線2本をチャート上に表示するためのものです。

このコードをTradingViewのpine エディタで実行すると以下の画像のようになります。

ちょっと分かりづらいのですが、水色の線が2本チャート上に表示されています。

これが、今回のサンプルコードで表示させた移動平均線です。

コードを1行づつ説明していくよ!

それでは、上記のサンプルコードを1行づつ見ていきましょう。

この行は通常最初に書くpine scriptのバージョンを指定する1文です。

最新のpine scriptのバージョンが3のため、よくわからない人は3を指定しておきましょう。

これが2行目。

この1文は必ず必要で、まずこのpine scriptが「study」なのか「strategy」なのかを記載する必要があります。

  • study = インジゲーターをチャートに表示させるもの
  • strategy = バックテストを行うもの

といった分け方で覚えておいてください。

今回はチャートに移動平均線を表示させるpine scriptなので「study」を宣言しています。

括弧の中ですが、「”」で囲まれた「SMA」はインジゲーターの名前になり、好きな文字列で記入してもらって大丈夫です。

次に「overlay=true」ですが、「true」を指定するとろうそく足のチャート上にインジゲーターを表示します。

「false」を指定すると、ろうそく足のチャート画面の他に新しい画面を作り、そこにインジゲーターを表示させるようになります。

  • 「overlay=true」→ろうそく足と同じ画面にインジゲーターを表示
  • 「overlay=false」→ろうそく足の他に画面を作りインジゲーターを表示

この行二つは、smaを計算して「ma1」と「ma2」という箱の中に代入しています。

「ma1」や「ma2」という名前は任意で決めることができます。

pine scriptでは「sma()」という命令分で自動でsmaを計算することができます。

あとは、ろうそく足のどの値を基準に何本分の平均を計算するかを指定するだけです。

sma(ろうそく足の値,期間)

となり、サンプルコードの「close」はろうそく足の終値を指定しています。

ma1 = sma(close,21)

は、ろうそく足の終値、過去21本分の移動平均線を計算して「ma1」に代入せよ。といった内容になります。

ma2 = sma(close,50)

こちらは、50本分の移動平均線んを「ma2」に代入しています。

最後のこの行は、チャートに表示させるための命令文です。

plot()

これでチャートに表示させるのですが、括弧の中に何を表示させるかを指定します。

「plot(ma1)」であればma1をチャートに、「plot(ma2)」であればma2をチャートに表示します。

これで、計算した移動平均線2本をチャートに絵画することができるわけです。

パロメータを変更したり、線の色を変えてみる

これで、SMAをチャートに表示するという目的は達成したわけですが、これだと使い勝手が悪かったり、見づらかったりしますよね。

そこで、チャートに表示したSMAのパロメーターを変更できるようにしたり、線の色を変えたりしてみます。

パロメーターをチャート上で変更できるようにする

サンプルで表示したSMAは21期間と50期間で表示されていますが、このパロメーターを14期間と40期間に変更したい場合には、コードを書きかえる必要があります。

これだとインジゲーターとしての利便性が低いですね。

ちょっとコードを書き替えるだけで、チャート上でパロメーターを変更できるようになるため、その方法を紹介します。

以下は、コード全文です。

さっきのコードからの変更、追加点は3、4行目に追加された

len1 = input(21)
len2 = input(50)

これは何かというと、「len1」と「len2」は変数でわかりやすい文字列なら何を使っても構いません。

input(21)
input(50)

これは、入力可能パロメーターの指定になります。

こうやって指定することで、デフォルトでは21だけどチャート上で入力が可能になります。

len1 = input(21)

この1行で、デフォルトは21だけどチャート上でも入力可能な値を「len1」に代入するという意味になります。

さらにSMAを計算している行

ma1 = sma(close,len1)
ma2 = sma(close,len2)

もともと21と50だったところがlen1とlen2に変わっています。

これで、SMAのパロメーターは21と50で表示されますが、チャート上でも値の変更が可能となります。

パロメーターを変更する時は、チャートの左上追加したチャートの設定ボタンをクリックします。

今回の場合だとSMA(21,50)と表示されている行の右に並んでいるグレーのボタンの中にあります。

上の画像のような感じでパロメーターを変更できるようになります。

線に色をつけてみる

2本の線が同じ色だと、なんか見づらいので線の色を変えてみたいと思います。

やり方は簡単でplotの行を書き換えるだけです。

plot(ma1,color=red)
plot(ma2,color=lime)

とします。さきほどからの変更点は「,(カンマ)」で区切ってcolor=redなどを指定しただけです。

全文は以下のようになります。

これをチャートに表示させてみると、

無事に緑と赤に線を色分けして表示することができました。

色は分けて表示した方が見やすいですね。

まとめ

今回はSMAをチャートに表示するコードを紹介しましたが、これはpine scriptの基本の中の基本になります。

しっかり覚えておくようにしたいですね。

特に、変数やinputでパロメーターを変更できるようにすること、colorによる色付けのやり方は覚えておきましょう。