المؤشرات والاستراتيجيات
EMA ivis Breakout StrategyEine bewährte Strategie kombiniert gleitende Durchschnitte (EMAs) mit einem Breakout-Filter, um nur bei klaren Markttrends zu handeln. Entwickelt habe ich diese für BTCUSD, funktioniert aber auch in anderen Assets.
Ausstiegsregeln:
Für den Stop-Loss: 1,5-fache ATR unterhalb/oberhalb des Einstiegskurses.
Für den Take-Profit: 2-fache ATR über/unter dem Einstiegspunkt
Zeit Filter:
Der Indikator liefert nur in der definierten Handelszeit Signale. Diese können SIe selbstständig in den Einstellungen verändern.
Die Strategie kann man bestens in 15min anwenden.
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
Świece bez knota (Marubozu) z alertamiZapraszam do korzystania! Kiedy pojawia sie czerwień sell a kiedy zielony buy.
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".
Custom Sell Signal IndicatorThis indicator generates a sell signal when the following conditions are met: #1: The 9-day moving average crosses below the 21-day moving average. #2: RSI is above 70. #3: MACD line crosses below the signal line.
Adjust the settings to fit your desired specifics.
Trend Battery [Phantom]Trend Battery
Visualize Trend Strength with a Dynamic EMA Power Gauge
OVERVIEW
The Trend Battery indicator offers a clear, visual representation of trend strength based on the alignment of multiple Exponential Moving Averages (EMAs). It assigns a color-coded score to each bar, helping traders quickly assess the prevailing trend's power and direction.
CONCEPT
• Trend Strength Using EMAs: The indicator analyzes the alignment of 20 EMAs (8 to 200 periods) to gauge trend strength. The more EMAs align, the stronger the trend.
• Gradient-Based Visualization: Scores are mapped to a color gradient, transitioning from green (bullish) to purple (bearish), providing an intuitive visual representation of trend momentum.
HOW IT WORKS
Trend Battery calculates 20 EMAs and evaluates their alignment. When EMAs align in a strong trend, the bar colors change (as displayed in battery color key on chart) displaying a spectrum of colors from bright green (strong uptrend) to deep purple (strong downtrend).
• Dynamic Bar Colors:
o Green hues: Strong bullish trends.
o Purple hues: Strong bearish trends.
o Red hues: Weaker trends or potential transitions.
FEATURES
• Dynamic Color Coding: Easy-to-read and instantly assess trend.
• Customizable Transparency: Adjust bar color opacity to your preference.
• Optional EMA Display: Toggle individual EMA lines on/off for additional context.
• Compact Battery View: Quick reference table displaying the gradient color mapping.
SETTINGS
• Transparency: Controls the opacity of bar colors.
• Show EMAs on Chart: Enables/disables plotting of EMA lines.
USAGE
• Identify trend strength and direction.
• Confirm trend reversals or continuations.
• Complement other indicators and strategies.
• Monitor multi-timeframe trends.
TRADE IDEAS:
• For larger timeframes purple hues can be used for accumulating and green hues for distribution.
• For smaller timeframes, color transitions could be a signal for trend reversal, or corrections.
• It is a good idea to use larger timeframes for overall trend directions, and smaller timeframes for entries.
LIMITATIONS
• Lagging Indicator: As the Trend Battery relies on Exponential Moving Averages (EMAs), it is inherently a lagging indicator. This means it reflects past price action and may not always provide timely signals for rapid market changes or sudden reversals.
• False Signals in Sideways Markets: In ranging or consolidating markets, the indicator may produce mixed signals (frequent color changes) as EMAs intertwine without a clear trend. This can lead to false interpretations if not considered alongside other market context indicators.
• Not a Standalone System: The Trend Battery is designed to be a visual aid and should not be used as the sole basis for trading decisions. It's most effective when combined with other technical analysis tools, such as oscillators, support/resistance levels, and fundamental analysis.
DISCLAIMER
Use the Trend Battery indicator in conjunction with other forms of analysis and risk management. Past performance is not indicative of future results.
Prior day and pre-market high/lowLevels for prior day and pre-market high/low.
Prior Day High: Solid Green Line
Pre-Market High: Dashed Green Line
Prior Day Low: Solid Red Line
Pre-Market Low: Dashed Red Line
No extra noise. Just the basics. Simple.
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.
BTC Day Trading Strategy//@version=5
indicator("BTC Day Trading Strategy", overlay=true)
// Inputs for Indicators
emaLength1 = input.int(9, title="EMA 1 Length")
emaLength2 = input.int(21, title="EMA 2 Length")
rsiperiod = input.int(14, title="RSI Period")
macdFast = input.int(12, title="MACD Fast Length")
macdSlow = input.int(26, title="MACD Slow Length")
macdSignal = input.int(9, title="MACD Signal Length")
// EMA Calculations
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)
// RSI Calculation
rsi = ta.rsi(close, rsiperiod)
// MACD Calculation
= ta.macd(close, macdFast, macdSlow, macdSignal)
// Assigning crossover and crossunder to variables for consistency
longCrossover = ta.crossover(ema1, ema2)
shortCrossunder = ta.crossunder(ema1, ema2)
macdCrossover = ta.crossover(macdLine, signalLine)
macdCrossunder = ta.crossunder(macdLine, signalLine)
// Conditions for Long Entry
longCondition = longCrossover and rsi > 40 and macdCrossover
if (longCondition)
label.new(bar_index, high, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white)
// Conditions for Short Entry
shortCondition = shortCrossunder and rsi < 35 and macdCrossunder
if (shortCondition)
label.new(bar_index, low, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white)
// Plot EMAs
plot(ema1, color=color.blue, title="EMA 9")
plot(ema2, color=color.orange, title="EMA 21")
// Alerts
alertcondition(longCondition, title="Long Entry Alert", message="BTCUSD: Señal de compra confirmada.")
alertcondition(shortCondition, title="Short Entry Alert", message="BTCUSD: Señal de venta confirmada.")
AI+VPS Strategy by Vijay Prasad AI+VPS by Vijay Prasad
Overview:
The "AI+VPS Strategy by Vijay Prasad " is an advanced trend-following trading strategy combining AI-powered VPS Divergence Strategy and WoW Trends methodology. It integrates the power of VPS , which identifies market volatility and trend strength, with RSI Divergence to detect potential price reversals. This strategy aims to provide accurate entry signals for both long and short positions, leveraging both trend momentum and divergence analysis for enhanced market predictions.
How It Works:
The strategy first checks if the WoW Trends indicator signals a change in trend (from bullish to bearish or vice versa).
It then applies the VPS condition to confirm volatility and trend strength.
If both conditions align (e.g., bullish trend, volatility breakout), a buy signal is generated. Conversely, if the conditions are bearish, a sell signal is triggered.
The system also analyzes RSI Divergence, using it to identify potential reversals and further confirm the trade direction.
Trade positions are managed with profit targets and automatic exit strategies.
"This strategy works best on shorter timeframes, like the 5-minute chart. For optimal results, use an ATR Multiplier of 2 and a VPS length of 8."
Strategy Logic:
WoW Trends + VPS Strategy : A combination of volatility-based trend conditions for more accurate entry signals.
VPS Divergence Strategy: Detects divergence between price and RSI to spot potential reversals, ensuring that trades are only taken when market conditions favor them.
cci superrrCCI (Commodity Channel Index), finansal piyasalarda aşırı alım veya aşırı satım seviyelerini belirlemek için kullanılan popüler bir teknik analiz göstergesidir. 500, 100 ve 200 periyotluk CCI ile işlem yapmak, farklı zaman dilimlerinde piyasa trendlerini daha iyi anlamaya yönelik bir stratejidir.
Scalping BTC Ottimizzato - Grafica Chiara---
Scalping BTC Optimized Strategy – Clear Visualization and Dynamic Risk Management
Overview:
The Scalping BTC Optimized Strategy is designed for high-frequency trading on Bitcoin using a 15-minute timeframe. It combines key technical indicators to maximize trading efficiency while maintaining clear visual cues and dynamic risk management.
Key Indicators Used:
1. EMA (Exponential Moving Averages)
- EMA Fast (9 periods): Tracks short-term price momentum.
- EMA Slow (21 periods): Identifies long-term trend direction.
- Purpose: EMA crossovers generate Long and Short signals.
2. RSI (Relative Strength Index)
- Length: 14 periods
- Overbought Level: 70
- Oversold Level: 30
- Purpose: Filters trades in extreme price conditions.
3. ADX (Average Directional Index)
- Length: 14 periods
- Smoothing: 14 periods
- Threshold: 20
- Purpose: Confirms if the market is trending strongly to avoid false signals.
4. ATR (Average True Range)
- Length: 14 periods
- Stop Loss Multiplier: 1.5x ATR
- Take Profit Multiplier: 2.0x ATR
- Purpose: Dynamically adjusts Stop Loss and Take Profit levels based on market volatility.
How the Strategy Works:
1. Long Entry:
- Condition: EMA Fast crosses above EMA Slow.
- Filter: RSI is below 70, ADX is above 20.
- Execution: Place Long order with ATR-based Stop Loss and Take Profit.
2. Short Entry:
- Condition: EMA Fast crosses below EMA Slow.
- Filter: RSI is above 30, ADX is above 20.
- Execution: Place Short order with ATR-based Stop Loss and Take Profit.
3. Exit Rules:
- Positions are automatically closed based on ATR thresholds.
- Manual Exit Trigger: RSI exceeding overbought or oversold levels.
Visual Representation on the Chart:
- EMA Lines: Clearly plotted and anchored to the candles.
- Trade Signals:
- Green Triangles (Long Entry).
- Red Triangles (Short Entry).
- Indicator Panels (Separate):
- RSI Panel: Tracks overbought or oversold zones.
- ADX Panel: Highlights trend strength.
- ATR Panel: Displays market volatility.
Advantages of the Strategy:
- Trend Alignment: EMA crossovers identify trend changes accurately.
- Dynamic Risk Management: ATR adjusts Stop Loss and Take Profit levels based on volatility.
- Momentum Validation: RSI prevents entering overbought or oversold zones.
- Trend Strength Filter: ADX ensures trades are executed in strong trending markets.
- Clear Visualization: Organized layout with distinct panels and chart signals.
Alerts:
Automatic alerts for Long and Short signals ensure you never miss a trading opportunity.
Recommended Settings:
- Timeframe: 15-minute chart
- ATR Multiplier: 1.0–2.5
- ADX Threshold: 20–25
- RSI Length: 7–14
This strategy provides a balanced approach to scalping, combining trend-following signals, momentum filtering, and dynamic risk management. Its clean and intuitive visualization makes it ideal for both manual traders and automated setups.
---
Gold Trading Strategy (London & New York Sessions)Gold Trading Strategy. Reading candles for past 5 years
Combined ADX, RSI, and Stochastic Indicator
이 지표는 ADX (Average Directional Index), RSI (Relative Strength Index), 및 Stochastic Oscillator를 결합한 기술적 분석 도구입니다. 각 구성 요소는 시장 추세와 모멘텀을 분석하기 위해 사용됩니다.
ADX는 영역으로 표시하고 -DI만 표시해서 하락에 대한 추세와 힘을 표시했고 거기에 RSI가 40~50사이를 기어다닐때 스토캐스틱 선이 끝에 있으면 무조건 반전된다는 것을 보면서 추세를 보려고 만든 것
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))
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')
Supply and Demand with Stochastic DivergenceI've developed a Pine Script strategy that combines the power of supply and demand zone analysis with divergence detection using the Stochastic RSI. This script identifies potential trading opportunities based on the confluence of these two powerful technical analysis concepts.
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')
CobynRushs PPO/ADX Pinch StrategyThis 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.