NY Sessions Boxes (Live Drawing)//@version=5
indicator("NY Sessions Boxes (Live Drawing)", overlay=true)
ny_tz = "America/New_York"
t = time(timeframe.period, ny_tz)
hour_ny = hour(t)
minute_ny = minute(t)
// سشن ۱: 02:00 – 05:00
session1_active = (hour_ny >= 2 and hour_ny < 5)
session1_start = (hour_ny == 2 and minute_ny == 0)
// سشن ۲: 09:30 – 11:00
session2_active = ((hour_ny == 9 and minute_ny >= 30) or (hour_ny > 9 and hour_ny < 11))
session2_start = (hour_ny == 9 and minute_ny == 30)
var box box1 = na
var float hi1 = na
var float lo1 = na
if session1_start
hi1 := high
lo1 := low
box1 := box.new(left = time, right = time, top = high, bottom = low, bgcolor=color.new(color.blue, 85), border_color=color.blue)
if session1_active and not na(box1)
hi1 := math.max(hi1, high)
lo1 := math.min(lo1, low)
box.set_right(box1, time)
box.set_top(box1, hi1)
box.set_bottom(box1, lo1)
if not session1_active and not na(box1)
box1 := na
hi1 := na
lo1 := na
var box box2 = na
var float hi2 = na
var float lo2 = na
if session2_start
hi2 := high
lo2 := low
box2 := box.new(left = time, right = time, top = high, bottom = low, bgcolor=color.new(color.purple, 85), border_color=color.purple)
if session2_active and not na(box2)
hi2 := math.max(hi2, high)
lo2 := math.min(lo2, low)
box.set_right(box2, time)
box.set_top(box2, hi2)
box.set_bottom(box2, lo2)
if not session2_active and not na(box2)
box2 := na
hi2 := na
lo2 := na
Indicateurs et stratégies
Universal Webhook Connector Demo.This strategy demonstrates how to generate JSON alerts from TradingView for multiple trading platforms.
Users can select platform_name (MT5, TradeLocker, DxTrade, cTrader, etc).
Alerts are constructed in JSON format for webhook execution.
Smart Multi-Confirm Reversal DetectorHow the Smart Multi-Confirm Reversal Detector Works
The indicator works by analyzing candlestick patterns, trend, and technical confirmations and then scoring each bar to determine the strength of a potential reversal. Here’s the step-by-step logic:
Step 1: Analyze Candlestick Patterns
For each new candle, the indicator checks if any of the selected patterns occur:
Wick Reversal (Long Lower Wick):
Looks for candles with a small body and a long lower shadow.
Indicates buying pressure (potential bullish reversal).
Inverted Wick (Long Upper Wick):
Looks for candles with a small body and a long upper shadow.
Indicates selling pressure (potential bearish reversal).
Body Engulf:
The current candle completely “engulfs” the previous candle.
Signals a strong change in momentum.
Tweezer Patterns:
Two consecutive candles with almost identical highs or lows.
Suggests a potential reversal zone.
3-Bar Pattern:
Three consecutive bullish or bearish candles in a row.
Shows strong momentum continuation or exhaustion, used to confirm reversal.
Each pattern can be turned on/off by the user. If a pattern is detected, it contributes points to the overall signal score.
Step 2: Confirm Trend Direction
The indicator checks EMA trend alignment:
Fast EMA vs Slow EMA:
Fast EMA above Slow EMA → bullish trend.
Fast EMA below Slow EMA → bearish trend.
Optional Higher Timeframe EMA (HTF) Alignment:
Checks if the trend on a higher timeframe matches the current trend.
Adds extra weight to the signal if alignment is true.
This ensures the signal goes in the direction of the prevailing trend, reducing false signals.
Step 3: Check Technical Confirmations
Optional filters increase reliability:
ADX (Average Directional Index):
Measures the strength of the current trend.
Only strong trends contribute to the score.
RSI (Relative Strength Index):
Bullish confirmation: RSI is oversold.
Bearish confirmation: RSI is overbought.
Volume Spike:
Compares current volume to the average volume.
High volume validates the signal’s momentum.
Body Momentum:
Compares current candle’s body size to its average.
Larger than average body indicates stronger momentum.
Each of these confirmations can be enabled/disabled and has a weight in the scoring system.
Step 4: Calculate Score
Each pattern and confirmation has a user-defined weight (0–100).
The indicator sums the active weights that pass conditions and normalizes to 100.
Example:
Wick Reversal detected → 30 points
Trend EMA confirmed → 15 points
ADX confirmed → 10 points
Score = 55/100 → may or may not trigger a signal depending on threshold.
Score Threshold:
Only bars above the user-defined threshold are considered a confirmed signal.
Bars above a lower “label threshold” still show a label, even if not strong enough for alerts.
Step 5: Visualize Signals
Bullish Signals: Green triangle below the candle.
Bearish Signals: Red triangle above the candle.
Labels: Show the type of pattern and the score.
Purpose: Quickly identify potential reversals and assess their strength visually.
Step 6: Optional Alerts
Fixed alert messages can be enabled for confirmed bullish or bearish signals.
Alerts do not recommend trades; they just notify you of pattern confirmations.
Complies with TradingView’s policy for safe alert use.
Step 7: Weighted Decision
The final decision is not binary.
Instead, the indicator combines multiple signals into a score, so stronger signals are more reliable.
This reduces false positives and gives traders a professional, multi-confirmation approach to detect potential reversals.
Distance from 50 SMA in ADR TermsIndicator produces a multiple of ADR% from the 50-day simple moving average to determine is a stock or etf is extended.
Customizable EMA 10/20/50/100Customizable EMA indicator. Fully adjustable with inputs so you can change EMA lengths and colors directly from the indicator settings panel.
gfg//@version=5
indicator("Lux Gainz Style Algo", overlay=true)
// User Inputs
fastLen = input.int(12, "Fast MA Length", minval=1)
slowLen = input.int(26, "Slow MA Length", minval=1)
rsiLen = input.int(14, "RSI Length", minval=1)
rsiOverbought = input.float(70, "RSI Overbought Level")
rsiOversold = input.float(30, "RSI Oversold Level")
sensitivity = input.float(1.5, "Signal Sensitivity", minval=0.1, step=0.1)
// Moving Averages for Trend
fastMA = ta.ema(close, fastLen)
slowMA = ta.ema(close, slowLen)
// RSI for Momentum
rsi = ta.rsi(close, rsiLen)
// Trend Conditions
bullTrend = fastMA > slowMA
bearTrend = fastMA < slowMA
// Confirmation Signals
longSignal = ta.crossover(fastMA, slowMA) and rsi < rsiOversold * sensitivity
shortSignal = ta.crossunder(fastMA, slowMA) and rsi > rsiOverbought / sensitivity
// Plot Moving Averages
plot(fastMA, color=color.new(color.green, 0), title="Fast EMA")
plot(slowMA, color=color.new(color.red, 0), title="Slow EMA")
// Candle Coloring for Trend Strength
barcolor(bullTrend ? color.new(color.green, 70) : bearTrend ? color.new(color.red, 70) : color.gray)
// Plot Buy/Sell Signals
plotshape(longSignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, size=size.small)
plotshape(shortSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small)
// Alerts
alertcondition(longSignal, title="Long Entry", message="Lux Gainz Algo: Long Entry Signal")
alertcondition(shortSignal, title="Short Entry", message="Lux Gainz Algo: Short Entry Signal")
Cumulative VWAPThis indicator plots the cumulative VWAP from the first bar loaded on the chart. Unlike the traditional daily VWAP that resets at the start of each trading session, this version continuously aggregates price and volume over the full visible chart history.
Trend Fibo 1.618FIBONACCI TRENDLINE BREAKOUT SYSTEM
Advanced indicator combining dynamic trendlines with ZigZag-based Fibonacci projections for precise entry and exit points.
KEY FEATURES:
- Dynamic trendline detection using pivot analysis
- ZigZag-based Fibonacci level calculations
- Multiple take profit targets (1.618, 2.618, 3.618, 4.618)
- Automatic breakout signal generation
- Historical price level visualization
METHODOLOGY:
Detects trendline breakouts and automatically draws Fibonacci retracements/extensions based on recent ZigZag swing points. Provides clear entry zones and multiple profit targets.
USAGE:
Best suited for swing trading on higher timeframes (4H-Daily). Combine with trend analysis for optimal results.
DISCLAIMER: Educational purposes only. Past performance doesn't guarantee future results.
EMA20 Entry with Lei Teacher Strategy_Trend_Follow_RuleEMA20 Entry with Lei Teacher Strategy Trend Follow Entry Alert
Hammer, Engulfing & Star Candles aksh//@version=5
indicator("Hammer, Engulfing & Star Candles ", overlay=true, max_bars_back=500)
// ===== Inputs =====
showHammer = input.bool(true, "Show Hammer")
showShootingStar = input.bool(true, "Show Shooting Star")
showEngulfing = input.bool(true, "Show Bull/Bear Engulfing")
showMorningStar = input.bool(true, "Show Morning Star (3-candle)")
showEveningStar = input.bool(true, "Show Evening Star (3-candle)")
// Sensitivity / thresholds
wickToBodyMin = input.float(2.5, "Min Wick:Body (Hammer/Star)", minval=0.5, step=0.1)
maxOppWickToBody = input.float(0.7, "Max Opp Wick:Body (Hammer/Star)", minval=0.0, step=0.1)
closeInTopPct = input.float(0.35, "Hammer: close in top % of range", minval=0.0, maxval=1.0, step=0.05)
closeInBotPct = input.float(0.35, "Star: close in bottom % of range", minval=0.0, maxval=1.0, step=0.05)
minBodyFracRange = input.float(0.15, "Min body as % of range (avoid doji)", minval=0.0, maxval=1.0, step=0.01)
engulfRequireBodyPct = input.float(1.00, "Engulfing: body >= prev body x", minval=0.5, maxval=3.0, step=0.05)
engulfAllowWicks = input.bool(false, "Engulfing: allow wick engulf if bodies equal")
starMiddleBodyMaxPct = input.float(0.40, "Morning/Evening Star: middle body <= % of avg body", minval=0.05, maxval=1.0, step=0.05)
starCloseRetracePct = input.float(0.50, "Morning/Evening Star: final close retraces >= % of first body", minval=0.25, maxval=1.0, step=0.05)
// ===== Helpers =====
body(c,o) => math.abs(c - o)
upperWick(h,o,c) => h - math.max(o, c)
lowerWick(l,o,c) => math.min(o, c) - l
rng(h,l) => h - l
isBull(o,c) => c > o
isBear(o,c) => o > c
midpoint(h,l) => (h + l) * 0.5
b = body(close, open)
uw = upperWick(high, open, close)
lw = lowerWick(low, open, close)
rg = rng(high, low)
prev_o = open , prev_c = close , prev_h = high , prev_l = low
prev_b = body(prev_c, prev_o)
// avoid divide-by-zero
safe(val) => nz(val, 0.0000001)
// ===== Single-candle patterns =====
// Hammer: long lower wick, small/limited upper wick, decent body, close toward top of range
hammer = showHammer and rg > 0 and b/rg >= minBodyFracRange and
(lw / safe(b) >= wickToBodyMin) and (uw / safe(b) <= maxOppWickToBody) and
(close >= (low + (1.0 - closeInTopPct) * rg))
// Shooting Star: long upper wick, small/limited lower wick, close toward bottom
shootingStar = showShootingStar and rg > 0 and b/rg >= minBodyFracRange and
(uw / safe(b) >= wickToBodyMin) and (lw / safe(b) <= maxOppWickToBody) and
(close <= (low + closeInBotPct * rg))
// ===== Two-candle patterns: Engulfing =====
// Bullish engulfing: previous bearish, current bullish, current body engulfs previous body
bullEngulf = showEngulfing and isBear(prev_o, prev_c) and isBull(open, close) and
(open <= prev_c and close >= prev_o) and (b >= engulfRequireBodyPct * prev_b or (engulfAllowWicks and high >= prev_h and low <= prev_l))
// Bearish engulfing: previous bullish, current bearish, current body engulfs previous body
bearEngulf = showEngulfing and isBull(prev_o, prev_c) and isBear(open, close) and
(open >= prev_c and close <= prev_o) and (b >= engulfRequireBodyPct * prev_b or (engulfAllowWicks and high >= prev_h and low <= prev_l))
// ===== Three-candle patterns: Morning/Evening Star =====
// Morning Star: strong bearish candle, small middle candle (gap or small body), strong bullish close retracing into first body
o2 = open , c2 = close
b2 = body(c2, o2)
avgBody = ta.sma(body(close, open), 20)
smallMiddle = body(close , open ) <= starMiddleBodyMaxPct * nz(avgBody, prev_b)
firstBear = isBear(o2, c2)
lastBull = isBull(open, close)
retrBull = lastBull and (close >= (c2 + starCloseRetracePct * (o2 - c2)))
morningStar = showMorningStar and firstBear and smallMiddle and retrBull
// Evening Star: mirror
firstBull = isBull(o2, c2)
lastBear = isBear(open, close)
retrBear = lastBear and (close <= (c2 - starCloseRetracePct * (c2 - o2)))
eveningStar = showEveningStar and firstBull and smallMiddle and retrBear
// ===== Plotting =====
plotshape(hammer, title="Hammer", style=shape.labelup, location=location.belowbar, text="🔨 Hammer", size=size.tiny, color=color.new(color.lime, 0), textcolor=color.black)
plotshape(shootingStar, title="Shooting Star", style=shape.labeldown, location=location.abovebar, text="⭐ Star", size=size.tiny, color=color.new(color.orange, 0), textcolor=color.black)
plotshape(bullEngulf, title="Bull Engulfing", style=shape.labelup, location=location.belowbar, text="🟢 Engulf", size=size.tiny, color=color.new(color.teal, 0), textcolor=color.black)
plotshape(bearEngulf, title="Bear Engulfing", style=shape.labeldown, location=location.abovebar, text="🔴 Engulf", size=size.tiny, color=color.new(color.red, 0), textcolor=color.white)
plotshape(morningStar, title="Morning Star", style=shape.labelup, location=location.belowbar, text="🌅 Morning", size=size.tiny, color=color.new(color.aqua, 0), textcolor=color.black)
plotshape(eveningStar, title="Evening Star", style=shape.labeldown, location=location.abovebar, text="🌆 Evening", size=size.tiny, color=color.new(color.purple, 0), textcolor=color.white)
// Optional: color bars when patterns occur
barcolor(hammer ? color.new(color.lime, 60) : na)
barcolor(shootingStar ? color.new(color.orange, 60) : na)
barcolor(bullEngulf ? color.new(color.teal, 70) : na)
barcolor(bearEngulf ? color.new(color.red, 70) : na)
barcolor(morningStar ? color.new(color.aqua, 70) : na)
barcolor(eveningStar ? color.new(color.purple, 70) : na)
// ===== Alerts =====
alertcondition(hammer, "Hammer", "Hammer detected")
alertcondition(shootingStar, "Shooting Star", "Shooting Star detected")
alertcondition(bullEngulf, "Bullish Engulfing","Bullish Engulfing detected")
alertcondition(bearEngulf, "Bearish Engulfing","Bearish Engulfing detected")
alertcondition(morningStar, "Morning Star", "Morning Star detected (3-candle)")
alertcondition(eveningStar, "Evening Star", "Evening Star detected (3-candle)")
// ===== Hints (toggle in the Style tab if labels feel too crowded) =====
// You can adjust thresholds to match your market/timeframe.
// Common tweaks: increase wickToBodyMin for stricter hammers/stars; increase minBodyFracRange to avoid doji;
// require stronger retrace in star patterns by raising starCloseRetracePct.
SMA MAD SuperTrend | OquantThe SMA MAD SuperTrend | Oquant is an trend-following indicator designed to help traders identify potential trend directions and reversals using a unique combination of a Simple Moving Average (SMA), Mean Absolute Deviation (MAD), and a SuperTrend mechanism. This script aims to provide clear visual signals for trend entries and exits, making it suitable for traders looking to capture trends.
This indicator innovatively combines the smoothing properties of an SMA with the volatility-adaptive qualities of MAD to create dynamic SuperTrend bands. Unlike traditional SuperTrend indicators that rely on Average True Range (ATR) for volatility, this script uses Mean Absolute Deviation(MAD) to measure the average absolute deviation from the mean price, providing a different perspective on price volatility. The result is a SuperTrend system that adapts to market conditions with a focus on price deviation, offering a unique tool for trend detection.
Components and Calculations
Simple Moving Average (SMA):
The SMA is a widely used indicator that calculates the average of a specified number of closing prices. It smooths price data to identify the overall trend direction. In this script, the SMA serves as the baseline for calculating dynamic upper and lower bands.
Mean Absolute Deviation (MAD):
MAD measures the average absolute deviation of the price from its mean. It quantifies volatility by calculating how far prices deviate from the mean price, offering an alternative to ATR.
SuperTrend Mechanism:
This SuperTrend indicator generates dynamic upper and lower bands around the Simple Moving Average (SMA) using mean absolute deviation as measure of volatility.
It tracks trend direction by comparing the close price to the bands:
If the price crosses above the upper band, the trend turns bullish, and the SuperTrend follows the lower band.
If the price crosses below the lower band, the trend turns bearish, and the SuperTrend follows the upper band.
The bands adjust based on their previous values, updating only when the price crosses a band or the band shifts in the correct direction, reducing false signals and ensuring stable trend detection.
How to Use the Indicator
Trend Signals:
Green Line: Indicates a bullish trend (price above the SuperTrend line).
Purple Line: Indicates a bearish trend (price below the SuperTrend line).
Bar and Candle Coloring: Bars and candles are colored green for bullish trends and purple for bearish trends, making it easy to visualize trend direction.
Filled Areas: The area between the price and the SuperTrend line is filled with transparent colors (green for bullish, purple for bearish) to highlight trend.
Inputs:
Source: Choose the price data for calculations.
SMA Length: Adjust the period for the SMA. Longer periods smooth the trend further.
MAD Length: Set the period for MAD calculation. Shorter periods make the MAD more sensitive.
Factor: Control the distance of the SuperTrend bands from the SMA. Higher values widen the bands, reducing sensitivity to price fluctuations.
Alerts:
The script includes alert conditions for trend changes:
SMA MAD SuperTrend Long: Triggered when the trend turns bullish.
SMA MAD SuperTrend Short: Triggered when the trend turns bearish.
Set up alerts in TradingView to receive notifications for these conditions.
Why Use This Script?
The SMA MAD SuperTrend | Oquant offers a fresh take on trend-following by integrating SMA as baseline and MAD for volatility measurement, providing an alternative to ATR-based SuperTrend indicators. Its clear visual signals, customizable inputs, and alert conditions make it versatile for traders of all levels.
⚠️ Disclaimer: This indicator is intended for educational and informational purposes only. Trading/investing involves risk, and past performance does not guarantee future results. Always test and evaluate indicators/strategies before applying them in live markets. Use at your own risk.
Jipi QT (15m/5m/1m)indicateur de jipi pour délimiter les trimestres sur les TF de 15min, 5 min et 1min
MACD Aspray Hybrid Bars (teal/red) = raw momentum (Aspray Histogram).
Teal line = smooth curve of the histogram (Aspray Line).
Orange line = 9-EMA of that line (new signal).
Zero line for reference.
Friday Candle FilterTo check the Friday movements and Closings.This Gives the monthly resistances and the supports.
Gamma Blast StrategyGamma Blast Strategy used for quick 2-5 ticks on Buys, but on a sideways market can get up to 15-20 ticks.
RSI Divergence Indicator with Strength and LabelsHere's a complete Pine Script (version 5) for a TradingView indicator that detects and plots bullish and bearish RSI divergences. This is based on a proven method that tracks price and RSI swings while RSI is in oversold/overbought territories, then checks for mismatched highs/lows within a configurable bar distance.
Moon Scalper v3 + VSAMoon Scalper v3 is a high-precision scalping indicator optimized for the 15-minute chart. It delivers clean buy/sell signals with TP1 (1:1 risk-reward) exits using layered confirmations:
• **Volatility Bands** — SMA + multiplier detect expansion zones
• **EMA Filter (200)** — ensures trades align with trend
• **RSI Range Filter** — avoids extreme overbought/oversold traps (buy: 52–62, sell: 38–48)
• **Volume Spike Filter** — filters for institutional activity (vol > 1.4×SMA)
• **VSA Confirmation** — requires wide-spread, high-volume bars with reclaim (volume × 1.4, spread × 1.5, reclaim 50%)
**Usage Notes:**
Best used on 15m timeframe for liquid pairs (e.g., BTCUSDT, ETHUSDT). Signals appear as “BUY” / “SELL” labels on chart. Defaults yield high TP1 hit rate; use only during active sessions (e.g., London/NY) for best accuracy.
**Disclaimer:**
This indicator is for educational purposes only. Past performance is not a guarantee of future results. Always backtest before live trading and manage risk responsibly.
Impact Score (ATR% × RVOL)Calculates Impact Score (ATR% × RVOL). This number helps determine if a movement in price is a "thin drop" meaning the drop had relatively low volume and is likely to bounce back, or if it's heavy drop, meaning that it had high volume and less likely to rebound as soon e.g., results from earnings report.
Block-Based Trend Breakout (YTK/DTK) – v1📌 Overview
Block Trend Breakout (YTK/DTK) is a lightweight, rule-based indicator that detects potential trend reversals or volatility bursts by tracking breakouts of key structural support/resistance levels — derived from block-wise trend patterns.
The logic is simple yet effective: if a trend has been confirmed across multiple blocks (custom-length bar groups), and the price breaks its own structural boundary, a potential reversal or volatility signal is triggered.
🟥 YTK (Uptrend Breakdown) → Price breaks below the lowest low of the most recent block in an uptrend.
🟩 DTK (Downtrend Breakout) → Price breaks above the highest high of the most recent block in a downtrend.
🔍 How It Works
Block Construction: User-defined bar groups (e.g., 6 bars on a 4H chart = 24H blocks).
Trend Validation: At least N consecutive blocks must show higher highs/lows (uptrend) or lower highs/lows (downtrend).
Breakout Test: If the current bar violates the structural limit (MR block high/low), the corresponding signal is plotted.
📉 This logic identifies weakening trends or failed momentum, often preceding reversals or volatility expansions.
⚙️ Features
Adjustable block size and trend confirmation count
Option to use only closed bars (to reduce repaint risk)
Inclusive mode for “<= / >=” logic
Visual signals:
MR Block high/low levels
Trend-colored bars
Arrows for YTK (🔻) and DTK (🔺)
Built-in alerts for automated strategies
🎯 Use Cases
Spotting fakeouts and false breakouts
Identifying trend exhaustion before reversal
Confirming structural support/resistance breaks
Visual tool for discretionary traders
Signal generator for automated systems
💬 Feedback & Contributions
This script is open-source and community-driven. We actively welcome feedback, ideas, improvements, forks, and questions.
📩 Contact for collaboration or discussion:
📧 senbrke@gmail.com
FVG SuiteSupercharge your charts with FVG Suite! Detect Smart Money structures, Fair Value Gaps, and key Multi-Timeframe levels—all in one powerful indicator. Perfect for both intraday and swing traders.
⚡ Highlights:
📈 Smart Money Structure: BoS & CHoCH signals with customizable colors and sensitivity.
💎 Fair Value Gaps: Bullish & Bearish FVGs with filters, max extension, and automatic cleanup.
🕒 Multi-Timeframe Levels: Daily, Weekly, and Monthly Highs & Lows with solid/dashed/dotted lines.
📊 Volume Activity: Real-time 4H & 24H volume analysis in a neat table.
🎨 Fully Customizable: Colors, transparency, and labels for a clean, easy-to-read chart.
Make smarter trade decisions with clear market structure insights and gap detection! 🚀
Avinacci LevelsThe Avinacci levels are based on Avi's(whop.com) reading of the 8am to 8:30am, 30mn candle. The script plots equidistant levels up and down from the high and lows of this 30mn period. It only works on the 30mn chart.
Maiko Range Scalper (Sideways BB + RSI) – v4 cleanPurpose
It’s a range scalping strategy for crypto. It tries to take small, repeatable trades inside a sideways market: buy near the bottom of the range, sell near the middle/top (and the reverse for shorts).
Core idea (two timeframes)
Define the trading range on a higher timeframe (HTF)
You choose the HTF (e.g., 15m or 1h).
The script finds the highest high and lowest low over a lookback window (e.g., last 96 HTF candles) → these become HTF Resistance and HTF Support.
It also calculates the midline (average of support/resistance).
Trade signals on your lower timeframe (LTF)
You run the strategy on a fast chart (e.g., 1m or 5m).
Entries are only allowed inside the HTF range.
Entry logic (mean reversion)
Indicators on the LTF:
Bollinger Bands (length & std dev configurable).
RSI (length & thresholds configurable).
Optional VWAP proximity filter (price must be within X% of VWAP).
Long setup:
Price touches/under-cuts the lower Bollinger band AND RSI ≤ threshold (default 30) AND price is inside the HTF range (and passes VWAP filter if enabled).
Short setup:
Price touches/exceeds the upper Bollinger band AND RSI ≥ threshold (default 70) AND price is inside the HTF range (and passes VWAP filter if enabled).
Exits and risk
Stop-loss: placed just outside the HTF range with a configurable buffer %:
Long SL = HTF Support × (1 − buffer).
Short SL = HTF Resistance × (1 + buffer).
Take-profit (selectable):
Mid band (the Bollinger basis) → conservative, faster exits.
Opposite band / HTF boundary → more aggressive, higher RR but more give-backs.
Position sizing
A simple cap: maximum position size = percent of account equity (e.g., 20%).
The script calculates quantity from that cap and current price.
Plots you’ll see on the chart
HTF Resistance (red) and HTF Support (green) via plot().
HTF Midline (gray dashed) drawn with a line.new() object (because plot() cannot do dashed).
Bollinger basis/upper/lower on the LTF.
Optional VWAP line (only shown if you enable the filter).
Signal markers (green triangle up for Long setups, red triangle down for Short setups).
Alerts
Two alertconditions:
“Long Setup” – when a long entry condition appears.
“Short Setup” – when a short entry condition appears.
Create alerts from these to get notified in real time.
How to use it (quick start)
Add to a 1m or 5m chart of a liquid coin (BTC, ETH, SOL).
Set HTF timeframe (start with 1h) and lookback (e.g., 96 = ~4 days on 1h).
Keep default Bollinger/RSI first; tune later.
Choose TP mode:
“Mid band” for quick scalps.
“Opposite band/Range” if the range is very clean and you want bigger targets.
Set SL buffer (0.15–0.30% is common; adjust for volatility).
Set Max position % to control size (e.g., 20%).
(Optional) Enable VWAP filter to skip stretched moves.
When it works best
Clearly sideways markets with visible support/resistance on the HTF.
High-liquidity pairs where spreads/fees are small relative to your scalp target.
Limitations & safety notes
True breakouts will invalidate mean-reversion logic—your SL outside the range is there to cut losses fast.
Fees can eat into small scalps—prefer limit orders, rebates, and liquid pairs.
Backtest results vary by exchange data; always forward-test on small size.
If you want, I can:
Add an ATR-based stop/target option.
Provide a study-only version (signals/alerts, no trading engine).
Pre-set risk to your €5,000 plan (e.g., ~0.5% max loss/trade) with calculated qty.