Cơ hội mới để làm việc với màu trong Pine

May 13, 2021

Các tập lệnh của bạn sẽ lấp lánh với màu sắc tươi sáng vì giờ đây chúng tôi đã thêm các màu chuỗi và độ chuyển màu mới từ bảng RGB.

Hàm mới ‘color.rgb (red, green, blue, transp)’ đã được thêm vào Pine. cho phép bạn thiết lập màu bằng cách chuyển các giá trị của các thành phần đỏ, lục, lam và trong suốt (transp) làm đối số. Bây giờ bạn có thể loại bỏ định nghĩa của toàn bộ bảng màu được sử dụng trong script và thay vào đó tính toán màu dựa trên các đối số được truyền vào. Hãy xem ví dụ nhỏ này, cho thấy việc sử dụng các chuyển đổi màu phức tạp đã trở nên dễ dàng hơn:

//@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)

Giá trị của các thành phần màu được đặt trong phạm vi từ 0 (cường độ thấp nhất) đến 255 (cường độ cao nhất). Đối với thành phần trong suốt, phạm vi này là từ 0 (hoàn toàn không trong suốt) đến 100 (hoàn toàn trong suốt).

Nếu bạn cần lấy giá trị số của một thành phần màu hoặc độ trong suốt cụ thể, hãy thử sử dụng các hàm đặc biệt ‘color.r()’, ‘color.g()’, ‘color.b()’ and ‘color.t()’ bằng cách chuyển cho chúng một màu làm đối số. 

Và hàm ‘color.from_gradient()’ cho phép bạn tạo ra sự chuyển đổi màu sắc ấn tượng trên mỗi thanh, màu sắc của các chữ viết chỉ bị giới hạn bởi trí tưởng tượng của bạn. Dưới đây là một ví dụ cho thấy việc mô tả màu sắc trở nên dễ dàng hơn bao nhiêu tùy thuộc vào giá trị của chỉ số cường độ tương đối: 

//@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")

Hãy đọc thêm về Pine trong Hướng dẫn sử dụng.

Một số chỉ báo tích hợp (Momentum, TRIX, Price Oscillator, Detrended Price Oscillator, Chaikin Oscillator, Volume Oscillator, Ease of Movement, Rate of Change) đã được cập nhật và hiện sử dụng các tính năng mới này, bạn có thể thêm chúng vào biểu đồ của mình để xem chức năng RGB có hiệu lực.

Và đây là một số ví dụ ấn tượng về các chỉ số với màu RGB từ các nhà phát triển cộng đồng:

Directional Value bởi RicardoSantos

Color Gradient Framework bởi LucF, cho PineCoders

Delta Volume Columns Pro bởi LucF

Chúng tôi hy vọng bạn sẽ thấy tính năng mới này hữu dụng. Và vui lòng tiếp tục gửi đến cho chúng tôi các phản hồi, gợi ý của các bạn – Chúng tôi xây dụng TradingView là cho bạn, và chúng tôi luôn muốn lắng nghe các ý kiến đó.

Look first Then leap

TradingView được xây dựng dành cho bạn, vì vậy nhớ đảm bảo bạn tận dụng hiệu quả nhất các tính năng tuyệt vời của chúng tôi
Khởi chạy Biểu đồ