Pineでカラーを扱う新しい方法

05 13, 2021

新しい系列色とグラデーションのRGBパレットを追加しましたので、スクリプトを鮮やかに彩る事ができるようになりました。

Pineに新しい関数 ‘color.rgb (red, green, blue, transp)’ が追加されました。赤、緑、青、透明度 (transp) の各要素の値を引数として渡すことで、色を設定することができます。これにより、スクリプト内で使用するカラーパレット全体の定義をなくし、代わりに渡された引数に基づいて色を計算することができます。この小さな例をご覧ください。複雑なカラートランジションの使用がいかに簡単になったかがわかります:

//@version=4
study("Relative Bars Color Saturation", "RBCS", overlay=true)

i_barcolor = input(color.rgb(33, 150, 243), "Bar Color", input.color)

f_grad_transp(_c_col, _transp) =>
    _c_red = color.r(_c_col)
    _c_green = color.g(_c_col)
    _c_blue = color.b(_c_col)
    color.rgb(_c_red, _c_green, _c_blue, _transp)

f_indexedPercent(_currentValue, _relativeValue, _maxValue) =>
    _currentValue * _maxValue / _relativeValue

transp = f_indexedPercent(abs(close - open), high - low, 100)
c_color = f_grad_transp(i_barcolor, transp)
barcolor(c_color)

色要素の値は、0 (最も暗い) から 255 (最も明るい) までの範囲で設定します。透過要素は、0 (完全に不透明) から100 (完全に透明) までの範囲で設定します。

特定の色や透明度の要素の数値を得る必要がある場合は、特殊な関数である ‘color.r()’, ‘color.g()’, ‘color.b()’, ‘color.t()’ に色を引数として渡してみてください。

また、‘color.from_gradient()’ 関数を使えば、各バーに印象的なカラートランジションを作ることができます。スクリプトの色はもはやあなたの想像力によってのみ制限されます。ここでは、RSIの値に応じて色を表現することがいかに簡単になったかを示す例をご紹介します: 

//@version=4
study("RGB RSI")
i_src = input(close, "Source", input.source)
i_length = input(14, "Length", input.integer)

f_grad_transp(_c_col, _transp) =>
    _c_red = color.r(_c_col)
    _c_green = color.g(_c_col)
    _c_blue = color.b(_c_col)
    color.rgb(_c_red, _c_green, _c_blue, _transp)

rsi = rsi(i_src, i_length)
c_grad = color.from_gradient(rsi, 30, 70, color.lime, color.red)

plot(rsi, color=c_grad, linewidth=3)
band1 = hline(70, "Overbought", color=color.rgb(255, 82, 82))
band0 = hline(30, "Oversold", color=color.rgb(76, 175, 80))
fill(band1, band0, color=f_grad_transp(c_grad, 90), title="Background")

すべてのPineのアップデートについては、ユーザーマニュアルのリリースノートの項目をご覧ください。

いくつかの内蔵インジケーター (モメンタム、トリックス、プライスオシレーター、トレンド除去プライスオシレーター、チャイキン・オシレーター、出来高オシレーター、イーズ・オブ・ムーブメント、ROC) がアップデートされ、これらの機能を利用するようになりました。これらをチャートに追加して、RGB機能の効果を確認することができます。

また、コミュニティの開発者によるRGBカラーを使ったインジケーターの印象的な例をご紹介します:

RicardoSantos氏の Directional Value

LucF氏のPineプログラマーの為の Color Gradient Framework

LucF氏の Delta Volume Columns Pro

新機能がお役に立てれば幸いです。フィードバックやご提案をお寄せください。私たちは皆様のためにTradingViewを開発しており、プラットフォームのアップデートに関するお客様のご意見を常にお待ちしております。

Look first Then leap

あなたのためのTradingView、その最高の機能を最大限にご活用ください
チャートを起動