Indicators and strategies
CVD OscillatorThis is a CVD with a difference.
It has deviation bands for identifying overbought & oversold conditions.
Plus potential buy/sell zones.
I will update this and make necessary improvements.
Custom EMA Color IndicatorCustom EMA Color Indicator
Description
This indicator plots an Exponential Moving Average (EMA) with a customizable length. The EMA line changes color dynamically based on the price position relative to it:
Green: Price is above the EMA (bullish signal).
Red: Price is below the EMA (bearish signal).
Features
✅ Customizable EMA length
✅ Dynamic color change based on price position
✅ Helps identify trends at a glance
How to Use
Add the indicator to your TradingView chart.
Adjust the EMA length as needed.
Observe the color changes:
Green → Uptrend (price above EMA)
Red → Downtrend (price below EMA)
Best Use Cases
🔹 Identifying trends quickly
🔹 Spotting potential entry and exit points
🔹 Combining with other indicators for confirmation
Let me know if you need modifications! 🚀
ATH Pullback Levels with AlertsThe following identifies the following levels:
1. Correction - 10% Pullback from ATH
2. Midpoint - 15% Pullback from ATH
3. Bear Market - 20% Pullback from ATH
ADR Checker - Breakouts📈 ADR Checker – Breakouts
Gain the edge by knowing when a stock has already made its move.
🚀 What It Does:
The ADR Checker - Breakouts is a powerful yet simple visual tool that helps traders instantly assess whether a stock has already exceeded its Average Daily Range (ADR) for the day — a critical piece of information for momentum traders, swing traders, and especially those following breakout, VCP, or CANSLIM strategies.
Using a customizable on-screen table that always stays in view (regardless of zoom or chart scaling), this script shows:
✅ Average ADR% – 20-day average range, calculated in %.
📊 Today’s Move – how much the stock has moved today.
🔥 % of Avg ADR – today's move relative to its historical average, with live color feedback:
🟥 Over 100% (Overextended – danger!)
🟧 70-100% (Caution zone)
🟩 Below 70% (Room to move)
💡 Why It Matters:
One of the most overlooked mistakes by breakout traders is entering a trade after the move has already happened. If a stock has already moved more than its typical daily range, the odds of further continuation sharply decrease, while the risk of pullback or chop increases.
With this tool, you can:
🚫 Avoid chasing extended breakouts
🎯 Time entries before the real move
⚠️ Quickly assess risk/reward potential intraday
🧠 Example Use Case:
Imagine you're watching a classic VCP setup or flat base breakout. The stock breaks out on volume—but when you check this indicator, you see:
Today’s Move: 7.2%
Avg ADR: 5.3%
% of ADR: 135% 🟥
This tells you the stock is already well beyond its average daily range. While it may continue higher, odds now favor a consolidation, shakeout, or pullback. This is your cue to wait for a better entry or pass entirely.
On the flip side, if the breakout just started and the % of ADR is still under 50%, you have confirmation that there’s room to run — giving you more confidence to enter early.
⚙️ Fully Customizable:
Choose position on screen (top/bottom left/right)
Customize text color, background, and size
🔧 Install This Tool and:
✅ Stop chasing extended moves
✅ Add discipline to your entries
✅ Improve your breakout win rate
Perfect for VCP, CANSLIM, and BREAKOUT traders who want a clean, edge-enhancing visual guide.
Shelongacopystring COLOR_CANDLES_TOOLTIP = 'Display additional candles with a color reflecting the current trend detected by structure'
string SHOW_INTERNAL = 'Display internal market structure'
string CONFLUENCE_FILTER = 'Filter non significant internal structure breakouts'
string SHOW_SWING = 'Display swing market Structure'
string SHOW_SWING_POINTS = 'Display swing point as labels on the chart'
string SHOW_SWHL_POINTS = 'Highlight most recent strong and weak high/low points on the chart'
string INTERNAL_OB = 'Display internal order blocks on the chart Number of internal order blocks to display on the chart'
string SWING_OB = 'Display swing order blocks on the chart Number of internal swing blocks to display on the chart'
string FILTER_OB = 'Method used to filter out volatile order blocks It is recommended to use the cumulative mean range method when a low amount of data is available'
string SHOW_EQHL = 'Display equal highs and equal lows on the chart'
string EQHL_BARS = 'Number of bars used to confirm equal highs and equal lows'
string EQHL_THRESHOLD = 'Sensitivity threshold in a range (0, 1) used for the detection of equal highs & lows Lower values will return fewer but more pertinent results'
string SHOW_FVG = 'Display fair values gaps on the chart'
string AUTO_FVG = 'Filter out non significant fair value gaps'
string FVG_TF = 'Fair value gaps timeframe'
string EXTEND_FVG = 'Determine how many bars to extend the Fair Value Gap boxes on chart'
string PED_ZONES = 'Display premium, discount, and equilibrium zones on chart'
//-----------------------------------------------------------------------------{
//Settings
//-----------------------------------------------------------------------------{
//General
//----------------------------------------{
mode = input.string('Historical'
, options =
, group = 'Smart Money Concepts'
, tooltip = MODE_TOOLTIP)
style1 = input.string('Colored'
, options =
, group = 'Smart Money Concepts'
, tooltip = STYLE_TOOLTIP)
show_trend = input(false, 'Color Candles'
, group = 'Smart Money Concepts'
, tooltip = COLOR_CANDLES_TOOLTIP)
//----------------------------------------}
//Internal Structure
//----------------------------------------{
show_internals = input(false, 'Show Internal Structure'
, group = 'Real Time Internal Structure'
, tooltip = SHOW_INTERNAL)
show_ibull = input.string('All', 'Bullish Structure'
, options =
, inline = 'ibull'
, group = 'Real Time Internal Structure')
swing_ibull_css = input(#eaefee, ''
, inline = 'ibull'
, group = 'Real Time Internal Structure')
//Bear Structure
show_ibear = input.string('All', 'Bearish Structure'
, options =
, inline = 'ibear'
, group = 'Real Time Internal Structure')
swing_ibear_css = input(#ffffff, ''
, inline = 'ibear'
, group = 'Real Time Internal Structure')
ifilter_confluence = input(false, 'Confluence Filter'
, group = 'Real Time Internal Structure'
, tooltip = CONFLUENCE_FILTER)
internal_structure_size = input.string('Tiny', 'Internal Label Size'
, options =
, group = 'Real Time Internal Structure')
//----------------------------------------}
//Swing Structure
//----------------------------------------{
show_Structure = input(true, 'Show Swing Structure'
, group = 'Real Time Swing Structure'
, tooltip = SHOW_SWING)
//Bull Structure
show_bull = input.string('All', 'Bullish Structure'
, options =
, inline = 'bull'
, group = 'Real Time Swing Structure')
swing_bull_css = input(#ffffff, ''
, inline = 'bull'
, group = 'Real Time Swing Structure')
//Bear Structure
4H EMA Crossover with Confirmed EntryEMA Strategy using the 14,50 & 200 EMA....patiently wait on a break in trend along with a cross 0f the 14 & 50 ema with a confirmation retracement of price not passing back over the 14 ema will confirm your entry into the market
Gold Scalper Pro (Price Action + Filters)The strategy combines technical indicator with price action psychology, making it ideal for scalping gold's quick movements. Always test of historical data and refine parameters!
Time Marker Pro: Vertical Line at Key Times)Smart Vertical Line at Specific Time (with Timezone, Color, and Width Controls)
This script draws a vertical line on your chart at a user-defined time once per day, based on the selected timezone.
🕒 Key Features:
Set your target hour and minute
Choose from a list of common timezones (Tehran, UTC, New York, etc.)
Customize the line color and thickness
Works across all intraday timeframes (1min, 5min, 15min, etc.)
Adjusts automatically to bar intervals — no need for exact time matching
This is perfect for traders who want to:
Highlight the start of a session
Mark specific news times, breakouts, or routine entries
Visualize key time-based levels on the chart
TMO (True Momentum Oscillator)TMO ((T)rue (M)omentum (O)scilator)
Created by Mobius V01.05.2018 TOS Convert to TV using Claude 3.7 and ChatGPT 03 Mini :
TMO calculates momentum using the delta of price. Giving a much better picture of trend, tend reversals and divergence than momentum oscillators using price.
True Momentum Oscillator (TMO)
The True Momentum Oscillator (TMO) is a momentum-based technical indicator designed to identify trend direction, trend strength, and potential reversal points in the market. It's particularly useful for spotting overbought and oversold conditions, aiding traders in timing their entries and exits.
How it Works:
The TMO calculates market momentum by analyzing recent price action:
Momentum Calculation:
For a user-defined length (e.g., 14 bars), TMO compares the current closing price to past open prices. It assigns:
+1 if the current close is greater than the open price of the past bar (indicating bullish momentum).
-1 if it's less (indicating bearish momentum).
0 if there's no change.
The sum of these scores gives a raw momentum measure.
EMA Smoothing:
To reduce noise and false signals, this raw momentum is smoothed using Exponential Moving Averages (EMAs):
First, the raw data is smoothed by an EMA over a short calculation period (default: 5).
Then, it undergoes additional smoothing through another EMA (default: 3 bars), creating the primary "Main" line of the indicator.
Lastly, a "Signal" line is derived by applying another EMA (also default: 3 bars) to the main line, adding further refinement.
Trend Identification:
The indicator plots two lines:
Main Line: Indicates current momentum strength and direction.
Signal Line: Acts as a reference line, similar to a moving average crossover system.
When the Main line crosses above the Signal line, it suggests strengthening bullish momentum. Conversely, when the Main line crosses below the Signal line, it indicates increasing bearish momentum.
Overbought/Oversold Levels:
The indicator identifies key levels based on the chosen length parameter:
Overbought zone (positive threshold): Suggests the market might be overheated, and a potential bearish reversal or pullback could occur.
Oversold zone (negative threshold): Suggests the market might be excessively bearish, signaling a potential bullish reversal.
Clouds visually mark these overbought/oversold areas, making it easy to see potential reversal zones.
Trading Applications:
Trend-following: Traders can enter positions based on crossovers of the Main and Signal lines.
Reversals: The overbought and oversold areas highlight high-probability reversal points.
Momentum confirmation: Use TMO to confirm price action or other technical signals, improving trade accuracy and timing.
The True Momentum Oscillator provides clarity in identifying momentum shifts, making it a valuable addition to various trading strategies.
[NLR] - SweetSpot ZonesThe Sweet Spot Zone helps you find the best spots to enter a trade, inspired by the " Follow Line Indicator " by Dreadblitz (big thanks to him!). It draws a colored zone on your chart to show ideal entry points, with a Base Point to keep you on track.
What It Does
Blue Zone: Uptrend—buy when the price dips into the zone.
Red Zone: Downtrend—sell or short when the price climbs into the zone.
Base Point: A gray line showing the key level the zone is built on.
How to Use It
Look for the colored zone:
- Blue: Buy if the price dips into the zone but stays above the Base Point.
- Red: Sell/short if the price climbs into the zone but stays below the Base Point.
Important: Avoid entering trade beyond base point - you might see low returns and face big drawdowns.
Confirm with other signals (like RSI/MACD) before entering.
Settings
ATR Length (10): How far back it looks to calculate price movement.
ATR Multiplier (2.5): How wide the zone is.
Error Margin (5.0): Keeps the zone steady during small price wiggles.
Uptrend/Downtrend Colors: Change the zone colors if you’d like!
Credits
Inspired by the "Follow Line Indicator" by Dreadblitz—check out his work for more great ideas!
BTC Volatility ForecastThe "BTC Volatility Forecast" indicator is designed to help traders anticipate Bitcoin (BTC) price volatility by analyzing historical daily price ranges and projecting future fluctuations. Inspired by advanced volatility forecasting studies, it calculates an approximate realized variance using the squared difference between each day’s high and low prices. By applying a simple linear regression model over the past five days of variance data (customizable via the "Lag Period" input), the indicator provides a forecast for the next day’s volatility. This makes it a valuable tool for BTC traders looking to gauge potential market turbulence and adjust their strategies accordingly.
On the chart, the indicator displays two lines: a blue solid line representing the current realized variance and an orange line showing the forecasted volatility for the upcoming day. Traders can set a "Volatility Threshold" to trigger alerts when the forecast exceeds a specified level, aiding in risk management or trade planning. A debug label on the last bar also shows the exact current and forecasted values for quick reference. While this version uses daily data for simplicity, it captures the essence of volatility prediction and can be a starting point for understanding BTC market dynamics—perfect for both novice and experienced traders on TradingView.
Choppiness IndicatorE.W. Dreiss, an Australian commodity trader, developed the Choppiness Index in 1993, drawing upon chaos theory to analyze financial markets. This technical indicator helps traders determine whether a market is trending or experiencing sideways (choppy) price action.
#Hint: The Market is considered TRENDING when the index is below 38.2 The Market is considered CHOPPY when the index is above 61.8. A move above the 38.2 Level indicates a possible end to a trend, and a move below 61.8 indicates a possible breakout from a period of consolidation.
Mobius constructed this in Thinkscript V001.03.2012, and Claude 3.7 Sonnet converted it to Pinescript V002. 03.2025
The Market is considered TRENDING when the index is below 38.2 The Market is considered CHOPPY when the index is above 61.8. A move above the 38.2 Level indicates a possible end to a trend, and a move below 61.8 indicates a potential breakout from a period of consolidation.
RY-Atr and Rsi Based IndicatorThis indicator is an indicator based on Atr and Rsi. It determines a trend according to the specified Atr range and period and shows the stop loss and take profit levels according to the last bar.
My scriptHash Ribbons with Buy Signal Forecast & Date Prediction
Advanced Bitcoin Mining Cycle Indicator with Predictive Analytics
This enhanced version of the Capriole Hash Ribbons indicator doesn't just tell you when to buy – it tells you when a buy signal is likely to appear in the future, with a specific date prediction.
Key Features:
Classic Hash Ribbons Analysis: Track miner capitulation and recovery cycles that have historically led to profitable Bitcoin entry points
Predictive Buy Signal Forecast: Advanced algorithm that calculates the probability of an upcoming buy signal
Date Prediction Technology: Estimates when the next buy signal will appear with a confidence level indicator (High/Medium/Low)
Customizable Settings: Adjust forecast parameters, lookback periods, and probability thresholds to match your trading strategy
Bitcoin Halving Markers: Visual indicators showing Bitcoin's supply-side economic shifts
How It Works:
This indicator analyzes the relationship between Bitcoin's hash rate and price action to identify optimal entry points. The prediction system examines historical patterns, calculates convergence rates between moving averages, and projects when conditions will align for the next blue buy signal. The forecast includes both a probability score and a specific date estimate, giving you actionable intelligence for planning your entries.
Perfect For:
Bitcoin investors seeking to optimize entry timing around miner capitulation events
Long-term holders wanting to increase position size at historically advantageous moments
Traders looking for a data-driven edge in Bitcoin market cycles
Anyone interested in the relationship between Bitcoin's network fundamentals and price performance
Based on Capriole Investments' proven Hash Ribbons strategy with added predictive capabilities that transform it from a reactive to a proactive trading tool.
RSI with Buy/Sell SignalsWhat This Script Does:
RSI Calculation:
Computes the RSI value based on the closing price and the specified length.
Buy/Sell Signals:
Buy Signal: Triggered when RSI crosses above the oversold level (e.g., 30).
Sell Signal: Triggered when RSI crosses below the overbought level (e.g., 70).
Visual Markers:
Buy Signals: Displayed as green "BUY" labels below the candlestick.
Sell Signals: Displayed as red "SELL" labels above the candlestick.
Background Highlighting: Candles with buy/sell signals are highlighted with a semi-transparent green or red background.
Alerts:
Alerts are generated for buy/sell signals, allowing you to take action in real-time.
Debugging:
The last RSI value is displayed as a label on the chart for easy reference.
Customize Parameters:
Adjust the rsi_length, overbought, and oversold levels to suit your trading strategy.
Analyze Signals:
Look for green "BUY" labels when RSI crosses above the oversold level.
Look for red "SELL" labels when RSI crosses below the overbought level.
Set Alerts:
Use TradingView's alert system to notify you when signals occur.
Example Output:
Buy Signal: A green "BUY" label appears below a candle, and the candle is highlighted with a semi-transparent green background.
Sell Signal: A red "SELL" label appears above a candle, and the candle is highlighted with a semi-transparent red background.
US30 & NAS100 Trading StrategyThis strategy combines trend-following, mean-reversion, and momentum-based trading to capitalize on the unique characteristics of US30 and NAS100. It uses a combination of technical indicators, price action, and risk management rules.
My script
# Hash Ribbons with Buy Signal Forecast
## The Ultimate Bitcoin Mining Cycle Indicator
This advanced indicator combines Capriole Investments' proven Hash Ribbons strategy with a predictive algorithm to forecast upcoming buy signals. Perfect for Bitcoin investors looking to capitalize on miner capitulation cycles.
### Key Features:
- **Traditional Hash Ribbons Analysis**: Identifies miner capitulation, recovery periods, and the classic "blue dot" buy signals
- **Predictive Buy Signal Forecast**: Uses machine learning-inspired pattern recognition to predict when the next buy signal will appear
- **Customizable Settings**: Adjust forecast sensitivity, lookback periods, and probability thresholds to match your trading style
- **Multiple Display Options**: View as ribbons or oscillator for different analytical perspectives
- **Bitcoin Halving Markers**: Visual identification of halving events and their impact on hash rate cycles
### How It Works:
The indicator tracks hash rate momentum and price action to identify historically profitable entry points following miner capitulation. The forecast algorithm analyzes convergence patterns between short/long hash rate averages and price MAs to predict high-probability buy signals before they occur.
### Perfect For:
- Long-term Bitcoin investors seeking optimal entry points
- Cycle analysts tracking miner behavior
- Traders wanting advance notice of potential trend reversals
- Anyone looking to understand Bitcoin's fundamental supply-side dynamics
Based on Capriole Investments' research with enhanced prediction capabilities for proactive rather than reactive trading decisions.
MA CloudThis indicator plots a Moving Average (MA) cloud with ultra-smooth visuals, designed to help traders identify trend direction, momentum, and volatility in a clear and intuitive way.
Features:
Multiple MA types: choose between EMA, SMA, WMA, or RMA
Adaptive cloud width: based on standard deviation of price to visualize volatility
Smoothing controls: post-processed smoothing gives a silky, curved appearance
Multi-Timeframe (MTF) support: default to chart timeframe, or override to any custom timeframe (e.g. 1H, 1D, etc.)
Custom styling: adjustable colours, line thickness, and cloud opacity
Use cases:
Quickly assess trend strength and direction
Use cloud thickness as a volatility proxy
Spot pullback entries during trending conditions
Combine with price action or support/resistance for confluence
Settings:
MA Type – select your preferred moving average method
MA Length – period for the average
Cloud Width Factor – adjusts the distance of the cloud edges
Smoothing Length – softens the output for a polished look
Timeframe – optional override to analyse data from a higher or lower timeframe
RY-TREND MA INDICATORThis indicator is an indicator based on moving averages and atr logic. Stop loss and take profit levels are determined dynamically according to the determined atr level. It is possible to see power signals, money inflow and volume trend, volatility and market trend according to the indicators determined in the two tables on the right.
Calculadora de Lotes AvançadaInforme o tamanho do seu stop e o script te devolve o lote correto, já descontando a comissão.
Seasonality Monthly v2.0//@version=5
indicator("Seasonality Monthly v2.0", "Seasonality Monthly v2.0", format = format.volume)
if not timeframe.ismonthly and not timeframe.isdaily
runtime.error("Please switch timeframe to either Daily or Monthly")
i_year_start = input(2000, "Start Year")
// i_method = input.string("time", "Method", options= )
i_method = "time_close"
i_text_size = input.string(size.auto, "Text Size", )
//--------------------------------------------------------Functions----------------------------------------------------
f_array_stats(array_) =>
count_pos_ = 0
count_neg_= 0
count_ = 0
sum_ = 0.0
if not na(array_) and array.size(array_) > 0
for i_ = 0 to array.size(array_) - 1
elem_ = array.get(array_, i_)
if not na(elem_)
sum_ += elem_
count_ += 1
switch
elem_ > 0 => count_pos_ += 1
elem_ < 0 => count_neg_ += 1
avg_ = count_ > 0 ? sum_ / count_ : 0.0
//-------------------------------------------------------------------------------------------------------------------
= request.security(syminfo.tickerid, "M", [year(time_close), month(time_close), nz(close/close -1)], gaps = barmerge.gaps_on, lookahead = barmerge.lookahead_on )
// month_ = switch i_method
// "time" => month(time)
// "time_close" => month(time_close)
// year_ = switch i_method
// "time" => year(time)
// "time_close" => year(time_close)
var year_start_ = math.max(year_, i_year_start)
var no_years_ = year(timenow) - year_start_ + 1
var matrix data_ = matrix.new(no_years_,13,na)
var table table_ = na
var text_color_ = color.white
var bg_color_ = color.gray
// chg_pct_ = nz(close/close -1)
if year_ >= year_start_
// log.info(str.format("Time {0} Year {1} Month {2} ChgPct {3,number,#.##%}", str.format_time(time_close), year_, month_, chg_pct_))
cur_val_ = nz(matrix.get(data_, year_-year_start_, month_-1))
matrix.set(data_, year_-year_start_, month_-1, cur_val_ + chg_pct_)
// if barstate.islast
// log.info("ROWS {0}", no_years_ + 7 )
if barstate.islast
table_ := table.new(position.middle_center, 13, no_years_ + 7, border_width = 1)
// log.info("ROWS {0}", year_ - year_start_ + 7 )
table.cell(table_, 0, 0, str.format("Seasonality Monthly Performance - {0}:{1}", syminfo.prefix, syminfo.ticker), text_color = text_color_, bgcolor = color.blue, text_size = i_text_size)
table.merge_cells(table_, 0,0,12,0)
row = 1
table.cell(table_, 0, row, "Year", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 1, row, "Jan", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 2, row, "Feb", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 3, row, "Mar", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 4, row, "Apr", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 5, row, "May", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 6, row, "Jun", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 7, row, "Jul", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 8, row, "Aug", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 9, row, "Sep", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 10, row, "Oct", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 11, row, "Nov", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 12, row, "Dec", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
for row_ = 0 to no_years_ - 1
table.cell(table_, 0, 2+row_, str.tostring(row_ + year_start_), text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
for col_ = 0 to 11
val_ = nz(matrix.get(data_, row_, col_),0.0)
val_color_ = val_ > 0.0 ? color.green : val_ < 0.0 ? color.red : color.gray
table.cell(table_, 1+col_, 2+row_, str.format("{0,number,###.##%}", val_), bgcolor = color.new(val_color_,80), text_color = val_color_, text_size = i_text_size)
true
//Aggregates
row_ = no_years_ + 2
table.cell(table_, 0, row_, "AVG", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 0, row_+1, "SUM", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 0, row_+2, "+ive", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
table.cell(table_, 0, row_+3, "WR", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size)
for col_ = 0 to 11
arr_ = matrix.col(data_, col_)
// val_ = array.sum(arr_)
= f_array_stats(arr_)
val_color_ = sum_ > 0 ? color.green : sum_ < 0 ? color.red : color.gray
table.cell(table_, 1+col_, row_, str.format("{0,number,###.##%}", avg_), bgcolor = color.new(val_color_,50), text_color = val_color_, text_size = i_text_size)
table.cell(table_, 1+col_, row_+1, str.format("{0,number,###.##%}", sum_), bgcolor = color.new(val_color_,50), text_color = val_color_, text_size = i_text_size)
table.cell(table_, 1+col_, row_+2, str.format("{0}/{1}", count_pos_, count_), bgcolor = color.new(val_color_,50), text_color = color.new(color.white, 50), text_size = i_text_size)
table.cell(table_, 1+col_, row_+3, str.format("{0,number,#.##%}", count_pos_/count_), bgcolor = color.new(val_color_,50), text_color = color.new(color.white, 50), text_size = i_text_size)
true
Multi-Timeframe FIB TableFib retracement table across multiple timeframes with Red/Green/Grey backgrounds for GP areas.