PINE LIBRARY
Updated

ColourUtilities

1 019
Library "ColourUtilities"
Utility functions for colour manipulation

adjust_colour(rgb, desaturation_amount, transparency_amount)
  to reduce saturation or increase transparency of an RGB colour
  Parameters:
    rgb (color)
    desaturation_amount (float): 0 means no desaturation (colours remains as-is), and 1 means full desaturation (colour turns grey). Can also be used inversely with negative numbers
    transparency_amount (float): How much more transparent the default transparency should become. E.g. with a value of 0.5, a transparency of 0 becomes 50 and 40 becomes 70. A value of 1 makes it fully transparent, en -1 fully opaque.
  Returns: color with adjusted saturation and transparency

method apply_default_palette(self, palette_name)
  Some nice looking colour palettes, consisting of 6 gradient colours, are already defined here and can be quickly applied to the Palette class
  Namespace types: Palette
  Parameters:
    self (Palette)
    palette_name (string): Currently there are 4 6-coloured palettes available: "GYTS flux signal", "GYTS purple", "GYTS flux filter" and "GYTS maroon"
  Returns: None, as it populates the Palette class with pre-defined colours

method get_colour(self, colour_no, transparency)
  Retrieves colour from the palette and possibly changes transparency if set
  Namespace types: Palette
  Parameters:
    self (Palette)
    colour_no (int): from the palette
    transparency (int): to possibly change the default transparency of the palette
  Returns: colour

method get_dynamic_colour(self, x, mid_point, colour_lb, colour_ub, trend_lookback, use_rate)
  Retrieves a colour based on strength and direction of the passed series
  Namespace types: Palette
  Parameters:
    self (Palette)
    x (float): the input data series
    mid_point (float): value as a cutoff point where the bullish/bearish colour scenario
    colour_lb (float): value (lower bound) where to apply the bearish colour at full strength
    colour_ub (float): value (upper bound) where to apply the bullish colour at full strength
    trend_lookback (int): how much bars back to check if there was a consistent move into a certain direction, otherwise a the neutral colour from the centre of the palette will be used.
    use_rate (bool): whether to use the rate (proportional difference with previous `x` value) or the input series `x` directly
  Returns: colour

Palette
  Fields:
    transparency (series__integer)
    palette (array__color)
Release Notes
v2

  • [Added]:
    Pine Script®
    get_average_colour()
    Returns the average of two colours. Weights of each colour and output transparency can be overridden.
Release Notes
  • `adjust_colour()` now uses DSP method to make very smooth gradients
  • Added more colour palettes to `Palette`
  • Fixed bug in `get_dynamic_colour()` in which argument `use_rate` didn't behave as expected
Release Notes
v4
  • Upgrade to Pine Script v6
  • New colours according to GYTS brand identity: "GYTS pink-purple" and "GYTS pink-green"
  • Implementation of enum for colour palette for easier usage
Release Notes
v5
  • Fix small error for one of palette names
Release Notes
  • Dark Mode Support
    The `adjust_colour` function now includes a `dark_mode` parameter. When enabled, colours desaturate towards black rather than grey, preserving visibility on dark backgrounds.

  • Adaptive Visualisation
    New methods `get_adaptive_line_colour` and `get_adaptive_fill_colour` automatically adjust brightness and transparency based on signal magnitude. This creates a "neon glow" effect where signals appear more intense at extremes and fade gracefully near the zero line.

  • Momentum Logic
    The new `get_momentum_colour` method visualises not just the value, but the derivative of the move. Strong, accelerating moves result in saturated colours, while weakening trends appear muted.

  • Breaking Changes
    The legacy `get_dynamic_colour` method has been removed. It is replaced by the more specialised `get_gradient_colour`, `get_adaptive_...` and `get_momentum_...` methods for finer control over your indicator's aesthetics.
Release Notes
  • Add `value_mid` parameter to `get_adaptive_line_colour()` and `get_adaptive_fill_colour()` for non-symmetric mid points in colour gradients
  • Improved examples

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.