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

インジケーターの設定の「時間足」のドロップダウンメニューを使用して、インジケーターの時間足を2クリックするだけで変更してMTF機能を利用することができます。

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

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")
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の機能を追加する簡単な方法を提供するものです。より複雑なPineスクリプトで上位の時間足の情報で高度な計算を行うには、引き続き request.security での実装が必要です。

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