Indicator · Pine Script v5 · On the chart

Exploring Unicode

by regalouisei· code credited to TradingView

Exploring Unicode is a Pine Script v5 indicator that demonstrates Unicode character support on the price chart.

View on GitHub

GitHub stars2on the repository
Pine versionv5runs as is
Lines of code92
Settings0inputs
LicenceNone statedfile: MPL-2.0
Last update8 months ago25 Feb 2026

Add It to Your TradingView Chart

  1. 1Copy the scriptPress Copy script above, or the copy button on the code below.
  2. 2Open the Pine EditorOpen a TradingView chart and choose Pine Editor at the bottom of the screen.
  3. 3Paste over the templateCreate a new indicator, select all of the template text and paste. Press Save and give it a name.
  4. 4Add it to the chartPress Add to chart, then adjust the settings with the gear icon next to its name.

Source Code

92 lines of Pine Script v5 from pinescript/editors_picks/exploring-unicode.pine, published under MPL-2.0 (file header). Keep the author's credit and licence lines when you reuse it.

exploring-unicode.pine
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TradingView


//@version=5
indicator("Exploring Unicode", "", true)

// Exploring Unicode
// v2 2022.07.24

// This code was written using the recommendations from the Pine Script™ User Manual's Style Guide:
//   https://www.tradingview.com/pine-script-docs/en/v5/writing/Style_guide.html



// —————————— Part 1: Show large blocks of text/symbols using labels on hi/lo pivots.
// Labels are plotted in the past.
string txt  = ""
int    LEGS = 50
float  pHi1 = ta.pivothigh(LEGS, LEGS)
float  pLo1 = ta.pivotlow(LEGS,  LEGS)
if not na(pHi1)
    txt := "✦✪◎◉●○\n" 
    txt += "🚩📈📉🀈\n"
    txt += "𓆖𓀗𓁼𓅂𓋾𓃩𓈗\n"
    txt += "🕠🕤💰💲\n"
    txt += "⟳⟲↭⤼⥅\n"
    txt += "🚀🙈🚨🚦"
    label.new(bar_index - LEGS, pHi1, txt, style = label.style_none, textcolor = color.silver, textalign = text.align_left, size = size.huge)
    label.new(bar_index - LEGS / 2, high[LEGS / 2], "🟠\n🟡\n🟢", style = label.style_none, size = size.small)
else if not na(pLo1)
    // These variations were generated using https://lingojam.com/SpecialText
    txt := "I💙TV\n"
    txt += "𝐼💙𝒯𝒱\n"
    txt += "𝕀💙𝕋𝕍\n"
    txt += "I💙TV\n"
    txt += "🅸💙🆃🆅\n"
    txt += "Ⓘ💙ⓉⓋ\n"
    txt += "𝙄💙𝙏𝙑\n"
    label.new(bar_index - LEGS, pLo1, txt, color = color(na), style = label.style_label_up, textcolor = color.red, size = size.huge)


// —————————— Part 2: Show consecutively rising/falling bars with increasing volume using `plotchar()`.
// This page will be useful to find mirrored Unicode symbols: https://www.compart.com/en/unicode/mirrored
bool volumeRising = ta.rising(volume, 2)
bool bumpUp       = ta.rising(close,  2) and volumeRising
bool bumpDn       = ta.falling(close, 2) and volumeRising
plotchar(bumpUp, "bumpUp", "↗", location.abovebar, color.lime,    size = size.tiny)
plotchar(bumpDn, "bumpDn", "↘", location.belowbar, color.fuchsia, size = size.tiny)


// —————————— Part 3: Show bounces using `plotshape()`.

// @function            Returns true when a bounce up (so when `long` is `true`) occurs when `close` breaches the lowest `high` detected since the last change in `price`.
// @param price         (series float) When this value changes, it is used as the price from which bounce logic begins.
// @param long          (series bool) `true` when bouncing up for a long, `false` to bounce down for a short.  
// @returns             (float) `true` when a bounce from `price` is detected.    
bounceFrom(series float price, series bool long) =>
    var float level  = na
    var bool  bounce = false
    if price != price[1]
        level  := price
        bounce := false
    else
        bounce := not bounce and (long ? close > level : close < level)
        level  := bounce ? na : (long ? math.min(level, high) : math.max(level, low))
    bounce

