GC-fin-dataIts financial data indicator, Helps to find changes in EPS, future EPS, PE, Revenue and net income along with price chart.
Индикаторы и стратегии
Fast Stochastic 60.10.1periodK Length: Set to 60 to represent the %K lookback period of 60.
smoothK: Set to 10, applying a 10-period SMA to smooth the %K line.
periodD: Set to 1, leaving the %D line unsmoothed (raw).
Plot Titles: Updated the short titles and descriptions to reflect "Fast Stochastic 60.10.1".
PPO/ADX Pinch Strategy CobyTweak 2 This tool can help analyze the momentum and trend strength of an asset to identify:
Periods of Strong Trends: Indicated by a high ADX.
Potential Reversals or Breakouts: Highlighted during "pinch zones."
Momentum Shifts: Tracked using the PPO Line, Signal Line, and histogram.
The script uses the asset's closing price to calculate all indicators, providing actionable insights for both short-term and long-term trading strategies.\This Pine Script plots two technical indicators, the Percentage Price Oscillator (PPO) and the Average Directional Index (ADX), for the underlying asset (e.g., stock, forex pair, or cryptocurrency). It helps identify periods of trend strength and potential price "pinch" zones, which can signal consolidations or reversals.
Holiday Cheer 🎄Features:
Snowflakes Animation: Creates a "falling snow" effect with small white circles drifting downwards.
Festive Candlesticks: Green for up candles, red for down candles, matching holiday vibes.
Greeting Label: Displays a cheerful holiday message on the chart
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
Pattern & Percent Pro"Candle Percentage Change with Patterns"
This might be one of the most powerful indicators available in TradingView for complete market trend analysis, which includes tracking the price and specifying the most important candlestick patterns. It has been designed for traders who want in-depth insight into market dynamics through visual hints, percentage-based calculations, and flexible settings.
Key Features:
Percentage Change Analysis:
Provides percentage change labels for every candle.
Label placement has three modes: all labels on top, alternate placement, or top for green candles and bottom for red candles.
Labels are user-configurable with custom colors for positive and negative changes.
Cumulative Change Tracking:
Calculates and displays cumulative percentage change over a user-specified number of candles.
Ideal for analyzing short-term trends or larger market movements.
Candlestick Pattern Detection:
Automatically identifies and labels key patterns such as:
Doji (including Dragonfly and Gravestone variants).
Hammer (standard and inverted).
Shooting Star.
Bullish and Bearish Marubozu.
Assists traders in the immediate identification of possible reversals or continuation patterns.
Heatmap Visualization:
Plots a color-coded background to show the magnitude of percentage changes.
Dynamic shades of green for positive changes and red for negative changes.
Heatmap can be enabled or disabled at will.
Candle Highlighting:
Highlights candles containing significant percentage changes based on user-set levels of threshold.
Provides a visual cue toward critical market movements.
High/Low Alert System:
Optional alerts when price travels over or below predefined boundaries
Custom text and background colors for high and low alerts
Audio and visual notifications immediately update you on the presence of significant price action
Trend Indicator:
Follows general market trend by using a weighted moving average
Arrows are displayed upward or downward for fast and easy visual identification
RSI Integration:
Enables the filtering of displayed percentage change labels based on RSI conditions, such as overbought or oversold levels.
Helps to provide more granular insights while removing some noise from the data.
Customizable UI:
Some features that can be turned on/off include heatmap, highlights, pattern detection, and RSI filters.
Adjustable label lifetime, cumulative change length, and warning/threshold levels.
Intuitive settings make it easy to adapt the indicator to any trading strategy.
DotThis script allows users to mark a specific candlestick for multi-timeframe analysis or observation. It is designed to facilitate better tracking and analysis of selected areas across different timeframes.
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))
SCN - Contagem de CandlesSCN is used to number the candles, from the current candle to the previous candles.
Supertrend (Close Longs Only)Strategy Description: Supertrend (Close Longs Only)
This strategy uses the Supertrend indicator to manage long positions in the market. The Supertrend is calculated based on the Average True Range (ATR) and a user-defined multiplier (factor) to determine trend direction.
Purpose: The strategy focuses solely on exiting long trades when the trend changes to a downtrend, without taking any short positions.
How It Works:
Uptrend Detection: When the Supertrend is green, it indicates an uptrend suitable for long trades.
Downtrend Detection: When the Supertrend switches to red, it signals the end of the uptrend. At this point, an alert is triggered to close long positions.
Key Features:
Highly configurable with adjustable ATR length and multiplier for sensitivity.
Alerts are designed to notify the user when to exit long positions, ensuring timely actions.
This strategy is ideal for traders who prefer a conservative approach, focusing on managing long entries without engaging in short trades.
Triple Relative Strength IndexMulti-timeframe RSI indicator.
The RSI indicators provided by TradingView provide only one indicator, but they are completed as one indicator to enable simultaneous analysis of RSIs in different time zones.
The RSI at the top is able to see larger movements than the current time zone, and the RSI at the bottom is able to see smaller time zone movements.
Example of use)
If the large time zone RSI sits at No. 50, it could enter a buy position if the current time zone or small time zone RSI supports at 30, or breaks above 30, with an uptrend movement.
Future plan)
1. Improve indicators using RSI indicators based on volume
2. Improve to set automatically without manually specifying time zones
We look forward to your comments and comments on this idea.
==============================================================================
멀티 타임프레임 RSI지표입니다.
트레이딩뷰에서 제공하는 RSI지표는 한개의 지표만 제공하지만, 다양한 시간대의 RSI를 동시에 분석할 수 있도록 하나의 지표로 완성하였습니다.
맨 위에 있는 RSI는 현재 시간대보다 큰 움직임을 확인할 수 있고, 맨 아래 RSI는 작은 시간대 움직임을 확인할 수 있습니다.
사용예시)
큰 시간대 RSI가 50위에 위치한 경우 상승추세 움직임으로 현재 시간대나 작은 시간대의 RSI가 30에서 지지하거나 30을 상향돌파할 경우 매수 포지션에 진입할 수 있습니다.
향후계획)
1. 거래량 기반 RSI지표를 활용한 지표 개선
2. 시간대를 수동으로 지정하지 않고 자동으로 설정되도록 개선
이 아이디어에 대한 여러분의 댓글과 의견을 기다리겠습니다.
Multiple Swing High/Low with SLExplanation:
Swing Highs and Lows:
The script detects swing highs and swing lows using ta.pivothigh() and ta.pivotlow() on a 3-minute basis.
Each swing high is drawn with a green line, and each swing low is drawn with a red line.
Stop-Loss (SL) Lines:
For each swing high, a stop-loss line is drawn 15 points below the swing high.
For each swing low, a stop-loss line is drawn 15 points above the swing low.
The SL line for swing highs is drawn in red, and the SL line for swing lows is drawn in blue.
Labels for Swing High/Low and SL:
Labels with text like "Swing High" or "Swing Low" are added at the swing points, and SL labels are added at the stop-loss levels.
These labels can be toggled on/off using the showSwingTags input.
Line Extension:
The line.set_x2() function ensures that the swing lines and SL lines are extended to the current bar as price moves.
Key Changes:
Removed Arrays: Instead of using arrays to store lines and labels, we now handle each line and label individually. This avoids the issue where complex types (line and label) were being stored in arrays, which Pine Script doesn't support directly.
Dynamic Creation: New lines and labels are dynamically created as new swings occur, and they stay on the chart until the script is removed or the chart is reloaded.
Simple y bien// © GainzAlgo
//@version=5
indicator('GainzAlgo Pro', overlay=true, max_labels_count=500)
candle_stability_index_param = input.float(0.5, 'Candle Stability Index', 0, 1, step=0.1, group='Technical', tooltip='Candle Stability Index measures the ratio between the body and the wicks of a candle. Higher - more stable.')
rsi_index_param = input.int(50, 'RSI Index', 0, 100, group='Technical', tooltip='RSI Index measures how overbought/oversold is the market. Higher - more overbought/oversold.')
candle_delta_length_param = input.int(5, 'Candle Delta Length', 3, group='Technical', tooltip='Candle Delta Length measures the period over how many candles the price increased/decreased. Higher - longer period.')
disable_repeating_signals_param = input.bool(false, 'Disable Repeating Signals', group='Technical', 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('normal', '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)
bullish_engulfing = close < open and close > open and close > open
rsi_below = rsi < rsi_index_param
decrease_over = close < close
bull = bullish_engulfing and stable_candle and rsi_below and decrease_over and barstate.isconfirmed
else if label_style == 'triangle'
label.new(bull ? bar_index : na, 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(bull ? bar_index : na, low, 'BUY', yloc=yloc.belowbar, color=buy_label_color, style=label.style_arrowup, textcolor=TRANSPARENT, size=label_size)
last_signal := 'buy'
if bear and (disable_repeating_signals_param ? (last_signal != 'sell' ? true : na) : true)
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)
last_signal := 'sell'
alertcondition(bull, 'BUY Signals', 'New signal: BUY')
alertcondition(bear, 'SELL Signals', 'New signal: SELL')
Trend Volume with Buy/Sell SignalsYou can customize the emaLength and volMultiplier to suit your trading style.
7 Exponential Moving Averages with ATR & Volume VolatilityThis indicator features 7 EMA lines based on Fibonacci sequences, along with rising ATR and volume data, highlighting increased volatility by changing the background color of candlesticks.
It aims to assist users in tracking price movements while showing whether volatility increases during EMA crossovers.
Users can easily customize the indicator by adjusting parameters such as EMA, ATR, and volume lengths, as well as colors, in the settings menu to suit their personal preferences.
EMA X OverA straightforward indicator that plots two exponential moving averages (EMAs). Upon a crossover between the two EMAs, the chart will display a marker.
Furthermore, when the price closes above or below the long EMA, the chart will also indicate this occurrence with a marker.
M2 Global Liquidity Index - Time-Shift - KHM2 Global Liquidity Index - Enhanced Time-Shift Indicator
Based on original work by @Mik3Christ3ns3n
Enhanced with advanced time-shift functionality and overlay capabilities.
Description:
This indicator tracks and visualizes the global M2 money supply from five major economies, allowing precise time-shift analysis for correlation studies. All values are converted to USD in real-time and aggregated to provide a comprehensive view of global liquidity conditions.
Key Features:
- Advanced time-shift capability (-1000 to +1000 days) with shape preservation
- Real-time currency conversion to USD
- Overlay functionality with main chart
- Right-scale display for better comparison
- Full historical data preservation during time shifts
Components Tracked:
- US M2 Money Supply (USM2)
- China M2 Money Supply (CNM2)
- Eurozone M2 Money Supply (EUM2)
- Japan M2 Money Supply (JPM2)
- UK M2 Money Supply (GBM2)
Primary Use Cases:
1. Correlation Analysis:
- Compare global liquidity trends with asset prices
- Identify leading/lagging relationships through time-shift
- Study monetary policy impacts across different time periods
2. Market Analysis:
- Track global liquidity conditions
- Monitor central bank policy effects
- Identify potential macro trend changes
Settings:
- Time Offset: Shift the M2 data backwards or forwards (-1000 to +1000 days)
- Positive values: Move M2 data into the future
- Negative values: Move M2 data into the past
- Zero: Current alignment
Technical Notes:
- Data updates follow central banks' M2 publication schedules
- All currency conversions performed in real-time
- Historical shape preservation during time-shifts
- Enhanced data consistency through lookahead mechanism
Credits:
Original concept and base code by @Mik3Christ3ns3n
Enhanced version includes advanced time-shift capabilities and shape preservation
License:
Pine Script™ code is subject to the terms of the Mozilla Public License 2.0
#M2 #GlobalLiquidity #MoneySupply #Macro #CentralBanks #MonetaryPolicy #TimeShift #Correlation #TradingIndicator #MacroAnalysis #LiquidityAnalysis #MarketIndicator
4 MAsThe 4 MAs indicator is a moving average crossover tool designed to identify market trends and provide potential entry and exit signals. By plotting four simple moving averages (SMAs) of different periods, this indicator helps traders understand both short-term and long-term market dynamics. It is particularly suited for trend-following strategies and can be applied across various timeframes, such as daily, hourly, or intraday charts.
Features:
1. Moving Average Visualization:
- Short-term Moving Averages (MA 5 and MA 10): Highlight short-term market fluctuations.
- Mid-term Moving Average (MA 15): Serves as a reference for medium-term trends.
- Long-term Moving Average (MA 30): Represents the broader market trend.
2. Trend Signal Detection:
- Bullish Signal: When the 5-period moving average crosses above the 30-period moving average (golden cross), a yellow upward arrow is displayed below the price bar, indicating a potential uptrend.
- Bearish Signal: When the 5-period moving average crosses below the 30-period moving average (death cross), a red downward arrow is displayed above the price bar, signaling a potential downtrend.
Key Advantages:
- Multi-timeframe Versatility: Works well on various timeframes, making it suitable for both short-term scalping and long-term trend analysis.
- Simple Visualization: Clear signals and trend identification through color-coded moving averages and signal arrows.
- Customizable: The SMA periods can be adjusted to align with the trader's preferred strategy or market conditions.
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.
3PA RULES+ EMA + DI Crossover1st set
Ema cross of 50 and 200
2nd set
Give buy signal when price cross above buy alert candle and sell signal when price cross below sell alert candle
Buy alert candle:
Current candle high > previous candle high
Current candle low > previous candle low
Current candle close > previous candle high
Sell alert candle :
Current candle high < previous candle high
Current candle low < previous candle low
Current candle close < previous candle low
3rd set
DI crossover