マルチタイムフレーム (MTF) 機能を利用する方法は?

インジケーターの設定の中にある `Timeframe` のドロップダウンメニューから、わずか2クリックのパラメーター変更を行うだけでMTF機能を利用することができます。

Pineのプログラマーの方は、内蔵インジケーターで利用されているものと同じ `Timeframe` の項目をご自身のスクリプトでも利用することができます。スクリプトの indicator() の宣言文に timeframe 引数を追加するだけで、スクリプトにMTF機能を簡単に追加でき、スクリプトのユーザーがインジケーターを実行する時間足を選択できるようになります。

timeframe 引数を使用すると、自動的に `Timeframe` の項目がスクリプトのパラメーター設定に追加されます。引数のデフォルト値には、任意の有効な時間足の文字列を指定できます。ただしその値が時間足のドロップダウンメニューの選択肢に含まれていない場合には、その欄には、デフォルト値として「チャート」が表示されます。また、チャートの時間足を表すには、空の文字列 ("") を使用します。

例えば5分足チャートで、日足の移動平均線を表示したいとします。その場合、以前は request.security 関数を利用する必要がありました:

//@version=5
indicator(title="Moving Average", shorttitle="MA with security", overlay=true)
len = input.int(9, minval=1, title="Length")
src = input.source(close, title="Source")
out = ta.sma(src, len)
tf = input.timeframe(title="Timeframe", defval="1D")
s1 = request.security(syminfo.tickerid, tf, out, gaps=barmerge.gaps_on)
plot(s1, color=color.red)


しかし現在は、indicator() 関数の呼び出しに、timeframe="D" を追加するだけです:

//@version=5
indicator(title="Moving Average", shorttitle="MA with timeframe", overlay=true, timeframe="D", timeframe_gaps=true)
len = input.int(9, minval=1, title="Length")
src = input.source(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.sma(src, len)
plot(out, color=color.blue, title="MA", offset=offset)

timeframe 引数は、比較的単純なスクリプトにMTFの機能を追加する簡単な方法を提供するものです。timeframe_gaps=true の追加はオプションであり、 原理的には `request.security()` 関数の `gaps` パラメータと同様に機能します。より複雑なPineスクリプトで上位の時間足の情報で高度な計算を行うには、引き続き request.security での実装が必要です。

timeframe.* 変数の値は、チャートの時間足に関わらず、スクリプトのパラメーター設定の Timeframe 欄の値で指定したスクリプトが現在実行されている時間足を表します。 またスクリプトで timeframe 引数が利用されている場合 (timeframe_gapsfalse に設定されていないかぎり)、上位の時間足の値はギャップを含むため、timeframe.* 変数にも時間遷移の間に n/a 値が含まれることにご注意ください。この動作は想定内のものです。詳細についてはヘルプセンターをご覧ください。