Pineのプログラマーはインジケーターの計算結果をチャート上に表示する際にさまざまなオプションを用意したいと考えていますが、それには理由があります。情報をどのように表示するかは、情報そのものと同じくらい重要です。なぜなら、デザイン性の高いビジュアルは、インジケーターをより使いやすくするからです。
Pineのツールボックスに追加された新しい描画タイプ “linefill” とそれに付随する機能を使うと、2つのライン間の領域を塗りつぶすことができるようになりました。
基本はシンプルで、2本のラインの間の領域を塗りつぶすには、それらのラインのIDと塗りつぶしの色を指定して linefill.new() 関数を呼び出します。2本のライン間には 1つの linefill のみご利用が可能ですので、同じラインのペアで linefill.new() を連続して呼び出すと、前の塗りつぶしは新しい塗りつぶしで置き換えられます。
linefills の動作は、指定したラインに依存します。例えば両方のラインを同じ方向に延長した場合、linefill も はその延長線上を塗りつぶします(以下のスクリプトの表示をご参照ください)。
下の例では、インジケーターで直近の高値と安値のピボットポイントを結ぶ2本のラインを引いています。チャートの短期的な動きを投影するためにラインを右に延長し、ラインで形成されるチャネルの視認性を高めるためにライン間の領域を塗りつぶしています:
//@version=5 indicator("Channel", overlay = true) LEN_LEFT = 15 LEN_RIGHT = 5 pH = ta.pivothigh(LEN_LEFT, LEN_RIGHT) pL = ta.pivotlow(LEN_LEFT, LEN_RIGHT) // ピボット・ポイントのバー・インデックス pH_x1 = ta.valuewhen(pH, bar_index, 1) - LEN_RIGHT pH_x2 = ta.valuewhen(pH, bar_index, 0) - LEN_RIGHT pL_x1 = ta.valuewhen(pL, bar_index, 1) - LEN_RIGHT pL_x2 = ta.valuewhen(pL, bar_index, 0) - LEN_RIGHT // ピボット・ポイントの価格 pH_y1 = ta.valuewhen(pH, pH, 1) pH_y2 = ta.valuewhen(pH, pH, 0) pL_y1 = ta.valuewhen(pL, pL, 1) pL_y2 = ta.valuewhen(pL, pL, 0) if barstate.islastconfirmedhistory // 2本のライン lH = line.new(pH_x1, pH_y1, pH_x2, pH_y2, extend = extend.right) lL = line.new(pL_x1, pL_y1, pL_x2, pL_y2, extend = extend.right) // 塗りつぶし fillColor = switch pH_y2 > pH_y1 and pL_y2 > pL_y1 => color.green pH_y2 < pH_y1 and pL_y2 < pL_y1 => color.red => color.silver linefill.new(lH, lL, color.new(fillColor, 90))
linefill の機能については、リファレンスマニュアルをご覧ください: 検索欄に “linefill” と入力すると、関連のすべての関数が表示されます。また魔術師から学びたい場合は、PineCoersの linefills の以下の利用例をご確認ください。
dgtrd氏のAuto Fib Time Zones and Trend-Based Fib Time by DGT
Pineの新機能についての情報は、ユーザーマニュアルのリリースノートをご覧ください。またPineCodersは、 Squawk BoxのTelegramチャンネル、Twitter、TradingViewのPineスクリプトの公開チャットルームでも最新情報を発信しています。
数多くのご要望を頂いたこれらの機能がお役に立てば幸いです。引き続き、改善の為のフィードバックやご提案をお寄せください。私たちは皆様のためにTradingViewを構築していますので、常にユーザーの方の声をお聞きしたいと思っています。