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

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

macaron

前回までで、任意の期間の移動平均線のインジケーターを作成する方法を解説しました。期間はインジケーターの設定画面から変更することもできましたね。

今回と次回では、ここからさらに発展させて、複数の移動平均線を作成する方法(今回)と、移動平均線のクロスでアラートを送信する方法(次回)について解説していきます。

準備

作成したインジケーターが他のシンボルでも動くことを確認するために、イーサリアムチャートを開きましょう。イーサリアム/円の日足を開き、

Pineエディタでは前回作成したスクリプトを開いておきます。

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

それでは始めましょう。

短期移動平均線と中期移動平均線の2本を表示させる

今回は短期移動平均線と中期移動平均線の2本を表示させていきます。何が短期で何が中期かといった議論はあるかと思いますが、今回は短期移動平均線は5期間、中期移動平均線は20期間とします。

現在、中期移動平均線の20期間移動平均線は既にPineスクリプトで表示できる状態ですね。ここに5期間の移動平均線のコードを追加します。

//@version=3
study(title="マイスクリプト", overlay=true)
val1=input(title="短期MA期間", type=integer, defval=5)
val2=input(title="中期MA期間", type=integer, defval=20)
d1=sma(close, val1)
d2=sma(close, val2)
plot(d1)
plot(d2)

実はほぼ変更無く3行追加すればこれは実現できます。ただソースコードを見やすくする為に既存のコード部分も変更しています。

追加したのは以下の3行です

......
..........
val1=input(title="短期MA期間", type=integer, defval=5)
..........
d1=sma(close, val1)
..........
plot(d1)

val1 には短期移動平均線の期間を渡しています。デフォルト値は5で、input関数を使っているので設定画面から変更可能です。input関数がわからない方は前回の記事を見てくださいね。

d1 の行は、終値(close)と期間(val1)をsma関数に渡し、その結果を d1 に格納しています。

plot(d1) の行では、d1 をチャートに描画する行です。簡単だと思いますがいかがでしょうか。

既存部分も変更していますので取り上げておきます

......
........
........
val2=input(title="中期MA期間", type=integer, defval=20)
........
d2=sma(close, val2)
........
plot(d2)

val2 の行は、元々 val という変数名を利用していましたが、わかりやすくするため val2 に変更しています。

d2 の行は、変数名の d を d2 に変更し、またsma関数の引数を val から val2に変更しています。これは上記で val から val2 に変数名が変わったためです。

plot() の行は、plot関数の引数が d から d2 に変更されています。これも上記で、sma関数の結果格納先が d から d2 に変わったためです。

文字で書くとややこしいですが、変えているのは本当に一部で、単純に変数名に連番の数字を付けただけです。

チャートに追加してみる

確認の為、ここまでに作成したコードをもう一度掲載しておきます。

//@version=3
study(title="マイスクリプト", overlay=true)
val1=input(title="短期MA期間", type=integer, defval=5)
val2=input(title="中期MA期間", type=integer, defval=20)
d1=sma(close, val1)
d2=sma(close, val2)
plot(d1)
plot(d2)

このコードを開いているイーサリアムチャートに追加してみましょう。

2本の短期移動平均線が表示されている事が確認できますね。設定画面では、2本の移動平均線の期間を変更できます。

インジケーターの線の色と太さを変えてみる

とりあえず今回はここまででも目的は達成なのですが、今のままだと2本の移動平均線の色や太さが同じなので、少し判別が付きづらいです。そこで色と太さを変えてみます。

短期はより緊急性が高いイメージから、色を「赤」として線を少し太くしてみます。短期の移動平均線を描画する「7行目」のコードを変更します。

........
plot(d1,color=red,linewidth=2)
.......

plot関数の引数として、color と linewidth を追加しました。

color は色の設定です。red といった定数の他、#CC0000 といったカラーコードも利用できます。条件も利用できるのですが複雑になるので今回は省略します。

linewidthは線の太さを、1〜4の数値で指定します。デフォルト値は1で、数値が大きくなるほど太くなります。

ちなみに、上記の color や linewidth は、インジケーター設定画面のこの部分に対応しています。つまりソースコードで指定しておけば、毎回手作業で色や線の太さを変える必要が無くなります。

変更したコードをチャートに適用して見ましょう。

色と線の太さが変わった事で、最初の画像と比べると判別しやすくなりましたね!

TradingViewの有料プランではインジケーター数の制限がありますが、この様に1つのインジケーターで、複数のライン等を表示させることで、その制限を緩和させることができます。これもPineスクリプトを覚えるメリットです。

最後に今回作成したコードを掲載しておきます。次回はこの2本の移動平均線がクロスした時にアラートを発生させるようにしてみます。

//@version=3
study(title="マイスクリプト", overlay=true)
val1=input(title="短期MA期間", type=integer, defval=5)
val2=input(title="中期MA期間", type=integer, defval=20)
d1=sma(close, val1)
d2=sma(close, val2)
plot(d1,color=red,linewidth=2)
plot(d2)

それでは次回もお楽しみに!

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