前回までの投稿で移動平均線のプロットのしかたを説明してきました。
10日間移動平均線をプロットするコードを書いてから、あとで30日間移動平均線に変更したいな、と思うこともあるでしょう。そんな時にわざわざ新しくコードを書かなくても簡単に設定を変更する方法があります。今回は、input()関数について説明します。

まずは前回の投稿で作った移動平均線を二本プロットするコードを見てください。

(例1)
//@version=5
indicator(“移動平均2本”, overlay=true)

sma_short = ta.sma(source=close, length=10)
sma_long = ta.sma(source=close, length=100)

plot(series=sma_short, color=color.green)
plot(series=sma_long, color=color.red)

人によっては上記のコードを下記のように書く人もいます。

(例2)
//@version=5
indicator(“移動平均2本”, overlay=true)

short_length = 10
long_length = 100

sma_short = ta.sma(source=close, length=short_length)
sma_long = ta.sma(source=close, length=long_length)

plot(series=sma_short, color=color.green)
plot(series=sma_long, color=color.red)

太字の部分が変更点です。
sma()関数の length引数を指定するために、short_length、long_lengthという変数を先に作って、short_length変数には10という値を、long_lengthには100という値を代入しています。
コード全体の意味としては例1も例2も同じなのですが、例2のような書き方のほうが後からも他人からも読みやすく好ましいと思います。

short_length = 10
というのは、変数short_lengthに10という数字を代入している、言い換えると、short_lengthという名前の数字の箱に10という数字を入れているコードなのです。

変数short_lengthには10という数字が入っているので、
sma_short = ta.sma(source=close, length=short_length)
とすると、引数 length の値として10が設定されることになります。


それではもう少しコードを改造してみましょう。

例2のままでは、短期移動平均線は10日間平均、長期移動平均線は100日間平均を計算されて単にチャート上にプロットするコードです。
この10日間、100日間という設定値を20日間だとか、50日間だとか、自分の試してみたい値に後から再設定できると便利ですね。input()関数を使って、コードをわざわざ書き換えないで後で自由に設定できるように書き換えてみます。

input関数を使う
input()関数は、コードを書き替えずに後からプログラムの設定条件を変更する際に使う関数です。
i_smaShort = input(defval=10, title=”Short SMA”)
と書くと、i_smaShort という変数を作り、そこに初期値では10という数字を代入する、という意味のコードになります。そして、初期値は10ですが、あとからパラメータ設定ウィンドウから自由に20にしたり、50にしたり任意の数に書き換えることができます。
この例ではinput()関数として2つの引数を使っています。
引数 defval=10 は初期値の設定を10としている、という意味です。
引数 title = “Short SMA” は、後で初期値10を20や50など、その他の数に変更したいときに、設定値ウィンドウを開いた際に表示される「見出し」です。”Short SMA”でなくても、後から見やすい言葉であれば”Short Ave”だとか、日本語で”短期平均”としてもいいです。
左側の変数名 i_smaShort は私がつけた名前なので、違う名前でももちろんかまいません。

それでは例2の移動平均二本のコードを下記のようにinput()関数をつかって書き換えてみましょう。太字の部分は変更点です。

(例3)
//@version=5
indicator(“移動平均2本”, overlay=true)

i_smaShort = input(defval=10, title=”Short SMA”) //解説1
i_smaLong = input(defval=100, title=”Long SMA”) //解説2

sma_short = ta.sma(source=close, length=i_smaShort) //解説3
sma_long = ta.sma(source=close, length=i_smaLong) //解説4

plot(series=sma_short, color=color.green)
plot(series=sma_long, color=color.red)

解説1)i_smaShort という変数を作り、そのこに= input(defval=10, title=”短期移動平均”) というコードで初期値として10を代入しています。
解説2)i_smaLong = input(defval=100, title=”長期移動平均”)とあるのは、i_smaLongという名の変数を作り、そこに初期値として100という整数の数字を代入する意味のコードです。
解説3)ta.sma()関数の引数 length= の値に変数 i_smaShort を指定しています。
解説4)ta.sma()関数の引数 length= の値に変数 i_smaLong を指定しています。

それでは例3のコードを「保存」を押していったん保存してから、「更新をチャートに反映」を押して実行してみましょう。下記のように移動平均線が2本表示されます。

画像出典:TradingView

移動平均線の期間を変更したいときは、左上のインジケータータイトルの付近にカーソルを持っていくと、歯車印が現れますので、そこをクリックします。

画像出典:TradingView

歯車印をクリックすると下記の設定値ウインドウが開きます。


Short SMA の値が10
Long SMA の値が100
になっていますが、この数値を変えてOKを押すと試してみたい期間の移動平均線がプロットされます。

画像出典:TradingView

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です