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のようになる。
この例では、下位足の移動平均値の平均を採用し、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のようになる。
次に色を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のようになる。
続く。
この記事が気に入ったらサポートをしてみませんか?