// Pivot legs.
int LEFT_LEGS  = 20
int RIGHT_LEGS = 5
// To save value of the last pivot.
var float risingPivotHiPrice  = na
var float fallingPivotLoPrice = na
// Confirmation MA.
float ma = ta.alma(close, LEFT_LEGS * 4, 0.85, 6)
// New pivot detection.
float pHi2 = ta.pivothigh(LEFT_LEGS, RIGHT_LEGS)
float pLo2 = ta.pivotlow(LEFT_LEGS,  RIGHT_LEGS)
// Preliminary entry conditions from which we will detect a bounce.
bool long  = not na(pHi2) and ta.rising(ma,  RIGHT_LEGS)
bool short = not na(pLo2) and ta.falling(ma, RIGHT_LEGS)
// When an entry condition is found, save price at that point. Changes in this value launch a new iteration of the bounce detection logic.
if long
    risingPivotHiPrice  := pHi2
else if short
    fallingPivotLoPrice := pLo2
// Confirm our preliminary entry conditions by detecting a breach of the successive highs/lows since the last entry condition was `true`.
bool confirmedLong  = bounceFrom(risingPivotHiPrice,  true)
bool confirmedShort = bounceFrom(fallingPivotLoPrice, false)
plotshape(confirmedLong,  "confirmedLong",  location = location.belowbar, color = na, textcolor = color.green, text = "👆\n\nB\no\nu\nn\nc\ne")
plotshape(confirmedShort, "confirmedShort", location = location.abovebar, color = na, textcolor = color.red,   text = "B\no\nu\nn\nc\ne\n👇")

Overview

Exploring Unicode labels high and low pivots with blocks of special symbols and emojis using the label.new function. The script also applies plotchar to mark bars with rising closes accompanied by increasing volume, displaying up and down arrows. A custom bounceFrom function detects price bounces from pivot levels and uses plotshape to mark them. This educational tool highlights TradingView features for displaying complex text and performing basic technical analysis.

Details

Published by

regalouisei on GitHub

Code credit

TradingView, as written in the script's header

Draws

On the price chart

Markets

Any symbol

Timeframes

Any timeframe

Risk Notes

No repainting, lookahead or stacked entries were found in its code or README. That says nothing about how well it works: test it first.

Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.

Similar Pine Scripts

Copilot

by milocaetano
48 stars

Copilot is an order flow range-reversal indicator designed to overlay trading setups directly on the price chart. It evaluates four criteria: market context (sideways vs trending regime based on ATR height), structure (double top or double bottom retests), abs

Indicator v5 SMC / ICT / price actionSupport & resistance
Updated 3 days ago · MIT GitHub repository of Copilot
11 stars

This overlay indicator marks volume-driven buying and selling pressure on the price chart. It compares volume with a simple moving average scaled by a volatility-based multiplier, and it uses a trend simple moving average plus RSI thresholds to color bars. Swi

Indicator v6 VolumeSupport & resistance
Updated 2 months ago · Apache-2.0 GitHub repository of Institutional Insight Indicator

This overlay indicator marks Wyckoff-style buying and selling climaxes on the price chart. It filters trend with an exponential moving average and a higher-timeframe EMA, then flags accumulation or distribution when price and ATR sit relative to their swing av

Indicator v6 TrendVolatility & bands
Updated 1 year ago · MIT GitHub repository of Ultimate Wyckoff Indicator V3 (Refined)

IFA-VP Context

by eddiebelaval
7 stars

This indicator plots a fixed lookback Volume Profile alongside 20, 50, and 200 Simple Moving Averages directly on the price chart. It highlights trend changes via moving average crosses and marks Point of Control reactions, High Volume Nodes, and Value Area bo

Indicator v6 VolumeSupport & resistance
Updated 3 months ago · None stated GitHub repository of IFA-VP Context

This indicator overlays multiple technical analysis tools onto the main price chart to establish multi-filter trend confluence. It calculates dual anchored VWAPs, dual Supertrend indicators, moving averages, Kijun-sen Donchian midlines, and weekly pivot points

Indicator v5 TrendMoving averages
Updated 5 months ago · None stated GitHub repository of Ichimoku Cloud with Donchian Channels

More Volume scripts

Related on ForexR

Trade Your Charts With a Regulated Broker

Compare brokers that connect to TradingView, with spreads, minimum deposits and leverage side by side.

Compare brokers