Coppe's Intraday Strategy V.3 Auto-TP PresetsGood Gold Intraday Trading Strategy with Monthly Backtesting ResearchPine Script® indicatorby andy_reinhard26
CURRY HEDGEFUND PRO (MTF/VWAP/ADX + Tight Trail) [no ta.adx]Improved HedgeFund Pro Script by Tony Curry for momentum and reversal trading. Primarily focused on ADX and directional movement. Pine Script® indicatorby hylandcurry27
Candle Countdown TimerCandle Countdown Timer - Real-Time Bar Close Indicator Stay ahead of the market with this elegant countdown timer that shows exactly how much time remains until the current candle closes. Perfect for scalpers, day traders, and anyone who needs precise timing for their trading decisions. ✨ Key Features: Universal Timeframe Support - Automatically adapts to any chart timeframe (1m, 5m, 15m, 1h, 4h, 1D, etc.) Smart Positioning - Choose between two display modes: Candle High/Low: Displays above bullish candles, below bearish candles Current Price: Shows at the closing price level for easy reference Color-Coded Display - Timer automatically matches your chart's candle colors (green for bullish, red for bearish) for instant visual clarity Fully Customizable - Adjust font size (8-50), opacity (0-100), and placement to match your trading style and chart setup Clean, Non-Intrusive Design - Minimal interface that provides critical information without cluttering your chart 📊 Perfect For : Timing precise entries and exits Scalping strategies requiring exact candle close timing Multi-timeframe analysis Managing time-sensitive trade setups Avoiding last-second candle close surprises 🎯 How to Use : Simply add the indicator to your chart and customize the settings to your preference. The countdown automatically updates in real-time, showing hours, minutes, and seconds remaining until the current bar closes. ⚙️ Settings: Font Size: Numeric input (8-50) for precise size control Text Opacity: Control visibility from 0 (solid) to 100 (invisible) Placement: Choose "Candle High/Low" or "Current Price" positioning 💡 Pro Tip: Use the "Current Price" placement mode when trading on multiple timeframes to keep the countdown at a consistent price level, making it easier to track across different chart configurations.Pine Script® indicatorby mbayari10
ETH Staking Rate - weighted average of WSTETH, CBETH, RETHThis indicator uses the redemption rate of WSTETH, CBETH, RETH from Pyth and the market cap of each from Cryptocap to calculate a weighted average ETH staking rate.Pine Script® indicatorby FenixCapitalUpdated 1
kamsakang Pivot Breakout OK. Not "the latest N highs" but **" based on the previous high (the most recently confirmed swing high) '**, I'll change it to catch the moment it crosses that value. The key is to pivot high. (It took a few bongs to confirm "this was the high point" → This is the cleanest "pivot high point")Pine Script® indicatorby kamsakang2
HL Zone + Vol Alert (Complete) + Vol Explosion Alertabc a kfsdkfjaighhguhgdfndnfdinfdndgdsgdsgdgdfsjgndfjgnsjfgnsdjgnjsgnjdfngsdfgs Pine Script® indicatorby hhqrgz77s911
Open Range BreakoutOpen Range Breakout is a volatility harvesting tool designed to exploit directional expansion following major market opens. It isolates price action during initial liquidity injections to project institutional-grade zones that define a session's structural bias. Core Methodology The script uses a time-anchored engine to map critical supply and demand boundaries: Anchor Identification: The algorithm captures the absolute High and Low within a user-defined window at the start of Tokyo, London, or New York sessions. Structural Projection: It generates a Neutrality Box. A breach via candle close signals the transition from consolidation to expansion. Mathematical Risk Modeling: Upon breakout, it calculates a 3:1 Risk-Reward framework based on fixed percentage volatility. Session Dynamics The system is optimized for the global liquidity cycle: Session 1 (Asia): Maps early-day consolidation and range-bound liquidity. Session 2 (Europe): Captures the London Move to identify the trend. Session 3 (US): Analyzes high-volume New York opens for maximum momentum. Key Features Dynamic Price Mitigation: TP/SL zones stop extending the moment price touches the target or invalidation level to keep charts clean. Volatility-Adjusted Levels: Stop Loss parameters are normalized to price percentage for consistency across Indices, Forex, or Crypto. Minimalist Interface: Professional aesthetic with high-contrast visual cues for instant scannability. Use Cases Momentum Trading: Identifying the Origin of the Move post-open. Mean Reversion: Recognizing failed breakouts when price returns inside the range. Quantitative Backtesting: Benchmarking 3.0 RR targets across different session anchors.Pine Script® indicatorby AlchimistOfCrypto35
ORB (x2) by jaXn# ORB (x2) Professional Suite ## 🚀 Unleash the Power of Precision Range Trading **ORB (x2)** isn't just another breakout indicator—it is a complete **Opening Range Breakout workspace** designed for professional traders who demand flexibility, precision, and chart cleanliness. Whether you are trading Indices, Forex, or Commodities, the Opening Range is often the most critical level of the day. This suite allows you to master these levels by tracking **two independent ranges** simultaneously, giving you a distinctive edge. ## 🔥 Why choose ORB (x2)? Most indicators force you to choose one specific time. **ORB (x2)** breaks these limits. ### 🌎 1. Multi-Session Mastery (London & New York) Trade the world's biggest liquidity pools. Set **ORB 1** for the **London Open** (e.g., 03:00–03:05 EST) and **ORB 2** for the **New York Open** (09:30–09:35 EST). Watch how price reacts to London levels later in the New York session. ### ⏱️ 2. Multi-Strategy Stacking (The "Fractal" Approach) This is a game-changer for intraday setups. Instead of two different times, track **two different durations** for the *same* open. * **Setup:** Configure **ORB 1** as the classic **5-minute range** (09:30–09:35). * **Setup:** Configure **ORB 2** as the statistically significant **15-minute or 30-minute range** (09:30–10:00). * **Result:** You now see immediate scalping levels *and* major trend reversals levels on the same chart, automatically. ### 🎯 3. "Plot Until" Tech: Keep Your Chart Clean Sick of lines extending infinitely into the void? Our exclusive **"Plot Until"** feature separates the signal from the noise. You define exactly when the trade idea invalidates. * *Example:* Plot the 09:30 levels only until 12:00 (Lunch). * The script intelligently cuts the lines off at your exact minute, ensuring your chart is ready for the afternoon session without morning clutter. ### ⚡ Precision Engine We use a dedicated "Precision Timeframe" input. Even if you are viewing a 1-hour or 4-hour chart to see the big picture, ORB (x2) can fetch data from the **1-minute** timeframe to calculate the *exact* high and low of the opening range. No more "repainting" or guessing where the wick was. ## 🛠 Feature Breakdown * **Dual Independent Engines:** Fully separate Color, Style, Time, and Cutoff settings for both ORB 1 and ORB 2. * **Absolute Time Cutoff:** Lines obey day boundaries perfectly. A cutoff at 16:00 means 16:00, not "whenever the next bar closes". * **Style Control:** Visually distinguish between your "Scalp" ORB (e.g., Dotted Lines) and your "Trend" ORB (e.g., Solid Thick Lines). * **Performance Mode:** Adjustable "Lookback Days" limits history to keep your chart lightning fast. ## 💡 Configuration Examples **The "Double Barrel" (Standard Stock + Futures)** * *ORB 1:* `0930-0935` (5 min) - The immediate reaction. * *ORB 2:* `0930-1000` (30 min) - The institutional trend setter. **The "Transatlantic" (Forex/Indices)** * *ORB 1:* `0800-0805` (London Open) - European liquidity. * *ORB 2:* `1330-1335` (NY Open) - US liquidity injection. ## ⚠️ Disclaimer Trading involves substantial risk. This tool helps visualize critical price levels but does not guarantee profits. Always combine with proper risk management and your own analysis. Pine Script® indicatorby jacksennUpdated 9
ICT Venom Trading Model [TradingFinder] SMC NY Session 2025SetupIt is a new interesting indicator. It might be a little bit difficult to implement but i like it a lot Pine Script® indicatorby helenanagnost30
Surprise volume bar This is to detect the bar that is 3 times over the 60 average volume.Pine Script® indicatorby emhwang36
jaems_Double BB[Alert]/W-Bottom/Dashboard// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org // © Kingjmaes //@version=6 strategy("jaems_Double BB /W-Bottom/Dashboard", shorttitle="jaems_Double BB /W-Bottom/Dashboard", overlay=true, commission_type=strategy.commission.percent, commission_value=0.05, slippage=1, process_orders_on_close=true) // ========================================== // 1. 사용자 입력 (Inputs) // ========================================== group_date = "📅 백테스트 기간 설정" startTime = input.time(timestamp("2024-01-01 00:00"), "시작일", group=group_date) endTime = input.time(timestamp("2099-12-31 23:59"), "종료일", group=group_date) group_bb = "📊 더블 볼린저 밴드 설정" bb_len = input.int(20, "길이 (Length)", minval=5, group=group_bb) bb_mult_inner = input.float(1.0, "내부 밴드 승수 (Inner A)", step=0.1, group=group_bb) bb_mult_outer = input.float(2.0, "외부 밴드 승수 (Outer B)", step=0.1, group=group_bb) group_w = "📉 W 바닥 패턴 설정" pivot_left = input.int(3, "피벗 좌측 봉 수", minval=1, group=group_w) pivot_right = input.int(1, "피벗 우측 봉 수", minval=1, group=group_w) group_dash = "🖥️ 대시보드 설정" show_dash = input.bool(true, "대시보드 표시", group=group_dash) comp_sym = input.symbol("NASDAQ:NDX", "비교 지수 (GS Trend)", group=group_dash, tooltip="S&P500은 'SP:SPX', 비트코인은 'BINANCE:BTCUSDT' 등을 입력하세요.") rsi_len = input.int(14, "RSI 길이", group=group_dash) group_risk = "🛡 리스크 관리" use_sl_tp = input.bool(true, "손절/익절 사용", group=group_risk) sl_pct = input.float(2.0, "손절매 (%)", step=0.1, group=group_risk) / 100 tp_pct = input.float(4.0, "익절매 (%)", step=0.1, group=group_risk) / 100 // ========================================== // 2. 데이터 처리 및 계산 (Calculations) // ========================================== // 기간 필터 inDateRange = time >= startTime and time <= endTime // 더블 볼린저 밴드 basis = ta.sma(close, bb_len) dev_inner = ta.stdev(close, bb_len) * bb_mult_inner dev_outer = ta.stdev(close, bb_len) * bb_mult_outer upper_A = basis + dev_inner lower_A = basis - dev_inner upper_B = basis + dev_outer lower_B = basis - dev_outer percent_b = (close - lower_B) / (upper_B - lower_B) // W 바닥형 (W-Bottom) - 리페인팅 방지 pl = ta.pivotlow(low, pivot_left, pivot_right) var float p1_price = na var float p1_pb = na var float p2_price = na var float p2_pb = na var bool is_w_setup = false if not na(pl) p1_price := p2_price p1_pb := p2_pb p2_price := low p2_pb := percent_b // 패턴 감지 bool cond_w = (p1_price < lower_B ) and (p2_price > p1_price) and (p2_pb > p1_pb) is_w_setup := cond_w ? true : false w_bottom_signal = is_w_setup and close > open and close > lower_A if w_bottom_signal is_w_setup := false // GS 트렌드 (나스닥 상대 강도) ndx_close = request.security(comp_sym, timeframe.period, close) rs_ratio = close / ndx_close rs_sma = ta.sma(rs_ratio, 20) gs_trend_bull = rs_ratio > rs_sma // RSI & MACD rsi_val = ta.rsi(close, rsi_len) = ta.macd(close, 12, 26, 9) macd_bull = macd_line > signal_line // ========================================== // 3. 전략 로직 (Strategy Logic) // ========================================== long_cond = (ta.crossover(close, lower_A) or ta.crossover(close, basis) or w_bottom_signal) and inDateRange and barstate.isconfirmed short_cond = (ta.crossunder(close, upper_B) or ta.crossunder(close, upper_A) or ta.crossunder(close, basis)) and inDateRange and barstate.isconfirmed // 진입 실행 및 알람 발송 if long_cond strategy.entry("Long", strategy.long, comment="Entry Long") alert("Long Entry Triggered | Price: " + str.tostring(close), alert.freq_once_per_bar_close) if short_cond strategy.entry("Short", strategy.short, comment="Entry Short") alert("Short Entry Triggered | Price: " + str.tostring(close), alert.freq_once_per_bar_close) // 청산 실행 if use_sl_tp if strategy.position_size > 0 strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price * (1 - sl_pct), limit=strategy.position_avg_price * (1 + tp_pct), comment_loss="L-SL", comment_profit="L-TP") if strategy.position_size < 0 strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price * (1 + sl_pct), limit=strategy.position_avg_price * (1 - tp_pct), comment_loss="S-SL", comment_profit="S-TP") // 별도 알람: W 패턴 감지 시 if w_bottom_signal alert("W-Bottom Pattern Detected!", alert.freq_once_per_bar_close) // ========================================== // 4. 대시보드 시각화 (Dashboard Visualization) // ========================================== c_bg_head = color.new(color.black, 20) c_bg_cell = color.new(color.black, 40) c_text = color.white c_bull = color.new(#00E676, 0) c_bear = color.new(#FF5252, 0) c_neu = color.new(color.gray, 30) get_trend_color(is_bull) => is_bull ? c_bull : c_bear get_pos_text() => strategy.position_size > 0 ? "LONG 🟢" : strategy.position_size < 0 ? "SHORT 🔴" : "FLAT ⚪" get_pos_color() => strategy.position_size > 0 ? c_bull : strategy.position_size < 0 ? c_bear : c_neu var table dash = table.new(position.top_right, 2, 7, border_width=1, border_color=color.gray, frame_color=color.gray, frame_width=1) if show_dash and (barstate.islast or barstate.islastconfirmedhistory) table.cell(dash, 0, 0, "METRIC", bgcolor=c_bg_head, text_color=c_text, text_size=size.small) table.cell(dash, 1, 0, "STATUS", bgcolor=c_bg_head, text_color=c_text, text_size=size.small) table.cell(dash, 0, 1, "GS Trend", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small) table.cell(dash, 1, 1, gs_trend_bull ? "Bullish" : "Bearish", bgcolor=c_bg_cell, text_color=get_trend_color(gs_trend_bull), text_size=size.small) rsi_col = rsi_val > 70 ? c_bear : rsi_val < 30 ? c_bull : c_neu table.cell(dash, 0, 2, "RSI (14)", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small) table.cell(dash, 1, 2, str.tostring(rsi_val, "#.##"), bgcolor=c_bg_cell, text_color=rsi_col, text_size=size.small) table.cell(dash, 0, 3, "MACD", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small) table.cell(dash, 1, 3, macd_bull ? "Bullish" : "Bearish", bgcolor=c_bg_cell, text_color=get_trend_color(macd_bull), text_size=size.small) w_status = w_bottom_signal ? "DETECTED!" : is_w_setup ? "Setup Ready" : "Waiting" w_col = w_bottom_signal ? c_bull : is_w_setup ? color.yellow : c_neu table.cell(dash, 0, 4, "W-Bottoms", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small) table.cell(dash, 1, 4, w_status, bgcolor=c_bg_cell, text_color=w_col, text_size=size.small) table.cell(dash, 0, 5, "Position", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small) table.cell(dash, 1, 5, get_pos_text(), bgcolor=c_bg_cell, text_color=get_pos_color(), text_size=size.small) last_sig = long_cond ? "BUY SIGNAL" : short_cond ? "SELL SIGNAL" : "HOLD" last_col = long_cond ? c_bull : short_cond ? c_bear : c_neu table.cell(dash, 0, 6, "Signal", bgcolor=c_bg_cell, text_color=c_text, text_halign=text.align_left, text_size=size.small) table.cell(dash, 1, 6, last_sig, bgcolor=c_bg_cell, text_color=last_col, text_size=size.small) // ========================================== // 5. 시각화 (Visualization) // ========================================== p_upper_B = plot(upper_B, "Upper B", color=color.new(color.red, 50)) p_upper_A = plot(upper_A, "Upper A", color=color.new(color.red, 0)) p_basis = plot(basis, "Basis", color=color.gray) p_lower_A = plot(lower_A, "Lower A", color=color.new(color.green, 0)) p_lower_B = plot(lower_B, "Lower B", color=color.new(color.green, 50)) fill(p_upper_B, p_upper_A, color=color.new(color.red, 90)) fill(p_lower_A, p_lower_B, color=color.new(color.green, 90)) plotshape(long_cond, title="Long", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(short_cond, title="Short", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) Pine Script® strategyby james13062542
Inside Bar False Breakout (IBFB)The Inside Bar False Breakout (IBFB) is a price action tool that identifies high-probability reversal setups by detecting false breakouts from inside bar patterns. This strategy is widely used by traders to catch market traps and potential trend reversals. What is an Inside Bar False Breakout? An Inside Bar occurs when a candle's high and low are completely contained within the previous candle's range. A False Breakout happens when price initially breaks above or below this range but then closes back inside it, indicating a failed breakout and potential reversal. How It Works Step 1: Inside Bar Detection Identifies candles where high < previous high AND low > previous low Marks consolidation zones where market indecision occurs Step 2: False Breakout Recognition Bullish IBFB: Price breaks below the inside bar's low but closes back inside the range (bullish reversal signal) Bearish IBFB: Price breaks above the inside bar's high but closes back inside the range (bearish reversal signal) Step 3: Signal Confirmation Applies a cooldown period (default 5 bars) to filter out noise and prevent signal clustering Key Features ✅ Visual Signals Color-coded bars (green for bullish, red for bearish IBFB) Free-floating arrow markers (⬆ bullish, ⬇ bearish) without label boxes Clean, minimalist design that doesn't clutter your chart ✅ Signal History Table Displays the last 5 IBFB signals in real-time Shows date/time, signal type, and price level Color-coded for quick reference ✅ Customizable Settings Enable/disable bullish or bearish signals independently Adjustable cooldown period (1-100 bars) to control signal frequency Customizable colors for both signal types Toggle arrows and history table on/off ✅ Alert System Built-in alert conditions for both bullish and bearish IBFB patterns Fires once per bar close to avoid false alarms Perfect for automated trading or notifications ✅ Universal Compatibility Works on ANY timeframe (1m to 1M) Lightweight and efficient - won't slow down your charts No repainting - signals appear only on confirmed bar close Best Use Cases a.Scalping & Day Trading: Catch intraday reversals on lower timeframes (5m, 15m) b.Swing Trading: Identify multi-day reversal patterns on higher timeframes (4H, D) c.Trend Confirmation: Combine with trend indicators to filter trades in the direction of the main trend d.Support/Resistance: Works exceptionally well near key S/R levels where false breakouts are common Trading Tips Confluence is Key: Combine IBFB signals with support/resistance zones, trendlines, or Fibonacci levels Volume Matters: Look for decreasing volume on the false breakout for stronger confirmation Risk Management: Place stop-loss just beyond the false breakout wick; target the opposite side of the inside bar range Trend Alignment: Best results when trading in the direction of the higher timeframe trend Cooldown Period: Increase the cooldown on lower timeframes to reduce noise; decrease on higher timeframes for more signals Settings Explained Signal Settings Show Bullish/Bearish IBFB: Toggle each signal type independently Cooldown Period: Minimum bars between signals (prevents over-trading) Visual Settings Show Arrows: Display ⬆⬇ markers on chart Show Last 5 Signals Table: Display signal history panel Bullish/Bearish Color: Customize signal colors Alert Settings Enable Alerts: Turn on/off automatic alert notifications Why This Indicator? Unlike many indicators that lag behind price action, the IBFB indicator identifies real-time market manipulation and traps. False breakouts often indicate: Stop-loss hunting by institutional traders Exhaustion of buying/selling pressure Potential trend reversals or strong counter-moves This makes it an excellent tool for contrarian traders and those looking to fade false moves. Performance Notes Signals confirm at bar close (no repainting) Optimized for speed and efficiency Works alongside other indicators without conflicts Suitable for manual and automated trading strategies Suitable for any instrument & market Disclaimer: This indicator is for educational purposes only. Always practice proper risk management and combine with your own analysis before making trading decisions. Happy trading.Pine Script® indicatorby kingshukghosh7170
KDJ在 TradingView 发表脚本时,**描述(Description)** 非常重要。审核员要求描述必须详细说明脚本的**原理、独特性以及用法**,否则容易被驳回。 由于你的参数 (63, 21, 5) 非常特殊,属于“长周期/季度线”级别的设置,我在撰写描述时重点突出了它**“过滤噪音”**和**“捕捉中长期趋势”**的特点。 以下是为你准备的发布文案,包含**标题**和**正文(中英双语)**。你可以直接复制使用。 --- ### 标题 (Title) **KDJ Trend Filter (63, 21, 5) ** ### 描述正文 (Description) *(复制以下内容到 TradingView 的描述框中)* ** ** **Overview** This is a custom KDJ indicator designed for **medium-to-long term trend analysis**. Unlike the default parameters (9, 3, 3) which are often too sensitive and prone to false signals in volatile markets, this script uses a specific set of parameters **(63, 21, 5)** to smooth out the noise. **Why these parameters?** * **N = 63 (Calculation Period):** Represents approximately one quarter (3 months) of trading days. This aligns the indicator with the quarterly trend rather than weekly fluctuations. * **M1 = 21 (Smooth K):** A significantly higher smoothing factor for the K-line. This reduces the "jitter" and ensures that a crossover usually indicates a genuine shift in momentum. * **M2 = 5 (Smooth D):** The smoothing period for the D-line. **How to use** 1. **Trend Identification:** Due to the long period, this KDJ acts more like a trend-following tool than a typical oscillator. 2. **Crossovers:** * **Golden Cross (K > D):** Suggests a potential start of a medium-term bullish trend. * **Dead Cross (K < D):** Suggests a potential start of a medium-term bearish trend. 3. **Filtering:** This setup is excellent for filtering out market noise. It will react slower than standard KDJ but provides more reliable signals for swing traders. **Settings** * Calculation Period: 63 * MAC1 (K Smoothing): 21 * MAC2 (D Smoothing): 5 --- ** ** **概述** 这是一个专为**中长期趋势分析**设计的 KDJ 指标。标准的 KDJ 参数(9, 3, 3)在震荡行情中过于敏感,容易产生虚假信号。本脚本采用了特定的长周期参数 **(63, 21, 5)**,旨在过滤短期市场噪音,捕捉更稳健的趋势方向。 **参数逻辑** * **计算周期 (N) = 63:** 大约对应一个季度(3个月)的交易日。这意味着指标关注的是季度级别的价格位置,而非短期波动。 * **MAC1 (M1) = 21:** K值的平滑周期。相比默认值,21的平滑度极高,这使得 K 线非常平稳,只有在趋势发生实质性改变时才会转向。 * **MAC2 (M2) = 5:** D值的平滑周期。 **使用方法** 1. **趋势识别:** 由于周期较长,该指标具有“钝化”的特性,更适合作为趋势跟踪工具,而非短线超买超卖指标。 2. **交叉信号:** * **金叉 (K上穿D):** 通常意味着中级行情的启动。 * **死叉 (K下穿D):** 通常意味着中级调整的开始。 3. **过滤噪音:** 在横盘震荡期间,该参数设置能有效减少频繁的交叉信号,帮助交易者拿住波段。 **默认设置** * 计算周期:63 * MAC1:21 * MAC2:5 --- ### 💡 发表前的检查清单 (Checklist) 1. **代码确认**:确保你的 Pine Script 代码中 `overlay=false`(因为 KDJ 是副图指标)。 2. **图表展示**:在点击发表前,最好在图表上画几条线或标记,展示一下金叉和死叉的位置,这样更容易通过审核,也能让用户一眼看懂。 3. **分类 (Category)**:建议选择 **"Trend Analysis" (趋势分析)** 和 **"Oscillators" (震荡指标)**。 如果你需要我帮你微调代码以符合上述描述(例如添加颜色填充或特定的信号标记),请告诉我!Pine Script® indicatorby Tim_Trader_20
Institutional Engine SAFEThis indicator is designed for traders who want to visualize institutional-level market execution patterns across multiple timeframes. It combines high-timeframe trend analysis, liquidity sweeps, fair value gaps (FVG), intermarket divergence (SMT), inverse FVGs, and change-in-state-of-delivery (CSID) to identify high-probability long and short setups.Pine Script® indicatorby mkinteh27
FranPL - Psychological LevelsIt automatically draws horizontal lines fixed to the right-hand price scale at every price level ending in 00, 20, 50, and 80. These levels are commonly watched by traders as areas where price often reacts, pauses, or reverses. The lines remain anchored to price, updating dynamically as the market moves, and stay aligned with the price scale rather than drifting with time. The indicator works across all markets and timeframes. FranPL is fully customizable through the settings, allowing the user to adjust the line color, thickness, and length, making it easy to match personal chart preferences while keeping the chart clean and uncluttered. Overall, FranPL provides a clear, consistent visual framework for identifying important psychological levels to support entries, exits, and risk management.Pine Script® indicatorby jlfschoe18
Institutional Engine SAFEThe Institutional HTF → LTF Execution Engine is a multi-timeframe trading indicator designed to identify high-probability institutional-level entries by analyzing higher timeframe (HTF) trends and projecting them onto lower timeframe (LTF) charts. This tool integrates trend analysis, liquidity sweeps, fair value gaps, intermarket divergence, and risk management to provide traders with actionable BUY and SELL signals. It is ideal for day traders, scalpers, and swing traders seeking structured entries aligned with larger market flow.Pine Script® indicatorby mkinteh46
Crypto Accumulation Candle FinderThis indicator give you long entry signal to dectect MM's entry time. it's recommended to use it in 5min. time frame.Pine Script® indicatorby emhwang3Updated 337
Custom Long ProjectionDo custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long Projection Do custom Long ProjectionPine Script® indicatorby Kestino17
FVG Finder | NRP | ProjectSyndicate🥇 ProjectSyndicate Fair Value Gap (FVG) Finder — Pine Script v6 • NRP Non-Repainting 📌 SMC Imbalance Zones Built for Clean Entries, Targets & Mitigation Tracking The ProjectSyndicate FVG Finder is a professional TradingView indicator designed for traders who want clean, high-probability Fair Value Gaps price imbalances mapped instantly on-chart—without manual marking or clutter. Fair Value Gaps form during aggressive displacement when price delivers inefficiently, leaving a void that price often returns to rebalance. This tool helps you spot those zones fast, track whether they’re still fresh, and plan entries with confidence. ✅ ________________________________________ 🚀 Why Traders Like It ✅ NRP Logic (Non-Repainting): Signals are built to remain stable once confirmed ✅ Real-Time FVG Detection: Automatically identifies bullish + bearish FVG zones as they form 📦 Clean Zone Visualization: Boxed imbalance areas that are easy to trade from 🧹 Auto-Cleanup (Mitigation): Zones update based on your chosen fill rule (Touch / 50% / Full) 🎛️ Anti-Noise Filtering: Minimum size + optional ATR filter to remove weak gaps ⚡ Pine Script v6: Built on the latest TradingView engine for stability and performance 🔔 Alerts + Markers: Get notified when new FVGs print + optional triangle signals ________________________________________ Gold H1 TF active FVGs Eur Usd M30 TF active FVGs NQ H1 TF active FVGs 🧠 Detection Logic — Simple, Effective, Battle-Tested 📈 Bullish Fair Value Gap (Demand Imbalance): A 3-candle imbalance where the low of Candle 3 is above the high of Candle 1 ➡️ Signals strong buy-side displacement / inefficient delivery 📉 Bearish Fair Value Gap (Supply Imbalance): A 3-candle imbalance where the high of Candle 3 is below the low of Candle 1 ➡️ Signals strong sell-side displacement / inefficient delivery ________________________________________ 🧹 Mitigation Options — Choose How Filled Works Your strategy decides what counts as used: 👆 Touch: Zone considered mitigated on first interaction 🎯 50% Fill: Mitigated once price fills half the gap ✅ Full Fill: Mitigated only when the entire zone is filled Optional: Keep mitigated zones visible or hide them for ultra-clean charts. ________________________________________ 🛠 Recommended Settings (ATR Multiplier Presets) Use these as solid starting points on M30 / H1: •🥇 XAUUSD (Gold) M30/H1: 0.5 •💻 NQ (Nasdaq) M30/H1: 0.25 •🛢️ USOIL M30/H1: 0.25 •₿ BTCUSD M30/H1: 0.25 •💶 EURUSD / GBPUSD M30/H1: 0.25 – 0.50 ✅ Other markets are supported too just adjust the ATR Multiplier based on how many signals you want: •More signals → lower multiplier •Higher quality → higher multiplier ________________________________________ ✅ Best Use-Cases 🎯 Mark imbalance zones instantly without manual drawing 🧲 Wait for price to return to FVG for cleaner entries 🛡️ Use zone boundaries for clear invalidation / stop placement 📊 Combine with trend bias + BOS/CHoCH + premium/discount for higher confirmation 🎯 Use FVGs as both entries and profit targets ________________________________________ ⭐ How You Can Support ProjectSyndicate (3 Steps) 1. ✅ Click “Add to Favorites” to save this script to your TradingView Favorites 2. 🔎 Check out our other scripts to complete your SMC toolkit 3. 👤 Follow ProjectSyndicate for the latest updates, upgrades, and new releases Order Block Finder | Gold | ProjectSyndicate Breaker Blocks Finder | Gold | ProjectSyndicate Pine Script® indicatorby ProjectSyndicateUpdated 99 1.1 K
Smart Trader, Episode 02, by Ata Sabanci | Battle of Candles ⚠️ CRITICAL: READ BEFORE USING ⚠️ This indicator is 100% VOLUME-BASED and requires Lower Timeframe (LTF) intrabar data for accurate calculations. Please understand the following limitations before using: 📊 DATA ACCURACY LEVELS: • 1T (Tick) — Most accurate, real volume distribution per tick • 1S (1 Second) — Reasonably accurate approximation • 15S (15 Seconds) — Good approximation, longer historical data available • 1M (1 Minute) — Rough approximation, maximum historical data range ⚠️ BACKTEST & REPLAY LIMITATIONS: • Replay mode results may differ from live trading due to data availability • For longer back test periods, use higher LTF settings (15S or 1M) • Not all symbols/exchanges support tick-level data • Crypto and Forex typically have better LTF data availability than stocks 💡 A NOTE ON TOOLS: Successful trading requires proper tools. Higher TradingView plans provide access to more historical intrabar data, which directly impacts the accuracy of volume-based calculations. More precise volume data leads to more reliable signals. Consider this when evaluating your trading infrastructure. 📌 OVERVIEW Smart Trader Episode 02: Battle of Candles is an advanced educational indicator that combines multiple analysis engines to help traders identify market scenarios and understand market dynamics. This is NOT financial advice or a trading signal service — it's a learning tool designed to help you understand how institutional traders might interpret price action. The indicator integrates 7 major analysis engines into a unified dashboard, providing real-time insights into volume flow, trend structure, market phases, and potential trade setups. ⚡ KEY FEATURES 🎯 16-Pattern Scenario Engine Automatically detects and classifies market conditions into 16 distinct scenarios, from strong continuation moves to potential reversals and traps. 💰 Trade Advisor Panel Aggregates all signals into actionable suggestions with confidence levels, suggested entry/SL/TP levels, and risk/reward calculations. 📊 Volume Engine Splits volume into buy/sell components using either Geometry (candle shape) or Intrabar (LTF data) methods for precise delta analysis. 📈 CVD (Cumulative Volume Delta) Tracks the running total of buying vs selling pressure to identify accumulation, distribution, and divergences. 🎯 Stop-Hunt Detection Identifies potential stop-hunt patterns where price sweeps liquidity levels before reversing. 📐 Pure Structure Trend Engine Zero-lag trend detection based on swing highs/lows (HH/HL/LH/LL) without any lagging indicators. ⚡ Effort vs Result Analysis Measures energy spent (volume) versus ground taken (price movement) to detect stalls, breakthroughs, and exhaustion. 🎯 SCENARIO ENGINE — 16 Market Patterns The Scenario Engine analyzes multiple factors (candle anatomy, volume, forces, CVD, wick analysis) to classify each candle into one of 16 scenarios: Continuation Scenarios (1-3) 1. ⚔️ STRONG MOVE — Big body candle (>60%) with volume confirming direction. Indicates strong momentum continuation. 2. 🛡️ ABSORPTION — One side attacks but the other absorbs the pressure. Price holds despite volume. Continuation expected in the absorbing side's favor. 3. 📉 PULLBACK — Small move against the trend with low volume. Indicates a healthy retracement before trend continuation. Reversal Scenarios (4-6, 13-16) 4. 💥 REJECTION — Big wick (>40%) with small body and high volume. Price was rejected at a level, potential reversal. 5. 🪤 TRAP — Pin direction disagrees with delta. Extreme wick size. Looks bullish/bearish but the opposite may happen. 6. 😫 EXHAUSTION — High energy spent (volume) but low ground taken (price movement). Both sides active but momentum fading. 13. 🔄 CVD BULL DIV — Price falling but CVD rising. Hidden buying detected (accumulation). Potential bullish reversal. 14. 🔄 CVD BEAR DIV — Price rising but CVD falling. Hidden selling detected (distribution). Potential bearish reversal. 15. 🎯 STOP HUNT BULL — Shorts were liquidated below support. Price swept liquidity and reversed. Expect bullish move. 16. 🎯 STOP HUNT BEAR — Longs were liquidated above resistance. Price swept liquidity and reversed. Expect bearish move. Range/Stalemate Scenarios (7-9) 7. ⚖️ DEADLOCK — Market in balance. Force ratio between 0.4-0.6. Low volume. No side winning. 8. 🔥 BATTLE — High volume fight in a range. Both sides attacking. Wicks on both ends of candle. 9. 🎯 WAITING — Building phase with quiet volume. Market is preparing but no trigger yet. Wait for breakout. Pre-Breakout Scenarios (10-12) 10. 🚀 BULL SETUP — Buyers accumulating in a building phase. Positive delta building. Bullish pressure growing. 11. 💣 BEAR SETUP — Sellers distributing in a building phase. Negative delta building. Bearish pressure growing. 12. ⚡ BREAKOUT — Price at boundary with strong candle and volume supporting. Imminent breakout expected. 💰 TRADE ADVISOR ENGINE The Trade Advisor aggregates all signals from the different engines into a single actionable output. It uses a weighted scoring system: Scoring Weights: • Scenario Signal: 30% • Trend Alignment: 20% • CVD Momentum: 15% + Divergence Bonus • Pin Forces: 15% • Liquidity Sweep: 12% • Stop-Hunt Detection: 10% • Effort vs Result: 10% Possible Actions: • ⏳ WAIT — Edge not strong enough (stay patient) • 🟢 LONG ENTRY — Buyers have strong advantage + signals align • 🔴 SHORT ENTRY — Sellers have strong advantage + signals align • ⚠️ CLOSE LONG/SHORT — Position at risk (reversal/trend flip) • 🛑 STOP LOSS — Price hit risk threshold • 💰 TAKE PROFIT — Target threshold reached 📊 EXTENDED INFO PANEL (Detailed Explanations) The Extended Info panel is hidden by default (toggle: Show Extended Info in settings). It provides detailed metrics that feed into the main engines: CVD ANALYSIS What is CVD? Cumulative Volume Delta (CVD) is the running total of Buy Volume minus Sell Volume. It reveals the underlying buying/selling pressure that may not be visible in price alone. CVD Value & Slope: • ↗ Rising: CVD increasing = net buying pressure (bullish) • ↘ Falling: CVD decreasing = net selling pressure (bearish) • → Flat: No clear pressure direction Accumulation vs Distribution: • Accumulation %: Shows buying pressure strength (0-100). High accumulation with CVD rising = strong bullish bias. • Distribution %: Shows selling pressure strength (0-100). High distribution with CVD falling = strong bearish bias. Divergence Alerts: • ⚠️ BULLISH DIVERGENCE: Price falling but CVD rising. Hidden buying = potential reversal UP. • ⚠️ BEARISH DIVERGENCE: Price rising but CVD falling. Hidden selling = potential reversal DOWN. WICK ANALYSIS Wick Torque: Torque measures the "rotational force" from wicks. It's calculated from wick length, volume, and body efficiency. • Positive Torque (Bullish): Bottom wick power dominates. Buyers defended lower prices. • Negative Torque (Bearish): Top wick power dominates. Sellers defended higher prices. • ⚡ High Torque (>30): Strong signal, significant wick rejection occurred. Stop-Hunt Detection: The engine detects when price has likely swept stop-losses clustered at key levels: • Stop Hunt Risk %: Likelihood score (0-100). Above 55% = confirmed hunt. • "Shorts hunted": Price swept below support, liquidating shorts, expect bounce UP. • "Longs hunted": Price swept above resistance, liquidating longs, expect drop DOWN. LIQUIDITY SWEEPS This section appears only when a liquidity sweep is detected. The engine monitors for price sweeping recent highs/lows and then reversing: • 🎯 LIQUIDITY SWEPT ABOVE: Price broke recent highs but closed back below. Longs trapped, expect DOWN. • 🎯 LIQUIDITY SWEPT BELOW: Price broke recent lows but closed back above. Shorts trapped, expect UP. POWER BALANCE The Power Balance meter shows the real-time strength comparison between buyers and sellers. Force Ratio: • 0% = Complete seller dominance • 50% = Perfect balance • 100% = Complete buyer dominance Visual Bar: • Left side (▓): Bear territory • Right side (▓): Bull territory • The bar is smoothed over recent history to reduce noise. EFFORT vs RESULT This section measures the efficiency of price movement relative to volume expended. Energy: How much volume was spent relative to the average. Energy > 1.0x means above-average volume activity. Ground: How much price movement occurred relative to average range. Ground > 1.0x means above-average price movement. STALL Warning: A STALL is detected when high energy is spent but low ground is taken (high effort, low result). This often indicates institutional battle, exhaustion, or imminent reversal. MARKET PHASE The Phase Engine classifies the current market regime: RANGE : No clear trend. Price confined to middle of channel. Low ADX. Balanced forces. Trade breakouts with caution. BUILDING : Compression/preparation phase. Channel tightening or boundary penetration without follow-through. Watch for breakout direction. TRENDING : Active directional move. Clear slope, good efficiency, price on trending side of channel. Favor pullback entries. Strength: 0-100% score combining slope, volume validity, and force/efficiency filters. Bars: How many candles the current phase has persisted. TRACK RECORD (Validation Panel) Enable with Show Validation Panel in settings. This section tracks the historical accuracy of scenario predictions: Accuracy: Percentage of validated predictions that were correct. Best/Worst Scenario: Shows which scenarios have the highest and lowest accuracy on the current symbol. Recent Signals: Last 5 predictions with their outcomes. ✓ = correct, ✗ = wrong, ⏳ = pending validation. ⚙️ SETTINGS GUIDE 📊 Volume Analysis Volume Calculation: Choose Geometry (estimates from candle shape) or Intrabar (precise LTF data). Intrabar Resolution: LTF for precise mode. Try 1S, 15S, or 1T. Must be lower than chart timeframe. History Depth: Candles stored in memory (5-50). Higher = more context, slower. Memory Lookback: Bars for moving averages and Z-scores (10-100). 🏷️ Market Phase Range Zone Width: How much of channel center is considered "range" (0.1-0.8). Trend Sensitivity: Minimum slope to detect trending. Lower = more sensitive. Min Episode Length: Minimum bars before phase can change. Prevents flickering. 🎯 Scenarios Min Confidence to Show: Only display scenarios above this confidence level (30-90). Bars to Validate: How many bars to wait before checking if prediction was correct. Success Move %: Minimum price movement to consider prediction successful. 💰 Trade Advisor Min Confidence for Entry: Minimum confidence to suggest a trade entry (50-90). Default Risk %: Stop loss distance as % of price (0.5-5.0). Min Risk/Reward: Minimum acceptable R:R ratio (1.0-5.0). 🔔 ALERT CONDITIONS The indicator provides the following alert conditions you can configure: • 🟢 LONG Entry Signal • 🔴 SHORT Entry Signal • ⚠️ Close LONG Signal • ⚠️ Close SHORT Signal • 🛑 STOP LOSS Alert • 💰 Take Profit Alert • 🚨 High Urgency Signal ⚠️ IMPORTANT DISCLAIMER EDUCATIONAL TOOL ONLY This indicator is designed for educational purposes to help users identify different market scenarios and understand how various signals might be interpreted. The Trade Advisor is NOT a recommendation to buy, sell, or invest. • Past performance does not guarantee future results • All trading involves risk of loss • The creator is not a licensed financial advisor • Always do your own research (DYOR) • Consult a qualified financial advisor before making any investment decisions By using this indicator, you acknowledge that you understand these risks and accept full responsibility for your trading decisions. Pine Script® indicatorby ata_sabanci66178
TJR asia session sweep//@version=5 strategy("TJR asia session sweep", "TJR Asia Sweep", overlay=true, max_lines_count=500, max_labels_count=500) // Input settings show_asian = input.bool(true, "Show Asian Session", group="Visual Settings") show_london = input.bool(true, "Show London Session", group="Visual Settings") show_swing_points = input.bool(true, "Show Asian Swing Points", group="Visual Settings") show_market_structure = input.bool(true, "Show Market Structure", group="Visual Settings") show_bos = input.bool(true, "Show Break of Structure", group="Visual Settings") // Session Time Settings asian_start_hour_input = input.int(22, "Asian Session Start Hour", minval=0, maxval=23, group="Session Times") asian_end_hour_input = input.int(3, "Asian Session End Hour", minval=0, maxval=23, group="Session Times") london_start_hour_input = input.int(3, "London Session Start Hour", minval=0, maxval=23, group="Session Times") london_end_hour_input = input.int(8, "London Session End Hour", minval=0, maxval=23, group="Session Times") session_timezone = input.string("America/New_York", "Session Timezone", options= , group="Session Times") // Risk Management Settings use_atr_sl = input.bool(false, "Use ATR Multiplier for Stop Loss", group="Risk Management") atr_length = input.int(14, "ATR Length", minval=1, maxval=50, group="Risk Management") atr_multiplier = input.float(2.0, "ATR Multiplier for Stop Loss", minval=0.5, maxval=10.0, group="Risk Management") force_london_close = input.bool(true, "Force Close at London Session End", group="Risk Management") cutoff_minutes = input.int(60, "Minutes Before Session End to Stop New Trades", minval=0, maxval=300, group="Risk Management") // Position Sizing Settings position_sizing_method = input.string("USD Risk", "Position Sizing Method", options= , group="Position Sizing") usd_risk_per_trade = input.float(100.0, "USD Risk Per Trade", minval=1.0, maxval=10000.0, group="Position Sizing") fixed_contracts = input.float(1.0, "Fixed Number of Contracts", minval=0.01, maxval=1000.0, step=0.01, group="Position Sizing") // Color settings asian_color = input.color(color.red, "Asian Session Color") london_color = input.color(color.blue, "London Session Color") swing_high_color = input.color(color.orange, "Swing High Color") swing_low_color = input.color(color.lime, "Swing Low Color") bullish_structure_color = input.color(color.green, "Bullish Structure Color") bearish_structure_color = input.color(color.red, "Bearish Structure Color") bos_color = input.color(color.orange, "Break of Structure Color") // Line settings line_width = input.int(2, "Line Width", minval=1, maxval=5) // ATR calculation for stop loss atr = ta.atr(atr_length) // Position size calculation function calculate_position_size(entry_price, stop_loss_price) => var float position_size = na if position_sizing_method == "Fixed Contracts" position_size := fixed_contracts else // USD Risk method stop_distance = math.abs(entry_price - stop_loss_price) if stop_distance > 0 // Calculate position size based on USD risk per trade // For forex: position_size = risk_amount / (stop_distance * point_value) // For most forex pairs, point value = 1 (since we're dealing with price differences directly) position_size := usd_risk_per_trade / stop_distance else position_size := fixed_contracts // Fallback to fixed contracts if stop distance is 0 position_size // Session time definitions (using input variables) asian_start_hour = asian_start_hour_input asian_end_hour = asian_end_hour_input london_start_hour = london_start_hour_input london_end_hour = london_end_hour_input // Get current hour using selected timezone current_hour = hour(time, session_timezone) // Previous hour for transition detection prev_hour = hour(time , session_timezone) // Session transition detection asian_start = current_hour == asian_start_hour and prev_hour != asian_start_hour asian_end = current_hour == asian_end_hour and prev_hour != asian_end_hour london_start = current_hour == london_start_hour and prev_hour != london_start_hour london_end = current_hour == london_end_hour and prev_hour != london_end_hour // Session activity detection asian_active = (current_hour >= asian_start_hour) or (current_hour < asian_end_hour) london_active = (current_hour >= london_start_hour) and (current_hour < london_end_hour) // Session boxes - keep previous sessions visible var box asian_session_box = na var box london_session_box = na // Create Asian session box if show_asian and asian_start // Create new box at session start (previous box remains visible) asian_session_box := box.new(bar_index, high, bar_index + 1, low, border_color=asian_color, bgcolor=color.new(asian_color, 90), border_width=2, border_style=line.style_solid) // Pre-calculate session highs and lows for consistency asian_session_length = asian_active and not na(asian_session_box) ? bar_index - box.get_left(asian_session_box) + 1 : 1 current_asian_high = ta.highest(high, asian_session_length) current_asian_low = ta.lowest(low, asian_session_length) // Update Asian session box continuously during session if show_asian and asian_active and not na(asian_session_box) box.set_right(asian_session_box, bar_index) // Update box to contain session highs and lows box.set_top(asian_session_box, current_asian_high) box.set_bottom(asian_session_box, current_asian_low) // Create London session box if show_london and london_start // Create new box at session start (previous box remains visible) london_session_box := box.new(bar_index, high, bar_index + 1, low, border_color=london_color, bgcolor=color.new(london_color, 90), border_width=2, border_style=line.style_solid) // Pre-calculate London session highs and lows for consistency london_session_length = london_active and not na(london_session_box) ? bar_index - box.get_left(london_session_box) + 1 : 1 current_london_high = ta.highest(high, london_session_length) current_london_low = ta.lowest(low, london_session_length) // Update London session box continuously during session if show_london and london_active and not na(london_session_box) box.set_right(london_session_box, bar_index) // Update box to contain session highs and lows box.set_top(london_session_box, current_london_high) box.set_bottom(london_session_box, current_london_low) // Asian Session Swing Points Detection var float asian_session_high = na var float asian_session_low = na var int asian_high_bar = na var int asian_low_bar = na // Asian Session Absolute High/Low for TP levels var float asian_absolute_high = na var float asian_absolute_low = na var line asian_high_line = na var line asian_low_line = na var label asian_high_label = na var label asian_low_label = na var bool high_broken = false var bool low_broken = false // London Session High/Low tracking for stop loss var float london_session_high = na var float london_session_low = na // Market structure tracking variables var string breakout_direction = na // "bullish" or "bearish" var float last_hh_level = na // Last Higher High level var float last_hl_level = na // Last Higher Low level var float last_ll_level = na // Last Lower Low level var float last_lh_level = na // Last Lower High level var int structure_count = 0 var string last_structure_type = na // "HH", "HL", "LL", "LH" // Legacy variables for compatibility var float last_swing_high = na var float last_swing_low = na var int last_high_bar = na var int last_low_bar = na // Market structure state tracking var float pending_high = na var float pending_low = na var int pending_high_bar = na var int pending_low_bar = na var bool waiting_for_confirmation = false // Break of Structure tracking variables var float most_recent_hl = na var float most_recent_lh = na var int most_recent_hl_bar = na var int most_recent_lh_bar = na var bool bos_detected = false // Trading variables var bool trade_taken = false // Trade visualization boxes (based on Casper strategy approach) var box current_profit_box = na var box current_sl_box = na // Update swing points during Asian session if asian_active and show_swing_points // Always track absolute high/low for both TP levels and breakout detection if na(asian_absolute_high) or high > asian_absolute_high asian_absolute_high := high if na(asian_absolute_low) or low < asian_absolute_low asian_absolute_low := low // Use absolute high/low for breakout levels (simplified logic) if na(asian_session_high) or high > asian_session_high asian_session_high := high asian_high_bar := bar_index if na(asian_session_low) or low < asian_session_low asian_session_low := low asian_low_bar := bar_index // Track London session high/low for stop loss levels if london_active if na(london_session_high) or high > london_session_high london_session_high := high if na(london_session_low) or low < london_session_low london_session_low := low // Draw initial lines when Asian session ends if asian_end and show_swing_points if not na(asian_session_high) and not na(asian_high_bar) // Draw extending line for high asian_high_line := line.new(asian_high_bar, asian_session_high, bar_index + 200, asian_session_high, color=swing_high_color, width=2, style=line.style_dashed, extend=extend.right) asian_high_label := label.new(bar_index + 5, asian_session_high, "Asian High: " + str.tostring(asian_session_high, "#.####"), style=label.style_label_left, color=swing_high_color, textcolor=color.white, size=size.small) if not na(asian_session_low) and not na(asian_low_bar) // Draw extending line for low asian_low_line := line.new(asian_low_bar, asian_session_low, bar_index + 200, asian_session_low, color=swing_low_color, width=2, style=line.style_dashed, extend=extend.right) asian_low_label := label.new(bar_index + 5, asian_session_low, "Asian Low: " + str.tostring(asian_session_low, "#.####"), style=label.style_label_left, color=swing_low_color, textcolor=color.white, size=size.small) // Reset break flags for new session high_broken := false low_broken := false // Check for breakouts during London session if london_active and show_swing_points and not na(asian_session_high) and not na(asian_session_low) // Check if Asian high is broken if not high_broken and not low_broken and high > asian_session_high high_broken := true // Update high line to end at break point if not na(asian_high_line) line.set_x2(asian_high_line, bar_index) line.set_extend(asian_high_line, extend.none) // Remove the low line (first break wins) if not na(asian_low_line) line.delete(asian_low_line) if not na(asian_low_label) label.delete(asian_low_label) // Add break marker label.new(bar_index, asian_session_high * 1.001, "HIGH BREAK!", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.normal) // Set breakout direction and initialize structure tracking breakout_direction := "bullish" last_swing_high := asian_session_high last_swing_low := asian_session_low last_high_bar := bar_index structure_count := 0 // Check if Asian low is broken if not low_broken and not high_broken and low < asian_session_low low_broken := true // Update low line to end at break point if not na(asian_low_line) line.set_x2(asian_low_line, bar_index) line.set_extend(asian_low_line, extend.none) // Remove the high line (first break wins) if not na(asian_high_line) line.delete(asian_high_line) if not na(asian_high_label) label.delete(asian_high_label) // Add break marker label.new(bar_index, asian_session_low * 0.999, "LOW BREAK!", style=label.style_label_up, color=color.red, textcolor=color.white, size=size.normal) // Set breakout direction and initialize structure tracking breakout_direction := "bearish" last_swing_high := asian_session_high last_swing_low := asian_session_low last_low_bar := bar_index structure_count := 0 // Stop extending lines when London session ends (if not already broken) if london_end and show_swing_points if not high_broken and not na(asian_high_line) line.set_x2(asian_high_line, bar_index) line.set_extend(asian_high_line, extend.none) if not low_broken and not na(asian_low_line) line.set_x2(asian_low_line, bar_index) line.set_extend(asian_low_line, extend.none) // Force close all trades at London session end (if enabled) if london_end and force_london_close if strategy.position_size != 0 // Extend boxes immediately before session close to prevent timing issues if not na(current_profit_box) // Ensure minimum 8 bars width or extend to current bar, whichever is longer box_left = box.get_left(current_profit_box) min_right = box_left + 8 final_right = math.max(min_right, bar_index) box.set_right(current_profit_box, final_right) current_profit_box := na // Clear reference after extending if not na(current_sl_box) // Ensure minimum 8 bars width or extend to current bar, whichever is longer box_left = box.get_left(current_sl_box) min_right = box_left + 8 final_right = math.max(min_right, bar_index) box.set_right(current_sl_box, final_right) current_sl_box := na // Clear reference after extending strategy.close_all(comment="London Close") trade_taken := false // Reset trade flag for next session // Market structure detection after breakout (only during London session and before first BoS) if show_market_structure and not na(breakout_direction) and london_active and not bos_detected // Bullish structure tracking (HH, HL alternating) if breakout_direction == "bullish" // Check for Higher High pattern: Bullish candle followed by bearish candle pattern_high = math.max(high , high) prev_hh = na(last_hh_level) ? last_swing_high : last_hh_level // HH Detection: Only if we expect HH next (no last structure or last was HL) if (na(last_structure_type) or last_structure_type == "HL") and close > open and close < open and pattern_high > prev_hh and close > prev_hh // Check consolidation is_too_close = not na(last_high_bar) and (bar_index - last_high_bar) <= 4 should_create_hh = true if is_too_close and structure_count > 0 and pattern_high <= last_hh_level should_create_hh := false if should_create_hh structure_count := structure_count + 1 label.new(bar_index - 1, high + (high * 0.0003), "HH" + str.tostring(structure_count), style=label.style_none, color=color.new(color.white, 100), textcolor=color.white, size=size.small) last_hh_level := pattern_high last_swing_high := pattern_high last_high_bar := bar_index last_structure_type := "HH" // HL Detection: Only if we expect HL next (last was HH) pattern_low = math.min(low , low) prev_hl = na(last_hl_level) ? last_swing_low : last_hl_level if last_structure_type == "HH" and close < open and close > open and pattern_low > prev_hl and close > prev_hl // Check consolidation is_too_close = not na(last_low_bar) and (bar_index - last_low_bar) <= 4 should_create_hl = true if is_too_close and pattern_low <= last_hl_level should_create_hl := false if should_create_hl structure_count := structure_count + 1 label.new(bar_index - 1, low - (low * 0.0003), "HL" + str.tostring(structure_count), style=label.style_none, color=color.new(color.white, 100), textcolor=color.white, size=size.small) last_hl_level := pattern_low most_recent_hl := pattern_low // Update most recent HL for BoS detection most_recent_hl_bar := bar_index - 1 // Store HL bar position last_low_bar := bar_index last_structure_type := "HL" // Bearish structure tracking (LL, LH alternating) if breakout_direction == "bearish" // Check for Lower Low pattern: Bearish candle followed by bullish candle pattern_low = math.min(low , low) prev_ll = na(last_ll_level) ? last_swing_low : last_ll_level // LL Detection: Only if we expect LL next (no last structure or last was LH) if (na(last_structure_type) or last_structure_type == "LH") and close < open and close > open and pattern_low < prev_ll and close < prev_ll // Check consolidation is_too_close = not na(last_low_bar) and (bar_index - last_low_bar) <= 4 should_create_ll = true if is_too_close and structure_count > 0 and pattern_low >= last_ll_level should_create_ll := false if should_create_ll structure_count := structure_count + 1 label.new(bar_index - 1, low - (low * 0.0003), "LL" + str.tostring(structure_count), style=label.style_none, color=color.new(color.white, 100), textcolor=color.white, size=size.small) last_ll_level := pattern_low last_swing_low := pattern_low last_low_bar := bar_index last_structure_type := "LL" // LH Detection: Only if we expect LH next (last was LL) pattern_high = math.max(high , high) prev_lh = na(last_lh_level) ? last_swing_high : last_lh_level if last_structure_type == "LL" and close > open and close < open and pattern_high < prev_lh and close < prev_lh // Check consolidation is_too_close = not na(last_high_bar) and (bar_index - last_high_bar) <= 4 should_create_lh = true if is_too_close and pattern_high >= last_lh_level should_create_lh := false if should_create_lh structure_count := structure_count + 1 label.new(bar_index - 1, high + (high * 0.0003), "LH" + str.tostring(structure_count), style=label.style_none, color=color.new(color.white, 100), textcolor=color.white, size=size.small) last_lh_level := pattern_high most_recent_lh := pattern_high // Update most recent LH for BoS detection most_recent_lh_bar := bar_index - 1 // Store LH bar position last_high_bar := bar_index last_structure_type := "LH" // Check if we're within the cutoff period before London session end current_minute = minute(time, session_timezone) london_end_time_minutes = london_end_hour * 60 // Convert London end hour to minutes current_time_minutes = current_hour * 60 + current_minute // Current time in minutes // Calculate minutes remaining in London session london_session_minutes_remaining = london_end_time_minutes - current_time_minutes // Handle day rollover case (e.g., if london_end is 8:00 (480 min) and current is 23:30 (1410 min)) if london_session_minutes_remaining < 0 london_session_minutes_remaining := london_session_minutes_remaining + (24 * 60) // Add 24 hours in minutes // Only allow trades if more than cutoff_minutes remaining in London session allow_new_trades = london_session_minutes_remaining > cutoff_minutes // Break of Structure (BoS) Detection and Trading Logic - Only first BoS per London session and outside cutoff period if show_bos and london_active and show_market_structure and not bos_detected and not trade_taken and allow_new_trades // Bullish BoS: Price closes below the most recent HL (after bullish breakout) - SELL SIGNAL if breakout_direction == "bullish" and not na(most_recent_hl) and not na(most_recent_hl_bar) // Check minimum distance requirement (at least 4 candles between BoS and HL) if close < most_recent_hl and (bar_index - most_recent_hl_bar) >= 4 // Draw dotted line from HL position to BoS point line.new(most_recent_hl_bar, most_recent_hl, bar_index, most_recent_hl, color=bos_color, width=2, style=line.style_dotted, extend=extend.none) // Calculate center position for BoS label center_bar = math.round((most_recent_hl_bar + bar_index) / 2) // Draw BoS label below the line for HL break label.new(center_bar, most_recent_hl - (most_recent_hl * 0.0005), "BoS", style=label.style_none, color=color.new(color.white, 100), textcolor=bos_color, size=size.normal) // SELL ENTRY if not na(london_session_high) and not na(asian_absolute_low) // Calculate stop loss based on settings stop_loss_level = use_atr_sl ? close + (atr * atr_multiplier) : london_session_high take_profit_level = asian_absolute_low entry_price = close // Calculate position size based on user settings position_size = calculate_position_size(entry_price, stop_loss_level) strategy.entry("SELL", strategy.short, qty=position_size, comment="BoS Sell") strategy.exit("SELL EXIT", "SELL", stop=stop_loss_level, limit=take_profit_level, comment="SL/TP") // Create trade visualization boxes (TradingView style) - minimum 8 bars width // Blue profit zone box (from entry to take profit) current_profit_box := box.new(left=bar_index, top=take_profit_level, right=bar_index + 8, bottom=entry_price, bgcolor=color.new(color.blue, 70), border_width=0) // Red stop loss zone box (from entry to stop loss) current_sl_box := box.new(left=bar_index, top=entry_price, right=bar_index + 8, bottom=stop_loss_level, bgcolor=color.new(color.red, 70), border_width=0) trade_taken := true bos_detected := true // Mark BoS as detected for this session // Bearish BoS: Price closes above the most recent LH (after bearish breakout) - BUY SIGNAL if breakout_direction == "bearish" and not na(most_recent_lh) and not na(most_recent_lh_bar) // Check minimum distance requirement (at least 4 candles between BoS and LH) if close > most_recent_lh and (bar_index - most_recent_lh_bar) >= 4 // Draw dotted line from LH position to BoS point line.new(most_recent_lh_bar, most_recent_lh, bar_index, most_recent_lh, color=bos_color, width=1, style=line.style_dotted, extend=extend.none) // Calculate center position for BoS label center_bar = math.round((most_recent_lh_bar + bar_index) / 2) // Draw BoS label above the line for LH break label.new(center_bar, most_recent_lh + (most_recent_lh * 0.0005), "BoS", style=label.style_none, color=color.new(color.white, 100), textcolor=bos_color, size=size.normal) // BUY ENTRY if not na(london_session_low) and not na(asian_absolute_high) // Calculate stop loss based on settings stop_loss_level = use_atr_sl ? close - (atr * atr_multiplier) : london_session_low take_profit_level = asian_absolute_high entry_price = close // Calculate position size based on user settings position_size = calculate_position_size(entry_price, stop_loss_level) strategy.entry("BUY", strategy.long, qty=position_size, comment="BoS Buy") strategy.exit("BUY EXIT", "BUY", stop=stop_loss_level, limit=take_profit_level, comment="SL/TP") // Create trade visualization boxes (TradingView style) - minimum 8 bars width // Blue profit zone box (from entry to take profit) current_profit_box := box.new(left=bar_index, top=entry_price, right=bar_index + 8, bottom=take_profit_level, bgcolor=color.new(color.blue, 70), border_width=0) // Red stop loss zone box (from entry to stop loss) current_sl_box := box.new(left=bar_index, top=stop_loss_level, right=bar_index + 8, bottom=entry_price, bgcolor=color.new(color.red, 70), border_width=0) trade_taken := true bos_detected := true // Mark BoS as detected for this session // Position close detection for extending boxes (based on Casper strategy) if barstate.isconfirmed and strategy.position_size == 0 and strategy.position_size != 0 // Extend trade visualization boxes to exact exit point when position closes if not na(current_profit_box) // Ensure minimum 8 bars width or extend to current bar, whichever is longer box_left = box.get_left(current_profit_box) min_right = box_left + 8 final_right = math.max(min_right, bar_index) box.set_right(current_profit_box, final_right) current_profit_box := na // Clear reference after extending if not na(current_sl_box) // Ensure minimum 8 bars width or extend to current bar, whichever is longer box_left = box.get_left(current_sl_box) min_right = box_left + 8 final_right = math.max(min_right, bar_index) box.set_right(current_sl_box, final_right) current_sl_box := na // Clear reference after extending // Backup safety check - extend boxes if position is closed but boxes still active if not na(current_profit_box) and strategy.position_size == 0 box_left = box.get_left(current_profit_box) min_right = box_left + 8 final_right = math.max(min_right, bar_index) box.set_right(current_profit_box, final_right) current_profit_box := na if not na(current_sl_box) and strategy.position_size == 0 box_left = box.get_left(current_sl_box) min_right = box_left + 8 final_right = math.max(min_right, bar_index) box.set_right(current_sl_box, final_right) current_sl_box := na // Reset everything when new Asian session starts if asian_start and show_swing_points asian_session_high := na asian_session_low := na asian_high_bar := na asian_low_bar := na // Reset absolute levels asian_absolute_high := na asian_absolute_low := na asian_high_line := na asian_low_line := na asian_high_label := na asian_low_label := na high_broken := false low_broken := false // Reset London session levels london_session_high := na london_session_low := na // Reset market structure tracking breakout_direction := na last_hh_level := na last_hl_level := na last_ll_level := na last_lh_level := na last_swing_high := na last_swing_low := na last_high_bar := na last_low_bar := na structure_count := 0 last_structure_type := na pending_high := na pending_low := na pending_high_bar := na pending_low_bar := na waiting_for_confirmation := false // Reset BoS tracking most_recent_hl := na most_recent_lh := na most_recent_hl_bar := na most_recent_lh_bar := na bos_detected := false // Reset trading trade_taken := false // Reset current trade boxes current_profit_box := na current_sl_box := na // Debug info (optional) show_debug = input.bool(false, "Show Debug Info") if show_debug var table debug_table = table.new(position.top_right, 2, 3, bgcolor=color.white, border_width=1) if barstate.islast table.cell(debug_table, 0, 0, "Current Hour:", text_color=color.black) table.cell(debug_table, 1, 0, str.tostring(current_hour), text_color=color.black) table.cell(debug_table, 0, 1, "Asian Active:", text_color=color.black) table.cell(debug_table, 1, 1, str.tostring((current_hour >= asian_start_hour) or (current_hour < asian_end_hour)), text_color=color.black) table.cell(debug_table, 0, 2, "London Active:", text_color=color.black) table.cell(debug_table, 1, 2, str.tostring((current_hour >= london_start_hour) and (current_hour < london_end_hour)), text_color=color.black) Pine Script® strategyby Elliodoh22
SMA Reversal Sequential MTF - Pure Confirmed Final V2SMA Reversal Sequential MTF - Detailed Indicator Manual This indicator identifies trend reversal points based on the shape of a Simple Moving Average (SMA) and monitors these signals across multiple timeframes (MTF). By synchronizing trends from various intervals, it provides a robust framework for identifying high-probability entry points. 1. Core Logic Overview The indicator detects "peaks" and "troughs" in the SMA to identify potential reversal points. Bullish Reversal (UP): Occurs when the SMA turns upward after a period of decline (forming a "trough"). Bearish Reversal (DN): Occurs when the SMA turns downward after a period of inclination (forming a "peak"). In addition to detecting these turns, the indicator tracks the high/low prices of the most recent reversal points on a "Confirmed Bar" basis. When the current price breaks these levels, it confirms a trend continuation or a breakout. 2. Full Description of Input Settings Basic Settings / Main Settings Use Short Period (5, 4, 7) / 短期設定を使用: true: Increases sensitivity to price movements by using shorter parameters (e.g., SMA 5). Suitable for scalping. false: Uses standard parameters (e.g., SMA 20). Suitable for day trading and swing trading. Timeframe Visibility / 時間足表示設定 Allows individual toggling of visibility for each timeframe's labels and lines. Show 1M to 1m / 1M〜1m表示: Individually enable or disable the calculation and display of data for Monthly (1M), Weekly (1W), Daily (Daily), 4H, 1H, 15M, 5M, and 1m timeframes. Hide Higher TF Settings on Lower TFs / 下位足での上位設定を非表示: When enabled, this removes lower timeframe data from higher timeframe charts to reduce visual noise. Drawing Options / 表示オプション Show Only Current TF Labels / 現在足のラベルのみ表示: If enabled, only labels corresponding to the chart's current interval (e.g., "5" labels on a 5M chart) will be displayed. Show Trendlines & Channels / トレンドライン&チャネルを表示: Automatically draws trendlines and parallel channels by connecting recent local reversal points on the current timeframe. Show Sequential Labels / 転換点ラベル表示: Displays timeframe labels (e.g., "15", "1H") at the exact point where the SMA reversed. Show Break Lines / ブレイクライン表示: Draws horizontal lines from the most recent peaks or troughs and displays a "BREAK" label when price crosses them. Break Label Offset / ブレイク文字の右オフセット: Adjusts the horizontal distance of the "BREAK" label from the current bar for better visibility. Additional Alert Settings / 追加アラート設定 Alert 1: Current + 2 Higher TFs Sync (Blue/Red) / アラート1: 現在・上位2つ同調: Triggers a notification when the trend (UP/DN) of the current chart's timeframe, the next higher timeframe, and the second higher timeframe all align. Alert 2: 4-TF Sync Including Current (Orange) / アラート2: 表示足を含む4足同調: Triggers a notification when four consecutive timeframes (Current + 3 Higher) align in the same direction. This is considered a high-conviction signal. 3. How to Read the Dashboard (Table) The compact table in the top-right corner displays the current trend status for key timeframes in real-time. Blue Background (UP): Indicates price has broken the recent peak, confirming an uptrend for that timeframe. Red Background (DN): Indicates price has broken the recent trough, confirming a downtrend for that timeframe. Gray Background: Indicates the trend status is yet to be determined or is in a neutral state. The table items are fixed to show 1D, 4H, 1H, 15M, and 5M from top to bottom. When all rows turn the same color, it indicates a strong market trend across the entire spectrum. 4. Key Feature: MTF Sync Alerts The primary advantage of this indicator is its automation of manual Multi-Timeframe Analysis. 3-TF Sync: On a 15M chart, if the 15M, 1H, and 4H trends align, a small Blue (Buy) or Red (Sell) label appears on the chart. 4-TF Sync: If the alignment extends to a 4th timeframe (e.g., up to the Daily timeframe on a 15M chart), an Orange label is displayed, signaling a very strong trend confluence. このインジケーター(SMA Reversal Sequential MTF)は、移動平均線(SMA)の形状からトレンドの転換点を特定し、それを複数の時間足(MTF)で監視・同期させることで、高精度なエントリーポイントを探るためのツールです。 以下に、すべてのインプット項目を含む詳細な説明をまとめました。 1. 概要と基本ロジック このインジケーターは、SMA(単純移動平均線)が「山」や「谷」を作ったポイントを転換点として認識します。 上昇転換: SMAが一定期間、下降した後に上昇へ転じた(谷を作った)タイミング。 下降転換: SMAが一定期間、上昇した後に下降へ転じた(山を作った)タイミング。 これに加えて、直近の転換点の価格(高値・安値)を「確定足」で更新し、そのラインを価格がブレイクした際にトレンドの継続や転換を判定します。 2. インプット項目の詳細 基本設定 / Main Settings 短期設定を使用 (5, 4, 7): true(チェックあり): 短期的な動きに敏感になります(SMA 5期間など)。スキャルピング向け。 false(チェックなし): 標準的な設定(SMA 20期間など)。デイトレード・スイング向け。 時間足表示設定 / Timeframe Visibility 各時間足のラベルやラインを表示するかどうかを個別に設定します。 1M〜1m表示: 月足(1M)から1分足(1m)まで、各MTFデータの計算・表示をオン/オフします。 下位足での上位設定を非表示: * 現在表示しているチャートより上位の時間足設定だけを表示し、ノイズを減らすためのスイッチです。 表示オプション / Drawing Options 現在足のラベルのみ表示: チェックすると、チャートの時間足と一致するラベル(例:5分足チャートなら「5」のラベル)のみ表示されます。 トレンドライン&チャネルを表示: 現在表示している足の直近の転換点同士を結び、トレンドラインと並行チャネルを自動描画します。 転換点ラベル表示: SMAが反転した位置に「15」や「1H」などの時間足ラベルを表示します。 ブレイクライン表示: 直近の転換点(高値・安値)から右側に水平線を引き、そこを価格が抜けた際に「BREAK」の文字を表示します。 ブレイク文字の右オフセット: 「BREAK」ラベルを右側にどれくらい離して表示するかを調整します。 追加アラート設定 / GRP_NEW_AL アラート1: 現在・上位2つ同調 (青/赤): 「表示中の足 + 1つ上 + 2つ上」の計3つのトレンド(UP/DN)が一致した瞬間に通知します。 アラート2: 表示足を含む4足同調 (オレンジ): 「表示中の足 + 上位3つ」の計4つのトレンドがすべて一致した強力なサイン時に通知します。 3. テーブル(ダッシュボード)の見方 画面右上に表示されるコンパクトなテーブルは、各時間足の現在のトレンド状態をリアルタイムで示しています。 青背景(UP): 直近で高値をブレイクし、上昇トレンドにある状態。 赤背景(DN): 直近で安値をブレイクし、下降トレンドにある状態。 灰背景: 状態が未確定なケース。 表示項目は上位足から順に 1D(日足), 4H, 1H, 15M, 5M となっており、これらが一色に染まるタイミングが環境認識上の強いトレンドを示唆します。 4. 特徴的な機能:MTF同調アラート このインジケーターの最大の強みは、手動でのマルチタイムフレーム分析を自動化している点です。 3足同調(SYNC): 15分足チャートであれば「15M・1H・4H」が同じ方向を向いた時にチャート上に青(買い)または赤(売り)の小さなラベルが表示されます。 4足同調(4-TF SYNC): さらに上位の足(15分足なら日足まで)が同調すると、オレンジ色のラベルが表示され、より強い根拠となります。Pine Script® indicatorby hmp5below49
Pullbacks CompletoThis indicator is a comprehensive Trend Following toolkit that combines two distinct, high-probability pullback strategies into a single, intelligent interface. It is designed to help traders identify precise entry points during corrections in established trends, filtering out low-quality noise. The indicator features Smart Conflict Detection: if the two strategies generate opposing signals on the same candle, the system blocks the individual alerts and displays a Purple "X", warning the trader of market indecision. Strategy 1: Stoch Pullback (Triangles) Visual: Green/Red Triangles Logic: Trend: Defined by the alignment of the Fast EMA (21) and Slow EMA (100). The Setup: The indicator waits for the Stochastic RSI to enter an Overbought or Oversold zone. Strict Filter: A signal is only valid if, while in the zone, the price physically tests the Fast EMA (closes against it). This filters out "shallow" pullbacks. Trigger: The signal is fired when the Stochastic RSI crosses back out of the extreme zone, resuming the trend. Strategy 2: Dave Landry Setup (Dots) Visual: Green/Red Circles Logic: Trend: Filtered by MACD Histogram momentum and the relation to the Fast EMA (21). The Pattern: Looks for a correction of at least 2 candles making lower lows (for uptrends) or higher highs (for downtrends). Trigger: Enters when the price breaks the high/low of the previous candle, provided it closes in favor of the EMA 21. Anti-Climax Filter: Includes a "Stretched" filter to prevent buying/selling on exhausted "Elephant Bars" (huge candles that have already consumed the move). Key Features Dual Alert System: Receive specific alerts for "Pullback" or "Landry" setups. Conflict Warning: If Strategy A says "Buy" and Strategy B says "Sell" simultaneously, a "Doubtful Signal" alert is triggered, and a purple Cross appears on the chart. Smart Visibility: The indicator automatically hides or shows the Moving Averages depending on which strategies you have enabled in the settings. Educational Tooltips: Hover over the "i" icons in the settings menu to read the rationale behind each specific filter. How to Use Green Triangle: Look for Long opportunities (Stoch Pullback). Green Dot: Look for Long opportunities (Landry Breakout). Red Triangle: Look for Short opportunities (Stoch Pullback). Red Dot: Look for Short opportunities (Landry Breakout). Purple X: Stay Out. The setups are conflicting (Trend vs. Momentum disagreement). Configuration You can toggle each strategy on/off in the settings menu. You can also choose to display the Overbought/Oversold background zones to visualize where the Stoch Pullback is "arming".Pine Script® indicatorby yuricabral201