Student wyckoff rs symbol/moexRelative Strength Indicator
Student wyckoff rs symbol/market v.2
Description
The Relative Strength (RS) Indicator compares the price performance of the current financial instrument (e.g., a stock) against another instrument (e.g., an index or another stock). It is calculated by dividing the closing price of the first instrument by the closing price of the second, then multiplying by 100. This provides a percentage ratio that shows how one instrument outperforms or underperforms another. The indicator helps traders identify strong or weak assets, spot market leaders, or evaluate an asset’s performance relative to a benchmark.
Key Features
Relative Strength Calculation: Divides the closing price of the current instrument by the closing price of the second instrument and multiplies by 100 to express the ratio as a percentage.
Simple Moving Average (SMA): Applies a customizable Simple Moving Average (default period: 14) to smooth the data and highlight trends.
Visualization: Displays the Relative Strength as a blue line, the SMA as an orange line, and colors bars (blue for rising, red for falling) to indicate changes in relative strength.
Flexibility: Allows users to select the second instrument via an input field and adjust the SMA period.
Applications
Market Comparison: Assess whether a stock is outperforming an index (e.g., S&P 500 or MOEX) to identify strong assets for investment.
Sector Analysis: Compare stocks within a sector or against a sector ETF to pinpoint leaders.
Trend Analysis: Use the rise or fall of the RS line and its SMA to gauge the strength of an asset’s trend relative to another instrument.
Trade Timing: Bar coloring helps quickly identify changes in relative strength, aiding short-term trading decisions.
Interpretation
Rising RS: Indicates the first instrument is outperforming the second (e.g., a stock growing faster than an index).
Falling RS: Suggests the first instrument is underperforming.
SMA as a Trend Filter: If the RS line is above the SMA, it may signal strengthening performance; if below, weakening performance.
Settings
Instrument 2: Ticker of the second instrument (default: QQQ).
SMA Period: Period for the Simple Moving Average (default: 14).
Notes
The indicator works on any timeframe but requires accurate ticker input for the second instrument.
Ensure data for both instruments is available on the selected timeframe for precise analysis.
المؤشرات والاستراتيجيات
Anchorman - EMA Channel + EMA + MTF Status Table PRICE BREAKOUTUses a high/low EMA Channel to tell you when strong price breakouts are happening plus comes with a EMA to help follow the trend if you like. I designed it so it can alert you when a single TF touch happens or a breakout alignment on MTF happens (I recommend this) its up to you also its single alert so no need to do bullish or bearish signals just one signal will alert you when a breakout happens in EITHER direction.
Yaso- Structural Signals: Buy/Sell (Clean v5)//@version=5
indicator("Structural Signals: Buy/Sell (Clean v5)", overlay=true)
//===================== Inputs =====================
grpCtx = "Context (Structure)"
lenDon = input.int(20, "Donchian Lookback (S/R proxy)", minval=5, group=grpCtx)
ema20On = input.bool(true, "Show EMA 20", group=grpCtx)
ema50On = input.bool(true, "Show EMA 50", group=grpCtx)
ema200On = input.bool(true, "Show EMA 200", group=grpCtx)
grpVol = "Volume Confirmation"
volLen = input.int(20, "Volume SMA Length", minval=2, group=grpVol)
volMult = input.float(1.5, "Volume Spike × SMA", minval=1.0, step=0.1, group=grpVol)
grpCand = "Candlestick Reversal (at Structure)"
useHammer = input.bool(true, "BUY: Hammer/Bottoming Tail near Support", group=grpCand)
useStar = input.bool(true, "SELL: Shooting Star/Topping Tail near Resistance", group=grpCand)
srNearPct = input.float(0.004, "‘Near’ S/R tolerance (0.004=0.4%)", step=0.001, minval=0.0, group=grpCand)
grpBreak = "Breakouts / Breakdowns"
useBO = input.bool(true, "BUY: Breakout above Resistance (Donchian High)", group=grpBreak)
useBD = input.bool(true, "SELL: Breakdown below Support (Donchian Low)", group=grpBreak)
grpPats = "Double Tops / Bottoms (pivots)"
useDB = input.bool(true, "BUY: Double Bottom / Higher Low", group=grpPats)
useDT = input.bool(true, "SELL: Double Top / Lower High", group=grpPats)
pvLeft = input.int(3, "Pivot Left Bars", minval=2, group=grpPats)
pvRight = input.int(3, "Pivot Right Bars", minval=2, group=grpPats)
matchTolPct = input.float(0.0075, "Price Match Tolerance (0.75%)", step=0.0005, minval=0.0, group=grpPats)
grpXover = "Trend Filters (Crosses)"
useGolden = input.bool(true, "BUY: Golden Cross (EMA50 > EMA200)", group=grpXover)
useDeath = input.bool(true, "SELL: Death Cross (EMA50 < EMA200)", group=grpXover)
grpGap = "Gap Fills (Daily preferred)"
useGapUpRev = input.bool(true, "SELL: Gap-Up Fill & Reversal (close < prior close)", group=grpGap)
useGapDnRev = input.bool(true, "BUY: Gap-Down Fill & Reversal (close > prior close)", group=grpGap)
minGapPct = input.float(0.01, "Min Gap % (1% = 0.01)", minval=0.0, step=0.001, group=grpGap)
grpAgg = "Alert Controls"
aggregateAlerts = input.bool(true, "Enable Aggregate BUY/SELL Alerts", group=grpAgg)
//===================== Context =====================
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
donHi = ta.highest(high, lenDon)
donLo = ta.lowest(low, lenDon)
plot(ema20On ? ema20 : na, "EMA 20", color=color.new(color.teal, 0), linewidth=2)
plot(ema50On ? ema50 : na, "EMA 50", color=color.new(color.orange, 0), linewidth=2)
plot(ema200On ? ema200 : na, "EMA 200", color=color.new(color.blue, 0), linewidth=2)
plot(donHi, "Donchian High", color=color.new(color.red, 40))
plot(donLo, "Donchian Low", color=color.new(color.green,40))
volSMA = ta.sma(volume, volLen)
volSpike = volume > volSMA * volMult
//===================== Helpers =====================
near(val, ref, pct) =>
// true if |val - ref| / ref <= pct (with nz guard)
math.abs(val - ref) / nz(ref, val) <= pct
lowerWick() =>
(open < close ? open : close) - low
upperWick() =>
high - (open > close ? open : close)
bodySize() =>
math.abs(close - open)
isHammer() =>
lw = lowerWick()
uw = upperWick()
bd = bodySize()
lw >= bd * 2 and uw <= bd * 0.6 and close > open
isShootingStar() =>
lw = lowerWick()
uw = upperWick()
bd = bodySize()
uw >= bd * 2 and lw <= bd * 0.6 and close < open
nearSupport = near(low, donLo, srNearPct) or near(low, ema200, srNearPct)
nearResist = near(high, donHi, srNearPct) or near(high, ema200, srNearPct)
//===================== Signals =====================
// Breakouts / Breakdowns
buyBreakout = useBO and ta.crossover(close, donHi ) and (volSpike or close > donHi )
sellBreakdown = useBD and ta.crossunder(close, donLo ) and (volSpike or close < donLo )
// Pivots → Double Bottom / Top
pL = ta.pivotlow(low, pvLeft, pvRight)
pH = ta.pivothigh(high, pvLeft, pvRight)
lastLow = ta.valuewhen(pL, low , 0)
prevLow = ta.valuewhen(pL, low , 1)
lastHigh = ta.valuewhen(pH, high , 0)
prevHigh = ta.valuewhen(pH, high , 1)
priceMatch(a, b, tol) =>
not na(a) and not na(b) and math.abs(a - b) / b <= tol
doubleBottom = useDB and priceMatch(lastLow, prevLow, matchTolPct) and nz(lastLow) > nz(prevLow)
doubleTop = useDT and priceMatch(lastHigh, prevHigh, matchTolPct) and nz(lastHigh) < nz(prevHigh)
// Crosses (trend)
goldenCross = useGolden and ta.crossover(ema50, ema200)
deathCross = useDeath and ta.crossunder(ema50, ema200)
// Gap fill reversals (daily)
isDaily = timeframe.isdaily
gapUp = isDaily and open > close * (1 + minGapPct)
gapDown = isDaily and open < close * (1 - minGapPct)
gapUpFillRev = useGapUpRev and gapUp and high >= close and close < close
gapDnFillRev = useGapDnRev and gapDown and low <= close and close > close
// Candles at structure
hammerAtSupport = useHammer and isHammer() and nearSupport
starAtResist = useStar and isShootingStar() and nearResist
// Aggregate booleans (no arrays, no loops)
anyBuy = hammerAtSupport or buyBreakout or doubleBottom or goldenCross or gapDnFillRev
anySell = starAtResist or sellBreakdown or doubleTop or deathCross or gapUpFillRev
//===================== Plots =====================
plotshape(hammerAtSupport, title="BUY: Hammer @ Support", style=shape.triangleup, color=color.new(color.lime, 0), size=size.tiny, location=location.belowbar, text="Hammer@S")
plotshape(buyBreakout, title="BUY: Breakout", style=shape.triangleup, color=color.new(color.green, 0), size=size.tiny, location=location.belowbar, text="BO")
plotshape(doubleBottom, title="BUY: Double Bottom", style=shape.triangleup, color=color.new(color.teal, 0), size=size.tiny, location=location.belowbar, text="DB")
plotshape(goldenCross, title="BUY: Golden Cross", style=shape.triangleup, color=color.new(color.aqua, 0), size=size.tiny, location=location.belowbar, text="GC")
plotshape(gapDnFillRev, title="BUY: Gap-Down Reversal",style=shape.triangleup, color=color.new(color.fuchsia,0), size=size.tiny, location=location.belowbar, text="GapDnREV")
plotshape(starAtResist, title="SELL: Star @ Resistance",style=shape.triangledown, color=color.new(color.red, 0), size=size.tiny, location=location.abovebar, text="Star@R")
plotshape(sellBreakdown, title="SELL: Breakdown", style=shape.triangledown, color=color.new(color.maroon, 0), size=size.tiny, location=location.abovebar, text="BD")
plotshape(doubleTop, title="SELL: Double Top", style=shape.triangledown, color=color.new(color.orange, 0), size=size.tiny, location=location.abovebar, text="DT")
plotshape(deathCross, title="SELL: Death Cross", style=shape.triangledown, color=color.new(color.purple, 0), size=size.tiny, location=location.abovebar, text="DC")
plotshape(gapUpFillRev, title="SELL: Gap-Up Reversal", style=shape.triangledown, color=color.new(color.yellow, 0), size=size.tiny, location=location.abovebar, text="GapUpREV")
plotshape(aggregateAlerts and anyBuy, title="BUY (Aggregate)", style=shape.labelup, color=color.new(color.green, 70), textcolor=color.black, text="BUY", location=location.belowbar, size=size.tiny)
plotshape(aggregateAlerts and anySell, title="SELL (Aggregate)", style=shape.labeldown, color=color.new(color.red, 70), textcolor=color.black, text="SELL", location=location.abovebar, size=size.tiny)
//===================== Alerts =====================
alertcondition(hammerAtSupport, "BUY: Hammer @ Support", "Hammer/Bottoming Tail at support on {{ticker}} {{interval}}")
alertcondition(buyBreakout, "BUY: Breakout", "Breakout above Donchian High on {{ticker}} {{interval}}")
alertcondition(doubleBottom, "BUY: Double Bottom", "Double Bottom/Higher Low on {{ticker}} {{interval}}")
alertcondition(goldenCross, "BUY: Golden Cross", "EMA50 crosses above EMA200 on {{ticker}} {{interval}}")
alertcondition(gapDnFillRev, "BUY: Gap-Down Reversal","Gap-down filled & reversed on {{ticker}} {{interval}}")
alertcondition(starAtResist, "SELL: Star @ Resistance","Shooting Star/Topping Tail at resistance on {{ticker}} {{interval}}")
alertcondition(sellBreakdown, "SELL: Breakdown", "Breakdown below Donchian Low on {{ticker}} {{interval}}")
alertcondition(doubleTop, "SELL: Double Top", "Double Top/Lower High on {{ticker}} {{interval}}")
alertcondition(deathCross, "SELL: Death Cross", "EMA50 crosses below EMA200 on {{ticker}} {{interval}}")
alertcondition(gapUpFillRev, "SELL: Gap-Up Reversal", "Gap-up filled & reversed on {{ticker}} {{interval}}")
// Aggregate
alertcondition(aggregateAlerts and anyBuy, "BUY: Aggregate", "Structural BUY signal on {{ticker}} {{interval}}")
alertcondition(aggregateAlerts and anySell, "SELL: Aggregate", "Structural SELL signal on {{ticker}} {{interval}}")
Student wyckoff relative strength Indicator cryptoRelative Strength Indicator crypto
Student wyckoff rs symbol USDT.D
Description
The Relative Strength (RS) Indicator compares the price performance of the current financial instrument (e.g., a stock) against another instrument (e.g., an index or another stock). It is calculated by dividing the closing price of the first instrument by the closing price of the second, then multiplying by 100. This provides a percentage ratio that shows how one instrument outperforms or underperforms another. The indicator helps traders identify strong or weak assets, spot market leaders, or evaluate an asset’s performance relative to a benchmark.
Key Features
Relative Strength Calculation: Divides the closing price of the current instrument by the closing price of the second instrument and multiplies by 100 to express the ratio as a percentage.
Simple Moving Average (SMA): Applies a customizable Simple Moving Average (default period: 14) to smooth the data and highlight trends.
Visualization: Displays the Relative Strength as a blue line, the SMA as an orange line, and colors bars (blue for rising, red for falling) to indicate changes in relative strength.
Flexibility: Allows users to select the second instrument via an input field and adjust the SMA period.
Applications
Market Comparison: Assess whether a stock is outperforming an index (e.g., S&P 500 or MOEX) to identify strong assets for investment.
Sector Analysis: Compare stocks within a sector or against a sector ETF to pinpoint leaders.
Trend Analysis: Use the rise or fall of the RS line and its SMA to gauge the strength of an asset’s trend relative to another instrument.
Trade Timing: Bar coloring helps quickly identify changes in relative strength, aiding short-term trading decisions.
Interpretation
Rising RS: Indicates the first instrument is outperforming the second (e.g., a stock growing faster than an index).
Falling RS: Suggests the first instrument is underperforming.
SMA as a Trend Filter: If the RS line is above the SMA, it may signal strengthening performance; if below, weakening performance.
Settings
Instrument 2: Ticker of the second instrument (default: QQQ).
SMA Period: Period for the Simple Moving Average (default: 14).
Notes
The indicator works on any timeframe but requires accurate ticker input for the second instrument.
Ensure data for both instruments is available on the selected timeframe for precise analysis.
Liquidity Sweep ReversalOverview
The Liquidity Sweep Reversal indicator is a sophisticated intraday trading tool designed to identify high-probability reversal opportunities after liquidity sweeps occur at key market levels. Based on Smart Money Concepts (SMC) and Institutional Order Flow analysis, this indicator helps traders catch market reversals when stop-loss clusters are hunted.
Key Features
🎯 Multi-Level Liquidity Analysis
Previous Day High/Low (PDH/PDL) detection
Previous Week High/Low (PWH/PWL) tracking
Session highs/lows for Asian, London, and New York markets
Real-time level validation and usage tracking
⚡ Advanced Signal Generation
CISD (Change In State of Delivery) detection algorithm
Engulfing pattern recognition at key levels
Liquidity sweep confirmation system
Directional bias filtering to avoid false signals
⏰ Kill Zone Integration
Pre-configured optimal trading windows
Asian Kill Zone (20:00-00:00 EST)
London Kill Zone (02:00-05:00 EST)
New York AM/PM Kill Zones (08:30-11:00 & 13:30-16:00 EST)
Optional kill zone-only trading mode
🛠 Customization Options
Multiple timezone support (NY, London, Tokyo, Shanghai, UTC)
Flexible HTF (Higher Time Frame) selection
Adjustable signal sensitivity
Visual customization for all levels and signals
Hide historical signals option for cleaner charts
How It Works
The indicator continuously monitors price action around key liquidity levels
When price sweeps liquidity (stop-loss hunting), it marks potential reversal zones
Confirmation signals are generated through CISD or engulfing patterns
Trade signals appear as arrows with color-coded candles for easy identification
Best Suited For
Intraday traders focusing on 1m to 15m timeframes
Smart Money Concepts (SMC) practitioners
Scalpers looking for high-probability reversal entries
Traders who understand liquidity and market structure
Usage Tips
Works best on liquid forex pairs and major indices
Combine with volume analysis for stronger confirmation
Use proper risk management - not all signals will be winners
Monitor higher timeframe bias for better accuracy
==============================================
日内流动性掠夺反向开单指标
指标简介
这是一款基于Smart Money概念(SMC)开发的高级日内交易指标,专门用于识别市场在关键价格水平扫除流动性后的反转机会。通过分析机构订单流和流动性分布,帮助交易者精准捕捉止损扫单后的市场反转点。
核心功能
多维度流动性分析
前日高低点(PDH/PDL)自动标记
前周高低点(PWH/PWL)动态跟踪
亚洲、伦敦、纽约三大交易时段高低点识别
关键位使用状态实时监控,避免重复信号
智能信号系统
CISD(Change In State of Delivery)算法检测
关键位吞没形态识别
流动性扫除确认机制
方向过滤系统,大幅降低虚假信号
黄金交易时段
内置Kill Zone时间窗口
支持亚洲、伦敦、纽约AM/PM四个黄金时段
可选择仅在Kill Zone内交易
时区智能切换,全球交易者适用
个性化设置
支持多时区切换(纽约/伦敦/东京/上海/UTC)
HTF周期自动适配或手动选择
信号灵敏度可调
所有图表元素均可自定义样式
历史信号隐藏功能,保持图表整洁
适用人群
日内短线交易者(1分钟-15分钟)
SMC交易体系践行者
追求高胜率反转入场的投机者
理解流动性和市场结构的专业交易者
使用建议
推荐用于主流加密货币、外汇对和股指期货
配合成交量分析效果更佳
严格止损,理性对待每个信号
关注更高时间框架的趋势方向
风险提示: 任何技术指标都不能保证100%准确,请结合自己的交易系统和风险管理使用。
MarsCN10u S/R该指标通过识别价格的高低点来绘制支撑(S)和阻力(R)线及区域,帮助交易者识别潜在的价格反转区域。
自适应识别:自动识别重要的价格水平
可视化清晰:通过不同颜色区分支撑阻力
区域显示:提供价格区域而非单一线条
强度过滤:避免绘制过于弱小的S/R级别
动态更新:随着新价格数据不断更新S/R位置
注意事项
指标基于历史数据计算,S/R线会随着新数据而变化
强度参数越高,识别出的S/R级别越可靠但数量越少
区域宽度需要根据市场波动性适当调整
这个指标适合喜欢使用支撑阻力分析的交易者,特别是在寻找关键价格水平时提供可视化辅助。
This indicator identifies potential price reversal areas by plotting support (S) and resistance (R) lines and zones through the detection of price highs and lows.
Adaptive Identification: Automatically identifies significant price levels.
Clear Visualization: Distinguishes support and resistance with different colors.
Zone Display: Provides price zones instead of single lines.
Strength Filtering: Avoids plotting overly weak S/R levels.
Dynamic Updates: Continuously adjusts S/R positions as new price data emerges.
Notes
The indicator calculates based on historical data, and S/R lines may change with new data.
Higher strength parameters yield more reliable but fewer S/R levels.
Zone width should be adjusted according to market volatility.
This is for reference only and does not constitute investment advice.
This indicator is suitable for traders who utilize support and resistance analysis, particularly providing visual assistance in identifying key price levels.
Shifa A+ (Lean tidy) — v1.5.1calls/puts indicator based on trend line, support based tp and resistance based sl
T-SpotT-Spot is a concept created by TTrades. "By blending the logic of equilibrium, candle closures, and shifts in trend, the T-Spot was created. I created it as a way to identify where the HTF wick is likely to form during market expansions. This logic was then coded into my indicator to save me time in marking it up. Using the T-spot as the area, I'm looking for the HTF wick to form."
Example -
The previous 1H candle closed bullish, T-Spot indicator will mark out the High, Low, and 0.5 of it
B@dshah Indicator🚀 Advanced Multi-Indicator Trading System
A comprehensive trading indicator that combines multiple technical analysis tools for high-probability signal generation:
📊 CORE FEATURES:
- EMA Trend Analysis (Fast/Slow crossovers)
- RSI Momentum Detection
- MACD Signal Confirmation
- Bollinger Bands (Squeeze & Mean Reversion)
- Fibonacci Retracement Levels
- Volume & ATR Filtering
- Multi-Confluence Scoring System (0-10 scale)
🎯 SIGNAL QUALITY:
- Non-repainting signals (confirmed at bar close)
- Minimum 60% strength threshold for trades
- Dynamic TP/SL based on market structure
- Real-time win rate tracking
- Signal strength percentage display
⚙️ UNIQUE FEATURES:
- BB Squeeze detection for volatility breakouts
- Fibonacci level confluence analysis
- Smart position sizing recommendations
- Visual TP/SL lines with outcome tracking
- Comprehensive statistics table
🔔 ALERTS INCLUDED:
- Buy/Sell signals with strength ratings
- TP/SL hit notifications
- BB squeeze/expansion alerts
- Fibonacci level touches
Best used on 1H+ timeframes for optimal results.
Perfect for swing trading and position entries.
Lectura de VelasScript designed to display, on a panel as shown, the candlestick readings for Weekly, Daily, 4-hour, and 1-hour timeframes
Trap Zone Lite – Shinobi LabThis indicator is designed for day traders, especially on lower timeframes such as the 2-minute chart. It highlights the Trap Zone: an area of congestion created by the 20-period moving average, the 200-period moving average, and the previous day’s closing price. This zone often acts as a heavy area of support or resistance where price can stall or trap participants.
What it shows:
A shaded Trap Zone box (congestion zone).
Two boundary lines that extend outward from the zone:
Zone + (above the trap) → context for bullish confirmation. A long signal forming here has stronger reliability.
Zone – (below the trap) → context for bearish confirmation. A short signal forming here has stronger reliability.
How to use:
The Trap Zone is meant as context, not signals. Traders should avoid taking setups inside the zone due to congestion. The value comes from using the boundaries:
Avoid shorting in Zone + (too much overhead resistance from prior day close + MAs).
Avoid longing in Zone – (too much downward pressure).
Focus on confirmations that occur outside the trap zone for higher-quality setups.
VSA Events + Signals (Riz Edition)What it is
A Volume-Spread-Analysis toolkit that identifies classic VSA events, scores their quality with trend & location context, and prints entry signals (▲ Long / ▼ Short) only when price action confirms. Includes an on-chart event dashboard, rich alerts, HTF trend filter, VWAP/PDH/PDL location checks, and a chop/session filter. Works on any symbol/timeframe.
What it detects (labels)
Bullish / Strength
NS – No Supply (down bar, narrow spread, low relative volume)
Test – Test of supply (lower low, low volume, closes high)
SV – Stopping Volume (down, wide spread, high vol, higher close)
CA – Climactic Action (down, ultra/record vol, wide spread)
SO – Shakeout (down, ultra/record vol, long lower wick)
Bearish / Weakness
ND – No Demand (up bar, narrow spread, low relative volume)
DT – Distribution Test (higher high, low volume, closes low)
SCI – Supply Coming In (up, wide, high vol, lower close)
BC – Buying Climax (up, ultra/record vol, wide spread)
UT – Upthrust (up, ultra/record vol, long upper wick)
How signals are generated
Event → Candidate
When a bullish/bearish event occurs and filters pass (session, non-chop, recent strength/weakness, optional HTF agreement), the bar becomes a candidate (stored for confirmBars bars).
Scoring
Base score = sum of event weights (you control the weights).
Trend bonus = +w_Trend if trend agrees.
Location bonus = +w_Location if the candidate price is near VWAP or PDH/PDL (proxATR * ATR).
The candidate keeps this stored score.
Trigger (no repaint)
On confirmed bars only:
Long (▲) if price breaks above the candidate high or prints a strong up close;
Short (▼) if price breaks below the candidate low or prints a strong down close;
Candidate is invalidated if price breaches the opposite level first.
Final score = stored score + w_Confirm must be ≥ minScore.
Dashboard (panel)
Toggle Show Table to see the latest events/signals:
Time, Event, RelVol, Spread (Narrow/Wide/Normal), Near (VWAP/PDH/PDL), Base, Final.
Key inputs (organized in the script)
General: Version watermark, Debug.
Volume & Spread: Volume SMA length, relative-volume thresholds, ATR length, narrow/wide multipliers.
Trend/Context: Trend EMA length, optional HTF timeframe & confirmation.
Confirmation & Memory: confirmBars, memBars, minScore.
Weights: Bullish & Bearish event weights + w_Trend, w_Location, w_Confirm.
Location Filters: VWAP (hlc3), PDH/PDL, proxATR.
Session & Chop: Session time window, ATR/Range chop threshold.
Display: Toggle each event type, signals, table.
Alerts: One alert per event type + Bullish/ Bearish Entry alerts.
Tuning tips
Raise minScore to be stricter.
Increase w_Location and/or lower proxATR to favor entries at VWAP/PDH/PDL.
Use useHTFTrend for extra confirmation on higher timeframes.
Adjust confirmBars to control how long a setup can wait for a break.
Notes
Uses barstate.isconfirmed and no lookahead requests for triggers to avoid repainting.
Spot FX/CFDs use broker tick volume—treat relative-volume thresholds accordingly.
Educational tool, not financial advice. Test and size risk appropriately.
Market Spiralyst [Hapharmonic]Hello, traders and creators! 👋
Market Spiralyst: Let's change the way we look at analysis, shall we? I've got to admit, I scratched my head on this for weeks, Haha :). What you're seeing is an exploration of what's possible when code meets art on financial charts. I wanted to try blending art with trading, to do something new and break away from the same old boring perspectives. The goal was to create a visual experience that's not just analytical, but also relaxing and aesthetically pleasing.
This work is intended as a guide and a design example for all developers, born from the spirit of learning and a deep love for understanding the Pine Script™ language. I hope it inspires you as much as it challenged me!
🧐 Core Concept: How It Works
Spiralyst is built on two distinct but interconnected engines:
The Generative Art Engine: At its core, this indicator uses a wide range of mathematical formulas—from simple polygons to exotic curves like Torus Knots and Spirographs—to draw beautiful, intricate shapes directly onto your chart. This provides a unique and dynamic visual backdrop for your analysis.
The Market Pulse Engine: This is where analysis meets art. The engine takes real-time data from standard technical indicators (RSI and MACD in this version) and translates their states into a simple, powerful "Pulse Score." This score directly influences the appearance of the "Scatter Points" orbiting the main shape, turning the entire artwork into a living, breathing representation of market momentum.
🎨 Unleash Your Creativity! This Is Your Playground
We've included 25 preset shapes for you... but that's just the starting point !
The real magic happens when you start tweaking the settings yourself. A tiny adjustment can make a familiar shape come alive and transform in ways you never expected.
I'm genuinely excited to see what your imagination can conjure up! If you create a shape you're particularly proud of or one that looks completely unique, I would love to see it. Please feel free to share a screenshot in the comments below. I can't wait to see what you discover! :)
Here's the default shape to get you started:
The Dynamic Scatter Points: Reading the Pulse
This is where the magic happens! The small points scattered around the main shape are not just decorative; they are the visual representation of the Market Pulse Score.
The points have two forms:
A small asterisk (`*`): Represents a low or neutral market pulse.
A larger, more prominent circle (`o`): Represents a high, strong market pulse.
Here’s how to read them:
The indicator calculates the Pulse Strength as a percentage (from 0% to 100%) based on the total score from the active indicators (RSI and MACD). This percentage determines the ratio of circles to asterisks.
High Pulse Strength (e.g., 80-100%): Most of the scatter points will transform into large circles (`o`). This indicates that the underlying momentum is strong and It could be an uptrend. It's a visual cue that the market is gaining strength and might be worth paying closer attention to.
Low Pulse Strength (e.g., 0-20%): Most or all of the scatter points will remain as small asterisks (`*`). This suggests weak, neutral, or bearish momentum.
The key takeaway: The more circles you see, the stronger the bullish momentum is according to the active indicators. Watch the artwork "breathe" as the circles appear and disappear with the market's rhythm!
And don't worry about the shape you choose; the scatter points will intelligently adapt and always follow the outer boundary of whatever beautiful form you've selected.
How to Use
Getting started with Spiralyst is simple:
Choose Your Canvas: Start by going into the settings and picking a `Shape` and `Palette` from the "Shape Selection & Palette" group that you find visually appealing. This is your canvas.
Tune Your Engine: Go to the "Market Pulse Engine" settings. Here, you can enable or disable the RSI and MACD scoring engines. Want to see the pulse based only on RSI? Just uncheck the MACD box. You can also fine-tune the parameters for each indicator to match your trading style.
Read the Vibe: Observe the scatter points. Are they mostly small asterisks or are they transforming into large, vibrant circles? Use this visual feedback as a high-level gauge of market momentum.
Check the Dashboard: For a precise breakdown, look at the "Market Pulse Analysis" table on the top-right. It gives you the exact values, scores, and total strength percentage.
Explore & Experiment: Play with the different shapes and color palettes! The core analysis remains the same, but the visual experience can be completely different.
⚙️ Settings & Customization
Spiralyst is designed to be highly customizable.
Shape Selection & Palette: This is your main control panel. Choose from over 25 unique shapes, select a color palette, and adjust the line extension style ( `extend` ) or horizontal position ( `offsetXInput` ).
scatterLabelsInput: This setting controls the total number of points (both asterisks and circles) that orbit the main shape. Think of it as adjusting the density or visual granularity of the market pulse feedback.
The Market Pulse engine will always calculate its strength as a percentage (e.g., 75%). This percentage is then applied to the `scatterLabelsInput` number you've set to determine how many points transform into large circles.
Example: If the Pulse Strength is 75% and you set this to `100` , approximately 75 points will become circles. If you increase it to `200` , approximately 150 points will transform.
A higher number provides a more detailed, high-resolution view of the market pulse, while a lower number offers a cleaner, more minimalist look. Feel free to adjust this to your personal visual preference; the underlying analytical percentage remains the same.
Market Pulse Engine:
`⚙️ RSI Settings` & `⚙️ MACD Settings`: Each indicator has its own group.
Enable Scoring: Use the checkbox at the top of each group to include or exclude that indicator from the Pulse Score calculation. If you only want to use RSI, simply uncheck "Enable MACD Scoring."
Parameters: All standard parameters (Length, Source, Fast/Slow/Signal) are fully adjustable.
Individual Shape Parameters (01-25): Each of the 25+ shapes has its own dedicated group of settings, allowing you to fine-tune every aspect of its geometry, from the number of petals on a flower to the windings of a knot. Feel free to experiment!
For Developers & Pine Script™ Enthusiasts
If you are a developer and wish to add more indicators (e.g., Stochastic, CCI, ADX), you can easily do so by following the modular structure of the code. You would primarily need to:
Add a new `PulseIndicator` object for your new indicator in the `f_getMarketPulse()` function.
Add the logic for its scoring inside the `calculateScore()` method.
The `calculateTotals()` method and the dashboard table are designed to be dynamic and will automatically adapt to include your new indicator!
One of the core design philosophies behind Spiralyst is modularity and scalability . The Market Pulse engine was intentionally built using User-Defined Types (UDTs) and an array-based structure so that adding new indicators is incredibly simple and doesn't require rewriting the main logic.
If you want to add a new indicator to the scoring engine—let's use the Stochastic Oscillator as a detailed example—you only need to modify three small sections of the code. The rest of the script, including the adaptive dashboard, will update automatically.
Here’s your step-by-step guide:
#### Step 1: Add the User Inputs
First, you need to give users control over your new indicator. Find the `USER INTERFACE: INPUTS` section and add a new group for the Stochastic settings, right after the MACD group.
Create a new group name: `string GRP_STOCH = "⚙️ Stochastic Settings"`
Add the inputs: Create a boolean to enable/disable it, and then add the necessary parameters (`%K`, `%D`, `Smooth`). Use the `active` parameter to link them to the enable/disable checkbox.
// Add this code block right after the GRP_MACD and MACD inputs
string GRP_STOCH = "⚙️ Stochastic Settings"
bool stochEnabledInput = input.bool(true, "Enable Stochastic Scoring", group = GRP_STOCH)
int stochKInput = input.int(14, "%K Length", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochDInput = input.int(3, "%D Smoothing", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochSmoothInput = input.int(3, "Smooth", minval=1, group = GRP_STOCH, active = stochEnabledInput)
#### Step 2: Integrate into the Pulse Engine (The "Factory")
Next, go to the `f_getMarketPulse()` function. This function acts as a "factory" that builds and configures the entire market pulse object. You need to teach it how to build your new Stochastic indicator.
Update the function signature: Add the new `stochEnabledInput` boolean as a parameter.
Calculate the indicator: Add the `ta.stoch()` calculation.
Create a `PulseIndicator` object: Create a new object for the Stochastic, populating it with its name, parameters, calculated value, and whether it's enabled.
Add it to the array: Simply add your new `stochPulse` object to the `array.from()` list.
Here is the complete, updated `f_getMarketPulse()` function :
// Factory function to create and calculate the entire MarketPulse object.
f_getMarketPulse(bool rsiEnabled, bool macdEnabled, bool stochEnabled) =>
// 1. Calculate indicator values
float rsiVal = ta.rsi(rsiSourceInput, rsiLengthInput)
= ta.macd(close, macdFastInput, macdSlowInput, macdSignalInput)
float stochVal = ta.sma(ta.stoch(close, high, low, stochKInput), stochDInput) // We'll use the main line for scoring
// 2. Create individual PulseIndicator objects
PulseIndicator rsiPulse = PulseIndicator.new("RSI", str.tostring(rsiLengthInput), rsiVal, na, 0, rsiEnabled)
PulseIndicator macdPulse = PulseIndicator.new("MACD", str.format("{0},{1},{2}", macdFastInput, macdSlowInput, macdSignalInput), macdVal, signalVal, 0, macdEnabled)
PulseIndicator stochPulse = PulseIndicator.new("Stoch", str.format("{0},{1},{2}", stochKInput, stochDInput, stochSmoothInput), stochVal, na, 0, stochEnabled)
// 3. Calculate score for each
rsiPulse.calculateScore()
macdPulse.calculateScore()
stochPulse.calculateScore()
// 4. Add the new indicator to the array
array indicatorArray = array.from(rsiPulse, macdPulse, stochPulse)
MarketPulse pulse = MarketPulse.new(indicatorArray, 0, 0.0)
// 5. Calculate final totals
pulse.calculateTotals()
pulse
// Finally, update the function call in the main orchestration section:
MarketPulse marketPulse = f_getMarketPulse(rsiEnabledInput, macdEnabledInput, stochEnabledInput)
#### Step 3: Define the Scoring Logic
Now, you need to define how the Stochastic contributes to the score. Go to the `calculateScore()` method and add a new case to the `switch` statement for your indicator.
Here's a sample scoring logic for the Stochastic, which gives a strong bullish score in oversold conditions and a strong bearish score in overbought conditions.
Here is the complete, updated `calculateScore()` method :
// Method to calculate the score for this specific indicator.
method calculateScore(PulseIndicator this) =>
if not this.isEnabled
this.score := 0
else
this.score := switch this.name
"RSI" => this.value > 65 ? 2 : this.value > 50 ? 1 : this.value < 35 ? -2 : this.value < 50 ? -1 : 0
"MACD" => this.value > this.signalValue and this.value > 0 ? 2 : this.value > this.signalValue ? 1 : this.value < this.signalValue and this.value < 0 ? -2 : this.value < this.signalValue ? -1 : 0
"Stoch" => this.value > 80 ? -2 : this.value > 50 ? 1 : this.value < 20 ? 2 : this.value < 50 ? -1 : 0
=> 0
this
#### That's It!
You're done. You do not need to modify the dashboard table or the total score calculation.
Because the `MarketPulse` object holds its indicators in an array , the rest of the script is designed to be adaptive:
The `calculateTotals()` method automatically loops through every indicator in the array to sum the scores and calculate the final percentage.
The dashboard code loops through the `enabledIndicators` array to draw the table. Since your new Stochastic indicator is now part of that array, it will appear automatically when enabled!
---
Remember, this is your playground! I'm genuinely excited to see the unique shapes you discover. If you create something you're proud of, feel free to share it in the comments below.
Happy analyzing, and may your charts be both insightful and beautiful! 💛
Muzyorae - RTH Anchored Quarters CyclesRTH Anchored Quarters Cycles — Model Overview
The RTH Anchored Quarters Cycles model is designed to divide the Regular Trading Hours (RTH) session of U.S. equities (typically 09:30 – 16:00 New York time) into four structured “quarters” plus a closing marker. It provides a consistent framework for analyzing intraday market behavior by aligning time-based partitions with the actual trading day.
Key Features
Anchored to RTH
The model starts each cycle at 09:30 NY time (the official cash open).
It ignores overnight or extended-hours data, focusing strictly on the RTH session, where the majority of institutional order flow takes place.
After 18:00 NY time, the model still references the same trading date, preventing false signals from session rollovers.
Quarterly Time Blocks
The trading day is split into five reference points:
Q1: 09:30 – 10:00
Q2: 10:00 – 11:30
Q3: 11:30 – 13:30
Q4: 13:30 – 16:00
End: Closing marker at 16:00
Each boundary is drawn as a vertical line on the chart, clearly separating the quarters.
Customization
Users can adjust the start/end times of each quarter.
So if you would like to wish to use ICT timing Macro, intraday, daily and even weekly
The line style, color, and width are configurable (solid/dotted/dashed).
A label is placed at each quarter boundary (Q1, Q2, Q3, Q4, End) for quick visual reference.
Days Back Control
The model can display the cycles for multiple past trading days (user-defined).
Weekend days are automatically skipped, so “2 days back” means today and the previous trading day.
Why It’s Useful
Intraday Structure: Traders can quickly identify where the market is within the daily RTH cycle.
Consistency: Since the model is anchored to RTH, it avoids confusion caused by overnight Globex activity.
Clarity: Vertical markers and labels provide a clean framework for aligning trade setups, volume analysis, or order flow studies with specific time windows.
Flexibility: The customizable settings allow adaptation across instruments and strategies.
VXN NY Open Prep TimeThis indicator is based on other open source scripts. It's designed for futures markets (e.g., NQ, MNQ, ES, MES) to plot a vertical line 15 minutes before the market opens at 9:30 AM Eastern Time (ET).
A vertical line is drawn at 9:15 AM ET to serve as a visual alert for traders preparing for the market open.
Enjoy this indicator? Consider a donation to support development! buymeacoffee.com
Ambitious IndicatorAmbitious indicator helps you see which way you should be trading.
Also use this with multi time frame analysis.
It will show which way trend is going. trade with the trend, don't predict.
VXN Net VolumeThis indicator is based on other open source scripts. It displays net volume (buying minus selling) approximated from lower timeframe data, helping traders gauge buying/selling pressure.
It uses the CBOE Nasdaq Volatility Index (VXN) to color the chart background: green for low volatility (bullish) when VXN's short-term EMA is below its long-term SMA, and red for high volatility (bearish) when above.
The net volume color is not filtered by the VXN Index trend direction (background color). It’s highly recommended to align with the VXN Index trend direction when using net volume to confirm your entry. A red net volume with a red background or a green net volume with a green background provides a high-probability setup.
A moving average of net volume is optionally plotted as a blue area to highlight significant volume levels.
Enjoy this indicator? Consider a donation to support development! buymeacoffee.com
RVM LLS Signal DetectorThe indicator detects long lower wick candle and gives indicator to buy points. Proper risk reward needs to be managed to make the indicator work
Trend Score Stop Loss Trend Score Indicator Guide
This indicator is designed for futures trading during RTH (Regular Trading Hours, 9:30–16:00 NY time). It’s an all-in-one bull/bear trend system with built-in stop loss logic — simple, objective, and always active.
⸻
🔹 How Trend Score Works
• The trend score is calculated only during RTH and resets at the start of each new session.
• Each candle contributes to the score as follows:
• ✅ Breaks previous high → +1
• ❌ Breaks previous low → –1
• ⚖️ Breaks both high and low → 0 (–1 + 1 cancel out)
• 💤 Breaks neither high nor low → 0
⸻
🔹 Determining the First Trend
• The first valid session trend is established when the cumulative score hits +3 or –3.
• +3 → Start of a Bull Trend
• –3 → Start of a Bear Trend
⚠️ Note: The indicator requires at least 3 candles to generate the first +3/–3 sequence.
👉 This means the first 3 minutes of the open (9:30–9:33) are ignored — a natural filter that avoids the most volatile/noisy part of the day.
⸻
🔹 Stop Loss vs. Trend Change
These are two separate events:
• Stop Loss
• A stop level is drawn at the candle that initiated the +3 or –3 trigger.
• This line is only a visual suggestion — it does not force an exit.
• Real-world stop placement depends on your own discretion, factoring in position size, volatility, and strategy.
• Hitting this level does not automatically mean the trend is over.
• Trend Change
• The trend only reverses when the opposite direction accumulates 3 points.
• Example: In a Bull trend, the system flips to Bear only when a –3 sequence occurs (and vice versa).
• A trend change can happen before or without the stop loss ever being hit.
⸻
🔹 Key Features
• ✅ Active only during RTH (9:30–16:00 NY) — no overnight distortions.
• 🔄 Auto-reset daily at the start of each session.
• 🟢🔴 Always in a trend — continuously switches between Bull and Bear.
• 🛡️ Stop loss marked visually — but final risk management is trader’s choice.
• ⏳ Avoids first 3 minutes of open — naturally filters volatility & false signals.
⸻
✨ In short:
The Trend Score Indicator transforms simple high/low breaks into a rule-based trend framework. You’ll always know if the market is in a bull or bear phase, where the suggested stop loss lies, and when a true trend reversal occurs — while still leaving risk management decisions in your hands.
⸻
For better user experience:
Deselect danger score, delta per bar, slope m10, panel label in the style tap. These are used for the calculation purpose only.
You can also change your session time to 1800 to 1600, however it may not work well in ETH session.
VXN filtered CHOCH Pattern LevelsThis indicator is based on other open source scripts. It identifies Change of Character (CHOCH) patterns on Nasdaq futures (NQ and MNQ) charts, using pivot points to detect potential trend reversals.
Signals (horizontal levels) are filtered by VXN background color: bullish levels only on green background, bearish on red.
If a CHOCH occurs on the wrong background, it is remembered (pending), and triggered when the background aligns. The last CHOCH signal is remembered to avoid wasting it.
It plots horizontal levels anchored to the extreme points of CHOCH patterns (lowest low for bullish, highest high for bearish), using the labeling and line-drawing style from the VXN Anchored VWAP indicator.
Lines are drawn as polylines (horizontal) with labels at the anchor point and current bar showing the level value.
The VXN index provides background color for market sentiment (green for bullish, red for bearish).
Historical levels are plotted semi-transparently when a new filtered signal is confirmed (on detection if aligned or on trigger).
Enjoy this indicator? Consider a donation to support development! buymeacoffee.com
VXN EMA BandThis indicator is based on other open source scripts. It's designed for Nasdaq futures (NQ or MNQ). It plots an EMA Band consisting of three exponential moving averages (EMAs) with a period of 96, each using a different price source: low, (high + low + close)/3, and high. The EMAs are colored to indicate their source: darkest turquoise for the low-based EMA, medium turquoise for the (high + low + close)/3-based EMA, and lightest turquoise for the high-based EMA. This visual distinction helps traders identify price trends relative to these key levels.
The indicator also includes background coloring based on the VXN index direction (using CBOE:VXN) to highlight bullish or bearish market conditions. A bullish trend is suggested when the EMAs are aligned (EMA-High above EMA-Mid above EMA-Low) and the VXN EMA is below its SMA, indicated by a green background. A bearish trend is suggested when the EMAs are aligned (EMA-High below EMA-Mid below EMA-Low) and the VXN EMA is above its SMA, indicated by a red background.