見出し画像

Pine Script™ (v5) の覚書 - 7 : request.security_lower_tfを使ってマルチタイムフレーム(MTF)移動平均線を描いてみる(4)

前回までの話

下位足のデータを使うと、現在足で移動平均として一つの値になってしまうものが、複数の時間のデータ(1時間足で15分足を取得する場合、4つのデータ)として取り扱える。

そこで、下位足の平均値のうち、最古のデータと最新のデータをプロットしてみる。

ここで使うarray関数とその引数
array.get(id,index)→配列のindex番目の要素を返す
array.last(id)→配列の最後の要素を返す

//@version=5
indicator("マイスクリプト",overlay=true)

sma20_15=request.security_lower_tf(syminfo.tickerid,"15",ta.sma(close,20))
plot(array.get(sma20_15,0),"15:20移動平均(oldest)")
plot(array.last(sma20_15),"15:20移動平均(latest)")

しかし、配列の要素にアクセスする方法は、特にスクリプト処理の最初に配列の準備ができていない場合、無常にも「スクリプトエラー」が発生し、スクリプトは動作しない。(コンパイル時には何も教えてくれない。)

図1 スクリプトエラーの発生

そこで、配列の要素にアクセスできるかどうかを確認してから、最古と最新のデータを取り出してみる。

ここで使うarray関数とその引数
array.size(id)→配列の要素数を返す

//@version=5
indicator("マイスクリプト",overlay=true)

sma20_15=request.security_lower_tf(syminfo.tickerid, "15", ta.sma(close,20))
plot(sma20_15.size()?sma20_15.get(0):na, "15:20移動平均(oldest)", color.blue)
plot(sma20_15.size()?sma20_15.last():na, "15:20移動平均(latest)", color.white)

これを1時間足に表示すると図1のようになる

図1 1時間足に15分足の移動平均線(最古・最新)を表示

続く


この記事が気に入ったらサポートをしてみませんか?