見出し画像

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

前回までの話


security_lower_tfで下位足の情報を取得する

request.security_lower_tf()を使うと、下位足の情報を取得することができる。
以下のスクリプトは、常に15分足の20期間移動平均線を表示する(表示している足が15分足より大きい場合)スクリプトである。
返り値がrequest.security()と違って、array(複数の値)になるので、plotする際注意が必要となる。(次回に説明)

//@version=5
indicator("マイスクリプト",overlay=true)
sma20_15=request.security_lower_tf(syminfo.tickerid,"15",ta.sma(close,20))
plot(array.avg(sma20_15),"15M:20移動平均")

これをチャートへ反映してみると図1のようになる。

図1 1時間足に15分足のSMA20を表示する

この例では、下位足の移動平均値の平均を採用し、plotしている。
せっかく、詳細なデータがあるので、下位足の移動平均値の上限値と下限値で平均線を2本描いてみる。

sma20_15=request.security_lower_tf(syminfo.tickerid,"15",ta.sma(close,20))
plot(array.max(sma20_15),"15:20移動平均(max)")
plot(array.min(sma20_15),"15:20移動平均(min)")

これをチャートへ反映してみると図2のようになる。

図2 1時間足に15分足のSMA20(上限値、下限値)の2本を表示する

次に色をaquaにして、20期間平均を太さ1、200期間平均を太さ2で書いてみる。
同時に過去の記事で定義したma_label()を使ってそれぞれの平均線の中央(平均値)の高さにlabelを付与する。

ma_label(y,textline="",textcolor=color.blue,offset=2)=>
    var l=label.new(na,na,textline,textcolor=textcolor,style=label.style_none)
    l.set_xy(bar_index+offset,y)
    l

sma20_15=request.security_lower_tf(syminfo.tickerid,"15",ta.sma(close,20))
plot(array.max(sma20_15),"15:20移動平均(max)",color.aqua,1)
plot(array.min(sma20_15),"15:20移動平均(min)",color.aqua,1)
mylabel20=ma_label(array.avg(sma20_15),"15:20移動平均",color.aqua)

sma200_15=request.security_lower_tf(syminfo.tickerid,"15",ta.sma(close,200))
plot(array.max(sma200_15),"15:200移動平均(max)",color.aqua,2)
plot(array.min(sma200_15),"15:200移動平均(min)",color.aqua,2)
mylabel200=ma_label(array.avg(sma200_15),"15:200移動平均",color.aqua)

これをチャートへ反映してみると図3のようになる。

図3 1時間足に15分足のSMA20とSMA200(上限値、下限値)を2本ずつ表示する

続く。

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