TradingView Pineスクリプト講座(5)
見出し画像

TradingView Pineスクリプト講座(5)

macaron

前回はPineスクリプトで、20期間移動平均線を作成するところまで解説しました。今回は期間を設定で変更できるようにします。

具体的には、20期間の部分を、お好みで10期間と少なくしたり、200期間と増やしたりといった事をインジケーターの設定画面からできるように変えてみます。

準備

それでは引き続き、ユーロドルの60分足チャートを開き、前回作成したスクリプトをPineエディタで開きます。

//@version=3
study(title="マイスクリプト", overlay=true)
plot(sma(close, 20))

それでは早速始めましょう。

20期間を変数として渡してみる

前回のスクリプトで期間を渡している部分はsma関数部分です。

sma(close, 20)

ここをまず期間を変数で渡すように変更してみます。

val=20
sma(close, val)

val変数の初期値に20を設定し、sma関数の引数では20ではなく、valを渡しています。コード全体ではこうなります。

//@version=3
study(title="マイスクリプト", overlay=true)
val=20
plot(sma(close, val))

こう書き換える事もできます。

//@version=3
study(title="マイスクリプト", overlay=true)
val=20
d=sma(close, val)
plot(d)

前のコードでは、plot関数の引数に直接sma関数を入れていましたが、sma関数を分けて、sma関数の結果(d)をplotに渡しています。

val=20 を入力値として渡してみる

変数として渡してみましたが、このままでは期間を変更するのに、毎回ソースコードを変更する必要があります。そこで期間を入力値として、インジケーターの設定画面から渡せるようにしてみます。

入力値として渡すには、input関数を使います。

input(defval, title, type) → series

defval → 初期値
title → 設定画面に表示される項目の名称
type → データ型(数値ならinteger、文字列ならstring、時間足ならresolutionなど)
series → データ系列

関数の説明ではわかりづらいので、実際に書き換えてみます。

//@version=3
study(title="マイスクリプト", overlay=true)
val=input(title="期間を設定で変更", type=integer, defval=20)
d=sma(close, val)
plot(d)

3行目が val=20 から、val=input(....) に変わったことが確認できます。input関数の結果をvalとして渡しています。

ところでinput関数の説明では、初期値、タイトル、データ型の順に渡していましたが、このソースでは、タイトル、データ型、初期値の順に渡しています。

これは説明と違うと思うかも知れませんが、引数で渡す順序については、title= や type= といった様に引数名を明示することで、順序を自由に変更できます。

逆に下記の様に引数名を明示しない場合、引数の順番を変えることはできず、順番が変わっているとエラーになります。

val=input(20,"期間を設定で変更",integer)

基本的には、引数名を明示(アノテーション)する事をオススメします。

input関数に変更したソースを実行してみる

それではvalの値をinput関数で渡すようにしたソースをチャートに追加してみます。

チャートに追加されました。でもこの段階では特に変化は無いように見えます。そこでインジケーターの設定ボタンを押してみて下さい。

インジケーターの設定画面が表示されます。

すると、期間の項目が設定できるようになった事がわかります。また項目名に input関数の title="..." で指定した文字列が表示されている事も確認できます。

そして期間の数字を変えると、移動平均線が変更されることがわかります。

まとめ

input関数を使うことでインジケーターの設定画面からパラメーターを渡せる事を確認しました。設定画面からパラメーターを渡す事は、実際によく使われますので覚えると便利です。


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
macaron