chartの名前空間に新しいビルトインを追加し、チャートのプロパティをより詳しくスクリプトから確認できるようになりました。また、Pineスクリプトに新しいタイプの処理を導入し、表示されているバーのみで再計算と再描画を行い、トレーダーがチャートをスクロールやズームしたときに自動的に再調整することができるようになりました。
チャートのプロパティ
新しいビルトインの chart.bg_color は、チャートの背景色を返します。これを使用して、スクリプトのカラースキームをチャートのコンテキストに適合させることができます。その仲間である chart.fg_color は、背景色が何であれ、チャートの背景色と最適なコントラストを実現する色を返します。
また、以下の新しいブール型のビルトインで、スクリプトが実行されているチャートタイプを検出することができます:
- chart.is_heikinashi
- chart.is_renko
- chart.is_linebreak
- chart.is_kagi
- chart.is_pnf
- chart.is_range
- chart.is_standard
上記の最後の変数は、バー、ローソク足、中空ローソク足、棒グラフ、ライン、エリア、ベースラインといったすべての標準的なチャートタイプ(合成値ではない終値を返すもの)で true を返します。
可視バーと動的再計算
新しいビルトイン chart.left_visible_bar_time と chart.right_visible_bar_time は、表示中のチャートの左端と右端のバーの開始時刻を返します。トレーダーがチャートをスクロールまたはズームして、チャート上に表示されているバーの範囲を変更すると、これらの新しいビルトインを使用するスクリプトは自動的に再実行され、計算と表示が新しいコンテキストに適応します。これにより、バーの表示範囲の変更に動的に適応する、まったく新しい多様なスクリプトへの扉が開かれます。
こちらの例は、表示中の最初のバーの始値から最後のバーの終値まで矢印を描き、その表示範囲の利益と損失を表示するものです:
//@version=5 indicator("Chart gain/loss", "", true) // 表示範囲の左端のバーの「始値」を保存します。 var float chartOpen = na if time == chart.left_visible_bar_time chartOpen := open else if time == chart.right_visible_bar_time // 表示中のチャートの一番右のバーで以下のコードを実行します。 color arrowColor = close > chartOpen ? color.lime : color.fuchsia // 矢印を描画して、それを変更します。 var line arrow = line.new(na, na, na, na, xloc.bar_time, extend.none, na, line.style_arrow_right, 3) line.set_xy1(arrow, chart.left_visible_bar_time, chartOpen) line.set_xy2(arrow, chart.right_visible_bar_time, close) line.set_color(arrow, arrowColor) // パーセンテージラベルを描画して、それを変更します。 var label percentage = label.new(na, na, na, xloc.bar_time, yloc.price, #00000000, label.style_label_down, size = size.huge) int midTime = int(math.avg(chart.left_visible_bar_time, chart.right_visible_bar_time)) label.set_xy(percentage, midTime, math.avg(chartOpen, close)) label.set_text(percentage, str.tostring((close - chartOpen) / chartOpen * 100, format.percent)) label.set_textcolor(percentage, arrowColor)
この機能を使用したスクリプトは通常のスクリプトよりも頻繁に再実行されるため、通常のTradingViewチャートのレスポンスを維持するためには、効率的なコードを使用し、計算を軽くするように注意が必要です。
この新機能の使用例として Chart VWAP インジケーターを公開しています。このインジケーターは、表示中のバーに自動的にアンカーポイントを設定します。
PineCodersのアカウントでは、Pineスクリプト™ のプログラマーの方がこの新機能を最大限に活用できるよう VisibleChart のライブラリも公開しています。
Pineスクリプト™ の新機能については、ユーザーマニュアルのリリースノートをご覧ください。PineCoders は、Telegramの Squawk Box、Twitterアカウント、TradingViewの “Pine Script™ Q&A” の公開チャットでも最新情報を配信しています。
数多くのご要望を頂いたこれらの機能をご活用頂ければ幸いです。また、引き続き改善のフィードバックやご提案をお寄せください。私たちは皆様ためにTradingViewを構築していますので、常にアイデアをお待ちしております。