Trading View独自のプログラム言語である「Pineスクリプト」には数々の関数が設定されており、中でも「input」は使用頻度の最も高い関数の一つです。今回はこの「input」に使える引数、データ型別の書き方を解説します。
Pineスクリプトinput関数の引数一覧
inputに使える引数を以下の簡単なインジケーターを使って解説していきます。
//input引数解説
//@version=4
study("マイスクリプト", overlay=true)
src = input(close, title="ソース")
len = input(defval=9, minval=1, maxval=200, step=2, confirm=true, title="期間")
SMA = sma(src, len)
plot(SMA)
title:インプットのタイトル
input項目の名前を表す引数です。
defval、minval、maxval:デフォルト値、最大・最小値
defvalは「デフォルト値」、minvalは「最小値」、maxvalは「最大値」を設定する引数です。
defvalは以下のように省略することも可能です。
len = input(9, minval=1, maxval=200, confirm=true, title="期間")
confirm:インポート時の設定値確認
インジケーターをチャートに追加するときに入力を確認するポップアップを表示させます。inputの種類がinput.sourceの時には使用できません。デフォルトはfalseです。
step:数値の変更幅を変更
入力値を増減させるときの変更幅を設定します。step=2にした場合、上矢印を1回押すと9⇒11のように2ずつ変動します。デフォルト値はstep=1です。
inputの種類がinput.integerまたはinput.floatの時に使用できる引数です。
options:プルダウンから選択可能に
例で挙げたPineスクリプトのコードを少し変更して以下のコードを作成しました。
//input引数解説 options例
//@version=4
study("マイスクリプト", overlay=true)
src = input(close, title="ソース")
len = input(defval=9, minval=1, maxval=200, step=2, confirm=true, title="期間")
MAtype = input(title="MA種類", defval="SMA", options=["SMA", "EMA"])
MA = MAtype=="SMA" ? sma(src, len) : ema(src, len)
plot(MA)
MAtypeのinputに引数のoptionsを使っています。optionsにはプルダウンに表示させる文字や値を入力します。入力するときは角括弧[ ]で囲い、文字列の場合はダブルクォーテーション” ”でそれぞれ囲い、数値の場合はそのまま入力します。
このコードを実行すると設定変更画面でSMAとEMAをプルダウンから変更できるようになります。
引数にoptionsが使用できるinputの種類はinput.integer、input.float、input.stringの3種類です。
変数MAに使用している三条件演算子(?:)について詳しく知りたい方はPineスクリプト入門#14|「if文」の書き方を参考にしてみてください。
input関数のデータ型別Pineスクリプトコード例
inputは入力する値の種類によって書き方が少し違います。通常は種類を指定しなくてもエラーにならず正常に動作しますが、例えば引数にtype=input.sourcと書いて種類を指定することもできます。
inputの種類は全部で8つあり、それぞれの記述例をご紹介します。紹介するコードはPineエディタにコピペすることで実際に動作を確かめることができます。
input.bool:真偽値(true/fales)を扱う種類
input.boolはtrueまたはfalseを扱う種類です。
例えば、インジケーターの表示、非表示を切り替える設定を作るときに使えます。
//input.boolの記述例
//@version=4
study("マイスクリプト", overlay=true)
onoff = input(defval=true, type=input.bool, title="ON/OFF")
plot(onoff ? close : na)
input.integer:整数を扱う種類
整数を扱うinputがinput.integerです。
例えば、移動平均線に使用する期間を指定するときになどに使います。
//input.integerの記述例
//@version=4
study("マイスクリプト", overlay=true)
len = input(defval=9, type=input.integer, title="期間")
SMA = sma(close, len)
plot(SMA)
input.float:浮動小数点を扱う種類
小数点を含む値を扱うinputがinput.floatです。
例えば、RSIなどのインジケーターにできるだけ正確な水平線を表示させたいときなどに使います。
//input.floatの記述例
//@version=4
study("マイスクリプト")
i = input(defval=50, type=input.float, minval=1, maxval=100, step=0.5)
RSI = rsi(close, 9)
plot(RSI)
hline(i)
input.source:参照する値(終値、始値など)を扱う種類
参照する値を扱うinputがinput.sourceです。
値には以下が使えます。
- close:終値
- open:始値
- high:高値
- low:安値
- hl2:(高値+安値)/2
- hlc3:(高値+安値+終値)/3
- ohlc4:(始値+高値+安値+終値)/4
例えば、移動平均線に使用する値を指定するときなどに使います。
//input.sourceの記述例
//@version=4
study("マイスクリプト", overlay=true)
src = input(defval=close, type=input.source, title="ソース")
SMA = sma(src, 9)
plot(SMA)
input.session:期間(時間)を扱う種類
時間を扱うinputがinput.sessionです。
例えば、任意の時間を指定して背景色を変更したい場合などに使います。
//input.sessionの記述例
//@version=4
study("マイスクリプト", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
session = input("0400-0900", type=input.session)
sessioncolor = timeinrange("60", session) ? color.red : na
bgcolor(sessioncolor)
input.string:文字列を扱う種類
文字列を扱うinputがinput.stringです。
例えば、引数にoptionsを使って文字列のプルダウンリストを作成するときなどに使用します。
//input.stringの記述例
//@version=4
study("マイスクリプト", overlay=true)
MAtype = input(title="MA種類", type=input.string, defval="SMA", options=["SMA", "EMA"])
MA = MAtype=="SMA" ? sma(close, 9) : ema(close, 9)
plot(MA)
input.resolution:時間足を扱う種類
時間足を扱うinputがinput.resolutionです。
type=input.resolutionを使うことで、設定画面のプルダウンから時間足を選択することができます。
例えば、securityを使って別の時間足の移動平均線を表示させるときなどに使用します。
//input.resolutionの記述例
//@version=4
study("マイスクリプト", overlay=true)
TIME = input(title="Time Frame", type=input.resolution, defval="60")
SMA = security(syminfo.tickerid, TIME, sma(close, 25), barmerge.gaps_on)
plot(SMA)
input.symbol:シンボル、銘柄を扱う種類
シンボルや銘柄を扱うinputがinput.symbolです。
例えば、securityを使って同じチャート上に別の銘柄を表示させたいときなどに使用します。
//input.symbolの記述例
//@version=4
study("マイスクリプト", overlay=true)
sym = input(title="Symbol", type=input.symbol, defval="EURJPY")
res = input(title="Resolution", type=input.resolution, defval="60")
plot(security(sym, res, close))
input関数に使用できる引数の解説は以上になります。
input関数はストラテジーのデバックやインジケーターの設定に必須の関数なので使い方をマスターしておきましょう!
参考サイト:https://www.tradingview.com/pine-script-docs/en/v4/annotations/Script_inputs.html?highlight=session
Pineスクリプト入門の記事では、プログラミング初心者でも理解できるように一つづつ丁寧に解説しています。Pineスクリプトを触ったことがない方でもPineスクリプト入門#1から順にみていただければ、バックテストやインジケーターのコードも作成することができます。興味のある方は是非、他の記事もご覧ください。
トレーディングビューのアカウントを作成する
トレーディングビューはPineスクリプトでバックテストを行う以外にも、自分のオリジナルインジケーターを作成したり、世界中のトレーダーが作成したオリジナルのインジケーターを使うことも可能です。
FX、仮想通貨、株、ETF、コモディティなど国内外問わず様々な銘柄に対応しています。
コメント