ATR Multi-Timeframe (Trend Direction + Current Levels) Indicator Name
ATR Multi-Timeframe (Trend Direction + Current Levels)
Description
This indicator helps you visualize support and resistance levels based on the Average True Range (ATR) and track the current trend direction across multiple timeframes (daily, weekly, and monthly). It is a valuable tool for traders looking to enhance decision-making and market volatility analysis.
Key Features
Multi-Timeframe ATR Analysis:
Calculates the Average True Range (ATR) and True Range (TR) for daily, weekly, and monthly timeframes.
Trend Direction Indicators:
Displays trend direction using arrows (▲ for uptrend, ▼ for downtrend) with color-coded labels (green for uptrend, red for downtrend).
Support and Resistance Levels:
Dynamically calculates trend levels (Open ± ATR) and opposite levels for each timeframe.
Persistent lines extend these levels into the future for better visualization.
Customizable Settings:
Toggle visibility of daily, weekly, and monthly levels.
Adjust line width and colors for each timeframe.
Summary Table:
Displays a compact table showing ATR percentages, TR percentages, and trend direction for all timeframes.
Why Use This Indicator?
Quickly identify key support and resistance levels across different timeframes.
Understand market volatility through ATR-based levels.
Spot trends and reversals with easy-to-read visual elements.
How to Use:
Add the indicator to your chart.
Enable or disable specific timeframes (Daily, Weekly, Monthly) in the settings.
Adjust line styles and colors to match your preferences.
Use the displayed levels to plan entry/exit points or manage risk.
This indicator is perfect for both swing and intraday traders who want a clear and dynamic view of volatility and trend across multiple timeframes.
วัฏจักร
U Bot V6This indicator is simply the updated of UT Bot Alerts by QuantNomad.
Credit @QuantNomad
UT Bot indicator was initially developer by Yo_adriiiiaan
The idea of original code belongs HPotter
I translated it from V4 to V5 and V6, for a better alignement with Pine Script requirements.
I publish it in the purpose of integrating it into a strategy that I will publish later, in free access (in the spirit of Tradingview community).
Swing-Based VWAPSwing-Based VWAP
Summary:
The "Swing-Based VWAP" indicator enhances traditional VWAP calculations by incorporating swing-based logic. It dynamically adapts to market conditions by identifying key swing highs and lows and calculating VWAP levels around these pivot points. This makes it a versatile tool for traders seeking actionable price insights.
Explanation:
What is Swing-Based VWAP?
The Swing-Based VWAP is a modified version of the Volume-Weighted Average Price (VWAP). It calculates VWAP not only for a chosen timeframe (e.g., session, week) but also adapts dynamically to market swings. By identifying swing highs and lows, it offers more precise levels for potential price action.
Unique Features:
1. Dynamic Swing Integration:
- Uses pivot points to determine significant price levels.
- Calculates VWAP based on these points to adapt to market trends.
2. User-Friendly Settings:
- Includes options to hide VWAP on higher timeframes for chart clarity.
- Flexible swing size input for adjusting sensitivity.
How to Use:
1. Configuring Swing Settings:
- Use the "Swing Setting" input to determine the sensitivity of swing detection.
- Higher values identify broader swings, while smaller values capture more granular movements.
2. Enabling/Disabling VWAP:
- Toggle VWAP visibility using the "Use VWAP" option.
- The "Hide VWAP on 1D or Above" setting lets you control visibility on higher timeframes.
3. Anchor Period:
- Select your preferred anchoring period (e.g., session, week) to match your trading style.
4. Adjusting the Data Source:
- Use the "Source" input to select the price source (default: HLC3).
5. Visualizing Swing-Based VWAP:
- The script plots a dynamic VWAP line based on detected swing points.
- This line highlights average price levels weighted by volume and swing pivots.
Moon HamsterThe indicator uses spaced repetition, which is a method for memorizing foreign languages (such as seed phrases) with maximum effect for recording in the subconscious (similar to a musical metronome but with doubled cycles like ECHO). It incorporates adjustments for noise using lunar or female cycles to provide signals consistently, not just during periods of significant upheaval. Image analysis can be integrated with GPT-4 (Masha) and trained as a neural network to make predictions based on current images.
In essence, the indicator reflects the collective subconscious of “sleepwalkers” through the NLP of chart language, such as Bitcoin; traders' inconsistencies create noise, which is filtered out by lunar cycles for constant accuracy = there is no global manipulator.
Labels:
"ЛОЖНЫЙ ГАЗ 15-1" = a FAKE BUY signal, AT THE CLOSING OF THIS BAR (CORRECTING by averaging GAS signal with 15 bars) as shown by multiple statistics - perhaps because this signal reflects more market noise at an early stage of the trend, or because the trend time is too short and it would be necessary to find signals with a long time in the bars - or change the time frame to a smaller one when there are more bars
"ГАЗ 30-1" = BUY signal on GAS, AT THE CLOSING OF THIS BAR: CORRECTING by averaging GAS signal with 30 bars, if GAS not 30 moon cycle
"ГАЗ 23-1" = A BUY signal with an average between GAS-30 and GAS-15
"ЛОЖНЫЙ ТОРМОЗ 15-1" = a FAKE SELL signal, AT THE CLOSING OF THIS BAR (CORRECTING by averaging BRAKE signal with 15 bars) as shown by multiple statistics - perhaps because this signal reflects more market noise at an early stage of the trend, or because the trend time is too short and it would be necessary to find signals with a long time in the bars - or change the time frame to a smaller one when there are more bars
"ТОРМОЗ 30-1" = SELL signal on BRAKE, AT THE CLOSING OF THIS BAR: CORRECTING by averaging DRAKE signal with 30 bars, if BRAKE not 30 moon cycle
"ТОРМОЗ 23-1" = A SELL signal with an average between BRAKE-30 and BRAKE-15
"ЭХО 15" = An ECHO type BUY or SELL signal with an average of 15 bars of the lunar cycle
"ЭХО 30" = An ECHO type BUY or SELL signal with an average of 30 bars of the lunar cycle
"ЭХО 23" = BUY or SELL signal averaged from ECHO-15 and ECHO-30 bars over lunar cycles
"ФИНАЛ 23" = BUY or SELL signal averaged from ECHO-23 and GAS-23 bars over lunar cycles
Vertical line = average for FINAL 23 and ECHO 23, for BUY or SELL signal in this color
END
-----------------------------------------------------------------
Индикатор использует интервальное повторение которое является методом заучивания иностранных языков (например сид-фразы) с максимальным эффектом, для записи в подсознание (по аналогии музыкального метронома но с удвоенными циклами типа ЭХО). Производится корректировка на шум с помощью лунных или женских циклов, чтобы давать сигналы всегда, а не только в периоды больших потрясений. Можно подключить анализ изображений к GPTо4 (Маша) и обучить как нейросеть чтобы она давала прогнозы по текущим картинкам. Суть: Индикатор отображает массовое подсознание лунатиков через НЛП языка графика, например биткоина, несогласованность трейдеров порождает шум, он убирается лунными циклами для постоянной точности = глобального манипулятора не существует. //Ссылка на телегу на графике - там все свежие примеры прогнозов, только для русскоязычных пользователей.//
Enhanced Cognitive Learning Indicator 2.0 - Enhanced Market Analyzer with Advanced Features and Adaptive Cognitive Learning 2.0
improved integration and inputs
Sakthi VWAPSakthi VWAP Indicator
The "Sakthi VWAP" is a custom technical analysis indicator designed for use on TradingView. It calculates the Volume-Weighted Average Price (VWAP) and identifies bullish and bearish price action relative to the VWAP.
Key Features:
VWAP Calculation: The indicator computes the VWAP based on the closing price, representing the average price of a security adjusted for its volume throughout the trading day.
Bullish and Bearish Logic:
If the closing price is above the VWAP, it signals a bullish condition (highlighted by red circles).
If the closing price is below the VWAP, it signals a bearish condition (highlighted by green circles).
Max Price Calculation: The indicator tracks the highest closing price during the session and stores it for later reference.
Base Calculation: A midpoint is calculated as the average of bullish and bearish values, which can be used for further analysis.
Alert Conditions: The script includes alert conditions for bullish and bearish signals, notifying the trader when the price crosses above or below the VWAP.
This script is ideal for traders looking to spot market trends based on VWAP while providing clear visual cues for bullish or bearish conditions. Alerts help automate the decision-making process, keeping traders informed about significant price movements.
Sakthi VWAP UPDATED**Sakthi VWAP Indicator**
"Sakthi VWAP" is a custom technical analysis indicator designed for use on TradingView. It calculates the Volume-Weighted Average Price (VWAP) and identifies bullish and bearish price action relative to the VWAP.
**Key Features:**
1. **VWAP Calculation**: The indicator computes the VWAP based on the closing price, representing the average price of a security adjusted for its volume throughout the trading day.
2. **Bullish and Bearish Logic**:
- If the closing price is above the VWAP, it signals a bullish condition (highlighted by red circles).
- If the closing price is below the VWAP, it signals a bearish condition (highlighted by green circles).
3. **Max Price Calculation**: The indicator tracks the highest closing price during the session and stores it for later reference.
4. **Base Calculation**: A midpoint is calculated as the average of bullish and bearish values, which can be used for further analysis.
5. **Alert Conditions**: The script includes alert conditions for bullish and bearish signals, notifying the trader when the price crosses above or below the VWAP.
This script is ideal for traders looking to spot market trends based on VWAP while providing clear visual cues for bullish or bearish conditions. Alerts help automate the decision-making process, keeping traders informed about significant price movements.
Pi Cycle Top IndicatorThis will help you identify when the top is in for BTC using 1D candles on bitcoin index chart. it has worked flawlessly for previous cycles, lets see if it works going forward.
Enhanced Cognitive Learning Indicator 2.0 - Enhanced Market Analyzer with Advanced Features and Adaptive Cognitive Learning 2.0
improved integration and inputs
Market Movement After OpenDescription:
This script provides a detailed visualization of market movements during key trading hours: the German market opening (08:00–09:00 UTC+1) and the US market opening (15:30–16:30 UTC+1). It is designed to help traders analyze price behavior in these critical trading periods by capturing and presenting movement patterns and trends directly on the chart and in an interactive table.
Key Features:
Market Movement Analysis:
Tracks the price movement during the German market's first hour (08:00–09:00 UTC+1) and the US market's opening session (15:30–16:30 UTC+1).
Analyzes whether the price moved up or down during these intervals.
Visual Representation:
Dynamically colored price lines indicate upward (green) or downward (red) movement during the respective periods.
Labels ("DE" for Germany and "US" for the United States) mark key moments in the chart.
Historical Data Table:
Displays the past 10 trading days' movement trends in an interactive table, including:
Date: Trading date.
German Market Movement: Up (▲), Down (▼), or Neutral (-) for 08:00–09:00 UTC+1.
US Market Movement: Up (▲), Down (▼), or Neutral (-) for 15:30–16:30 UTC+1.
The table uses color coding for easy interpretation: green for upward movements, red for downward, and gray for neutral.
Real-Time Updates:
Automatically updates during live trading sessions to reflect the most recent movements.
Highlights incomplete periods (e.g., ongoing sessions) to indicate their status.
Customizable:
Suitable for intraday analysis or broader studies of market trends.
Designed to overlay directly on any price chart.
Use Case:
This script is particularly useful for traders who focus on market openings, which are often characterized by high volatility and significant price movements. By providing a clear visual representation of historical and live data, it aids in understanding and capitalizing on market trends during these critical periods.
Notes:
The script works best when the chart is set to the appropriate timezone (UTC+1 for the German market or your local equivalent).
For precise trading decisions, consider combining this script with other technical indicators or trading strategies.
Feel free to share feedback or suggest additional features to enhance the script!
Sesión New York 7:00 am - 10:00 am Costa RicaIndicador basado para la Sesion de New York entre las 7:00am a 10:00 am
AdibXmos // © Adib2024
//@version=5
indicator('AdibXmos ', overlay=true, max_labels_count=500)
show_tp_sl = input.bool(true, 'Display TP & SL', group='Techical', tooltip='Display the exact TP & SL price levels for BUY & SELL signals.')
rrr = input.string('1:2', 'Risk to Reward Ratio', group='Techical', options= , tooltip='Set a risk to reward ratio (RRR).')
tp_sl_multi = input.float(1, 'TP & SL Multiplier', 1, group='Techical', tooltip='Multiplies both TP and SL by a chosen index. Higher - higher risk.')
tp_sl_prec = input.int(2, 'TP & SL Precision', 0, group='Techical')
candle_stability_index_param = 0.5
rsi_index_param = 70
candle_delta_length_param = 4
disable_repeating_signals_param = input.bool(true, 'Disable Repeating Signals', group='Techical', tooltip='Removes repeating signals. Useful for removing clusters of signals and general clarity.')
GREEN = color.rgb(29, 255, 40)
RED = color.rgb(255, 0, 0)
TRANSPARENT = color.rgb(0, 0, 0, 100)
label_size = input.string('huge', 'Label Size', options= , group='Cosmetic')
label_style = input.string('text bubble', 'Label Style', , group='Cosmetic')
buy_label_color = input(GREEN, 'BUY Label Color', inline='Highlight', group='Cosmetic')
sell_label_color = input(RED, 'SELL Label Color', inline='Highlight', group='Cosmetic')
label_text_color = input(color.white, 'Label Text Color', inline='Highlight', group='Cosmetic')
stable_candle = math.abs(close - open) / ta.tr > candle_stability_index_param
rsi = ta.rsi(close, 14)
atr = ta.atr(14)
bullish_engulfing = close < open and close > open and close > open
rsi_below = rsi < rsi_index_param
decrease_over = close < close
var last_signal = ''
var tp = 0.
var sl = 0.
bull_state = bullish_engulfing and stable_candle and rsi_below and decrease_over and barstate.isconfirmed
bull = bull_state and (disable_repeating_signals_param ? (last_signal != 'buy' ? true : na) : true)
bearish_engulfing = close > open and close < open and close < open
rsi_above = rsi > 100 - rsi_index_param
increase_over = close > close
bear_state = bearish_engulfing and stable_candle and rsi_above and increase_over and barstate.isconfirmed
bear = bear_state and (disable_repeating_signals_param ? (last_signal != 'sell' ? true : na) : true)
round_up(number, decimals) =>
factor = math.pow(10, decimals)
math.ceil(number * factor) / factor
if bull
last_signal := 'buy'
dist = atr * tp_sl_multi
tp_dist = rrr == '2:3' ? dist / 2 * 3 : rrr == '1:2' ? dist * 2 : rrr == '1:4' ? dist * 4 : dist
tp := round_up(close + tp_dist, tp_sl_prec)
sl := round_up(close - dist, tp_sl_prec)
if label_style == 'text bubble'
label.new(bar_index, low, 'BUY', color=buy_label_color, style=label.style_label_up, textcolor=label_text_color, size=label_size)
else if label_style == 'triangle'
label.new(bar_index, low, 'BUY', yloc=yloc.belowbar, color=buy_label_color, style=label.style_triangleup, textcolor=TRANSPARENT, size=label_size)
else if label_style == 'arrow'
label.new(bar_index, low, 'BUY', yloc=yloc.belowbar, color=buy_label_color, style=label.style_arrowup, textcolor=TRANSPARENT, size=label_size)
label.new(show_tp_sl ? bar_index : na, low, 'TP: ' + str.tostring(tp) + ' SL: ' + str.tostring(sl), yloc=yloc.price, color=color.gray, style=label.style_label_down, textcolor=label_text_color)
if bear
last_signal := 'sell'
dist = atr * tp_sl_multi
tp_dist = rrr == '2:3' ? dist / 2 * 3 : rrr == '1:2' ? dist * 2 : rrr == '1:4' ? dist * 4 : dist
tp := round_up(close - tp_dist, tp_sl_prec)
sl := round_up(close + dist, tp_sl_prec)
if label_style == 'text bubble'
label.new(bear ? bar_index : na, high, 'SELL', color=sell_label_color, style=label.style_label_down, textcolor=label_text_color, size=label_size)
else if label_style == 'triangle'
label.new(bear ? bar_index : na, high, 'SELL', yloc=yloc.abovebar, color=sell_label_color, style=label.style_triangledown, textcolor=TRANSPARENT, size=label_size)
else if label_style == 'arrow'
label.new(bear ? bar_index : na, high, 'SELL', yloc=yloc.abovebar, color=sell_label_color, style=label.style_arrowdown, textcolor=TRANSPARENT, size=label_size)
label.new(show_tp_sl ? bar_index : na, low, 'TP: ' + str.tostring(tp) + ' SL: ' + str.tostring(sl), yloc=yloc.price, color=color.gray, style=label.style_label_up, textcolor=label_text_color)
alertcondition(bull or bear, 'BUY & SELL Signals', 'New signal!')
alertcondition(bull, 'BUY Signals (Only)', 'New signal: BUY')
alertcondition(bear, 'SELL Signals (Only)', 'New signal: SELL')
Jojito's Secret SauceAll you have to do is set the levels you want to trade. Pick your EMAs. Trade the trend. You don't need the EMAs if you don't want them. Use the 4H chart and up and trading is on EZ mode. Working on adding alerts and some other functions like trend color etc.
Pi Cycle Top Indicatorindikator ini dibuat sesuai bitbo pi cycle top
dibuat dibantu dengan bantuan ChatGPT gratis
silahkan dipakai kalau suka. @yogajangkung
RSI 10 mã thể hiện 4 khung thời gian//@version=6
indicator("Multi-Timeframe RSI with Divergence Alerts in Table", overlay=true)
// Inputs
rsiLength = input.int(14, title="RSI Length")
source = input.source(close, title="Source")
// Inputs for custom symbols (10 pairs)
symbol1 = input.string("BTC/USDT", title="Symbol 1")
symbol2 = input.string("ETH/USDT", title="Symbol 2")
symbol3 = input.string("LTC/USDT", title="Symbol 3")
symbol4 = input.string("XRP/USDT", title="Symbol 4")
symbol5 = input.string("ADA/USDT", title="Symbol 5")
symbol6 = input.string("SOL/USDT", title="Symbol 6")
symbol7 = input.string("DOGE/USDT", title="Symbol 7")
symbol8 = input.string("MATIC/USDT", title="Symbol 8")
symbol9 = input.string("BNB/USDT", title="Symbol 9")
symbol10 = input.string("AVAX/USDT", title="Symbol 10")
// RSI Calculations for custom symbols
rsi(symbol, timeframe) =>
request.security(symbol, timeframe, ta.rsi(source, rsiLength))
// RSI Calculations for timeframes (H1, H4, D1, W) for the custom symbols
rsi1H1 = rsi(symbol1, "60")
rsi2H1 = rsi(symbol2, "60")
rsi3H1 = rsi(symbol3, "60")
rsi4H1 = rsi(symbol4, "60")
rsi5H1 = rsi(symbol5, "60")
rsi6H1 = rsi(symbol6, "60")
rsi7H1 = rsi(symbol7, "60")
rsi8H1 = rsi(symbol8, "60")
rsi9H1 = rsi(symbol9, "60")
rsi10H1 = rsi(symbol10, "60")
rsi1H4 = rsi(symbol1, "240")
rsi2H4 = rsi(symbol2, "240")
rsi3H4 = rsi(symbol3, "240")
rsi4H4 = rsi(symbol4, "240")
rsi5H4 = rsi(symbol5, "240")
rsi6H4 = rsi(symbol6, "240")
rsi7H4 = rsi(symbol7, "240")
rsi8H4 = rsi(symbol8, "240")
rsi9H4 = rsi(symbol9, "240")
rsi10H4 = rsi(symbol10, "240")
rsi1D1 = rsi(symbol1, "D")
rsi2D1 = rsi(symbol2, "D")
rsi3D1 = rsi(symbol3, "D")
rsi4D1 = rsi(symbol4, "D")
rsi5D1 = rsi(symbol5, "D")
rsi6D1 = rsi(symbol6, "D")
rsi7D1 = rsi(symbol7, "D")
rsi8D1 = rsi(symbol8, "D")
rsi9D1 = rsi(symbol9, "D")
rsi10D1 = rsi(symbol10, "D")
rsi1W = rsi(symbol1, "W")
rsi2W = rsi(symbol2, "W")
rsi3W = rsi(symbol3, "W")
rsi4W = rsi(symbol4, "W")
rsi5W = rsi(symbol5, "W")
rsi6W = rsi(symbol6, "W")
rsi7W = rsi(symbol7, "W")
rsi8W = rsi(symbol8, "W")
rsi9W = rsi(symbol9, "W")
rsi10W = rsi(symbol10, "W")
// Alert levels
upperLevel = 80
lowerLevel = 30
// Table creation (adjusted size to fit 10 symbols and 4 timeframes)
var table rsiTable = table.new(position.top_right, 15, 5, border_width=1) // Added 10 rows for symbols, and 4 columns for timeframes
// Functions for RSI status and color
fun_rsiStatus(rsiValue) =>
if (rsiValue > upperLevel)
"Overbought"
else if (rsiValue < lowerLevel)
"Oversold"
else
"Neutral"
fun_rsiColor(rsiValue) =>
if (rsiValue > upperLevel)
color.new(color.red, 0)
else if (rsiValue < lowerLevel)
color.new(color.green, 0)
else
color.new(color.gray, 50)
fun_textColor() =>
color.new(color.white, 0)
// Update Table headers
table.cell(rsiTable, 0, 0, "Symbol", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 1, "H1 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 2, "H4 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 3, "D1 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 4, "Weekly RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
// Display RSI for each symbol and timeframe
// Symbol 1
table.cell(rsiTable, 1, 0, symbol1, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 1, 1, str.tostring(rsi1H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1H1))
table.cell(rsiTable, 1, 2, str.tostring(rsi1H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1H4))
table.cell(rsiTable, 1, 3, str.tostring(rsi1D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1D1))
table.cell(rsiTable, 1, 4, str.tostring(rsi1W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1W))
// Symbol 2
table.cell(rsiTable, 2, 0, symbol2, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 2, 1, str.tostring(rsi2H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2H1))
table.cell(rsiTable, 2, 2, str.tostring(rsi2H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2H4))
table.cell(rsiTable, 2, 3, str.tostring(rsi2D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2D1))
table.cell(rsiTable, 2, 4, str.tostring(rsi2W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2W))
// Repeat for other symbols (3 to 10)...
// Symbol 3
table.cell(rsiTable, 3, 0, symbol3, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 3, 1, str.tostring(rsi3H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3H1))
table.cell(rsiTable, 3, 2, str.tostring(rsi3H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3H4))
table.cell(rsiTable, 3, 3, str.tostring(rsi3D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3D1))
table.cell(rsiTable, 3, 4, str.tostring(rsi3W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3W))
// Symbol 4
table.cell(rsiTable, 4, 0, symbol4, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 4, 1, str.tostring(rsi4H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4H1))
table.cell(rsiTable, 4, 2, str.tostring(rsi4H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4H4))
table.cell(rsiTable, 4, 3, str.tostring(rsi4D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4D1))
table.cell(rsiTable, 4, 4, str.tostring(rsi4W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4W))
// Symbol 5
table.cell(rsiTable, 5, 0, symbol5, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 5, 1, str.tostring(rsi5H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5H1))
table.cell(rsiTable, 5, 2, str.tostring(rsi5H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5H4))
table.cell(rsiTable, 5, 3, str.tostring(rsi5D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5D1))
table.cell(rsiTable, 5, 4, str.tostring(rsi5W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5W))
// Symbol 6
table.cell(rsiTable, 6, 0, symbol6, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 6, 1, str.tostring(rsi6H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6H1))
table.cell(rsiTable, 6, 2, str.tostring(rsi6H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6H4))
table.cell(rsiTable, 6, 3, str.tostring(rsi6D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6D1))
table.cell(rsiTable, 6, 4, str.tostring(rsi6W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6W))
// Symbol 7
table.cell(rsiTable, 7, 0, symbol7, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 7, 1, str.tostring(rsi7H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7H1))
table.cell(rsiTable, 7, 2, str.tostring(rsi7H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7H4))
table.cell(rsiTable, 7, 3, str.tostring(rsi7D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7D1))
table.cell(rsiTable, 7, 4, str.tostring(rsi7W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7W))
// Symbol 8
table.cell(rsiTable, 8, 0, symbol8, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 8, 1, str.tostring(rsi8H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8H1))
table.cell(rsiTable, 8, 2, str.tostring(rsi8H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8H4))
table.cell(rsiTable, 8, 3, str.tostring(rsi8D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8D1))
table.cell(rsiTable, 8, 4, str.tostring(rsi8W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8W))
// Symbol 9
table.cell(rsiTable, 9, 0, symbol9, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 9, 1, str.tostring(rsi9H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9H1))
table.cell(rsiTable, 9, 2, str.tostring(rsi9H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9H4))
table.cell(rsiTable, 9, 3, str.tostring(rsi9D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9D1))
table.cell(rsiTable, 9, 4, str.tostring(rsi9W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9W))
// Symbol 10
table.cell(rsiTable, 10, 0, symbol10, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 10, 1, str.tostring(rsi10H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10H1))
table.cell(rsiTable, 10, 2, str.tostring(rsi10H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10H4))
table.cell(rsiTable, 10, 3, str.tostring(rsi10D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10D1))
table.cell(rsiTable, 10, 4, str.tostring(rsi10W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10W))
EMA Squeeze RythmHere's a description of this indicator and its purpose:
This indicator is based on the concept of price consolidation and volatility contraction using multiple Exponential Moving Averages (EMAs). It primarily looks for "squeeze" conditions where the EMAs converge, indicating potential market consolidation and subsequent breakout opportunities.
Key Features:
1. Uses 8 EMAs (20-55 period) to measure price compression
2. Measures the distance between fastest (20) and slowest (55) EMAs in ATR units
3. Identifies four distinct states:
- PRE-SQZE: Initial convergence of EMAs
- SQZE: Tighter convergence
- EXT-SQZE: Extreme convergence (highest probability of breakout)
- RELEASE: EMAs begin to expand (potential breakout in progress)
Best Used For:
- Identifying potential breakout setups
- Finding periods of low volatility before explosive moves
- Confirming trend strength using higher timeframe analysis
- Trading mean reversion strategies during squeeze states
- Catching momentum moves during release states
The indicator works well on any timeframe but is particularly effective on 15M to 4H charts for most liquid markets. It includes higher timeframe analysis to help confirm the broader market context.
US Market Opening UTC+1Description:
This script highlights the opening time of the US stock market (15:30 UTC+1) on a TradingView chart. It is designed to help traders quickly identify market openings and analyze price movements during this key trading period.
Key Features:
Market Opening Identification:
Automatically detects the exact moment the US stock market opens each day (15:30 UTC+1).
Marks the opening with a vertical line spanning the entire chart and a label for visual clarity.
Custom Indicators:
A blue line is drawn from the lowest to the highest price of the opening candle, extending across the chart to visually indicate the start of the trading day.
A labeled marker reading "US-Opening" is placed at the top of the opening candle for additional clarity.
Ease of Use:
Simple overlay indicator that works seamlessly on any timeframe chart.
Helps traders focus on key opening price action.
Use Case:
This script is particularly useful for day traders and scalpers who want to identify and analyze the price behavior around the opening of the US stock market. It provides a visual cue to help traders develop strategies or make informed decisions during this active trading period.
Note:
Ensure your chart’s timezone is set to match UTC+1 or appropriately adjust for your location to ensure accurate time alignment.
If you have questions or suggestions, feel free to provide feedback!
RSI 10 mã thể hiện 4 khung thời gian//@version=6
indicator("Multi-Timeframe RSI with Divergence Alerts in Table", overlay=true)
// Inputs
rsiLength = input.int(14, title="RSI Length")
source = input.source(close, title="Source")
// Inputs for custom symbols (10 pairs)
symbol1 = input.string("BTC/USDT", title="Symbol 1")
symbol2 = input.string("ETH/USDT", title="Symbol 2")
symbol3 = input.string("LTC/USDT", title="Symbol 3")
symbol4 = input.string("XRP/USDT", title="Symbol 4")
symbol5 = input.string("ADA/USDT", title="Symbol 5")
symbol6 = input.string("SOL/USDT", title="Symbol 6")
symbol7 = input.string("DOGE/USDT", title="Symbol 7")
symbol8 = input.string("MATIC/USDT", title="Symbol 8")
symbol9 = input.string("BNB/USDT", title="Symbol 9")
symbol10 = input.string("AVAX/USDT", title="Symbol 10")
// RSI Calculations for custom symbols
rsi(symbol, timeframe) =>
request.security(symbol, timeframe, ta.rsi(source, rsiLength))
// RSI Calculations for timeframes (H1, H4, D1, W) for the custom symbols
rsi1H1 = rsi(symbol1, "60")
rsi2H1 = rsi(symbol2, "60")
rsi3H1 = rsi(symbol3, "60")
rsi4H1 = rsi(symbol4, "60")
rsi5H1 = rsi(symbol5, "60")
rsi6H1 = rsi(symbol6, "60")
rsi7H1 = rsi(symbol7, "60")
rsi8H1 = rsi(symbol8, "60")
rsi9H1 = rsi(symbol9, "60")
rsi10H1 = rsi(symbol10, "60")
rsi1H4 = rsi(symbol1, "240")
rsi2H4 = rsi(symbol2, "240")
rsi3H4 = rsi(symbol3, "240")
rsi4H4 = rsi(symbol4, "240")
rsi5H4 = rsi(symbol5, "240")
rsi6H4 = rsi(symbol6, "240")
rsi7H4 = rsi(symbol7, "240")
rsi8H4 = rsi(symbol8, "240")
rsi9H4 = rsi(symbol9, "240")
rsi10H4 = rsi(symbol10, "240")
rsi1D1 = rsi(symbol1, "D")
rsi2D1 = rsi(symbol2, "D")
rsi3D1 = rsi(symbol3, "D")
rsi4D1 = rsi(symbol4, "D")
rsi5D1 = rsi(symbol5, "D")
rsi6D1 = rsi(symbol6, "D")
rsi7D1 = rsi(symbol7, "D")
rsi8D1 = rsi(symbol8, "D")
rsi9D1 = rsi(symbol9, "D")
rsi10D1 = rsi(symbol10, "D")
rsi1W = rsi(symbol1, "W")
rsi2W = rsi(symbol2, "W")
rsi3W = rsi(symbol3, "W")
rsi4W = rsi(symbol4, "W")
rsi5W = rsi(symbol5, "W")
rsi6W = rsi(symbol6, "W")
rsi7W = rsi(symbol7, "W")
rsi8W = rsi(symbol8, "W")
rsi9W = rsi(symbol9, "W")
rsi10W = rsi(symbol10, "W")
// Alert levels
upperLevel = 80
lowerLevel = 30
// Table creation (adjusted size to fit 10 symbols and 4 timeframes)
var table rsiTable = table.new(position.top_right, 15, 5, border_width=1) // Added 10 rows for symbols, and 4 columns for timeframes
// Functions for RSI status and color
fun_rsiStatus(rsiValue) =>
if (rsiValue > upperLevel)
"Overbought"
else if (rsiValue < lowerLevel)
"Oversold"
else
"Neutral"
fun_rsiColor(rsiValue) =>
if (rsiValue > upperLevel)
color.new(color.red, 0)
else if (rsiValue < lowerLevel)
color.new(color.green, 0)
else
color.new(color.gray, 50)
fun_textColor() =>
color.new(color.white, 0)
// Update Table headers
table.cell(rsiTable, 0, 0, "Symbol", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 1, "H1 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 2, "H4 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 3, "D1 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 4, "Weekly RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
// Display RSI for each symbol and timeframe
// Symbol 1
table.cell(rsiTable, 1, 0, symbol1, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 1, 1, str.tostring(rsi1H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1H1))
table.cell(rsiTable, 1, 2, str.tostring(rsi1H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1H4))
table.cell(rsiTable, 1, 3, str.tostring(rsi1D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1D1))
table.cell(rsiTable, 1, 4, str.tostring(rsi1W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1W))
// Symbol 2
table.cell(rsiTable, 2, 0, symbol2, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 2, 1, str.tostring(rsi2H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2H1))
table.cell(rsiTable, 2, 2, str.tostring(rsi2H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2H4))
table.cell(rsiTable, 2, 3, str.tostring(rsi2D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2D1))
table.cell(rsiTable, 2, 4, str.tostring(rsi2W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2W))
// Repeat for other symbols (3 to 10)...
// Symbol 3
table.cell(rsiTable, 3, 0, symbol3, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 3, 1, str.tostring(rsi3H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3H1))
table.cell(rsiTable, 3, 2, str.tostring(rsi3H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3H4))
table.cell(rsiTable, 3, 3, str.tostring(rsi3D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3D1))
table.cell(rsiTable, 3, 4, str.tostring(rsi3W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3W))
// Symbol 4
table.cell(rsiTable, 4, 0, symbol4, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 4, 1, str.tostring(rsi4H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4H1))
table.cell(rsiTable, 4, 2, str.tostring(rsi4H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4H4))
table.cell(rsiTable, 4, 3, str.tostring(rsi4D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4D1))
table.cell(rsiTable, 4, 4, str.tostring(rsi4W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4W))
// Symbol 5
table.cell(rsiTable, 5, 0, symbol5, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 5, 1, str.tostring(rsi5H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5H1))
table.cell(rsiTable, 5, 2, str.tostring(rsi5H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5H4))
table.cell(rsiTable, 5, 3, str.tostring(rsi5D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5D1))
table.cell(rsiTable, 5, 4, str.tostring(rsi5W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5W))
// Symbol 6
table.cell(rsiTable, 6, 0, symbol6, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 6, 1, str.tostring(rsi6H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6H1))
table.cell(rsiTable, 6, 2, str.tostring(rsi6H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6H4))
table.cell(rsiTable, 6, 3, str.tostring(rsi6D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6D1))
table.cell(rsiTable, 6, 4, str.tostring(rsi6W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6W))
// Symbol 7
table.cell(rsiTable, 7, 0, symbol7, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 7, 1, str.tostring(rsi7H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7H1))
table.cell(rsiTable, 7, 2, str.tostring(rsi7H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7H4))
table.cell(rsiTable, 7, 3, str.tostring(rsi7D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7D1))
table.cell(rsiTable, 7, 4, str.tostring(rsi7W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7W))
// Symbol 8
table.cell(rsiTable, 8, 0, symbol8, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 8, 1, str.tostring(rsi8H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8H1))
table.cell(rsiTable, 8, 2, str.tostring(rsi8H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8H4))
table.cell(rsiTable, 8, 3, str.tostring(rsi8D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8D1))
table.cell(rsiTable, 8, 4, str.tostring(rsi8W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8W))
// Symbol 9
table.cell(rsiTable, 9, 0, symbol9, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 9, 1, str.tostring(rsi9H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9H1))
table.cell(rsiTable, 9, 2, str.tostring(rsi9H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9H4))
table.cell(rsiTable, 9, 3, str.tostring(rsi9D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9D1))
table.cell(rsiTable, 9, 4, str.tostring(rsi9W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9W))
// Symbol 10
table.cell(rsiTable, 10, 0, symbol10, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 10, 1, str.tostring(rsi10H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10H1))
table.cell(rsiTable, 10, 2, str.tostring(rsi10H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10H4))
table.cell(rsiTable, 10, 3, str.tostring(rsi10D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10D1))
table.cell(rsiTable, 10, 4, str.tostring(rsi10W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10W))