インジケーターやストラテジーのパラメーターを自由に追加できる!PineScriptのinput命令とは?

TradingViewのインジケーターやストラテジーをPineScriptで自作している時に、「ここの値は色々変えて検証してみたいな」とか「状況に応じて値を変えられるようにしたいな」と思った事はありませんか?

例えば移動平均の日数とか、利確や損切の%値とか。

PineScriptのinput命令を使うと、自作のインジケーターやストラテジーに独自の入力パラメータを追加することができます。

input命令をマスターすれば、より汎用的なインジケーター(ストラテジー)が作成可能になりますので、本記事ではその仕組みについて簡単に解説します。

目次

インジケーターやストラテジーの「パラメーター」とは?

TradingViewのインジケーターやストラテジーは、チャートに追加した後に「設定」アイコンをクリックすると様々な設定ができます。その中に「パラメーター」というタブがあり、様々な設定が可能です。(項目はインジケーターやストラテジーごとに異なります)

たとえばTradingViewに標準搭載されている「単純移動平均線(SMA)」のパラメータは、こんな感じ。(久しぶりに見たら色々増えてる・・)

様々な項目がパラメータ―として用意されていることで、色んな用途で使えるインジケーターになっています。

PineScriptではどう書くの?

上のパラメーターは、項目ごとにPineScriptで1行書くだけで簡単に追加できます。

具体的にはコード内で以下のように、左辺に変数を、右辺にinput.XXXと書くと、自動的にそのインジケーター(ストラテジー)のパラメータ設定画面に入力項目が反映されます。

in_period = input.int(5, title="移動平均線 長さ")

といった感じで書けば、以下のようになります。

上の例は「input.int」なので、整数型(int)となります。他にも様々な種類が用意されていて、種類に応じて入力式になったりチェックボックス式になったりと、自動的に項目の形式も変わります。

そしてインジケーター(ストラテジー)を利用する人がこの設定画面で項目を指定すると、コードで左辺に書いた変数にその内容が入った状態でコードが実行されます。

つまり上の例でいえば「5」に設定されているので、コード上では「in_period」が「5」として実行されるわけです。例えば移動平均線を計算するコードを以下のように書けば、5日移動平均線が描画されることになります。

plot(ta.sma(close, in_period), color=color.green)

利用者が「移動平均線 長さ」を「25」に設定すれば、同じコードのままで25日移動平均線が描画される・・というわけですね。

自作インジケーター(ストラテジー)にパラメーターを用意するメリット

自作のインジケーターやストラテジーはコードを自分で自由に変えられるので、わざわざパラメーターを用意しなくても良いんじゃないか?と思われる方もしれません。

ここでは僕が実際に使っていて感じているメリットを3つ挙げてみます。

異なるチャートで併用できる

チャートを複数枚並べて使っていたり、複数のチャートレイアウトを使っている方も多いかと思います。

例えば日足チャートでは25日移動平均線を出したいけれど、15分足チャートでは13足指数平滑移動平均線を出したい・・といった場合。

移動平均線の計算日数(足数)や計算方式(SMA/EMA)をパラメーター化しておくと、同じプログラムをどちらのチャートにも追加してパラメータだけ変えることで実現できます。

バックテスト検証時に便利

これはストラテジー限定の話ですが、「ストラテジーテスター」の画面を表示した状態でもストラテジーのパラメータを変更することができます。

さらに、変更すると「ストラテジーテスター」の内容も自動更新されるので、パラメータ―を色々変えながら検証してみることが可能です。(これ結構便利)

配布しやすいインジケーター(ストラテジー)が作れる

自作したインジケーターやストラテジーを配布したい場合、自分が使うだけの場合よりも多様な利用の仕方が考えられます。

こういった時もパラメーターで色々変更可能にしておくことで、より汎用的なプログラムとして配布できるようになります。

僕も以下のような「移動平均線3本が表示できるインジケーター」を無料配布していますが、パラメーターで移動平均線の計算日数やEMA対応などが可能になっているため、おかげさまで多くの方にご利用いただいております。

あわせて読みたい
移動平均線3本をまとめて表示できるTradingView用インジケーター【EMA対応/PineScriptサンプルコード付... TradingView内蔵の移動平均線は1本しか引けないので、短期/中期/長期の移動平均線3本をまとめて表示できるインジケーターを作成してみました。Pine言語のサンプルコードを公開しますので、ぜひご利用ください。

おわりに

以上、PineScriptのinput命令を使ってインジケーターやストラテジーに独自のパラメータを追加する基本手順を解説しました。

具体的にどのような種類の項目が追加できるのかについては、また別の記事でまとめたいと思います。(v5以降からかなり種類が増えたので面白いです)

さらにTradingView/PineScriptを
使いこなしたい方へ

チャート分析に便利なプログラム、
銘柄スクリーニング、
トレードルールの検証・・

TradingViewを日本株投資に
フル活用する方法、教えます。

全10種類のサンプルプログラムもプレゼント中:

  • ・損切ライン自動表示
  • ・トレンドの”見える化”
  • ・チャートの 「山」と「谷」
  • ・移動平均線ゴールデンクロスなどのトレードルール検証
目次