Forensics V19: Ultimate S&D + VSAGood for chart it will give indicatopn , dont trad with this please make study Pine Script®指标由rvishnu2000提供36
FractalMod for TV with breakout alertsFractalsMod (MT4 → Pine) is a TradingView indicator converted from a custom MT4 (MQL4) fractal indicator. This script replicates the behavior of the original MT4 version as closely as possible, including: Confirmation-based fractals using left/right bar logic Persistent horizontal levels derived from confirmed fractals MT4-style “buffer-like” behavior using segmented horizontal lines Key Features MT4-compatible fractal logic Uses leftbars and rightbars to confirm fractal highs/lows, equivalent to MT4 custom fractal indicators. Segmented horizontal lines (MT4 buffer style) Each confirmed fractal starts a new horizontal line segment from the original pivot bar. When a new fractal is confirmed, the previous segment is stopped at the new pivot point, closely mimicking MT4 indicator buffers. Latest fractal tracking The most recently confirmed Up/Down fractal levels are tracked internally and used for breakout detection. Breakout alerts (not confirmation alerts) Alerts are triggered when the current price breaks above the latest Up fractal or below the latest Down fractal. Breakout detection can be configured to use: Close price only (confirmation-based), or High/Low including wicks. Clean visual control Single arrow per confirmed fractal (no duplicate markers) Optional display of fractal markers and horizontal lines Custom colors and line width for Up/Down fractals Typical Use Cases Fractal-based support / resistance visualization Breakout trading using the most recent confirmed fractal levels MT4 → TradingView workflow migration while preserving indicator behavior This script is designed for traders familiar with MT4 fractal indicators who want a faithful and practical TradingView equivalent without repainting on confirmed signals. FractalsMod (MT4 → Pine) は、 MT4(MQL4)で使用されていた カスタム Fractal インジケーターを TradingView(Pine Script)へ移植したものです。 元の MT4 インジケーターの挙動を可能な限り忠実に再現することを目的としており、以下の特徴を持ちます。 主な特徴 MT4互換のフラクタル判定ロジック leftbars / rightbars を用いたフラクタル確定方式で、 MT4 のカスタム Fractal インジケーターと同等の確定条件を再現しています。 MT4のバッファ挙動を再現した水平ライン フラクタルが確定すると、その ピボット位置から水平ラインを開始します。 新しいフラクタルが確定した場合、それまでのラインは新しいピボット位置で停止し、 区間ごとのライン構造で MT4 のバッファ表示に近い見た目を実現しています。 最新フラクタル価格の内部保持 直近で確定した Up / Down フラクタル価格を保持し、 ブレイク判定やアラートに利用します。 ブレイク専用アラート(確定時アラートなし) フラクタル確定時ではなく、 価格が最新の Up フラクタルを上抜けたとき 価格が最新の Down フラクタルを下抜けたとき にアラートを出す設計です。 ブレイク判定は 終値ベース(ダマシを減らす) ヒゲ込み(高値 / 安値) を設定で切り替えられます。 視認性と制御性を重視した設計 フラクタル矢印は 確定時に1本のみ表示(重複なし) Up / Down で色分けされたラインと矢印 ライン表示・矢印表示の ON / OFF 切り替え可能 想定される用途 フラクタルを用いた サポート / レジスタンスの可視化 直近フラクタルを基準とした ブレイクアウト戦略 MT4 から TradingView への移行時に、 ロジックと見た目をできるだけ変えずに使いたい場合 本スクリプトは、 MT4のフラクタル系インジケーターに慣れたトレーダーが、 TradingViewでも違和感なく使えることを重視して設計されています。Pine Script®指标由tarotaro_n提供39
Blizzards goonative physicsvgvygcftc jiuihu8hyu8hyu8h huhbyuhyuhu rftdtrfghbhunbhbhuPine Script®指标由lucasbailey1234提供13
TVS #Overview The TVS strategy looks for areas of low volatility or ‘squeezes’ and then relies on momentum to identify a breakout. This is intended to help a trader wait for a consolidation phase before entering a market when energy is released. --- How It Works TVS uses Bollinger Bandwidth as a measure of market compression to define the "squeeze" conditions of low volatility. When the distance between the upper and lower Bollinger Bands contracts below its own average, the indicator flags the market as compressed and color codes candles purple. Once volatility expands and the squeeze ends, TVS toggles on momentum confirmation via RSI: candles light green as bullish momentum is in control and red when bearish momentum takes over. The color system observes strict priority whereby volatility compression overrides all trend signals, with any consideration of direction being subject to the release of the squeeze. Color Priority • Deep Purple: Active squeeze (low volatility) • Green / Red: Squeeze released – Green: Bullish – Red: Bearish --- Trading Checklist -Purple candles? → Market is compressing -Purple ended?→ Breakout phase -Green or Red? → Direction confirmed -Near key structure? → Manual validation Settings and Usage Timeframes: 15m–Daily Best Markets: Forex majors, liquid stocks Inputs: length (BB basis), mult (band sensitivity) Risk Notes: Squeezes can fail and reverse No built-in stop-loss News reduces signal reliability Risk Management is mandatory.Pine Script®指标由Ericem提供12
Azamet StratejiAzamet Strategy: Multi-Timeframe Williams Vix Fix & RSI Bands System This script is a comprehensive trend-following and reversal detection system designed to identify "Extreme Fear" (Bottoms) and "Extreme Euphoria" (Tops). It combines volatility-based indicators with momentum oscillators to provide a disciplined roadmap for medium to long-term investors. Core Logic & Methodology: Bottom Detection (WVF Green Zone): Utilizes the classic Williams Vix Fix algorithm to spot panic-selling events. Green bars on Weekly timeframes signal high-probability long-term accumulation zones. Top Detection (Inverse WVF Yellow Zone): A custom "Inverse WVF" logic that measures how far price has surged from its recent lows. It highlights "Yellow" zones where market greed and euphoria are at peak levels. Confirmed Exit Mechanism: To avoid exiting too early during strong bull runs, the strategy requires a minimum of 2 bars of euphoria (Yellow bars). The final "SELL" signal is triggered only after the euphoria fades (Yellow bars end), confirming a trend reversal. RSI Bands Targeting: Integrated LazyBear RSI Bands visualize the price level where RSI would hit 70, providing a clear dynamic resistance target on the chart. How to Use: BUY: Look for "AL" labels following Green WVF bars on Weekly or Daily timeframes for staggered entries. MONITOR: Prepare for profit-taking as the price approaches the Red RSI 70 Band. SELL: The "SAT - TREND BİTTİ" (Trend Ended) label triggers the primary exit point after the Yellow exhaustion bars disappear. Technical Parameters: Lookback Period: 22 (Standard for WVF) BB Length/StdDev: 20 / 2.0 (For volatility boundaries) Confirmation Rule: Min. 2 Yellow bars before a sell trigger.Pine Script®指标由Azametgokturk820提供4
Liquidity Gravity Engine [Pineify]```markdown Liquidity Gravity Engine - Market Structure, Displacement, Liquidity Rails Overview Liquidity Gravity Engine is a market structure + liquidity visualization indicator designed to help you read flow , impulse , and liquidity magnets on any symbol and timeframe. Instead of relying on a single moving average, it builds a dynamic “flow ribbon” from confirmed swing structure, highlights displacement candles that create imbalance (FVG-style gaps), and projects unmitigated swing levels as liquidity rails that price often revisits. Key Features Liquid Flow Ribbon: a structure-based dynamic band that adapts to volatility. Displacement Highlighting: flags momentum candles that expand beyond ATR and form an imbalance. Liquidity Rails: extends unmitigated swing highs/lows as potential targets until swept. Trend Context: displacement is filtered using the ribbon’s smoothed centerline. How It Works Market Structure (Swings) : swing highs/lows are detected using pivot logic over your “Structure Lookback”. Pivots become confirmed only after the lookback window completes, which means historical swing points can update until they are confirmed. Flow Construction : the most recent confirmed swing high and swing low define a top and bottom boundary. Their midpoint is then smoothed with an EMA to create the “liquid” centerline. Displacement + Imbalance : a candle is considered displacement when its range expands beyond ATR(14) × Displacement Factor and it creates a simple FVG-style gap (current low above the high two bars back for bullish, or current high below the low two bars back for bearish). The bar is then filtered by being on the correct side of the smoothed flow center. Liquidity Rails : each new confirmed swing high/low can become a dotted rail. Rails extend forward and are removed once price sweeps beyond the level (mitigation), keeping the chart focused on active liquidity. Trading Ideas and Insights Use the ribbon as context : bias is stronger when price holds one side of the flow centerline. Treat displacement markers as impulse confirmation : they often appear at breakout moments or at the start of expansions. Use liquidity rails as magnets : unmitigated swing highs/lows can act as targets for continuation or mean-reversion moves. Combine structure + displacement: a sweep into a rail followed by an opposite displacement can hint at a reversal attempt. How Multiple Components Work Together This indicator is intentionally built as a single liquidity-driven workflow: Swings define structure. Structure defines the flow ribbon (trend/volatility context). The ribbon filters displacement so you see momentum that aligns with flow. Liquidity rails provide objective target zones derived from the same swing structure. The result is a cohesive view of market structure flow, institutional-style displacement, and liquidity targets without stacking multiple separate indicators. Unique Aspects Structure-first ribbon: the band is anchored to confirmed swing points, not just a price average. Imbalance-aware displacement: requires both range expansion and a gap-style condition, reducing generic “big candle” noise. Self-cleaning liquidity rails: mitigated levels are removed to keep the chart readable. How to Use Start with defaults on a clean chart. Identify the flow: price above the smoothed centerline favors bullish flow; below favors bearish flow. Watch for displacement diamonds (“D”): they often validate a push away from structure and can mark the start of a leg. Plan around rails: treat dotted lines as potential objectives and areas where reactions/sweeps can occur. Customization Structure Lookback : smaller values = more sensitive swings; larger values = cleaner, slower structure. Displacement Factor : higher values = fewer, stronger displacement bars; lower values = more signals. Show Liquidity Rails + Liquidity Lookback : control whether rails are plotted and how active levels are emphasized. Visuals : adjust bullish/bearish flow colors and liquidity line styling for your chart theme. Conclusion Liquidity Gravity Engine helps you map market structure, highlight displacement and imbalance (FVG-style) momentum, and visualize liquidity targets with rails that stay relevant until swept. Use it for trend context, breakout confirmation, and liquidity-based trade planning on forex, crypto, stocks, and indices. Pine Script®指标由Pineify提供17
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®指标由kamsakang提供2
BINANCE 15m Alt Breakout Radar (TABLE)BINANCE 15m Alt Breakout Radar (TABLE) "At the 15th installment of Binance Altcoin Breaking High + Explosive Volume + Surging Stock View at a glance with **indicator (table)**, not alarm"Pine Script®指标由kamsakang提供3
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®指标由Kestino提供17
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®策略由Elliodoh提供23
XAUUSD lucky trendThis version introduces a strict midline filter to keep signals trend-aligned without revealing any specific settings. Long signals are permitted only when price is clearly established on the bullish side of the midline for the entire candle, so brief dips through the line are ignored. Short signals are permitted only when price is clearly established on the bearish side of the midline for the entire candle, so brief spikes through the line are ignored. This helps avoid whipsaws around the midline and reduces counter-trend entries, especially during choppy transitions. All other components of the indicator remain unchanged: the original signal logic, quality filters, and frequency controls still determine when a setup is valid. The result is fewer but cleaner prompts that better reflect sustained directional bias rather than temporary noise around the midline.Pine Script®指标由xuziyu409提供20
SSL MACD - nhuthang83supertrend method, supertrend method,supertrend method,supertrend method,Pine Script®策略由webwhopad提供2
SSL MACD - nhuthang83supertrend method, supertrend method, supertrend method, supertrend method, supertrend method, Pine Script®策略由webwhopad提供12
23:00 London 15m -> Asia Close (No colors)//@version=5 indicator("23:00 London 15m -> Asia Close (No colors)", overlay=true, max_lines_count=50, max_labels_count=50) tz = "Europe/London" // set Asia close in London time asiaCloseHour = input.int(6, "Asia close hour (London)", minval=0, maxval=23) asiaCloseMin = input.int(0, "Asia close minute", minval=0, maxval=59) is15 = timeframe.period == "15" is2300 = hour(time, tz) == 23 and minute(time, tz) == 0 cond = is15 and is2300 var line hiLine = na var line loLine = na var label info = na f_asiaCloseTs(_t) => y = year(_t, tz) m = month(_t, tz) d = dayofmonth(_t, tz) closeToday = timestamp(tz, y, m, d, asiaCloseHour, asiaCloseMin) closeNext = timestamp(tz, y, m, d + 1, asiaCloseHour, asiaCloseMin) _t >= closeToday ? closeNext : closeToday if cond hi = high lo = low endTs = f_asiaCloseTs(time) if not na(hiLine) line.delete(hiLine) if not na(loLine) line.delete(loLine) if not na(info) label.delete(info) // High line hiLine := line.new(time, hi, endTs, hi, xloc=xloc.bar_time, extend=extend.none, width=2) // Low line loLine := line.new(time, lo, endTs, lo, xloc=xloc.bar_time, extend=extend.none, width=2) // Label with exact values info := label.new(endTs, hi, xloc=xloc.bar_time, text="23:00 London (15m) High: " + str.tostring(hi, format.mintick) + " Low: " + str.tostring(lo, format.mintick), style=label.style_label_left)Pine Script®指标由danevsb提供1
Joegtradez Custom High and Low Linescustom high/low lines used for intaday markouts can also be used to mark out sessions high/low works on all timeframes etcPine Script®指标由Joegtradez提供4
mua HARSI RSI Shadow Strategy M1 (Fixed)HARSI – Heikin Ashi RSI Shadow Indicator HARSI (Heikin Ashi RSI Shadow) is a momentum-based oscillator that combines the concept of Heikin Ashi smoothing with the Relative Strength Index (RSI) to reduce market noise and highlight short-term trend strength. Instead of plotting traditional price candles, HARSI transforms RSI values into a zero-centered oscillator (RSI − 50), allowing traders to clearly identify bullish and bearish momentum around the median line. The smoothing mechanism inspired by Heikin Ashi candles helps filter out false signals, making the indicator especially effective on lower timeframes such as M1. The RSI Shadow reacts quickly to momentum shifts while maintaining smooth transitions, which makes it suitable for scalping and intraday trading. Key threshold levels (such as ±20 and ±30) can be used to detect momentum expansion, exhaustion, and potential continuation setups. HARSI works best in liquid markets and can be used as a standalone momentum indicator or combined with trend filters such as moving averages or VWAP for higher-probability trades. Key Features: Zero-centered RSI oscillator (RSI − 50) Heikin Ashi–style smoothing to reduce noise Clear momentum-based entry signals Optimized for lower timeframes (M1 scalping) Suitable for both Spot and Futures tradingPine Script®策略由RumeryWise0288提供5
TWR of Bill WilliamsThis indicator was taken from the book “Trading Chaos Pt 1” by Bill Williams. TWR contains 3 Moving Averages Ripple - MA with 5 bars length Wave - MA with 13 bars length Tide - MA with 34 bars length According to Bill Williams, you should take only a long position if the Ripple(5 bars length) is higher than Wave(13) and Tide(34). Also, you should take only a short position, if the Ripple (the fastest MA) is lower than Wave MA and Tide MA(slowest MA). This indicator is also used if you want to fill in the Profitunity Trading Partner table.Pine Script®指标由vildstein提供4
Manus - Ultimate Liquidity Points & SMC V3Ultimate Liquidity Points & SMC V3 is an advanced tool designed for traders following the Smart Money Concepts (SMC) and institutional liquidity analysis methodologies. The script automatically identifies price levels where large order volumes (stop losses and pending orders) are most likely to be found, allowing you to anticipate potential market reversals or accelerations.Pine Script®指标由carrarojacopo37提供139
BZNESMAN - High Win Rate CCI + PSAR + MA Strategy (70%+ Target)High Win Rate CCI + PSAR + MA Strategy (70%+ Target)Pine Script®策略由bznesman提供21
VSA Effort Result v1.0VSA Effort vs Result by StupidRich Detects volume-spread divergence: - "Er": High volume, narrow spread (absorption) - "eR": Low volume, wide spread (momentum) Features: • Clean text labels (customizable size) • Wide vertical lines matching candle range • Adjustable thresholds & volume SMA • Works on all timeframes/assets Perfect for spotting institutional absorption at key levels. if u wanna buy me a coffee, just dm @stupidrichboy on Telegram hope it helpPine Script®指标由dchu3112提供8
proof quant modelw model skibidi skibidi they told me to add more to the descriptionPine Script®策略由ribidiskizz提供已更新 13
Buy Sell Signal Pro New (iqraa888)Buy Sell Signal Pro New • by iqraa888 This indicator generates BUY/SELL signals based on EMA trend change and includes ATR-based risk management levels. Key Features Trend logic: Fast EMA vs Slow EMA (trend flip detection) Optional candle confirmation (bullish candle for BUY / bearish candle for SELL) Automatic SL/TP using ATR with configurable Risk:Reward Intermediate target levels (TP1, TP2, …) and final TP Right-side TP number boxes beside each target line Yellow diamond shows invalidation when an opposite signal appears while in a position Alerts: BUY, SELL, TP hit, SL hit, Invalidation Notes Designed for intraday timeframes (15/30/45 min). Not financial advice. Always backtest and manage risk.Pine Script®指标由iqraa888提供96
Mod_Capital EMAThis indicator is a clean EMA crossover tool in Mod_Capital style. It uses Fast EMA, Slow EMA, and an optional Trend EMA. Buy signal: Fast EMA crosses above Slow EMA Sell signal: Fast EMA crosses below Slow EMA No Take Profit or Stop Loss No text, minimal visuals Fully customizable EMA periods, colors, and line widths Designed for manual trading, trend confirmation, and clean chart analysis. Pine Script®指标由Suhrop_Trade提供10