![見出し画像](https://assets.st-note.com/production/uploads/images/138923375/rectangle_large_type_2_f2d4dd43b7e8524547f889d810a9ac87.png?width=800)
Pine Script™ (v5) の覚書 - 作ってみる:MTF移動平均線を描くインジケータの作成 (3)
前回までの話
インジケータの準備
パーツが揃ったら、まず、必要な変数、関数を定義する。
//@version=5
indicator("MTF SMA/EMA",overlay=true)
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
mysrc=close//移動平均を計算するソース
myspan=20//移動平均の期間
cSMA=color.aqua//SMA用の色
cEMA=color.yellow//EMA用の色
wShort=1//短期用の太さ
wMiddle=2//中期用の太さ
wLong=3//長期用の太さ
//HTFを計算する関数
tfhigher(tf)=>
tfsec=timeframe.in_seconds(tf)
htf=timeframe.in_seconds("1")>tfsec?"1":
timeframe.in_seconds("5")>tfsec?"5":
timeframe.in_seconds("15")>tfsec?"15":
timeframe.in_seconds("60")>tfsec?"60":
timeframe.in_seconds("240")>tfsec?"240":
timeframe.in_seconds("D")>tfsec?"D":
timeframe.in_seconds("W")>tfsec?"W":
timeframe.in_seconds("M")>tfsec?"M":
timeframe.in_seconds("3M")>tfsec?"3M":
timeframe.in_seconds("12M")>tfsec?"12M":na
htf
tf/htfの取得、移動平均の取得
定義した変数と関数を用いて、SMAとEMAを取得する。
tf=timeframe.period//今のTF
htf1=tfhigher(tf)//1段上のTF
htf2=tfhigher(htf1)//2段上のTF(1段上の1段上)
sma20=ta.sma(mysrc,myspan)//チャートのTFの20SMA
sma20_1=request.security(syminfo.tickerid,htf1,ta.sma(mysrc,myspan))//1段上の20SMA
sma20_2=request.security(syminfo.tickerid,htf2,ta.sma(mysrc,myspan))//2段上の20SMA
ema20=ta.ema(mysrc,myspan)//チャートのTFの20EMA
ema20_1=request.security(syminfo.tickerid,htf1,ta.ema(mysrc,myspan))//1段上の20EMA
ema20_2=request.security(syminfo.tickerid,htf2,ta.ema(mysrc,myspan))//2段上の20EMA
平均線のplotとlabel
取得したSMA/EMAをplotし、labelを追加する。
plot(sma20, "short:20SMA",cSMA,wShort)
plot(sma20_1,"middle:20SMA",cSMA,wMiddle)
plot(sma20_2,"long:20SMA",cSMA,wLong)
label_sma=ma_label(sma20,tf+":20SMA",cSMA)
label_sma1=ma_label(sma20_1,htf1+":20SMA",cSMA)
label_sma2=ma_label(sma20_2,htf2+":20SMA",cSMA)
plot(ema20, "short:20EMA",cEMA,wShort)
plot(ema20_1,"middle:20EMA",cEMA,wMiddle)
plot(ema20_2,"long:20EMA",cEMA,wLong)
label_ema=ma_label(ema20,tf+":20EMA",cEMA)
label_ema1=ma_label(ema20_1,htf1+":20EMA",cEMA)
label_ema2=ma_label(ema20_2,htf2+":20EMA",cEMA)
続く
この記事が気に入ったらサポートをしてみませんか?