XAUUSD Breakout + SL Points 15 Minute Strategy By Nitin SoniXAUUSD Dynamic Breakout + SL Points 15 Minute StrategyPine Script® 인디케이터ClioCobalt11의108
Session Highs & Lows (TJR style)This indicator shows previous ny highs and lows, asia high and low, and london high and low. this indicator is for utc time standard only.Pine Script® 인디케이터tristan4ayala의7
Forex Renko LeaderboardForex Warlord: Kinetic Velocity Leaderboard This indicator is a specialized dashboard designed to rank the 7 Major Forex pairs based on their real-time "Kinetic Velocity" and acceleration. Unlike standard strength meters that measure relative price change, the Warlord Engine calculates exactly how fast a pair is generating net profits per second, accounting for the "Physics" of the market: drag (spread costs) and inertia (lag). It is designed specifically for momentum traders who need to know not just which pair is moving, but which pair is moving fast enough to overcome the cost of the spread and generate immediate net return. HOW IT WORKS The script runs a "Virtual Renko" simulation on your time-based chart (works best on 1-second or 1-minute timeframes). It tracks price movement in "Bricks" and calculates a standardized "Score" for each pair. The Score represents "Net Pips per Second." -- A positive score (> 0.00) means the price is moving fast enough to clear the spread and generate profit. -- A negative score (< 0.00) means the price is moving too slowly, and the spread cost is eating the volatility. The system then applies a "Smart Decay" penalty. If a pair is moving fast but starting to decelerate (slowing down), its score is penalized to prevent you from buying the top. HOW TO USE IT 1. Attach the indicator to any chart (EURUSD, 1-Second or 1-Minute recommended for high-speed scalping). 2. Look at the Dashboard on the right side of the screen. 3. Identify the Rank #1 Pair. This is the currency currently moving with the highest velocity. 4. Check the "Action" Column: -- TRADE (Green): The pair is Rank #1 AND its velocity is high enough to be profitable. -- NO TRADE (Red): The pair is moving too slowly, or the spread cost is too high relative to the move. -- SPREAD > MAX (Red): The calculated move does not clear your specified "Max Broker Cost." -- NO TRADE (ZONE) (Red): The market is in the "Dead Zone" (typically 17:00-18:00 EST), where spreads widen and liquidity vanishes. 5. Check the "State" Icon: -- Rocket: The pair is accelerating. This is the ideal entry signal. -- Warning: The pair is decelerating. Caution is advised as momentum is fading. ALERTS The indicator features a built-in alert system. You can create an alert in TradingView to notify you specifically when the "Renko Leaderboard Ranking" changes. This allows you to wait for the market to tell you which pair is taking the lead without staring at the screen. INPUTS & SETTINGS -- Renko Brick Size (Pips): The most critical tuning knob. Determines the sensitivity of the engine. Smaller bricks (e.g., 2-3 pips) make it hyper-sensitive for scalping. Larger bricks (e.g., 10 pips) tune it for swing trends. Changing this instantly recalculates the entire board. -- Max Broker Cost (Pips): Your "Hurdle Rate." If a pair's projected profit does not clear this cost (default 1.0 pip), the dashboard will forbid the trade. -- Dead Zone Start/End (Hour): Hard-coded risk management. By default, it blocks all signals between 17:00 and 18:00 EST (New York Close) to protect you from high-spread rollover hours. -- HMA Time Dilation: A smoothing factor to prevent noise on 1-second charts. DISCLAIMER This tool is for informational purposes only. It measures past velocity to rank current momentum. Past performance is not indicative of future results. Always verify the actual bid/ask spread on your broker before executing, as the script uses a fixed spread calculation.Pine Script® 인디케이터cechapman의업데이트됨 7
Sniper Structure Signals (HH HL LH LL)Sniper Structure Signals is a professional market structure indicator designed to help traders read price action with clarity and consistency. It automatically identifies and labels Higher Highs, Higher Lows, Lower Highs, and Lower Lows using a configurable swing strength to reduce market noise and highlight meaningful structure. The indicator defines directional bias based on confirmed market structure. A bullish bias is established after the formation of a Higher High followed by a Higher Low. A bearish bias is established after the formation of a Lower High followed by a Lower Low. This approach keeps the trader aligned with the dominant trend. Trade signals are generated only after price confirms the active bias. Buy signals appear when price breaks above the most recent swing high during a bullish bias. Sell signals appear when price breaks below the most recent swing low during a bearish bias. The current bias is displayed on the chart, and built in alerts notify the trader when valid buy or sell conditions are met.Pine Script® 인디케이터khitrader85의73
Bullish Flag Breakout Alert//@version=5 indicator("Bullish Flag Breakout Alert", overlay=true) // Inputs flagLookback = input.int(15, "Flag High Lookback") volMultiplier = input.float(1.5, "Volume Multiplier") // Calculations flagHigh = ta.highest(high, flagLookback) avgVol = ta.sma(volume, 20) // Breakout condition breakout = close > flagHigh and volume > avgVol * volMultiplier // Plot plot(flagHigh, "Flag High", color=color.orange) plotshape(breakout, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="BO") // Alert alertcondition(breakout, title="Bullish Flag Breakout") Pine Script® 인디케이터nitinrise9의3
EMA HH/LL Levels v6This indicator builds dynamic horizontal levels based on Higher Highs (HH) and Lower Lows (LL) of an Exponential Moving Average (EMA) rather than raw price. It is designed to highlight structural EMA-based resistance and support levels and automatically manage their lifecycle. 🔹 Core Logic The script calculates an EMA (default length: 26). Pivot Highs and Pivot Lows are detected directly on the EMA line, not on price. Each confirmed: EMA Higher High (HH) → creates a solid blue horizontal level EMA Lower Low (LL) → creates a solid red horizontal level Levels extend to the right and remain active until specific conditions are met. 🔹 Level State Management Each level can be in one of three states: Active (Solid line) The level has been created but not interacted with yet. Touched by Price (Dotted line) When a price bar touches the level (High ≥ level AND Low ≤ level), the level changes its style from solid to dotted, but remains on the chart. Broken by EMA (Removed) When the EMA itself crosses the level: HH level → removed when EMA crosses above it LL level → removed when EMA crosses below it The level is then deleted from the chart. ⚠️ Important: Levels are never removed by price action alone — only by an EMA break. 🔹 EMA Visualization The EMA line is color-coded by direction: Upward slope → user-defined “up” color Downward slope → user-defined “down” color EMA length, colors, and line width are fully configurable. 🔹 Customization Options EMA length EMA up/down colors and thickness Pivot sensitivity (left/right bars) HH / LL level colors and thickness Maximum number of stored levels (to control memory and chart clutter) 🔹 Use Cases Identifying EMA-based dynamic support and resistance Tracking trend structure via EMA swings Confluence with price action, pullbacks, and breakouts Trend-following and mean-reversion strategies 🔹 Notes This indicator works on all markets and timeframes. No repainting after pivot confirmation. No ta.crossover() / ta.crossunder() is used — all logic is calculated manually for maximum stability in Pine Script v6.Pine Script® 인디케이터Benepamm의4
EMA CROSS SMC Structures and FVG TorHzpk v0.1 EMA CROSS SMC Structures and FVG TorHzpk v0.1 2/8/2026 Pine Script® 인디케이터TorHzpk의업데이트됨 19
Mul TF Flow PRO ( 79 Fx )//@version=5 indicator("Multi TF Flow PRO (79 Fx )", overlay=true) // ===== GET CLOSED CANDLES ===== d_open = request.security(syminfo.tickerid, "D", open) d_close = request.security(syminfo.tickerid, "D", close) h4_open = request.security(syminfo.tickerid, "240", open) h4_close = request.security(syminfo.tickerid, "240", close) h1_open = request.security(syminfo.tickerid, "60", open) h1_close = request.security(syminfo.tickerid, "60", close) m15_open = request.security(syminfo.tickerid, "15", open) m15_close = request.security(syminfo.tickerid, "15", close) // ===== FLOW LOGIC ===== dailyFlow = d_close > d_open ? 1 : -1 h4Flow = h4_close > h4_open ? 1 : -1 h1Flow = h1_close > h1_open ? 1 : -1 m15Flow = m15_close > m15_open ? 1 : -1 // ===== COUNT ===== bullCount = (dailyFlow == 1 ? 1 : 0) + (h4Flow == 1 ? 1 : 0) + (h1Flow == 1 ? 1 : 0) + (m15Flow == 1 ? 1 : 0) bearCount = (dailyFlow == -1 ? 1 : 0) + (h4Flow == -1 ? 1 : 0) + (h1Flow == -1 ? 1 : 0) + (m15Flow == -1 ? 1 : 0) // ===== TOTAL FLOW ===== string totalFlow = bullCount > bearCount ? "TOTAL BULLISH" : bearCount > bullCount ? "TOTAL BEARISH" : "NEUTRAL" // ===== CREATE TABLE ===== var table t = table.new(position.top_right, 2, 6, border_width=1) // ===== UPDATE TABLE ===== if barstate.islast table.cell(t, 0, 0, "Timeframe", bgcolor=color.gray, text_color=color.white) table.cell(t, 1, 0, "Flow", bgcolor=color.gray, text_color=color.white) table.cell(t, 0, 1, "Daily") table.cell(t, 1, 1, dailyFlow == 1 ? "Bullish" : "Bearish", text_color=dailyFlow==1?color.lime:color.red) table.cell(t, 0, 2, "4H") table.cell(t, 1, 2, h4Flow == 1 ? "Bullish" : "Bearish", text_color=h4Flow==1?color.lime:color.red) table.cell(t, 0, 3, "1H") table.cell(t, 1, 3, h1Flow == 1 ? "Bullish" : "Bearish", text_color=h1Flow==1?color.lime:color.red) table.cell(t, 0, 4, "15M") table.cell(t, 1, 4, m15Flow == 1 ? "Bullish" : "Bearish", text_color=m15Flow==1?color.lime:color.red) table.cell(t, 0, 5, "TOTAL FLOW") table.cell(t, 1, 5, totalFlow, text_color = totalFlow=="TOTAL BULLISH"?color.lime: totalFlow=="TOTAL BEARISH"?color.red: color.orange, bgcolor = totalFlow=="TOTAL BULLISH"?color.new(color.green,80): totalFlow=="TOTAL BEARISH"?color.new(color.red,80): color.new(color.orange,80)) Pine Script® 인디케이터sakadasakada018의35
Flow Dashboard PRO ( 79 Fx Create ) sakada//@version=5 indicator("Multi TF Flow Dashboard PRO (Stable)", overlay=true) // ===== GET CLOSED CANDLES ===== d_open = request.security(syminfo.tickerid, "D", open) d_close = request.security(syminfo.tickerid, "D", close) h4_open = request.security(syminfo.tickerid, "240", open) h4_close = request.security(syminfo.tickerid, "240", close) h1_open = request.security(syminfo.tickerid, "60", open) h1_close = request.security(syminfo.tickerid, "60", close) m15_open = request.security(syminfo.tickerid, "15", open) m15_close = request.security(syminfo.tickerid, "15", close) // ===== FLOW LOGIC ===== dailyFlow = d_close > d_open ? 1 : -1 h4Flow = h4_close > h4_open ? 1 : -1 h1Flow = h1_close > h1_open ? 1 : -1 m15Flow = m15_close > m15_open ? 1 : -1 // ===== COUNT ===== bullCount = (dailyFlow == 1 ? 1 : 0) + (h4Flow == 1 ? 1 : 0) + (h1Flow == 1 ? 1 : 0) + (m15Flow == 1 ? 1 : 0) bearCount = (dailyFlow == -1 ? 1 : 0) + (h4Flow == -1 ? 1 : 0) + (h1Flow == -1 ? 1 : 0) + (m15Flow == -1 ? 1 : 0) // ===== TOTAL FLOW ===== string totalFlow = bullCount > bearCount ? "TOTAL BULLISH" : bearCount > bullCount ? "TOTAL BEARISH" : "NEUTRAL" // ===== CREATE TABLE ===== var table t = table.new(position.top_right, 2, 6, border_width=1) // ===== UPDATE TABLE ===== if barstate.islast table.cell(t, 0, 0, "Timeframe", bgcolor=color.gray, text_color=color.white) table.cell(t, 1, 0, "Flow", bgcolor=color.gray, text_color=color.white) table.cell(t, 0, 1, "Daily") table.cell(t, 1, 1, dailyFlow == 1 ? "Bullish" : "Bearish", text_color=dailyFlow==1?color.lime:color.red) table.cell(t, 0, 2, "4H") table.cell(t, 1, 2, h4Flow == 1 ? "Bullish" : "Bearish", text_color=h4Flow==1?color.lime:color.red) table.cell(t, 0, 3, "1H") table.cell(t, 1, 3, h1Flow == 1 ? "Bullish" : "Bearish", text_color=h1Flow==1?color.lime:color.red) table.cell(t, 0, 4, "15M") table.cell(t, 1, 4, m15Flow == 1 ? "Bullish" : "Bearish", text_color=m15Flow==1?color.lime:color.red) table.cell(t, 0, 5, "TOTAL FLOW") table.cell(t, 1, 5, totalFlow, text_color = totalFlow=="TOTAL BULLISH"?color.lime: totalFlow=="TOTAL BEARISH"?color.red: color.orange, bgcolor = totalFlow=="TOTAL BULLISH"?color.new(color.green,80): totalFlow=="TOTAL BEARISH"?color.new(color.red,80): color.new(color.orange,80)) Pine Script® 인디케이터sakadasakada018의1119
AURORA PRIME Alerts (Indicator)/@version=6 indicator("AURORA PRIME Alerts (Indicator)", overlay=true) // --- inputs and logic copied from your strategy (only the parts needed for signals) --- tfHTF = input.timeframe("60", "HTF for Structure") // ... copy any inputs you want exposed ... // Example: assume longEntry, shortEntry, canAdd are computed exactly as in your strategy // (paste the same computations here or import them) // For demonstration, placeholder signals (replace with your real conditions) longEntry = false // <-- replace with your strategy's longEntry expression shortEntry = false // <-- replace with your strategy's shortEntry expression canAdd = false // <-- replace with your strategy's canAdd expression inPosLong = false // <-- replace with your strategy's inPosLong expression inPosShort = false // <-- replace with your strategy's inPosShort expression // Alert conditions exposed to TradingView UI alertcondition(longEntry, title="AURORA PRIME Long Entry", message="AURORA PRIME Long Entry") alertcondition(shortEntry, title="AURORA PRIME Short Entry", message="AURORA PRIME Short Entry") alertcondition(canAdd and inPosLong, title="AURORA PRIME Long Add", message="AURORA PRIME Long Add") alertcondition(canAdd and inPosShort, title="AURORA PRIME Short Add", message="AURORA PRIME Short Add") // Optional visuals to match strategy plotshape(longEntry, title="Long", style=shape.triangleup, color=color.new(color.lime, 0), size=size.small, location=location.belowbar) plotshape(shortEntry, title="Short", style=shape.triangledown, color=color.new(color.red, 0), size=size.small, location=location.abovebar) Pine Script® 인디케이터bettencourt37의3
TorHzpk EMA with Config & Values (v5) + Cross AlertsTorHzpk EMA with Config & Values (v5) + Cross Alerts Pine Script® 인디케이터TorHzpk의7
7AM Daily Open (Round to 0/5) + AlertsIndicator Description: 7AM Daily Open Zone (Rounded) This indicator is designed to establish a daily trading range based on the market open at 07:00 AM (Bangkok Time, UTC+7). It automatically plots a central reference line and two boundary lines (Upper and Lower) to help traders identify key support and resistance zones for the day.Pine Script® 인디케이터TengSornhirun의업데이트됨 17
EMA Std Dev DistanceIt calculates distance between lower and upper std dev of a smoothed EMA.Pine Script® 인디케이터alpha62539의3
WaveTrend & RSI Combined (v-final)# RSI Divergence + WaveTrend Combined ## Overview This indicator combines RSI Divergence detection with WaveTrend crosses to generate high-probability trading signals. It filters out noise by only showing divergences when confirmed by WaveTrend momentum crosses in the same direction. ## Key Features ### 1. Smart Divergence Detection - Detects both bullish and bearish RSI divergences - Uses **price pivot validation** to ensure divergences start from significant chart highs/lows, not just RSI extremes - Divergence endpoints must be in the **neutral zone (20-80)** to avoid overbought/oversold traps ### 2. WaveTrend Cross Confirmation - **Golden Cross**: WaveTrend crossover in oversold territory (below -60) - **Dead Cross**: WaveTrend crossover in overbought territory (above +60) - Crosses are displayed at RSI 20 (golden) and RSI 80 (dead) levels for easy visualization ### 3. Combined Signal Logic - **LONG Signal**: Bullish RSI Divergence + Golden Cross within the divergence period - **SHORT Signal**: Bearish RSI Divergence + Dead Cross within the divergence period - Divergences are **only displayed** when a matching cross exists in the same period ### 4. Visual Elements - **Yellow lines**: Divergence connections between master point and current point - **Small diamonds**: Divergence markers (green for bullish, red for bearish) - **Triangles**: Confirmed entry signals (▲ for LONG, ▼ for SHORT) - **Circles**: WaveTrend crosses (green at bottom for golden, red at top for dead) - **Background color**: Highlights signal bars (green for LONG, red for SHORT) - **Debug table**: Shows real-time RSI, divergence count, WaveTrend values, and cross status ## Settings ### RSI Divergence - RSI Length (default: 14) - Overbuy/Oversell levels - Divergence detection parameters (loopback, confirmation, limits) ### WaveTrend - Channel Length (default: 10) - Average Length (default: 21) - Overbought/Oversold levels - Cross Detection Level (default: 60) ### Pivot Detection - Pivot Left/Right Bars (default: 5) - Controls sensitivity for price pivot validation ## How to Use 1. **Wait for signal**: Look for the triangle markers (▲/▼) with background color 2. **Confirm with crosses**: Ensure the corresponding WaveTrend cross (circle) is visible 3. **Check divergence line**: The yellow line should connect meaningful price pivots ## Alerts - Built-in alert conditions for both LONG and SHORT signals - Webhook-ready format for automation (Telegram, Discord, auto-trading bots) ## Best Practices - Works well on higher timeframes (1H, 4H, Daily) - Combine with support/resistance levels for better entries - Use proper risk management - not every signal is a winner ## Credits - RSI Divergence logic inspired by K-zax - WaveTrend calculation based on LazyBear's implementation - Combined and enhanced by sondengs --- *This indicator is for educational purposes only. Always do your own research and manage your risk appropriately.*Pine Script® 인디케이터sondengs의8
Institutional Reload Zones //@version=5 indicator("MSS Institutional Reload Zones (HTF + Sweep + Displacement) ", overlay=true, max_boxes_count=20, max_labels_count=50) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // Inputs //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ pivotLeft = input.int(3, "Pivot Left", minval=1) pivotRight = input.int(3, "Pivot Right", minval=1) htfTf = input.timeframe("60", "HTF Timeframe (60=1H, 240=4H)") emaFastLen = input.int(50, "HTF EMA Fast", minval=1) emaSlowLen = input.int(200, "HTF EMA Slow", minval=1) atrLen = input.int(14, "ATR Length", minval=1) dispMult = input.float(1.2, "Displacement ATR Mult", minval=0.5, step=0.1) closeTopPct = input.float(0.25, "Close within top %", minval=0.05, maxval=0.5, step=0.05) sweepLookbackBars = input.int(60, "Sweep lookback (bars)", minval=10, maxval=500) sweepValidBars = input.int(30, "Sweep active for N bars", minval=5, maxval=200) cooldownBars = input.int(30, "Signal cooldown (bars)", minval=0, maxval=300) extendBars = input.int(200, "Extend zones (bars)", minval=20) showOB = input.bool(true, "Show Pullback OB zone") showFib = input.bool(true, "Show 50-61.8% zone") //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // HTF trend filter //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ htfClose = request.security(syminfo.tickerid, htfTf, close) htfEmaFast = request.security(syminfo.tickerid, htfTf, ta.ema(close, emaFastLen)) htfEmaSlow = request.security(syminfo.tickerid, htfTf, ta.ema(close, emaSlowLen)) htfBull = (htfEmaFast > htfEmaSlow) and (htfClose >= htfEmaFast) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // LTF structure pivots //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ atr = ta.atr(atrLen) ph = ta.pivothigh(high, pivotLeft, pivotRight) pl = ta.pivotlow(low, pivotLeft, pivotRight) var float lastSwingHigh = na var float lastSwingLow = na if not na(ph) lastSwingHigh := ph if not na(pl) lastSwingLow := pl //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // Sweep filter (simple + robust) // “sweep” = breaks below lowest low of last N bars and reclaims (close back above that level) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sweepLevel = ta.lowest(low, sweepLookbackBars) sweepNow = (low < sweepLevel) and (close > sweepLevel) var int sweepUntil = na if sweepNow sweepUntil := bar_index + sweepValidBars sweepActive = not na(sweepUntil) and (bar_index <= sweepUntil) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // Displacement filter //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ cRange = high - low closeTopOk = close >= (high - cRange * closeTopPct) dispOk = (cRange >= atr * dispMult) and closeTopOk and (close > open) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // MSS bullish (filtered) // base MSS: close crosses above last swing high //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ baseMssBull = (not na(lastSwingHigh)) and ta.crossover(close, lastSwingHigh) var int lastSignalBar = na cooldownOk = na(lastSignalBar) ? true : (bar_index - lastSignalBar >= cooldownBars) mssBull = baseMssBull and htfBull and sweepActive and dispOk and cooldownOk if mssBull lastSignalBar := bar_index //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // Find last bearish candle before MSS for OB zone //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ f_lastBearish(_lookback) => float obH = na float obL = na int found = 0 for i = 1 to _lookback if found == 0 and close < open obH := high obL := low found := 1 = f_lastBearish(30) // Impulse anchors for fib zone (use lastSwingLow to current high on MSS bar) impLow = lastSwingLow impHigh = high fib50 = (not na(impLow)) ? (impLow + (impHigh - impLow) * 0.50) : na fib618 = (not na(impLow)) ? (impLow + (impHigh - impLow) * 0.618) : na fibTop = (not na(fib50) and not na(fib618)) ? math.max(fib50, fib618) : na fibBot = (not na(fib50) and not na(fib618)) ? math.min(fib50, fib618) : na //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // Boxes (delete previous, draw new) — SINGLE LINE calls only //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ var box obBox = na var box fibBox = na if mssBull if showOB and not na(obHigh) and not na(obLow) if not na(obBox) box.delete(obBox) obBox := box.new(left=bar_index, top=obHigh, right=bar_index + extendBars, bottom=obLow, bgcolor=color.new(color.gray, 82), border_color=color.new(color.gray, 30)) if showFib and not na(fibTop) and not na(fibBot) if not na(fibBox) box.delete(fibBox) fibBox := box.new(left=bar_index, top=fibTop, right=bar_index + extendBars, bottom=fibBot, bgcolor=color.new(color.teal, 85), border_color=color.new(color.teal, 35)) //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // Visuals //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ plotshape(mssBull, title="MSS Bull (Filtered)", style=shape.labelup, text="MSS✔", size=size.tiny, color=color.new(color.green, 0), textcolor=color.white, location=location.belowbar) plot(htfEmaFast, title="HTF EMA Fast", color=color.new(color.orange, 80)) plot(htfEmaSlow, title="HTF EMA Slow", color=color.new(color.purple, 80))Pine Script® 인디케이터harderwijksay의업데이트됨 74
Wave 1-2-3 PRO (Typed NA + OTE + Confirm)//@version=5 indicator("Wave 1-2-3 PRO (Typed NA + OTE + Confirm)", overlay=true, max_lines_count=300, max_labels_count=300, max_boxes_count=100) pivotLen = input.int(6, "Pivot Length", minval=2, maxval=30) useOTE = input.bool(true, "Use OTE Zone (0.618-0.786)") oteA = input.float(0.618, "OTE A", minval=0.1, maxval=0.95) oteB = input.float(0.786, "OTE B", minval=0.1, maxval=0.95) maxDeep = input.float(0.886, "Max Wave2 Depth", minval=0.5, maxval=0.99) confirmByClose = input.bool(true, "Confirm Break By Close") breakAtrMult = input.float(0.10, "Break Buffer ATR Mult", minval=0.0, maxval=2.0) showEntryZone = input.bool(true, "Show Entry Zone") entryAtrPad = input.float(0.10, "Entry Zone ATR Pad", minval=0.0, maxval=2.0) showRetestZone = input.bool(true, "Show Retest Zone") retestAtrMult = input.float(0.60, "Retest Zone ATR Mult", minval=0.1, maxval=5.0) showTargets = input.bool(true, "Show Target (1.618)") targetExt = input.float(1.618, "Target Extension", minval=0.5, maxval=3.0) showLabels = input.bool(true, "Show Wave Labels") showSignals = input.bool(true, "Show BUY/SELL Confirm Labels") atr = ta.atr(14) var float prices = array.new_float() var int indexs = array.new_int() var int types = array.new_int() var box entryBox = na var box retestBox = na var line slLine = na var line tpLine = na var line breakLine = na var label lb0 = na var label lb1 = na var label lb2 = na var label sigLb = na var int lastPivotBar = na var bool setupBull = false var bool setupBear = false var float s_p0 = na var float s_p1 = na var float s_p2 = na var int s_i0 = na var int s_i1 = na var int s_i2 = na var float s_len = na ph = ta.pivothigh(high, pivotLen, pivotLen) pl = ta.pivotlow(low, pivotLen, pivotLen) int pivotBar = na float pivotPrice = na int pivotType = 0 if not na(ph) pivotBar := bar_index - pivotLen pivotPrice := ph pivotType := 1 if not na(pl) pivotBar := bar_index - pivotLen pivotPrice := pl pivotType := -1 bool newPivot = not na(pivotBar) and (na(lastPivotBar) or pivotBar != lastPivotBar) if newPivot lastPivotBar := pivotBar int sz = array.size(prices) if sz == 0 array.push(types, pivotType) array.push(prices, pivotPrice) array.push(indexs, pivotBar) else int lastType = array.get(types, sz - 1) float lastPrice = array.get(prices, sz - 1) if pivotType == lastType bool better = (pivotType == 1 and pivotPrice > lastPrice) or (pivotType == -1 and pivotPrice < lastPrice) if better array.set(prices, sz - 1, pivotPrice) array.set(indexs, sz - 1, pivotBar) else array.push(types, pivotType) array.push(prices, pivotPrice) array.push(indexs, pivotBar) if array.size(prices) > 12 array.shift(types), array.shift(prices), array.shift(indexs) if not na(entryBox) box.delete(entryBox) entryBox := na if not na(retestBox) box.delete(retestBox) retestBox := na if not na(slLine) line.delete(slLine) slLine := na if not na(tpLine) line.delete(tpLine) tpLine := na if not na(breakLine) line.delete(breakLine) breakLine := na if not na(lb0) label.delete(lb0) lb0 := na if not na(lb1) label.delete(lb1) lb1 := na if not na(lb2) label.delete(lb2) lb2 := na if not na(sigLb) label.delete(sigLb) sigLb := na setupBull := false setupBear := false s_p0 := na s_p1 := na s_p2 := na s_i0 := na s_i1 := na s_i2 := na s_len := na int sz2 = array.size(prices) if sz2 >= 3 int t0 = array.get(types, sz2 - 3) int t1 = array.get(types, sz2 - 2) int t2 = array.get(types, sz2 - 1) float p0 = array.get(prices, sz2 - 3) float p1 = array.get(prices, sz2 - 2) float p2 = array.get(prices, sz2 - 1) int i0 = array.get(indexs, sz2 - 3) int i1 = array.get(indexs, sz2 - 2) int i2 = array.get(indexs, sz2 - 1) bool bullCandidate = (t0 == -1 and t1 == 1 and t2 == -1 and p2 > p0) bool bearCandidate = (t0 == 1 and t1 == -1 and t2 == 1 and p2 < p0) if bullCandidate float len = p1 - p0 float depth = (p1 - p2) / len bool okDepth = len > 0 and depth > 0 and depth <= maxDeep float hiOTE = math.max(oteA, oteB) float loOTE = math.min(oteA, oteB) float zTop = p1 - len * loOTE float zBot = p1 - len * hiOTE bool okOTE = not useOTE or (p2 <= zTop and p2 >= zBot) if okDepth and okOTE setupBull := true s_p0 := p0 s_p1 := p1 s_p2 := p2 s_i0 := i0 s_i1 := i1 s_i2 := i2 s_len := len float pad = atr * entryAtrPad if showEntryZone entryBox := box.new(i1, zTop + pad, bar_index, zBot - pad) slLine := line.new(i0, p0, bar_index + 200, p0) breakLine := line.new(i1, p1, bar_index + 200, p1) if showLabels lb0 := label.new(i0, p0, "0") lb1 := label.new(i1, p1, "1") lb2 := label.new(i2, p2, "2") if bearCandidate float len = p0 - p1 float depth = (p2 - p1) / len bool okDepth = len > 0 and depth > 0 and depth <= maxDeep float hiOTE = math.max(oteA, oteB) float loOTE = math.min(oteA, oteB) float zBot = p1 + len * loOTE float zTop = p1 + len * hiOTE bool okOTE = not useOTE or (p2 >= zBot and p2 <= zTop) if okDepth and okOTE setupBear := true s_p0 := p0 s_p1 := p1 s_p2 := p2 s_i0 := i0 s_i1 := i1 s_i2 := i2 s_len := len float pad = atr * entryAtrPad if showEntryZone entryBox := box.new(i1, zTop + pad, bar_index, zBot - pad) slLine := line.new(i0, p0, bar_index + 200, p0) breakLine := line.new(i1, p1, bar_index + 200, p1) if showLabels lb0 := label.new(i0, p0, "0") lb1 := label.new(i1, p1, "1") lb2 := label.new(i2, p2, "2") float buf = atr * breakAtrMult bool bullBreak = false bool bearBreak = false if setupBull and not na(s_p1) bullBreak := confirmByClose ? (close > s_p1 + buf) : (high > s_p1 + buf) if setupBear and not na(s_p1) bearBreak := confirmByClose ? (close < s_p1 - buf) : (low < s_p1 - buf) if bullBreak setupBull := false if showTargets and not na(s_len) float tp = s_p2 + s_len * targetExt tpLine := line.new(s_i2, tp, bar_index + 200, tp) if showRetestZone float z = atr * retestAtrMult retestBox := box.new(bar_index, s_p1 + z, bar_index + 120, s_p1 - z) if showSignals sigLb := label.new(bar_index, high, "BUY (W3 Confirm)", style=label.style_label_down) if bearBreak setupBear := false if showTargets and not na(s_len) float tp = s_p2 - s_len * targetExt tpLine := line.new(s_i2, tp, bar_index + 200, tp) if showRetestZone float z = atr * retestAtrMult retestBox := box.new(bar_index, s_p1 + z, bar_index + 120, s_p1 - z) if showSignals sigLb := label.new(bar_index, low, "SELL (W3 Confirm)", style=label.style_label_up) Pine Script® 인디케이터fouzi_azzem19의15
NADAN PD Level and 9 AMenthuta giri aetante setup numma poliw alle machane like share comment follow like for like share for share like my pro pic bro 27 support freaky amal on floor freaky adarsh on floor Pine Script® 인디케이터SAIKZEN의11
Daily RVOL (Raw) SMA/EMA + Surge Marker - TP## Daily RVOL (Raw) SMA/EMA + Surge Marker (TP) This indicator helps you spot **unusual institutional-style participation** by measuring **Daily Relative Volume (RVOL)** and highlighting **sudden RVOL “surges”** compared to the prior day. ### What it shows **RVOL (raw)** is a ratio: **RVOL = Today’s Daily Volume ÷ Average Daily Volume (lookback)** * **1.00x** = normal volume * **1.50x** = ~50% above normal * **2.00x** = ~2x normal The “Average Daily Volume” baseline can be calculated using either: * **SMA** (simple average), or * **EMA** (faster-reacting average) The baseline uses **completed daily bars only**, so it won’t be distorted by a partially completed day. ### Surge Marker (Circle) The circle prints when **today’s RVOL jumps significantly vs yesterday’s RVOL**: **RVOL Surge % = (RVOL Today ÷ RVOL Prev − 1) × 100** So if your surge threshold is **80%**, the circle triggers when: **RVOL Today ≥ 1.80 × RVOL Prev** This is meant to detect **volume acceleration**—not just “high volume,” but a **step-change** in participation. ### How to use it (in plain English) Think of RVOL as a **crowd-size meter**, and the surge circle as a **“big money showed up today”** alert. It does **not** directly label buy vs sell—it highlights **participation**. Direction comes from price action and context. ### Bullish vs Bearish clues (price + volume together) Use the circle as a clue, then read the candle and key levels: **Potential bullish signs** * Breakout/reclaim of resistance + surge circle (strong confirmation) * Strong up day (wide range, closes near highs) + surge circle * **High volume down-close that *does NOT* break lower lows** (holds support) → Often means selling pressure was absorbed and price held the line. This can be a **bullish “support/absorption” tell**, especially if the next day confirms with strength. **Potential bearish signs** * Breakdown below support + surge circle (distribution confirmation) * Rejection at resistance on surge circle (supply showing up) * **High volume up-close that *fails to make higher highs* / can’t push through resistance** → Often suggests buying effort was met by strong supply (selling into strength). This can be a **bearish “stall/failure” tell**, especially if the next day confirms with weakness. ### Suggested settings * **RVOL Length:** 20 is a solid default * **SMA vs EMA:** * SMA = smoother baseline * EMA = reacts faster to recent volume changes * **Surge Threshold:** * **80–150%** = rare “shock” participation (fewer, stronger signals) * **40–80%** = balanced signals * **10–40%** = more signals, more noise ### Best practice Use RVOL + surge circles as **confirmation**, not a standalone entry/exit: * Combine with trend, support/resistance, and candle structure. * The surge circle says **“participation surged”**—price action tells you **whether it’s accumulation (support) or distribution (supply).** *(Educational use only. Not financial advice.)* Pine Script® 인디케이터TradersPod의업데이트됨 16
Open Interest Suite [Aggregated] - By AEAdded more exchanged to the Aggregated script by LeviathanPine Script® 인디케이터elkady.alexander의3
Simple Trend + Signal (No Bug)//@version=5indicator("Simple Trend + Signal (No Bug)", overlay=true) // === INPUTS ===fastEMA = input.int(20, "Fast EMA")slowEMA = input.int(50, "Slow EMA")lookback = input.int(20, "Zone Lookback") // === TREND ===emaFast = ta.ema(close, fastEMA)emaSlow = ta.ema(close, slowEMA) trendUp = emaFast > emaSlowtrendDown = emaFast < emaSlow // === ZONES ===highestHigh = ta.highest(high, lookback)lowestLow = ta.lowest(low, lookback) // === SIGNALS ===buySignal = trendUp and close <= emaFastsellSignal = trendDown and close >= emaFast // === PLOTS ===plot(emaFast, color=color.green, linewidth=2)plot(emaSlow, color=color.red, linewidth=2) plot(highestHigh, color=color.new(color.blue, 70))plot(lowestLow, color=color.new(color.orange, 70)) plotshape(buySignal, title="BUY", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")plotshape(sellSignal, title="SELL", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")Pine Script® 인디케이터blissfulAccoun8911의5
Simple Trend + Signal (No Bug)//@version=5 indicator("Simple Trend + Signal (No Bug)", overlay=true) // === INPUTS === fastEMA = input.int(20, "Fast EMA") slowEMA = input.int(50, "Slow EMA") lookback = input.int(20, "Zone Lookback") // === TREND === emaFast = ta.ema(close, fastEMA) emaSlow = ta.ema(close, slowEMA) trendUp = emaFast > emaSlow trendDown = emaFast < emaSlow // === ZONES === highestHigh = ta.highest(high, lookback) lowestLow = ta.lowest(low, lookback) // === SIGNALS === buySignal = trendUp and close <= emaFast sellSignal = trendDown and close >= emaFast // === PLOTS === plot(emaFast, color=color.green, linewidth=2) plot(emaSlow, color=color.red, linewidth=2) plot(highestHigh, color=color.new(color.blue, 70)) plot(lowestLow, color=color.new(color.orange, 70)) plotshape(buySignal, title="BUY", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sellSignal, title="SELL", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") Pine Script® 인디케이터blissfulAccoun8911의13
Trading Sessions Highs & LowsFull Azia , London and New York Sessions Highs & Lows are shown until triggered.Pine Script® 인디케이터susinskisdovydas의16
ddddddrrrrrr//@version=5 indicator("🚀 EventSniper HF v3.0 - 高频方向信号", overlay=true) // 参数 emaFast = input.int(5, "快速EMA") emaSlow = input.int(20, "慢速EMA") rsiLen = input.int(7, "RSI周期") volRatio = input.float(1.8, "量能放大倍数") // 指标计算 ema1 = ta.ema(close, emaFast) ema2 = ta.ema(close, emaSlow) rsi = ta.rsi(close, rsiLen) volAvg = ta.sma(volume, 20) volSpike = volume > volAvg * volRatio // 高频方向信号(核心逻辑) longCond = ema1 > ema2 and rsi > 50 and volSpike shortCond = ema1 < ema2 and rsi < 50 and volSpike // 信号绘图 plotshape(longCond, title="建议做多", location=location.belowbar, color=color.lime, style=shape.labelup, text="多") plotshape(shortCond, title="建议做空", location=location.abovebar, color=color.red, style=shape.labeldown, text="空") // 文本提示 label.new(longCond ? bar_index : na, low, "📈 建议多头方向", style=label.style_label_up, color=color.green, textcolor=color.white) label.new(shortCond ? bar_index : na, high, "📉 建议空头方向", style=label.style_label_down, color=color.red, textcolor=color.white) // 报警条件(用于接入Telegram) alertcondition(longCond, title="📈 多方向警报", message="🚀 多方向信号触发:{{ticker}}") alertcondition(shortCond, title="📉 空方向警报", message="🚨 空方向信号触发:{{ticker}}")Pine Script® 인디케이터zhaohongsen85의1