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.
Ciclos
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))
Fibonacci Extensions and Retracements for Selected TimeframesPurpose of the Script
This script plots Fibonacci levels (retracements and extensions) based on the high and low points of the previous day, previous week, or previous month. It is a trading aid to help identify potential support and resistance zones. These zones are often used by traders to determine entry or exit points for trades.
How It Works
Select Timeframe
The trader can choose whether to calculate Fibonacci levels based on the high and low points of the previous day, previous week, or previous month.
This is selected using the timeframe_input input.
Examples:
"D" for the previous day
"W" for the previous week
"M" for the previous month
Calculate Price Range
The script calculates the price range using the high and low of the selected timeframe:
Formula: price_range = High - Low
Draw Fibonacci Levels
Retracements: Within the price range, Fibonacci levels such as 12%, 23%, 38%, 50%, 61%, 78%, and 88% are calculated. These help identify potential support or resistance zones.
Extensions: Beyond the price range, Fibonacci extensions such as 127%, 161%, 200%, 224%, and 241% are plotted to indicate potential breakout targets.
Visualization
The script plots lines and labels for each level.
These lines extend to the right, providing real-time guidance during trading.
Colors and line styles can be customized to match personal preferences.
How to Use as a Trading Aid
Use Fibonacci Retracements:
Use retracements (e.g., 38%, 50%, 61%) to identify potential support or resistance zones.
Example: If the price dropped sharply the previous day, the retracement levels could act as support during a rebound.
Use Fibonacci Extensions:
Extensions help identify price targets when the price breaks above or below the high or low of the previous day, week, or month.
Example: After a breakout above the previous week’s high, the 127% or 161% level could serve as a target.
Adjust Timeframe:
Choose the timeframe that suits your strategy:
Intraday traders can use the previous day’s high and low.
Swing traders might prefer the previous week.
Long-term traders could work with the previous month.
Example
A trader selects the weekly timeframe (W) to analyze the high and low of the previous week:
The script calculates the price range based on the high and low of the previous week.
Fibonacci retracements (e.g., 50% and 61%) are drawn to identify potential support zones.
Fibonacci extensions (e.g., 127% and 161%) help define price targets for a potential breakout above or below the range.
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.
Support/Resistance & Supply/Demand Zones By Sun3rainSupport / Resistance & Supply / Demand Zones (SMC)
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.
Fibonacci Extensions and Retracements for Selected TimeframesPurpose of the Script
This script plots Fibonacci levels (retracements and extensions) based on the high and low points of the previous day, previous week, or previous month. It is a trading aid to help identify potential support and resistance zones. These zones are often used by traders to determine entry or exit points for trades.
How It Works
Select Timeframe
The trader can choose whether to calculate Fibonacci levels based on the high and low points of the previous day, previous week, or previous month.
This is selected using the timeframe_input input.
Examples:
"D" for the previous day
"W" for the previous week
"M" for the previous month
Calculate Price Range
The script calculates the price range using the high and low of the selected timeframe:
Formula: price_range = High - Low
Draw Fibonacci Levels
Retracements: Within the price range, Fibonacci levels such as 12%, 23%, 38%, 50%, 61%, 78%, and 88% are calculated. These help identify potential support or resistance zones.
Extensions: Beyond the price range, Fibonacci extensions such as 127%, 161%, 200%, 224%, and 241% are plotted to indicate potential breakout targets.
Visualization
The script plots lines and labels for each level.
These lines extend to the right, providing real-time guidance during trading.
Colors and line styles can be customized to match personal preferences.
How to Use as a Trading Aid
Use Fibonacci Retracements:
Use retracements (e.g., 38%, 50%, 61%) to identify potential support or resistance zones.
Example: If the price dropped sharply the previous day, the retracement levels could act as support during a rebound.
Use Fibonacci Extensions:
Extensions help identify price targets when the price breaks above or below the high or low of the previous day, week, or month.
Example: After a breakout above the previous week’s high, the 127% or 161% level could serve as a target.
Adjust Timeframe:
Choose the timeframe that suits your strategy:
Intraday traders can use the previous day’s high and low.
Swing traders might prefer the previous week.
Long-term traders could work with the previous month.
Example
A trader selects the weekly timeframe (W) to analyze the high and low of the previous week:
The script calculates the price range based on the high and low of the previous week.
Fibonacci retracements (e.g., 50% and 61%) are drawn to identify potential support zones.
Fibonacci extensions (e.g., 127% and 161%) help define price targets for a potential breakout above or below the range.
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')
Pi Cycle Top Indicatorindikator ini dibuat sesuai bitbo pi cycle top
dibuat dibantu dengan bantuan ChatGPT gratis
silahkan dipakai kalau suka. @yogajangkung
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.
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
cme big boyKết luận chiến lược:
1. Hỗ trợ:
o Vùng 2620 (OGF5): Tận dụng cơ hội mua khi thị trường kỳ vọng phục hồi ngắn hạn.
2. Kháng cự:
o Vùng 2640 (OGG5): Xem xét bán khống khi có dấu hiệu suy yếu.
o Vùng 2650 (OGF5 & OGG5): Đây là mức giá quan trọng, cần theo dõi sát để thực hiện chiến lược Buy nếu giá vượt kháng cự.
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))
Global Liquidity Index (75 Days Forward)Global Liquidity Index but off-set by 75 days because apparently that aligns more with Bitcoin or something like that, IDK.
Candle-Based Negative Space (Improved)This script visualizes the concept of negative space (when a candle closes below a defined baseline) and positive space (when a candle closes above the baseline) on a price chart. It uses user-defined inputs to configure the baseline and optionally includes a moving average for additional trend analysis. Below is a detailed explanation of the script and suggestions for improving its plotting.
Explanation of the Script
Purpose
The script helps traders visualize the relationship between price movements and a dynamically chosen baseline. The baseline can be based on:
The high/low of the previous candle.
The open/close of the current candle.
The "negative space" is calculated when the closing price is below the baseline, and the "positive space" is calculated when the closing price is above the baseline. The sum of these spaces over a period is plotted as a histogram to provide insights into market strength.
Ultimate Bollinger Bands Strategy v6Key Benefits of the Strategy
High Accuracy with Multi-Indicator Confirmation:
Combines Bollinger Bands, RSI, and a 50-period Moving Average for precise trend and momentum analysis.
Filters out false signals by aligning trades with strong trends and oversold/overbought conditions.
Consistent Profit Target:
Automatically calculates a profit target (default: 0.5%) for every trade.
Ensures trades exit at optimal levels, locking in profits and avoiding unnecessary risks.
Built-In Alerts:
Real-time Buy, Sell, and Exit alerts notify you when action is needed.
No need to monitor charts constantly—just set it up and stay informed.
Dynamic Risk Management:
Tracks market volatility with ATR (Average True Range), allowing for smarter stop-loss and take-profit decisions.
Protects your capital by minimizing losses in volatile markets like Gold.
User-Friendly Design:
Clear visual signals with arrows for Buy/Sell and squares for exits.
Intuitive settings make it accessible for beginners while powerful enough for advanced traders.
Versatility:
Works perfectly on Gold (XAU/USD) and can be adapted for other highly volatile forex pairs.
Optimized for multiple timeframes (15 min, 30 min, 1 hour).
Who Should Use This Strategy?
New Traders:
Learn disciplined trading with built-in risk management and automated profit targets.
Experienced Traders:
Leverage its high accuracy and multi-layer confirmation for consistent performance in volatile markets.
Part-Time Traders:
Set alerts and trade efficiently without constantly watching charts.
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.
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 (Маша) и обучить как нейросеть чтобы она давала прогнозы по текущим картинкам. Суть: Индикатор отображает массовое подсознание лунатиков через НЛП языка графика, например биткоина, несогласованность трейдеров порождает шум, он убирается лунными циклами для постоянной точности = глобального манипулятора не существует. //Ссылка на телегу на графике - там все свежие примеры прогнозов, только для русскоязычных пользователей.//