RSI Scalping Gold (XAUUSD) - v5Displays the EMA9 and SMA20 to identify the trend.
Colors the area between the two averages to better visualize the equilibrium zone.
Displays green (buy) and red (sell) arrows aligned with the candles.
The RSI is calculated but hidden from the main chart (you can activate it by checking “Display on chart” in the settings).
Candlestick analysis
Supply/Demand Zones & EMA CrossSupport and Resistance Zone based on past ten days for daily, weekly, with this ema 8,20,50,200 and vwap also inclued
MACD Cross Above Zero Alert (Any Timeframe)For use on a large list to spot MACD cross overs in a bullish phase or bearish phase
MACD 4H Cross Above Zero AlertMACD 4H Cross the signal line to screen for stocks across a wide demo list
Engulfing Bars - StrictIdentifies strict definition engulfing bars with a close in the leading 20% of the range.
BTC – MA20/50/200 (Overlay)//@version=5
indicator("BTC – MA20/50/200 (Overlay)", overlay=true, max_lines_count=500)
// ==== Inputs ====
tf = input.timeframe("", "Multi-TF (để trống = khung hiện tại)")
lenMA1 = input.int(20, "MA1 (ngắn)")
lenMA2 = input.int(50, "MA2 (trung)")
lenMA3 = input.int(200, "MA3 (dài)")
useEMA = input.bool(false, "Dùng EMA thay vì SMA")
// ==== Series ====
src = request.security(syminfo.tickerid, tf == "" ? timeframe.period : tf, close)
// ==== MA helper ====
ma(src,len,ema) => ema ? ta.ema(src,len) : ta.sma(src,len)
ma1 = ma(src,lenMA1,useEMA)
ma2 = ma(src,lenMA2,useEMA)
ma3 = ma(src,lenMA3,useEMA)
// ==== Plots ====
plot(ma1, title="MA20/EMA20", linewidth=2)
plot(ma2, title="MA50/EMA50", linewidth=2)
plot(ma3, title="MA200/EMA200", linewidth=2)
// ==== Labels gợi ý ====
condPullback = close < ma1 and close >= ma2
condTrendUp = close > ma2 and ma2 > ma3
condRisk = close < ma2
if condPullback
label.new(bar_index, high, "Pullback về MA ngắn", textalign=text.align_left)
if condTrendUp
label.new(bar_index, low, "Xu hướng tăng duy trì", textalign=text.align_left)
if condRisk
label.new(bar_index, high, "Mất MA trung – thận trọng", textalign=text.align_left)
RSI Price Sensitivity v3 [Quant-Stable]The RSI Price Sensitivity v3 indicator measures how efficiently and consistently price responds to RSI movement — revealing when RSI momentum actually matters, and when it’s just noise.
It’s designed as a quant-grade analytical tool combining RSI, ADX, volatility, regression, and correlation logic to form a single normalized “sensitivity” score.
Core Concept
Traditional RSI often moves without price follow-through.
This indicator quantifies the strength of the connection between RSI and price, dynamically adapting to volatility and trend context.
It blends:
📊 RSI-Price Correlation: Statistical relationship between RSI momentum and price momentum.
⚙️ Efficiency Ratio: Measures how direct and smooth the RSI-price relationship is (noise filtering).
📈 Regression Confidence: Tests whether price moves are statistically aligned with RSI structure.
💡 Momentum Alignment: Checks directional agreement between RSI trend and price trend, weighted by ADX.
All components are dynamically normalized and weighted into one composite sensitivity score.
US Opening 5-Minute Candle HighlighterUS Opening 5-Minute Candle Highlighter — True RVOL (Two-Tier + Label)
What it does (in plain English)
This indicator finds the first 5-minute bar of the US cash session (09:30–09:35 ET) and highlights it when the candle has the specific “strong open” look you want:
Opens near the low of its own range, and
Closes near the high of its own range, and
Has a decisive real body (not a wick-y doji), and
(Optionally) is a green candle, and
Meets a TRUE opening-bar RVOL filter (compares today’s 09:30–09:35 volume only to prior sessions’ 09:30–09:35 volumes).
You get two visual intensities based on opening RVOL:
Tier-1 (≥ threshold 1, default 1.0×) → light green highlight + lime arrow
Tier-2 (≥ threshold 2, default 1.5×) → darker green highlight + green arrow
An RVOL label (e.g., RVOL 1.84x) can be shown above or below the opening bar.
Designed for 5-minute charts. On other timeframes the “opening bar” will be the bar that starts at 09:30 on that timeframe (e.g., 15-minute 09:30–09:45). For best results keep the chart on 5m.
How the pattern is defined
For the opening 5-minute bar, we compute:
Range = high − low
Body = |close − open|
Then we measure where the open and close sit within the bar’s own range on a 0→1 scale:
0 means exactly at the low
1 means exactly at the high
Using two quantiles:
Open ≤ position in range (0–1) (default 0.20)
Example: 0.20 means “open must be in the lowest 20% of the bar’s range.”
Close ≥ position in range (0–1) (default 0.80)
Example: 0.80 means “close must be in the top 20% of the bar’s range.”
This keeps the logic range-normalized so it adapts across different tickers and vol regimes (you’re not using fixed cents or % of price).
Body ≥ fraction of range (0–1) (default 0.55)
Requires the real body to be at least that fraction of the total range.
0.55 = body fills ≥ 55% of the candle.
Purpose: filter out indecisive, wick-heavy bars.
Raise to 0.7–0.8 for only the fattest thrusts; lower to 0.3–0.4 to admit more bars.
Require green candle? (default ON)
If ON, close > open must be true. Turn OFF if you also want to catch strong red opens for shorts.
Minimum range (ticks)
Ignore tiny, illiquid opens: e.g., set to 2–5 ticks to suppress micro bars.
TRUE Opening-Bar RVOL (why it’s “true”)
Most “RVOL” compares against any recent bars, which isn’t fair at the open.
This indicator calculates only against prior opening bars:
At 09:30–09:35 ET, take today’s opening 5-minute volume.
Compare it to the average of the last N sessions’ opening 5-minute volumes.
RVOL = today_open_volume / average_prior_open_volumes.
So:
1.0× = equal to average prior opens.
1.5× = 150% of average prior opens.
2.0× = double the typical opening participation.
A minimum prior samples guard (default 10) ensures you don’t judge with too little history. Until enough samples exist, the RVOL gate won’t pass (you can disable RVOL temporarily if needed).
Visuals & tiers
Light green highlight + lime arrow → price filters pass and RVOL ≥ Tier-1 (default 1.0×)
Dark green highlight + green arrow → price filters pass and RVOL ≥ Tier-2 (default 1.5×)
Optional bar paint in matching green tones for extra visibility.
Optional RVOL label (e.g., RVOL 1.84x) above or below the opening bar.
You can show the label only when the candle qualifies, or on every open.
Inputs (step-by-step)
Price-action filters
Open ≤ position in range (0–1): default 0.20. Smaller = stricter (must open nearer the low).
Close ≥ position in range (0–1): default 0.80. Larger = stricter (must close nearer the high).
Body ≥ fraction of range (0–1): default 0.55. Raise to demand a “fatter” body.
Require green candle?: default ON. Turn OFF to also mark bearish thrusts.
Minimum range (ticks): default 0. Set to 2–5 for liquid mid/large caps.
Time settings
Timezone: default America/New_York. Leave as is for US equities.
Start hour / minute: defaults 09:30. The bar that starts at this time is evaluated.
TRUE Opening-Bar RVOL (two-tier)
Require TRUE opening-bar RVOL?: ON = must pass Tier-1 to highlight; OFF = price filters alone can highlight (still shows Tier-2 when hit).
RVOL lookback (prior opens count): default 20. How many prior openings to average.
Min prior opens required: default 10. Warm-up guard.
Tier-1 RVOL threshold (× avg): default 1.00× (light green).
Tier-2 RVOL threshold (× avg): default 1.50× (dark green).
Display
Also paint candle body?: OFF by default. Turn ON for instant visibility on a chart wall.
Arrow size: tiny/small/normal/large.
Light/Dark opacity: tune highlight strength.
Show RVOL label?: ON/OFF.
Show label only when candle qualifies?: ON by default; OFF to see RVOL every open.
Label position: Above candle or Below candle.
Label size: tiny/small/normal/large.
How to use (quick start)
Apply to a 5-minute chart.
Keep defaults: Open ≤ 0.20, Close ≥ 0.80, Body ≥ 0.55, Require green ON.
Turn RVOL required ON, with Tier-1 = 1.0×, Tier-2 = 1.5×, Lookback = 20, Min prior = 10.
Optional: enable Paint bar and set Arrow size = large for monitor-wall visibility.
Optional: show RVOL label below the bar to keep wicks clean.
Interpretation:
Dark green = A+ opening thrust with strong participation (≥ Tier-2).
Light green = Valid opening thrust with at least average participation (≥ Tier-1).
No highlight = one or more filters failed (quantiles, body, green, range, or RVOL if required).
Alerts
Two alert conditions are included:
Opening 5m Match — Tier-2 RVOL → fires when the opening candle passes price filters and RVOL ≥ Tier-2.
Opening 5m Match — Tier-1 RVOL → fires when the opening candle passes price filters and RVOL ≥ Tier-1 (but < Tier-2).
Recommended alert settings
Condition: choose the script + desired tier.
Options: Once Per Bar Close (you want the confirmed 09:30–09:35 bar).
Set your watchlist to symbols of interest (themes/sectors) and let the alerts pull you to the right charts.
Recommended starting values
Quantiles: Open ≤ 0.20, Close ≥ 0.80
Body fraction: 0.55
Require green: ON
RVOL: Required ON, Tier-1 = 1.0×, Tier-2 = 1.5×, Lookback 20, Min prior 10
Display: Paint bar ON, Arrow large, Label ON, Below candle
Tune tighter for A-plus selectivity:
Open ≤ 0.15, Close ≥ 0.85, Body ≥ 0.65, Tier-2 2.0×.
Notes, tips & limitations
5-minute timeframe is the intended use. On higher TFs, the 09:30 bar spans more than 5 minutes; geometry may not reflect the first 5 minutes alone.
RTH only: The opening detection looks at the clock (09:30 ET). Pre-market bars are ignored for the signal and for RVOL history.
Warm-up period: Until you have Min prior opens required samples, the RVOL gate won’t pass. You can temporarily toggle RVOL off.
DST & timezone: Leave timezone on America/New_York for US equities. If you trade non-US exchanges, set the appropriate TZ and opening time.
Illiquid tickers: Use Minimum range (ticks) and require RVOL to reduce noise.
No strategy orders: This is a visual/alert tool. Combine with your execution and risk plan.
Why this is useful on multi-monitor setups
Instant pattern recognition: the two-shade green makes A vs A+ opens pop at a glance.
Adaptive thresholds: quantiles & body are within-bar, so it works across $5 and $500 names.
Fair volume test: TRUE opening RVOL avoids comparing to pre-market or midday bars.
Optional labels: glanceable RVOL x-value helps triage the strongest themes quickly.
Volume Bubbles & Liquidity Heatmap 30% + biasLuxAlgo gave us an open script, I just primmed it up with the use of Chat GPT:There is no single magic number (like “delta must be 800”) that will guarantee directional follow-through in every market. But you can make a mathematically rigorous filter that gives you a high-probability test — by normalizing the delta against that market’s typical behavior and requiring multiple confirmations. Below is a compact, actionable algorithm you can implement immediately (in your platform or spreadsheet) plus concrete thresholds and the math behind them.
High-IQ rule set (math + trade logic)
Use three independent checks. Only take the trade if ALL three pass.
1) Z-score (statistical significance of the delta)
Compute rolling mean
𝜇
μ and std dev
𝜎
σ of delta on the same timeframe (e.g. 5m) over a lookback window
𝑊
W (suggest
𝑊
=
50
W=50–200 bars).
𝑍
=
delta
bar
−
𝜇
𝑊
𝜎
𝑊
Z=
σ
W
delta
bar
−μ
W
Threshold: require
𝑍
≥
2.5
Z≥2.5 (strong) — accept 2.0 for less strict, 3.0 for very rare signals.
Why: a Z>=2.5 means this delta is an outlier (~<1% one-sided), not normal noise.
2) Relative Imbalance (strength vs total volume)
Compute imbalance ratio:
𝑅
=
∣
delta
bar
∣
volume
bar
R=
volume
bar
∣delta
bar
∣
Threshold: require
𝑅
≥
0.25
R≥0.25 (25% of the bar’s volume is one-sided). For scalping you can tighten to 0.30–0.40.
Why: a big delta with tiny volume isn’t meaningful; this normalizes to participation.
3) Net follow-through over a confirmation window
Look ahead
𝑁
N bars (or check the next bar if you need intrabar speed). Compute cumulative delta and price move:
cum_delta
𝑁
=
∑
𝑖
=
1
𝑁
delta
bar
+
𝑖
cum_delta
N
=
i=1
∑
N
delta
bar+i
price_move
=
close
bar
+
𝑁
−
close
bar
price_move=close
bar+N
−close
bar
Thresholds: require
cum_delta
𝑁
cum_delta
N
has the same sign as the trigger and
∣
cum_delta
𝑁
∣
≥
0.5
×
∣
delta
bar
∣
∣cum_delta
N
∣≥0.5×∣delta
bar
∣, and
price_move
price_move exceeds a minimum meaningful tick amount (instrument dependent). For ES / US30 type futures: price move ≥ 5–10 ticks; for forex pairs maybe 10–20 pips? Use ATR
20
20
×0.05 as a generic minimum.
Why: separates immediate absorption (buy delta then sellers soak it) from genuine continuation.
Bonus check — Structural context (must be satisfied)
Trigger should not occur against a strong structural barrier (VWAP, daily high/low, previous session POC) unless you’re explicitly trading exhaustion/absorption setups.
If signal occurs near resistance and price does not clear that resistance within
𝑁
N bars, treat as probable trap.
Putting it together — final trade decision
Take the long (example):
If
𝑍
≥
2.5
Z≥2.5 and
𝑅
≥
0.25
R≥0.25 and cum_delta_N confirms and no hard resistance above (or you’re willing to trade absorption), then enter.
Place stop: under the low of the last 2–3 bars or X ATR (instrument dependent).
Initial target: risk:reward 1:1 minimum, scale out at 1.5–2R after confirming further delta.
Concrete numeric illustration using your numbers
You saw FOL = 456, then sell reaction with ~350 opposite. How to interpret:
Suppose your 5-min rolling mean
𝜇
μ = 100 and
𝜎
σ=120 (example):
𝑍
=
(
456
−
100
)
/
120
≈
2.97
⇒
statistically big
Z=(456−100)/120≈2.97⇒statistically big
So it passes Z.
If volume on that bar = 2000 contracts:
𝑅
=
456
/
2000
=
0.228
⇒
just below 0.25 threshold
R=456/2000=0.228⇒just below 0.25 threshold
So it fails R (weak participation proportionally), explaining why 456 alone didn’t move price.
Seller came back with 350 opposite soon after — check cum_delta_N:
cum_delta
𝑛
𝑒
𝑥
𝑡
3
≈
456
−
350
=
106
net
cum_delta
next3
≈456−350=106 net
Net is small relative to the initial spike — not convincing follow-through.
Conclusion: despite a big absolute number (456), relative measures and lack of follow-through meant the move failed. That’s exactly why raw numbers alone are unreliable.
Advanced refinement (for elite performance)
Use rolling median + MAD instead of mean/std if delta distribution is skewed.
Scale Z by volume volatility: divide Z by
volume
bar
/
volume
‾
volume
bar
/
volume
to penalize low-volume bars.
Use a signed cumulative delta over micro-windows: compute windowed cumulative delta standardized:
𝑍
cum
=
∑
𝑖
=
0
𝑀
−
1
delta
𝑡
−
𝑖
−
𝑀
𝜇
𝑀
𝜎
Z
cum
=
M
σ
∑
i=0
M−1
delta
t−i
−Mμ
and require
𝑍
cum
≥
3
Z
cum
≥3 for very high confidence.
Add market-depth / DOM confirmation (if available): require that resting ask size above is less than resting bid size below by a factor (i.e. visible liquidity supports the move).
Practical thresholds to start with (tune per instrument)
Lookback
𝑊
W: 100 bars (5m → about a trading day)
Z threshold: 2.5
Imbalance ratio
𝑅
R: ≥ 0.25 (tighten to 0.30 for scalping)
Confirmation window
𝑁
N: next 1–3 bars for intraday scalps; 3–6 bars for short swings
Cum delta confirmation: ≥ 0.5 × initial delta and same sign
Price move confirmation: ≥ 0.03 × ATR20 (or set absolute ticks per instrument)
TL;DR — the single best rule
Don’t chase absolute numbers. Use Z-score of delta + delta/volume ratio + real follow-through. If all three align, odds are heavily in your favor.
If you want, I can:
give you a tiny script (pseudocode or Pine / Python) that computes Z, R, cum_delta_N and flags qualifying bars, or
run the calculation on a sample of your recent bars if you paste a small CSV of time, delta, volume, close.
Which do you want? (I’ll give code right away.)
You said:
give me a percentage of difference where we have a high probability
ChatGPT said:
Thought for 7s
Nice — straight to the point. Here’s a concise, practical set of percentage thresholds (and associated confidence estimates) you can use right now to flag a “high probability” delta signal. I’ll give you three tiers (good / strong / elite), explain what each means, show how to compute it, and give a short example using your 456/2000 bar.
One-line rule
Compute delta percent
𝑃
=
∣
delta
∣
volume
×
100
%
P=
volume
∣delta∣
×100%.
Then require Z-score of delta ≥ 2.5 and P to be at or above the threshold below for the desired confidence tier.
Threshold tiers (percent of bar volume)
Good (high-probability trade candidate)
P ≥ 20–25%
Typical success probability (when combined with Z≥2.5 and no hard structural resistance): ~60–70%.
Use when you want a steady flow of signals with decent edge.
Strong (high confidence)
P ≥ 30–35%
Typical success probability: ~70–80% (with Z≥2.5 + structural alignment).
Fewer signals, higher win-rate. Good default for intraday.
Elite (very high probability / low false positives)
P ≥ 40–50%
Typical success probability: ~80–90% (with Z≥3 and confirmation).
Rare signals. Use for meaningful size or when you need maximum certainty.
Why percentage matters (short)
Absolute delta (456) is meaningless without volume context. A 456 delta on 2,000 volume → P = 456/2000 = 22.8% → sits just below the Good threshold, which matches why it failed: decent but not dominant participation.
Additional required checks (don’t skip these)
To turn P into a reliable filter, always require:
Z-score of the delta ≥ 2.5 (or ≥3 for Elite signals).
No immediate structural barrier (VWAP, strong resistance) that would plausibly absorb the order.
Follow-through: within next N bars (N = 1–3 for scalps) price moves in the same direction by ≥ 0.03×ATR20 (or instrument-specific tick threshold). If this fails, cut fast.
Combine all three and your realized win-rate will approach the probabilities above.
Practical quick checklist (to apply each signal)
Compute P = |delta|/volume. Is P ≥ 30%? (or your chosen tier)
Compute Z = (delta − mean)/std over last 100 bars. Is Z ≥ 2.5?
Is price not pinned under a heavy resistance?
Enter on next bar close (or intrabar on continuation), stop under last 2-bar low (for longs).
If price fails to move ≥ 0.03×ATR20 within 3 bars, exit.
Example (your bar)
delta = 456, volume = 2000 → P = 22.8% → below Good threshold (25%).
Even if Z was high, P failed — explains the failure. You need P ≥ ~30% plus Z≥2.5 to call it a Strong signal.
Final notes (instrument & timeframe)
These percentages were calibrated for futures/US indices and short intraday bars (1–5m).
For FX or low-tick instruments, use absolute ticks + a smaller P threshold (start at 15–20%).
Always backtest on the specific instrument/timeframe and tune thresholds.
If you want, I’ll generate a tiny script (Python or Pine) that calculates P and Z and flags Good/Strong/Elite signals for your chart history so you can see exact historical hit rates. Which language (Python or Pine)?
You said:
so if we have 456 g vs 350 r what pct is that in favour of green?
ChatGPT said:
Perfect — let’s calculate it carefully, digit by digit so we don’t make a slip.
We have:
Green (buy) volume = 456
Red (sell) volume = 350
We want to know what percentage is in favor of green, relative to the total volume.
Step 1. Compute total volume
Total
=
456
+
350
=
806
Total=456+350=806
Step 2. Compute green’s share
\text{Green %} = \frac{456}{806} \times 100
Now do it precisely:
456
÷
806
=
0.565506
456÷806=0.565506 (rounded)
So:
0.565506
×
100
=
56.55
%
0.565506×100=56.55%
Step 3. Compute red’s share (for context)
350
806
=
0.434494
→
43.45
%
806
350
=0.434494→43.45%
Step 4. Compute difference (bias toward green)
56.55
%
−
43.45
%
=
13.10
%
56.55%−43.45%=13.10%
✅ Final answer:
Green = 56.6% of total
Red = 43.4% of total
Bias = +13.1 percentage points in favor of green
So that’s only a 13% advantage to buyers — modest pressure, not a dominant imbalance.
For a high-probability signal (as we discussed earlier), you generally want ≥30% imbalance (e.g. ~65/35 split or stronger).
Original:
''The Volume Bubbles & Liquidity Heatmap indicator is a powerful trading tool designed to give traders a clearer picture of volume dynamics and liquidity distribution across multiple timeframes. By combining dynamic volume bubbles with a liquidity heatmap, this indicator makes it easy to identify areas of price interest, spot market imbalances, and improve decision-making for both scalpers and swing traders.
This trading indicator is ideal for volume traders, price action traders, and liquidity-focused traders who need a clean, multi-dimensional view of buyer/seller activity and the zones where market participants are most active. With full customization over bubble display, timeframes, and visual settings, traders can tailor the tool to fit virtually any trading strategy or market.''
Triple Close Indicator (TCI)Triple Close Indicator (TCI)
Overview:
The Triple Close Indicator (TCI) is a trend-following and entry signal tool designed to simplify market decision-making. Using a 50-period moving average (MA) as the primary trend filter, TCI identifies consecutive close patterns to generate high-probability bullish and bearish entry signals. Its clean design ensures minimal chart clutter while highlighting actionable points.
How It Works:
Trend Identification
The 50 MA is the core trend filter:
Price above 50 MA → bullish trend
Price below 50 MA → bearish trend
Signal Lines (Green/Red Lines)
Green Line: Marks every 3rd consecutive higher close
Red Line: Marks every 3rd consecutive lower close
Signal lines extend 6 bars forward for reference
Users can customize line width, transparency, and style (solid/dotted)
Entry Signals (Triangles)
Bullish Entry:
Green line above 50 MA → look for a candle closing above this line within the next configurable lookback window (default 5 bars)
Red line above 50 MA → if a candle closes above this line within the lookback window, bullish entry is triggered
Bearish Entry:
Red line below 50 MA → look for a candle closing below this line within the lookback window
Green line below 50 MA → if a candle closes below this line within the lookback window, bearish entry is triggered
Visuals
50 MA line – yellow, main trend filter
Signal lines – green/red with customizable width, transparency, and style
Entry triangles – lime for bullish, red for bearish
Alerts are available for real-time notifications
How to Use Effectively:
Trend Confirmation
Only take long entries above 50 MA and short entries below 50 MA
Avoid counter-trend entries to reduce false signals
Signal Validation
Wait for a candle close beyond the signal line to confirm the entry
Use the configurable lookback window to capture the most recent valid candle
Combine with Other Filters (Optional)
Use volume, ATR, or RSI to filter low-probability setups
Multi-timeframe analysis can enhance signal reliability
Alerts
Use built-in TradingView alerts for real-time execution
Customize messages for notifications on mobile, email, or webhook
Inputs & Customization:
MA Type & Length: Choose SMA, EMA, WMA, or VWMA for 50 MA
Signal Line Colors: Green (bullish), Red (bearish)
Line Width & Transparency: Adjust visual clarity
Line Style: Solid or Dotted
Lookback Window: Number of bars to check for valid entry after a signal line
Best Practices:
Use higher timeframes (1H, 4H, daily) for more reliable signals
Avoid trading in tight consolidation zones; the indicator works best in trending markets
Combine with risk management: define stop-loss below/above signal lines or ATR multiples
Multi-Confluence MTF S/R Signal5 Confluences:
RSI - Detects oversold/overbought conditions with momentum
MACD - Confirms trend direction and momentum shifts
Moving Average Trend - Validates price position relative to 50 SMA and 20 EMA
Volume - Ensures strong participation (1.5x average volume)
Price Action - Confirms breakout (higher high for buys, lower low for sells)
Features:
Green triangles below bars = BUY signal (all 5 confluences bullish)
Red triangles above bars = SELL signal (all 5 confluences bearish)
Background coloring when signals occur
Real-time dashboard showing each confluence status
Built-in alerts you can enable
Customizable parameters for all indicators
Multi-Timeframe Features:
Higher Timeframe Analysis (Default: 60 min)
HTF Trend - Checks if price is above/below moving averages on higher timeframe
HTF MACD - Confirms momentum direction
HTF RSI - Validates not overbought/oversold
Signal Types:
Strong Signals (Full triangles with text)
✅ All 5 current timeframe confluences aligned
✅ Higher timeframe confirmation (2 of 3 HTF conditions)
GREEN "BUY" or RED "SELL" labels
Weak Signals (Small transparent triangles with "?")
✅ All 5 current timeframe confluences aligned
❌ NO higher timeframe confirmation
Use with caution - may signal counter-trend trades
Dashboard Updates:
Shows Current Timeframe section (all 5 confluences)
Shows HTF status (your chosen higher timeframe)
Displays final signal strength
Customizable Settings:
Enable/Disable MTF - Toggle multi-timeframe confirmation
Higher Timeframe - Choose any timeframe (15m, 60m, 4H, D, etc.)
Require HTF - Force HTF confirmation or allow weak signals
Alerts:
Strong Buy/Sell - Full confirmation
Weak Buy/Sell - No HTF confirmation
Breakout buy and sell//@version=6
indicator("突破 + 反轉指標(嚴格版)", overlay=true)
// 均線計算
ma5 = ta.sma(close, 5)
ma20 = ta.sma(close, 20)
ma_cross_up = ta.crossover(ma5, ma20)
ma_cross_down = ta.crossunder(ma5, ma20)
// 成交量判斷(嚴格:放量 1.5 倍以上)
vol = volume
vol_avg = ta.sma(vol, 20)
vol_increase = vol > vol_avg * 1.5
// 價格突破(嚴格:創 20 根新高/新低)
price_breakout_up = close > ta.highest(close, 20)
price_breakout_down = close < ta.lowest(close, 20)
// KDJ 隨機指標(抓反轉)
k = ta.stoch(close, high, low, 14)
d = ta.sma(k, 3)
kd_cross_up = ta.crossover(k, d)
kd_cross_down = ta.crossunder(k, d)
// 時間過濾(美股正規交易時段)
isRegularSession = (hour >= 14 and hour < 21) or (hour == 21 and minute == 0)
// 冷卻時間(避免連續訊號)
var int lastEntryBar = na
var int lastExitBar = na
entryCooldown = na(lastEntryBar) or (bar_index - lastEntryBar > 5)
exitCooldown = na(lastExitBar) or (bar_index - lastExitBar > 5)
// 嚴格進場條件
entryBreakout = ma_cross_up and vol_increase and price_breakout_up
entryReversal = kd_cross_up
entrySignal = (entryBreakout or entryReversal) and isRegularSession and entryCooldown
// 嚴格出場條件
exitBreakdown = ma_cross_down and vol_increase and price_breakout_down
exitReversal = kd_cross_down
exitSignal = (exitBreakdown or exitReversal) and isRegularSession and exitCooldown
// 更新冷卻時間
if entrySignal
lastEntryBar := bar_index
if exitSignal
lastExitBar := bar_index
// 顯示訊號
plotshape(entrySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="進場訊號", text="買入")
plotshape(exitSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="出場訊號", text="賣出")
// 均線顯示
plot(ma5, color=color.orange, title="5MA")
plot(ma20, color=color.blue, title="20MA")
// 提醒條件(alertcondition)
alertcondition(entrySignal, title="買入訊號", message="出現買入訊號")
alertcondition(exitSignal, title="賣出訊號", message="出現賣出訊號")
30 Day HighDisplay the 30 day high on the chart, based on the highest high (as opposed to the highest close).
Triple RSI Strategy @AshokTrendThe Triple RSI Strategy is a trading approach that uses three separate Relative Strength Index (RSI) indicators, typically set to different periods, to generate buy and sell signals with potentially higher accuracy. It aims to filter false signals and improve the probability of successful trades by confirming conditions across multiple timeframes or sensitivity levels.
How the Triple RSI Strategy Works:
Different RSI Periods: Usually set with short, medium, and long periods (e.g., 5, 14, and 30).
Buy Signal: When all three RSIs indicate oversold conditions (below a certain threshold like 30) and show upward momentum.
Sell Signal: When all three RSIs indicate overbought conditions (above a certain threshold like 70) and show downward momentum.
Confirmation: The strategy often confirms signals when the shorter RSI crosses its own previous value or an opposite threshold.
Benefits:
Reduces false signals by requiring multiple conditions.
Suitable for trending or ranging markets, depending on parameters.
Customizable for different assets and timeframes.
Concepts used-
SMC
Trendline Breakout,
Suitable for Long traders.
⦁ Disclaimer: The content in this Article is for educational purposes only and should not be considered financial advice. We are not SEBI-registered advisors. Options trading is highly volatile and carries significant risk. Consult a qualified financial advisor before making any investment decisions.. About Us: We provide educational content on trading strategies and market analysis.
Connect With Us: For business inquiries, email us at: customercare@eamzn.in
For our trading course,
contact us on WhatsApp:
Backtesting Services: We offer strategy backtesting on TradingView.
Contact us for details.
Squeeze Backtest by Shaqi v2.0Script to backtest price squeeze's. Works on long and short directions
Daily ATR% Dashboard george_pirlog//@version=6
indicator("ATR(14) – Daily + % vs Daily Close & Current (Heat + Alerts)", overlay=true)
// ── Inputs
atrLen = input.int(14, "ATR Length")
tfATR = input.timeframe("D", "ATR Timeframe (for ATR & daily close)")
decATR = input.int(2, "Decimals (ATR)", minval=0, maxval=6)
decPct = input.int(2, "Decimals (%)", minval=0, maxval=6)
pos = input.string("Top Right", "Table Position", options= )
bgAlpha = input.int(75, "Table BG Transparency (0-100)", minval=0, maxval=100)
showLabel = input.bool(false, "Show floating label")
yOffsetATR = input.float(0.25, "Label Y offset (× ATR)", step=0.05)
// Praguri culoare / alerte
warnPct = input.float(2.0, "Warn Threshold % (yellow/orange)", step=0.1)
highPct = input.float(3.0, "High Threshold % (red)", step=0.1)
// ── Helpers
f_pos(p) =>
if p == "Top Left"
position.top_left
else if p == "Top Right"
position.top_right
else if p == "Bottom Left"
position.bottom_left
else
position.bottom_right
f_heatColor(pct) =>
if pct >= highPct
color.new(color.red, 0)
else if pct >= warnPct
color.new(color.orange, 0)
else
color.new(color.teal, 0)
// ── Serii daily
atrDaily = request.security(syminfo.tickerid, tfATR, ta.atr(atrLen))
closeD = request.security(syminfo.tickerid, tfATR, close)
// ── Ultima valoare & procente
atrLast = atrDaily
pctOfDailyClose = atrLast / closeD * 100
pctOfCurrent = atrLast / close * 100
// ── Tabel static (3×2)
var table box = table.new(f_pos(pos), 3, 2, border_width=1, frame_color=color.new(color.gray, 0), bgcolor=color.new(color.black, bgAlpha))
if barstate.islast
table.cell(box, 0, 0, "ATR14 (Last D)", text_color=color.white, text_size=size.small, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 1, 0, "% of Daily Close", text_color=color.white, text_size=size.small, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 2, 0, "% of Current", text_color=color.white, text_size=size.small, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 0, 1, str.tostring(atrLast, "0." + str.repeat("0", decATR)), text_color=color.white, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 1, 1, str.tostring(pctOfDailyClose, "0." + str.repeat("0", decPct)) + "%", text_color=f_heatColor(pctOfDailyClose), bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 2, 1, str.tostring(pctOfCurrent, "0." + str.repeat("0", decPct)) + "%", text_color=f_heatColor(pctOfCurrent), bgcolor=color.new(color.black, bgAlpha))
// ── Etichetă opțională (apel pe o singură linie)
var label info = na
if showLabel and barstate.islast
label.delete(info)
txt = "ATR14 (Last D): " + str.tostring(atrLast, "0." + str.repeat("0", decATR)) +
" vs Daily Close: " + str.tostring(pctOfDailyClose, "0." + str.repeat("0", decPct)) + "%" +
" vs Current: " + str.tostring(pctOfCurrent, "0." + str.repeat("0", decPct)) + "%"
info := label.new(x=bar_index, y=close + atrLast * yOffsetATR, text=txt, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0), size=size.normal)
// ── Alerts (cross peste praguri)
dailyWarnUp = ta.crossover(pctOfDailyClose, warnPct)
dailyHighUp = ta.crossover(pctOfDailyClose, highPct)
currWarnUp = ta.crossover(pctOfCurrent, warnPct)
currHighUp = ta.crossover(pctOfCurrent, highPct)
alertcondition(dailyWarnUp, "Daily % crossed WARN", "ATR% vs Daily Close crossed above WARN threshold")
alertcondition(dailyHighUp, "Daily % crossed HIGH", "ATR% vs Daily Close crossed above HIGH threshold")
alertcondition(currWarnUp, "Current % crossed WARN", "ATR% vs Current Price crossed above WARN threshold")
alertcondition(currHighUp, "Current % crossed HIGH", "ATR% vs Current Price crossed above HIGH threshold")
Anti-PDT Swing Trade Signals//@version=5
indicator("Anti-PDT Swing Trade Signals", overlay=true)
// === User Inputs ===
priceLimit = input.float(25, "Max Price ($)", minval=1)
minVolume = input.int(200000, "Min Avg Volume (10D)", minval=1)
// === Indicators ===
sma20 = ta.sma(close, 20)
sma50 = ta.sma(close, 50)
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
signalLine = ta.ema(macdLine, 9)
rsi = ta.rsi(close, 14)
avgVolume = ta.sma(volume, 10)
// === Conditions ===
priceFilter = close <= priceLimit
volumeFilter = avgVolume >= minVolume
rsiFilter = ta.crossover(rsi, 40)
macdFilter = ta.crossover(macdLine, signalLine)
smaFilter = close > sma20 and close > sma50
momentumFilter = close > close * 1.03 and close < close * 1.10
// === Day Filter ===
isMonWedFri = dayofweek == dayofweek.monday or dayofweek == dayofweek.wednesday or dayofweek == dayofweek.friday
entryCondition = priceFilter and volumeFilter and rsiFilter and macdFilter and smaFilter and momentumFilter and isMonWedFri
// === Alerts & Visuals ===
plotshape(entryCondition, title="BUY", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
alertcondition(entryCondition, title="BUY Alert", message="BUY Signal: {{ticker}} meets swing trading entry criteria.")
plot(sma20, color=color.orange)
plot(sma50, color=color.blue)
Nithin's LQ Sweep//@version=6
indicator("Liquidity Sweep Zones (HTF -> LTF)", overlay=true, max_boxes_count=200, max_labels_count=500)
// ----------------- Inputs -----------------
htf_tf = input.timeframe("240", "Structure Timeframe (HTF) - example: 240=4H")
pivot_left = input.int(3, "Pivot Left", minval=1)
pivot_right = input.int(1, "Pivot Right", minval=1)
min_wick_pts = input.float(0.0, "Min sweep wick size (points)", step=0.1)
zone_width = input.int(80, "Zone width (bars to the right)", minval=1)
show_struct = input.bool(true, "Show HTF structure level")
show_labels = input.bool(true, "Show sweep labels")
alpha_fill = input.int(78, "Zone fill transparency (0-255)", minval=0, maxval=255)
// ----------------- HTF Pivot (structure) -----------------
// request HTF pivots (these return series aligned to LTF bars)
htf_pH = request.security(syminfo.tickerid, htf_tf, ta.pivothigh(high, pivot_left, pivot_right), barmerge.gaps_off, barmerge.lookahead_off)
htf_pL = request.security(syminfo.tickerid, htf_tf, ta.pivotlow(low, pivot_left, pivot_right), barmerge.gaps_off, barmerge.lookahead_off)
// Keep latest non-na HTF pivot levels
var float lastHTFHigh = na
var float lastHTFLow = na
if not na(htf_pH)
lastHTFHigh := htf_pH
if not na(htf_pL)
lastHTFLow := htf_pL
// Optional: draw HTF levels as lines
var line htfHighLine = na
var line htfLowLine = na
if show_struct
if not na(lastHTFHigh)
if not na(htfHighLine)
line.set_xy1(htfHighLine, bar_index - 500, lastHTFHigh)
line.set_xy2(htfHighLine, bar_index + 1, lastHTFHigh)
else
htfHighLine := line.new(bar_index - 500, lastHTFHigh, bar_index + 1, lastHTFHigh, xloc=xloc.bar_index, extend=extend.none, color=color.new(color.red, 60), width=1)
if not na(lastHTFLow)
if not na(htfLowLine)
line.set_xy1(htfLowLine, bar_index - 500, lastHTFLow)
line.set_xy2(htfLowLine, bar_index + 1, lastHTFLow)
else
htfLowLine := line.new(bar_index - 500, lastHTFLow, bar_index + 1, lastHTFLow, xloc=xloc.bar_index, extend=extend.none, color=color.new(color.green, 70), width=1)
// ----------------- Sweep detection (on current timeframe) -----------------
high_sweep = false
low_sweep = false
// High sweep: price makes a wick above last HTF high, but closes back below that HTF level
if not na(lastHTFHigh)
high_sweep := (high > lastHTFHigh) and (close < lastHTFHigh) and (high - lastHTFHigh >= min_wick_pts)
// Low sweep: price makes a wick below last HTF low, but closes back above that HTF level
if not na(lastHTFLow)
low_sweep := (low < lastHTFLow) and (close > lastHTFLow) and (lastHTFLow - low >= min_wick_pts)
// ----------------- Create red zone rectangles -----------------
var array boxes = array.new()
// Function to create a box and push to array; removes oldest if > max
f_newBox(_x1, _y1, _x2, _y2, _fillColor, _borderColor) =>
b = box.new(_x1, _y1, _x2, _y2, xloc=xloc.bar_index, border_width=1, bgcolor=_fillColor, border_color=_borderColor)
array.push(boxes, b)
// keep reasonable number of boxes
maxBoxes = 200
if array.size(boxes) > maxBoxes
old = array.shift(boxes)
box.delete(old)
b
if high_sweep
topY = math.max(high, lastHTFHigh)
bottomY = lastHTFHigh
// create box from the HTF level to the wick high
col = color.new(color.red, alpha_fill)
bord = color.new(color.red, 40)
f_newBox(bar_index - 0, topY, bar_index + zone_width, bottomY, col, bord)
if show_labels
label.new(bar_index, high, "High Sweep", style=label.style_label_down, textcolor=color.white, color=color.new(color.red, 0), size=size.tiny)
if low_sweep
bottomY = math.min(low, lastHTFLow)
topY = lastHTFLow
col = color.new(color.red, alpha_fill) // same red fill as screenshot-red zones
bord = color.new(color.red, 40)
f_newBox(bar_index - 0, topY, bar_index + zone_width, bottomY, col, bord)
if show_labels
label.new(bar_index, low, "Low Sweep", style=label.style_label_up, textcolor=color.white, color=color.new(color.red, 0), size=size.tiny)
// Visual sweep markers (optional small shapes)
plotshape(high_sweep, title="High Sweep marker", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=color.red)
plotshape(low_sweep, title="Low Sweep marker", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=color.red)
// ----------------- Info panel -----------------
var table info = table.new(position.top_right, 1, 1)
if barstate.islast
table.cell(info, 0, 0, "HTF: " + htf_tf + " | Pivot L/R: " + str.tostring(pivot_left) + "/" + str.tostring(pivot_right), text_color=color.white, bgcolor=color.new(color.blue, 85))
Nithin Liquidity Sweep//@version=6
indicator("Liquidity Sweep Finder", overlay=true, max_labels_count=500)
// Input settings
lookback = input.int(10, "Lookback Bars for High/Low", minval=2)
showHighSweep = input.bool(true, "Show High Sweeps")
showLowSweep = input.bool(true, "Show Low Sweeps")
// Identify recent swing high/low
recentHigh = ta.highest(high, lookback)
recentLow = ta.lowest(low, lookback)
// Sweep conditions
highSweep = showHighSweep and high > recentHigh and close < recentHigh
lowSweep = showLowSweep and low < recentLow and close > recentLow
// Plot signals
plotshape(highSweep, title="High Liquidity Sweep", style=shape.labeldown,
text="Sweep ⬇", location=location.abovebar, color=color.red, size=size.tiny)
plotshape(lowSweep, title="Low Liquidity Sweep", style=shape.labelup,
text="Sweep ⬆", location=location.belowbar, color=color.green, size=size.tiny)
// Highlight background when sweep occurs
bgcolor(highSweep ? color.new(color.red, 85) : na)
bgcolor(lowSweep ? color.new(color.green, 85) : na)
orderflow, moneyflow, confluence, divergence, momentumorderflow, moneyflow, confluence, divergence, momentum
HTF Candles - DolphinTradeBot1️⃣ Overview
The "HTF Candles - DolphinTradeBot" indicator displays higher timeframe (HTF) candlesticks and their OHLC (Open, High, Low, Close) levels on any lower timeframe chart.
While staying on lower timeframes this helps confirm entries or reversals and visualize major market structure, trend bias, and key price zone
2️⃣ How to Use It ?
Use these levels to identify major support/resistance or trend structure.
Observe higher timeframe candle formations (e.g., engulfing, pin bar, doji)
3️⃣ ⚙️Settings
TimeFrame → Select the higher timeframe to display.
Show OHLC Levels → Toggle lines for Open, High, Low, Close.
Line Colors → Customize the color for each level.