Paradox CyclesParadox Cycles is a comprehensive market timing indicator that helps traders visualize key trading time-cycles throughout the trading day. Designed for intraday trading on timeframe 15 minutes and below.
Indicatori e strategie
Pro Stage (Weekly 30W) + Pro Trade Rating + RS/Volume + DebugA professional, multi-factor trend assessment tool built for swing traders and position traders who rely on Weinstein Stage Analysis, IBD-style relative strength, and institutional volume signals. Designed to give you a complete regime read + daily execution rating in one compact table.
Provides a multi-timeframe trend assessment for improved swing-trading decisions.
Identifies higher-timeframe trend conditions and presents a simplified classification.
Displays current trend state, prior trend state, and time in state.
Includes a proprietary Trade Quality Score designed for internal decision-making.
Score incorporates a combination of factors across multiple timeframes.
All calculations use a custom weighting model tailored for advanced users.
This indicator is not intended for reverse engineering or redistribution.
Sunit's ID / NR4 / NR7 / IDNR4 / IDNR7 + LVQ/LVY/LVEThis indicator identifies some of the most powerful price compression patterns used in short-term and swing trading, including:
Inside Day (ID)
NR4 (Narrowest Range in 4 Bars)
NR7 (Narrowest Range in 7 Bars)
IDNR4 (Inside Day + NR4)
IDNR7 (Inside Day + NR7)
Along with volume-based exhaustion signals:
LVQ — Lowest Volume in Quarter
LVY — Lowest Volume in Year
LVE — Lowest Volume Ever (dataset minimum)
These patterns originate from volatility breakout logic used by Toby Crabel, quantitative traders, prop firms, and systematic momentum strategies.
🎯 Why These Patterns Matter
Markets move in a cycle:
Volatility contraction → Volatility expansion → Trend continuation or reversal.
NR4, NR7, and Inside Days highlight tight consolidation, where market participants become indecisive.
Low-volume conditions (LVQ/LVY/LVE) often signal complete disinterest — usually right before volatility expansion.
When price compression AND volume contraction occur together, it often precedes:
✔ Breakouts
✔ Trend continuation
✔ Momentum bursts
✔ Opening Range Breakouts (ORB)
✔ Swing explosive moves
This script highlights those conditions visually and generates optional alerts.
🧠 Trade Application Ideas
This is NOT a buy/sell indicator — it's a setup detector.
Common use cases:
Day trading / Opening Range Breakouts (ORB)
Swing trading volatility expansion
Scanning for breakout candidates
Filtering for best risk-reward environments
Momentum burst and continuation setups
Mean reversion failure traps (failed breakouts)
Best timeframes: Daily, 4H, 1H
(Though intraday scalpers may also use it.)
🛠 Features Included
✔ Highlights ID, NR4, NR7, IDNR4, IDNR7 patterns
✔ Separate color coding for each pattern
✔ Labels plotted on chart
✔ Volume exhaustion tags (LVQ, LVY, LVE)
✔ Compression combo detection (price + volume)
✔ Fully configurable options
✔ Works on stocks, futures, crypto, forex
✔ Built in TradingView Alerts for every pattern
Ideal for scans, dashboards, and watchlist building.
🧭 Best Practice Workflow
Night Before / After Market Close:
Scan for IDNR7, IDNR4, NR7, NR4
Add any with LVQ / LVY / LVE to watchlist
The next day: wait for breakout levels or ORB structure
Next Day Execution Examples:
ORB breakout above Inside Day/NR high
Break of previous high/low with volume
Trend continuation in direction aligned with broader structure
⚠️ Notes / Disclaimer
This tool does not generate direct buy/sell signals.
It is a market structure scanner for discretionary or systematic setups.
Always combine with context: trend, liquidity, ATR, session behavior.
Squeeze Fire Arrows (on Price)This script plots when the squeeze fires. It was built by modifying using the Lazybear Squeeze Momentum code
ZENADX Flow DI+ DI-ZENADX Flow Di+ Di- — Modified ADX/DI Trend Structure
This indicator is a refined and brand-aligned enhancement of the classic ADX, +DI, and –DI system, inspired by the original open-source work of Gustavo Cardelle (Gu5).
The ZENADX Flow version focuses on clear trend interpretation, minimal visual noise, and stable performance for discretionary and algorithmic traders.
🔍 What This Indicator Does
ADX Line (White Base Tone)
Shows overall trend strength. Rising ADX = strengthening trend.
Color-Coded ADX Flow
Green shades → Bullish directional strength
Red shades → Bearish directional strength
White → Low ADX / ranging market
+DI and –DI Structure
Helps identify which side (buyers or sellers) currently controls momentum.
DI Cross (Yellow Signal Marker)
Highlights potential trend-shift zones where +DI and –DI intersect.
Trend Markers Above the Indicator
Bullish Trend
Bearish Trend
Strong Bullish
Strong Bearish
End Trend (trend exhaustion)
✨ Improvements in the ZENADX Flow Edition
New optimized defaults: DI Length = 8, Range Level = 25, Trend Level = 25
Cleaned color logic for clarity and emotional neutrality
Removed bar-coloring to keep price action clean
Alerts remain always available (no toggle required)
Fully rewritten into safe, stable Pine formatting to avoid syntax issues
📌 Recommended For
Trend-followers
Momentum traders
Algo developers using DI/ADX states
Reversal detection (via DI Cross)
🧭 ZENADX Flow Research
Developed and refined under the ZENADX Flow Research methodology, focusing on:
Simplicity
Psychological clarity
Consistency
Actionable trend structure
📝 License
This work extends the original script by Gustavo Cardelle (Gu5) and follows the same license:
Attribution–NonCommercial 4.0 International (CC BY-NC 4.0)
-------------------------------------------------------------------
ZENADX Flow Di+ Di- — ระบบวิเคราะห์เทรนด์ ADX/DI เวอร์ชันปรับปรุง
อินดิเคเตอร์ตัวนี้เป็นการพัฒนาและปรับปรุงจากโครงสร้างดั้งเดิมของ ADX / +DI / –DI โดยอ้างอิงจากงานต้นฉบับของ Gustavo Cardelle (Gu5)
เวอร์ชัน ZENADX Flow ถูกออกแบบให้ อ่านง่าย ชัดเจน และรองรับการใช้งานทั้งเทรดมืออาชีพและระบบอัตโนมัติ
🔍 สิ่งที่อินดิเคเตอร์นี้ช่วยให้เห็น
ADX สีขาวเป็นฐาน
แสดง “ความแข็งแรงของเทรนด์” (ไม่ใช่ทิศทาง)
โทนสีบอกพลังเทรนด์
เขียวเข้ม/อ่อน → เทรนด์ขาขึ้นกำลังแข็งแรง/อ่อน
แดงเข้ม/อ่อน → เทรนด์ขาลงกำลังแข็งแรง/อ่อน
ขาว → ช่วงตลาด Sideway / เทรนด์อ่อน
+DI / –DI
ช่วยบอกว่าซื้อหรือขายกำลังคุมตลาดอยู่
DI Cross (จุดสีเหลือง)
เป็นสัญญาณเปลี่ยนโมเมนตัมที่สำคัญ
สัญลักษณ์เหนืออินดิเคเตอร์
Bullish Trend
Bearish Trend
Strong Bullish
Strong Bearish
End Trend (จบเทรนด์)
✨ สิ่งที่ปรับปรุงในเวอร์ชัน ZENADX Flow
ค่าเริ่มต้นใหม่ที่เหมาะกับ Flow Trading: DI = 8, Range = 25, Trend = 25
ลบ bar-coloring เพื่อให้กราฟสะอาด
ระบบสีอ่านง่าย ไม่ปนกัน
Alerts ทำงานพร้อมใช้ทันที
จัด Code Format แบบ “Safe Format” เพื่อป้องกัน error ขณะแก้ไข
🧭 พัฒนาโดย ZENADX Flow Research
ยึดหลักสำคัญของ ZENADX คือ
ความเรียบง่าย
ความชัดเจนทางจิตวิทยา
ความสม่ำเสมอ
มุ่งเน้นเทรนด์ที่ “ไหล” ตามโครงสร้างตลาดจริง
📝 License
สคริปต์นี้พัฒนาต่อยอดจากอินดิเคเตอร์ต้นฉบับของ Gustavo Cardelle (Gu5)
และยังใช้สัญญาอนุญาตเดียวกัน:
Attribution–NonCommercial 4.0 International (CC BY-NC 4.0)
CCI/RSI + Smoothed Heiken Ashi Filter + SMA Exit (paired)Logic Summary (English Version)
Long Condition (Blue)
• CCI(34) > 0
• CCI(174) > 0
• RSI > 55
→ As long as all three conditions remain true, display blue continuously.
→ If any one of the conditions fails, the blue signal disappears.
⸻
Short Condition (Red)
• CCI(34) < 0
• CCI(174) < 0
• RSI < 45
→ As long as all three conditions remain true, display red continuously.
→ If any one of the conditions fails, the red signal disappears.
FAD Dashboard (Future vs Spot)Inspired by Wealthcon
This dashboard shows Real Time sentiment of Future Asset Difference with Future price of 3 Main Index & 10 Most significant Nifty 50 stocks . But the list is user customisable.
Fut Up + FAD Up (Deep Green)
Fut Down + FAD Up (Deep Blue)
Fut Up + FAD Down (Yellow)
Fut Down + FAD Down (Red)
Only for Educational purpose.
Stop Hunt / Liquidity Sweep Detector with Momentum Ratingdetects liquidity sweeps as they happen then gives you a rating on how much momentum the reversal has.
Session VWAPs [cryptalent]This indicator provides a more granular and timely analysis of market structure compared to traditional daily Volume Weighted Average Price (VWAP). It splits the 24-hour trading day into four distinct, customizable sessions (T1, T2, T3, T4), calculating an independent Session VWAP and Standard Deviation Bands for each segment.
🌟 Key Features and Functionality
1. Segmented VWAP Calculation
Purpose: To track the true Volume Weighted Average Price (Fair Value) specific to the participants and trading activities within different global market sessions (e.g., Asian, European, US sessions).
Design: By default, the 24 hours (based on UTC time) are divided into T1 (00:00-06:00), T2 (06:00-12:00), T3 (12:00-20:00), and T4 (20:00-00:00).
Mechanism: The VWAP calculation resets at the start of each designated session, offering a clearer, segment-specific view of market consensus and volume absorption.
2. Standard Deviation Bands
Calculation: Each Session VWAP line is accompanied by upper and lower standard deviation bands.
Control: The width of these bands is controlled by the user input "Band Multiplier" (default is 1.0, representing one standard deviation).
Application: These bands measure the Volume-Weighted Volatility and define the expected "normal" trading range for the current session.
- Price within the bands suggests consolidation or a normal auction process.
- Price breaking out of the bands indicates strong directional momentum or an extreme/overbought/oversold condition for that specific session.
3. High Customization (User Inputs)
Session Timing: All four session start and end times (in UTC) are customizable, allowing traders to align the indicator with specific market hours or individual trading strategies.
Price Source: The source price used for the VWAP calculation is selectable (default is close).
💡 Trading Applications
1. Fair Value Identification: The VWAP line serves as the "Fair Value" or "Volume-Weighted Consensus Cost" for the active session.
Price above VWAP: Buyers are in control during that session.
Price below VWAP: Sellers are in control during that session.
2. Dynamic Support & Resistance: Both the VWAP and the Standard Deviation Bands often act as reliable dynamic support and resistance levels.
3. Volatility Assessment: The width of the bands reflects the volume-weighted volatility of the current session. Narrow bands suggest range-bound trading; wide bands imply strong directional activity.
4. Trend Strength: Sustained price action outside of the standard deviation bands is a key measure of the strength and commitment behind a current trend.
MR GenericA clean Z-score oscillator that measures how far price has stretched from its rolling regression mean.
Green zones is oversold, red zones is overbought. Small circles flag normal reversals; tiny diamonds mark rare extreme levels (±2.8σ+). Works on any asset, any timeframe.
EMA 21/55/100/200EMA 21/55/100/200 – All-in-one Trend & Swing Trading Toolkit
A clean and practical four-EMA system designed for trend trading, swing trading, and short-to-mid-term market structure analysis.
This indicator includes full visualization and customization options:
1️⃣ Four EMAs with full control (21/55/100/200)
Enable or disable each EMA individually.
All periods, colors, and line widths are fully adjustable for different trading systems.
2️⃣ Strong Trend Background Highlight
When the EMAs form a classic perfect bullish or perfect bearish alignment,
the indicator automatically highlights the chart background to show strong trend conditions.
3️⃣ EMA Cross Signals
Visual markers for key EMA crossovers such as:
• 21 ↗ 55
• 55 ↗ 100
These help identify momentum shifts, trend acceleration, or potential reversals.
4️⃣ EMA Touch Alerts
Alerts trigger whenever price touches any EMA, useful for:
• Trend pullback entries
• Monitoring short-term trend changes
• Validating support and resistance levels
⸻
EMA 21/55/100/200 四合一指标,适用于 EMA 的趋势交易、波段交易与中短线判断。
本指标包含完整的可视化选项:
1️⃣ EMA 21/55/100/200 四线自由开关
可调整周期、颜色、粗细,适配趋势或波段系统。
2️⃣ 多头/空头强势排列背景提示
当 EMA 呈现经典“完美多头 / 空头排列”时,会自动通过背景着色提示市场结构进入强趋势。
3️⃣ EMA 交叉信号提示
支持 21↗55、55↗100 等关键均线交叉标记,便于观察趋势加速或反转。
4️⃣ EMA 触及警报提醒
当价格触及任意 EMA 时,可触发警报,用于:
• 趋势回调买点
• 关注短期趋势变化
• 观察支撑/压力有效性
BTC Dynamic Volatility Trend Backtested from 2017 to present, this strategy has delivered a staggering 7100%+ cumulative return. It doesn't just track the market; it dominates it. By capturing major trends and strictly limiting drawdowns, it has significantly outperformed the standard 'Buy & Hold' BTC strategy, proving its ability to generate massive alpha across multiple bull and bear cycles.
自 2017 年至今,本策略实现了惊人的 7100%+ 累计收益率。它不仅仅是跟随市场,更是超越了市场。通过精准捕捉主升浪并严格控制回撤,该策略在穿越多轮牛熊周期后,大幅度跑赢了比特币‘买入持有’(Buy & Hold)的基准收益,展现了极致的阿尔法(Alpha)捕捉能力。"
Introduction :Simplicity is the ultimate sophistication. This strategy is designed specifically for Bitcoin (BTC), capturing its unique characteristics: high volatility, frequent fakeouts, and massive trend persistence. It abandons complex indicators in favor of a robust logic: "Follow the Trend, Filter the Noise, Let Profits Run."
Core Logic
Trend Filter (Fibonacci EMA 144): We use the 144-period Exponential Moving Average as the baseline. Longs are only taken above this line, and shorts only below. This keeps you on the right side of the major trend.
Volatility Breakout (Donchian Channel 20): Entries are triggered only when price breaks the 20-day high (for longs) or low (for shorts). This confirms momentum and avoids trading in chop.
Dynamic Risk Management (ATR Chandelier Exit):
Instead of fixed % stops, we use Average True Range (ATR) to calculate stop losses.
The Ratchet Mechanism: The stop loss moves up with the price but never moves down (for longs). This locks in profits automatically as the trend develops and exits immediately when volatility turns against you.
Why Use This Strategy?
Zero Repainting: All signals are confirmed.
No Curve Fitting: Uses classic parameters (144, 20) that have worked for decades.
Mental Peace: The strategy handles the exit. You don't need to guess where to sell. It holds through minor corrections and exits only when the trend truly reverses.
Settings
Leverage %: Adjust your position size based on equity (default 100% = 1x).
Timeframe: Recommended for 4H charts.
中文版 (Chinese Version)
简介 :大道至简。本策略专为 比特币 (BTC) 设计,针对其高波动、假突破多但趋势爆发力强的特点,摒弃了复杂的过度拟合指标,回归交易本质:“顺大势,滤噪音,截断亏损,让利润奔跑”。
核心逻辑
趋势过滤器 (斐波那契 EMA 144): 使用 144 周期指数移动平均线作为多空分水岭。价格在均线之上只做多,之下只做空。这能有效过滤掉大部分震荡市的噪音。
波动率突破 (唐奇安通道 20): 只有当价格突破过去 20 根 K 线的最高价(做多)或最低价(做空)时才进场。这确保了我们只在趋势确立的瞬间入场。
动态风控 (ATR 吊灯止损):
拒绝固定点数止损,使用 ATR(平均真实波幅)根据市场热度动态计算安全距离。
棘轮机制: 止损线会跟随价格上涨而上移,但绝不会下移(做多时)。这实现了自动化的“利润锁定”,既能扛住正常的波动回调,又能在大势反转时果断离场。
策略优势
绝不重绘: 所有信号均为收盘确认或实时触价。
拒绝拟合: 使用经过数十年市场验证的经典参数组合。
心态管理: 策略全自动管理出场。你不需要纠结何时止盈,它会帮你吃到完整的鱼身,直到趋势结束。
使用建议
资金管理: 可通过参数调整仓位占比(默认 100% = 1倍杠杆)。
推荐周期: 建议在4小时 图表上运行效果最佳。
Gold Seasonal Long-Term StrategyBased on the rigid cycle of physical gold demand.
It capitalizes on the strong buying momentum driven by India's Diwali in November, the Western holiday season in December, and the Chinese New Year in January/February to execute a long-term hold.
T-DOW-FLOW: Final Edition
T-DOW-FLOW: Market Structure & Smart Pivot Zones
This indicator is a comprehensive technical analysis tool designed to visualize "Market Structure" based on Dow Theory and precise Supply/Demand Zones. It helps traders identify the true market trend and high-probability reaction levels by analyzing raw price action (ZigZag Pivots) rather than lagging indicators.
The script integrates three core systems:
ZigZag Trend Cloud: Visualizes the market bias (Uptrend/Downtrend).
Smart Pivot Zones (Type 1): Highlights the specific "Wick-to-Body" area of recent pivots.
Auto Density Channels (Type 2): Detects historical support/resistance clusters.
1. ZigZag Trend Identification
Logic: The script utilizes ta.highestbars and ta.lowestbars to detect Swing Highs and Swing Lows.
Trend Cloud:
If the structure creates a Higher High, the background cloud turns Green (Uptrend).
If the structure creates a Lower Low, the background cloud turns Red (Downtrend).
This provides an instant visual filter for "Trend Flow," encouraging traders to trade only in the direction of the dominant market structure.
2. SR Type 1: Smart Pivot Zones (Wick-to-Body)
Unlike standard indicators that draw thin lines at the absolute High/Low, this script focuses on the "Imbalance Zone".
It calculates the price range between the Pivot's Wick and the Pivot's Body (Open/Close) and fills this area with a colored zone.
Why? The area between the wick and body often represents the precise zone where institutional orders were filled, acting as a more reliable support/resistance level than a single price point.
3. SR Type 2: Auto Density Channels
This module scans a significant amount of historical data (default: 300 bars) to find clusters of pivot points.
Areas where multiple pivots align within a specific width are drawn as Channels. These represent strong, long-term psychological levels.
Trend Filter: Check the Trend Cloud color.
Green: Look for Long opportunities.
Red: Look for Short opportunities.
Entry Trigger: Wait for the price to retrace into a Smart Pivot Zone (Type 1) or an Auto Channel (Type 2).
Look for price rejection (wicks) at these zones in the direction of the Trend Cloud.
Structure Confirmation: Use the ZigZag lines and labels (HH, HL, etc.) to confirm that the market structure is still intact before entering.
ZigZag Settings: Adjust the sensitivity of the trend detection.
SR Type 1: Toggle the "Wick-to-Body" fill and choose between Wicks or Bodies as the primary source.
SR Type 2: Adjust the historical loopback period and channel width sensitivity.
This script is for educational and technical analysis purposes only. Past performance does not guarantee future results.
(以下、日本語説明 / Japanese Description)
このインジケーターは、「ダウ理論」に基づくトレンド判定と、精密な「需給ゾーン(Supply/Demand)」を可視化するための市場構造分析ツールです。 遅行指標を使わず、純粋なプライスアクション(ZigZagピボット)に基づいて、機関投資家の意識する価格帯を特定します。
1. ZigZagトレンドクラウド
ロジック: 一定期間の高値・安値を検出し、ダウ理論に基づいてトレンドを判定します。
視覚化: 高値切り上げ(上昇トレンド)なら「緑」、安値切り下げ(下落トレンド)なら「赤」の背景色を表示します。これにより、トレードすべき方向(順張り)を一目で判断できます。
2. SR Type 1: スマートピボットゾーン (Wick-to-Body)
単なる水平線ではなく、ローソク足の**「ヒゲ先」から「実体」までの価格差**をゾーンとして塗りつぶして表示します。
理由: ヒゲと実体の間の領域は、大口の注文が執行された(需給の不均衡が発生した)重要なエリアであることが多く、ピンポイントのラインよりも信頼性の高い反発ゾーンとして機能します。
3. SR Type 2: オート・デンシティ・チャネル
過去の長期間(デフォルト300本)のデータをスキャンし、ピボットが密集している価格帯を自動で「チャネル」として描画します。長期的に意識される強力なレジサポ帯です。
環境認識: 背景のトレンドクラウドの色に従い、目線を固定します。
エントリー: 価格がSRゾーン(Type 1)やチャネル(Type 2)に引きつけて、反発する動きを確認してエントリーします。
構造確認: ZigZagラインとラベル(HH/HLなど)を見て、トレンドが崩れていないことを確認します。
FVG Maxing - Fair Value Gaps, Equilibrium, and Candle Patterns
What this script does
This open-source indicator highlights 3-candle fair value gaps (FVGs) on the active chart timeframe, draws their midpoint ("equilibrium") line, tracks when each gap is mitigated, and optionally marks simple candle patterns (engulfing and doji) for confluence. It is intended as an educational tool to study how price interacts with imbalances.
3-candle bullish and bearish FVG zones drawn as forward-extending boxes.
Equilibrium line at 50% of each gap.
Different styling for mitigated vs unmitigated gaps.
Compact statistics panel showing how many gaps are currently active and filled.
Optional overlays for bullish/bearish engulfing patterns and doji candles.
1. FVG logic (3-candle gaps)
The script focuses on a strict 3-candle definition of a fair value gap:
Three consecutive candles with the same body direction.
The wick of candle 3 is separated from the wick of candle 1 (no overlap).
A bullish gap is created when price moves up fast enough to leave a gap between candle 1 and 3. A bearish gap is the mirror case to the downside.
In Pine, the core detection looks like this:
// Three candles with the same body direction
bull_seq = close > open and close > open and close > open
bear_seq = close < open and close < open and close < open
// Wick gap between candle 1 and candle 3
bull_gap = bull_seq and low > high
bear_gap = bear_seq and high < low
// Final FVG flags
is_bull_fvg = bull_gap
is_bear_fvg = bear_gap
For each detected FVG:
Bullish FVG range: from high up to low (gap below current price).
Bearish FVG range: from low down to high (gap above current price).
Each zone is stored in a custom FVGData structure so it can be updated when price later trades back inside it.
2. Equilibrium line (0.5 of the gap)
Every FVG box gets an optional equilibrium line plotted at the midpoint between its top and bottom:
eq_level = (top + bottom) / 2.0
right_index = extend_boxes ? bar_index + extend_length_bars : bar_index
bx = box.new(bar_index - 2, top, right_index, bottom)
eq_ln = line.new(bar_index - 2, eq_level, right_index, eq_level)
line.set_style(eq_ln, line.style_dashed)
line.set_color(eq_ln, eq_color)
You can use this line as a neutral “fair value” reference inside the zone, or as a simple way to think in terms of premium/discount within each gap.
3. Mitigation rules and styling
Each FVG stays active until price trades back into the gap:
Bullish FVG is considered mitigated when the low touches or moves below the top of the gap.
Bearish FVG is considered mitigated when the high touches or moves above the bottom of the gap.
When that happens, the script:
Marks the internal FVGData entry as mitigated.
Softens the box fill and border colors.
Optionally updates the label text from "BULL EQ / BEAR EQ" to "BULL FILLED / BEAR FILLED".
Can hide mitigated zones almost completely if you only want to see unfilled imbalances.
This allows you to distinguish between current areas of interest and zones that have already been traded through.
4. Candle pattern overlays (engulfing and doji)
For additional confluence, the script can mark simple candle patterns on top of the FVG view:
Bullish engulfing — current candle body fully wraps the previous bearish body and is larger in size.
Bearish engulfing — current candle body fully wraps the previous bullish body and is larger in size.
Doji — candles where the real body is small relative to the full range (high–low).
The detection is based on basic body and range geometry:
curr_body = math.abs(close - open)
prev_body = math.abs(close - open )
curr_range = high - low
body_ratio = curr_range > 0 ? curr_body / curr_range : 1.0
bull_engulfing = close > open and close < open and open <= close and close >= open and curr_body > prev_body
bear_engulfing = close < open and close > open and open >= close and close <= open and curr_body > prev_body
is_doji = curr_range > 0 and body_ratio <= doji_body_ratio
On the chart, they appear as:
Small triangle markers below bullish engulfing candles.
Small triangle markers above bearish engulfing candles.
Small circles above doji candles.
All three overlays are optional and can be turned on or off and recolored in the CANDLE PATTERNS group of inputs.
5. Inputs overview
The script organizes settings into clear groups:
DISPLAY SETTINGS : Show bullish/bearish FVGs, show/hide mitigated zones, box extension length, box border width, and maximum number of boxes.
EQUILIBRIUM : Toggle equilibrium lines, color, and line width.
LABELS : Enable labels, choose whether to label unmitigated and/or mitigated zones, and select label size.
BULLISH COLORS / BEARISH COLORS : Separate fill and border colors for bullish and bearish gaps.
MITIGATED STYLE : Opacity used when a gap is marked as mitigated.
STATISTICS : Toggle the on-chart FVG statistics panel.
CANDLE PATTERNS : Show engulfing patterns, show dojis, colors, and the body-to-range threshold that defines a doji.
6. Statistics panel
An optional table in the corner of the chart summarizes the current state of all tracked gaps:
Total number of FVGs still being tracked.
Number of bullish vs bearish FVGs.
Number of unfilled vs mitigated FVGs.
Simple fill rate: percentage of tracked FVGs that have been marked as mitigated.
This can help you study how a particular market tends to treat gaps over time.
7. How you might use it (examples)
These are usage ideas only, not recommendations:
Study how often your symbol mitigates gaps and where inside the zone price tends to react.
Use higher-timeframe context and then refine entries near the equilibrium line on your trading timeframe.
Combine FVG zones with basic candle patterns (engulfing/doji) as an extra visual anchor, if that fits your process.
Hope you enjoy, give your feedback in the comments!
- officialjackofalltrades
MeanReversion_tradeALERTOverview The Apex Reversal Predictor v2.5 is a specialized mean reversion strategy designed for scalping high-volatility assets like NQ (Nasdaq), ES (S&P 500), and Crypto. While most indicators chase breakouts, this system hunts for "Liquidity Sweeps"—moments where the market briefly breaks a key level to trap retail traders before snapping back to the true value (VWAP).
This is not just a signal indicator; it is a full Trade Manager that calculates your Entry, Stop Loss, and Take Profit levels automatically based on volatility (ATR).
The Logic: Why This Works Markets act like a rubber band. They can only stretch so far from their average price before snapping back. This script combines three layers of logic to identify these snap-back points:
The Stretch (Sigma Score): Measures how far price is from the VWAP relative to ATR. If the score > 2.0, the "rubber band" is overextended.
The Trap (Liquidity Sweep): Identifies Pivot Highs/Lows. It waits for price to break a pivot (luring in breakout traders) and then immediately reverse (trapping them).
The Exhaustion (RSI): Confirms that momentum is Overbought/Oversold to prevent trading against a strong trend.
Key Features
Dynamic Lines: Automatically draws Blue (Entry), Red (SL), and Green (TP) lines on the chart for active trades.
Smart Targets: Two modes for taking profit:
Mean Reversion: Targets the VWAP line (High Win Rate).
Fixed Ratio: Targets a specific Risk:Reward (e.g., 1:2).
Live Dashboard: Tracks Win Rate, Net Points, and the live "Stretch Score" in the bottom right corner.
Alert Ready: Formatted JSON alerts for easy integration with Discord or trading bots.
How & When to Use (User Guide)
1. Best Timeframes
5-Minute (5m): Best for NQ and volatile stocks (TSLA, NVDA). Filters out 1-minute noise but catches the intraday reversals.
15-Minute (15m): Best for Forex or slower-moving indices (ES).
2. The Setup Checklist Before taking a trade, look at the Dashboard in the bottom right:
Step 1: Check the "Stretch (Sigma)". Is it Orange or Red? This means price is extended and ripe for a reversal. If it's Green, the market is calm—be careful.
Step 2: Wait for the Signal.
"Apex BUY" (Green Label): Price swept a low and closed green.
"Apex SELL" (Red Label): Price swept a high and closed red.
Step 3: Execute. Enter at the close of the signal candle. Set your stop loss at the Red Line provided by the script.
3. Warning / When NOT to Use
Strong Trending Days: If the market is trending heavily (e.g., creating higher highs all day without looking back), do not fight the trend.
News Events: Avoid using this during CPI, FOMC, or NFP releases. The "rubber band" logic breaks during news because volatility expands indefinitely.
EMA Market Structure [BOSWaves]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// Join our channel for more free tools: t.me
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © BOSWaves
//@version=6
indicator("EMA Market Structure ", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=500)
// ============================================================================
// Inputs
// ============================================================================
// Ema settings
emaLength = input.int(50, "EMA Length", minval=1, tooltip="Period for the Exponential Moving Average calculation")
emaSource = input.source(close, "EMA Source", tooltip="Price source for EMA calculation (close, open, high, low, etc.)")
colorSmooth = input.int(3, "Color Smoothing", minval=1, group="EMA Style", tooltip="Smoothing period for the EMA color gradient transition")
showEmaGlow = input.bool(true, "EMA Glow Effect", group="EMA Style", tooltip="Display glowing halo effect around the EMA line for enhanced visibility")
// Structure settings
swingLength = input.int(5, "Swing Detection Length", minval=2, group="Structure", tooltip="Number of bars to the left and right to identify swing highs and lows")
swingCooloff = input.int(10, "Swing Marker Cooloff (Bars)", minval=1, group="Structure", tooltip="Minimum number of bars between consecutive swing point markers to reduce visual clutter")
showSwingLines = input.bool(true, "Show Structure Lines", group="Structure", tooltip="Display lines connecting swing highs and swing lows")
showSwingZones = input.bool(true, "Show Structure Zones", group="Structure", tooltip="Display shaded zones between consecutive swing points")
showBOS = input.bool(true, "Show Break of Structure", group="Structure", tooltip="Display BOS labels and stop loss levels when price breaks structure")
bosCooloff = input.int(15, "BOS Cooloff (Bars)", minval=5, maxval=50, group="Structure", tooltip="Minimum number of bars required between consecutive BOS signals to avoid signal spam")
slExtension = input.int(20, "SL Line Extension (Bars)", minval=5, maxval=100, group="Structure", tooltip="Number of bars to extend the stop loss line into the future for visibility")
slBuffer = input.float(0.1, "SL Buffer %", minval=0, maxval=2, step=0.05, group="Structure", tooltip="Additional buffer percentage to add to stop loss level for safety margin")
// Background settings
showBG = input.bool(true, "Show Trend Background", group="EMA Style", tooltip="Display background color based on EMA trend direction")
bgBullColor = input.color(color.new(#00ff88, 96), "Bullish BG", group="EMA Style", tooltip="Background color when EMA is in bullish trend")
bgBearColor = input.color(color.new(#ff3366, 96), "Bearish BG", group="EMA Style", tooltip="Background color when EMA is in bearish trend")
// ============================================================================
// Ema trend filter with gradient color
// ============================================================================
ema = ta.ema(emaSource, emaLength)
// Calculate EMA acceleration for gradient color
emaChange = ema - ema
emaAccel = ta.ema(emaChange, colorSmooth)
// Manual tanh function for normalization
tanh(x) =>
ex = math.exp(2 * x)
(ex - 1) / (ex + 1)
accelNorm = tanh(emaAccel / (ta.atr(14) * 0.01))
// Map normalized accel to hue (60 = green, 120 = yellow/red)
hueRaw = 60 + accelNorm * 60
hue = na(hueRaw ) ? hueRaw : (hueRaw + hueRaw ) / 2
sat = 1.0
val = 1.0
// HSV to RGB conversion
hsv_to_rgb(h, s, v) =>
c = v * s
x = c * (1 - math.abs((h / 60) % 2 - 1))
m = v - c
r = 0.0
g = 0.0
b = 0.0
if (h < 60)
r := c
g := x
b := 0
else if (h < 120)
r := x
g := c
b := 0
else if (h < 180)
r := 0
g := c
b := x
else if (h < 240)
r := 0
g := x
b := c
else if (h < 300)
r := x
g := 0
b := c
else
r := c
g := 0
b := x
color.rgb(int((r + m) * 255), int((g + m) * 255), int((b + m) * 255))
emaColor = hsv_to_rgb(hue, sat, val)
emaTrend = ema > ema ? 1 : ema < ema ? -1 : 0
// EMA with enhanced glow effect using fills
glowOffset = ta.atr(14) * 0.25
emaGlow8 = plot(showEmaGlow ? ema + glowOffset * 8 : na, "EMA Glow 8", color.new(emaColor, 100), 1, display=display.none)
emaGlow7 = plot(showEmaGlow ? ema + glowOffset * 7 : na, "EMA Glow 7", color.new(emaColor, 100), 1, display=display.none)
emaGlow6 = plot(showEmaGlow ? ema + glowOffset * 6 : na, "EMA Glow 6", color.new(emaColor, 100), 1, display=display.none)
emaGlow5 = plot(showEmaGlow ? ema + glowOffset * 5 : na, "EMA Glow 5", color.new(emaColor, 100), 1, display=display.none)
emaGlow4 = plot(showEmaGlow ? ema + glowOffset * 4 : na, "EMA Glow 4", color.new(emaColor, 100), 1, display=display.none)
emaGlow3 = plot(showEmaGlow ? ema + glowOffset * 3 : na, "EMA Glow 3", color.new(emaColor, 100), 1, display=display.none)
emaGlow2 = plot(showEmaGlow ? ema + glowOffset * 2 : na, "EMA Glow 2", color.new(emaColor, 100), 1, display=display.none)
emaGlow1 = plot(showEmaGlow ? ema + glowOffset * 1 : na, "EMA Glow 1", color.new(emaColor, 100), 1, display=display.none)
emaCore = plot(ema, "EMA Core", emaColor, 3)
emaGlow1b = plot(showEmaGlow ? ema - glowOffset * 1 : na, "EMA Glow 1b", color.new(emaColor, 100), 1, display=display.none)
emaGlow2b = plot(showEmaGlow ? ema - glowOffset * 2 : na, "EMA Glow 2b", color.new(emaColor, 100), 1, display=display.none)
emaGlow3b = plot(showEmaGlow ? ema - glowOffset * 3 : na, "EMA Glow 3b", color.new(emaColor, 100), 1, display=display.none)
emaGlow4b = plot(showEmaGlow ? ema - glowOffset * 4 : na, "EMA Glow 4b", color.new(emaColor, 100), 1, display=display.none)
emaGlow5b = plot(showEmaGlow ? ema - glowOffset * 5 : na, "EMA Glow 5b", color.new(emaColor, 100), 1, display=display.none)
emaGlow6b = plot(showEmaGlow ? ema - glowOffset * 6 : na, "EMA Glow 6b", color.new(emaColor, 100), 1, display=display.none)
emaGlow7b = plot(showEmaGlow ? ema - glowOffset * 7 : na, "EMA Glow 7b", color.new(emaColor, 100), 1, display=display.none)
emaGlow8b = plot(showEmaGlow ? ema - glowOffset * 8 : na, "EMA Glow 8b", color.new(emaColor, 100), 1, display=display.none)
// Create glow layers with fills (from outermost to innermost)
fill(emaGlow8, emaGlow7, showEmaGlow ? color.new(emaColor, 97) : na)
fill(emaGlow7, emaGlow6, showEmaGlow ? color.new(emaColor, 95) : na)
fill(emaGlow6, emaGlow5, showEmaGlow ? color.new(emaColor, 93) : na)
fill(emaGlow5, emaGlow4, showEmaGlow ? color.new(emaColor, 90) : na)
fill(emaGlow4, emaGlow3, showEmaGlow ? color.new(emaColor, 87) : na)
fill(emaGlow3, emaGlow2, showEmaGlow ? color.new(emaColor, 83) : na)
fill(emaGlow2, emaGlow1, showEmaGlow ? color.new(emaColor, 78) : na)
fill(emaGlow1, emaCore, showEmaGlow ? color.new(emaColor, 70) : na)
fill(emaCore, emaGlow1b, showEmaGlow ? color.new(emaColor, 70) : na)
fill(emaGlow1b, emaGlow2b, showEmaGlow ? color.new(emaColor, 78) : na)
fill(emaGlow2b, emaGlow3b, showEmaGlow ? color.new(emaColor, 83) : na)
fill(emaGlow3b, emaGlow4b, showEmaGlow ? color.new(emaColor, 87) : na)
fill(emaGlow4b, emaGlow5b, showEmaGlow ? color.new(emaColor, 90) : na)
fill(emaGlow5b, emaGlow6b, showEmaGlow ? color.new(emaColor, 93) : na)
fill(emaGlow6b, emaGlow7b, showEmaGlow ? color.new(emaColor, 95) : na)
fill(emaGlow7b, emaGlow8b, showEmaGlow ? color.new(emaColor, 97) : na)
// ============================================================================
// Swing high/low detection
// ============================================================================
// Swing High/Low Detection
swingHigh = ta.pivothigh(high, swingLength, swingLength)
swingLow = ta.pivotlow(low, swingLength, swingLength)
// Cooloff tracking
var int lastSwingHighPlot = na
var int lastSwingLowPlot = na
// Check if cooloff period has passed
canPlotHigh = na(lastSwingHighPlot) or (bar_index - lastSwingHighPlot) >= swingCooloff
canPlotLow = na(lastSwingLowPlot) or (bar_index - lastSwingLowPlot) >= swingCooloff
// Store swing points
var float lastSwingHigh = na
var int lastSwingHighBar = na
var float lastSwingLow = na
var int lastSwingLowBar = na
// Track previous swing for BOS detection
var float prevSwingHigh = na
var float prevSwingLow = na
// Update swing highs with cooloff
if not na(swingHigh) and canPlotHigh
prevSwingHigh := lastSwingHigh
lastSwingHigh := swingHigh
lastSwingHighBar := bar_index - swingLength
lastSwingHighPlot := bar_index
// Update swing lows with cooloff
if not na(swingLow) and canPlotLow
prevSwingLow := lastSwingLow
lastSwingLow := swingLow
lastSwingLowBar := bar_index - swingLength
lastSwingLowPlot := bar_index
// ============================================================================
// Structure lines & zones
// ============================================================================
var line swingHighLine = na
var line swingLowLine = na
var box swingHighZone = na
var box swingLowZone = na
if showSwingLines
// Draw line connecting swing highs with zones
if not na(swingHigh) and canPlotHigh and not na(prevSwingHigh)
if not na(lastSwingHighBar)
line.delete(swingHighLine)
swingHighLine := line.new(lastSwingHighBar, lastSwingHigh, bar_index - swingLength, swingHigh, color=color.new(#ff3366, 0), width=2, style=line.style_solid)
// Create resistance zone
if showSwingZones
box.delete(swingHighZone)
zoneTop = math.max(lastSwingHigh, swingHigh)
zoneBottom = math.min(lastSwingHigh, swingHigh)
swingHighZone := box.new(lastSwingHighBar, zoneTop, bar_index - swingLength, zoneBottom, border_color=color.new(#ff3366, 80), bgcolor=color.new(#ff3366, 92))
// Draw line connecting swing lows with zones
if not na(swingLow) and canPlotLow and not na(prevSwingLow)
if not na(lastSwingLowBar)
line.delete(swingLowLine)
swingLowLine := line.new(lastSwingLowBar, lastSwingLow, bar_index - swingLength, swingLow, color=color.new(#00ff88, 0), width=2, style=line.style_solid)
// Create support zone
if showSwingZones
box.delete(swingLowZone)
zoneTop = math.max(lastSwingLow, swingLow)
zoneBottom = math.min(lastSwingLow, swingLow)
swingLowZone := box.new(lastSwingLowBar, zoneTop, bar_index - swingLength, zoneBottom, border_color=color.new(#00ff88, 80), bgcolor=color.new(#00ff88, 92))
// ============================================================================
// Break of structure (bos)
// ============================================================================
// Track last BOS bar for cooloff
var int lastBullishBOS = na
var int lastBearishBOS = na
// Check if cooloff period has passed
canPlotBullishBOS = na(lastBullishBOS) or (bar_index - lastBullishBOS) >= bosCooloff
canPlotBearishBOS = na(lastBearishBOS) or (bar_index - lastBearishBOS) >= bosCooloff
// Bullish BOS: Price breaks above previous swing high while EMA is bullish
bullishBOS = showBOS and canPlotBullishBOS and emaTrend == 1 and not na(prevSwingHigh) and close > prevSwingHigh and close <= prevSwingHigh
// Bearish BOS: Price breaks below previous swing low while EMA is bearish
bearishBOS = showBOS and canPlotBearishBOS and emaTrend == -1 and not na(prevSwingLow) and close < prevSwingLow and close >= prevSwingLow
// Update last BOS bars
if bullishBOS
lastBullishBOS := bar_index
if bearishBOS
lastBearishBOS := bar_index
// Plot BOS with enhanced visuals and SL at the candle wick
if bullishBOS
// Calculate SL at the low of the current candle (bottom of wick) with buffer
slLevel = low * (1 - slBuffer/100)
// BOS Label with shadow effect
label.new(bar_index, low, "BOS", style=label.style_label_up, color=color.new(#00ff88, 0), textcolor=color.black, size=size.normal, tooltip="Bullish Break of Structure SL: " + str.tostring(slLevel))
// Main SL line at candle low
line.new(bar_index, slLevel, bar_index + slExtension, slLevel, color=color.new(#00ff88, 0), width=2, style=line.style_dashed, extend=extend.none)
// SL zone box for visual emphasis
box.new(bar_index, slLevel + (slLevel * 0.002), bar_index + slExtension, slLevel - (slLevel * 0.002), border_color=color.new(#00ff88, 60), bgcolor=color.new(#00ff88, 85))
// S/R label
label.new(bar_index + slExtension, slLevel, "S/R", style=label.style_label_left, color=color.new(#00ff88, 0), textcolor=color.black, size=size.tiny)
if bearishBOS
// Calculate SL at the high of the current candle (top of wick) with buffer
slLevel = high * (1 + slBuffer/100)
// BOS Label with shadow effect
label.new(bar_index, high, "BOS", style=label.style_label_down, color=color.new(#ff3366, 0), textcolor=color.white, size=size.normal, tooltip="Bearish Break of Structure SL: " + str.tostring(slLevel))
// Main SL line at candle high
line.new(bar_index, slLevel, bar_index + slExtension, slLevel, color=color.new(#ff3366, 0), width=2, style=line.style_dashed, extend=extend.none)
// SL zone box for visual emphasis
box.new(bar_index, slLevel + (slLevel * 0.002), bar_index + slExtension, slLevel - (slLevel * 0.002), border_color=color.new(#ff3366, 60), bgcolor=color.new(#ff3366, 85))
// S/R label
label.new(bar_index + slExtension, slLevel, "S/R", style=label.style_label_left, color=color.new(#ff3366, 0), textcolor=color.white, size=size.tiny)
// ============================================================================
// Dynamic background zones
// ============================================================================
bgcolor(showBG and emaTrend == 1 ? bgBullColor : showBG and emaTrend == -1 ? bgBearColor : na)
// ============================================================================
// Alerts
// ============================================================================
alertcondition(bullishBOS, "Bullish BOS", "Bullish Break of Structure detected!")
alertcondition(bearishBOS, "Bearish BOS", "Bearish Break of Structure detected!")
alertcondition(emaTrend == 1 and emaTrend != 1, "EMA Bullish", "EMA turned bullish")
alertcondition(emaTrend == -1 and emaTrend != -1, "EMA Bearish", "EMA turned bearish")
// ╔════════════════════════════════╗
// ║ Download at ║
// ╚════════════════════════════════╝
// ███████╗██╗███╗ ███╗██████╗ ██╗ ███████╗
// ██╔════╝██║████╗ ████║██╔══██╗██║ ██╔════╝
// ███████╗██║██╔████╔██║██████╔╝██║ █████╗
// ╚════██║██║██║╚██╔╝██║██╔═══╝ ██║ ██╔══╝
// ███████║██║██║ ╚═╝ ██║██║ ███████╗███████╗
// ╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝
// ███████╗ ██████╗ ██████╗ ███████╗██╗ ██╗
// ██╔════╝██╔═══██╗██╔══██╗██╔════╝╚██╗██╔╝
// █████╗ ██║ ██║██████╔╝█████╗ ╚███╔╝
// ██╔══╝ ██║ ██║██╔══██╗██╔══╝ ██╔██╗
// ██║ ╚██████╔╝██║ ██║███████╗██╔╝ ██╗
// ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
// ████████╗ ██████╗ ██████╗ ██╗ ███████╗
// ╚══██╔══╝██╔═══██╗██╔═══██╗██║ ██╔════╝
// ██║ ██║ ██║██║ ██║██║ ███████╗
// ██║ ██║ ██║██║ ██║██║ ╚════██║
// ██║ ╚██████╔╝╚██████╔╝███████╗███████║
// ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝
// ==========================================================================================
Breaker Blocks [TakingProphets]Breaker Blocks
Smart Money “breaker” zones automatically mapped on your chart.
This tool is designed for traders who use ICT / Smart Money concepts and want a clean, automated way to see breaker blocks form and evolve in real time.
-----------------------------------------------------------------------------------------------
🔍 What this indicator does
The script automatically detects potential bullish and bearish breaker blocks after a market structure shift, then draws and maintains those zones on your chart:
-Plots bullish breaker blocks as green shaded zones.
-Plots bearish breaker blocks as red shaded zones.
-Optionally shows the 50% (midline) of each breaker for refinement.
-Keeps a rolling list of the most recent breakers and removes older ones to keep your chart clean.
-Optionally hides breakers once price closes through them (invalidation), so only active zones remain.
It’s built to work on any symbol and any timeframe. Lower timeframes will naturally generate more breakers; higher timeframes will show fewer, more significant zones.
Important: This script does not open, manage, or close trades for you. It only visualizes price zones that may be relevant to your own strategy and analysis.
-----------------------------------------------------------------------------------------------
🧠 Core logic (high level)
Under the hood, the indicator:
Uses an internal zigzag swing structure to track major pivot highs and lows.
Watches for a market structure shift (MSS):
Bullish MSS: price closes above a prior swing high.
Bearish MSS: price closes below a prior swing low.
Once an MSS is confirmed, it:
Locates the relevant impulse candle(s) that price traded through.
Defines the breaker block using the high/low (or body vs. wick, based on internal settings).
Draws a breaker box from that origin forward in time.
Each breaker is stored as an internal object with:
Direction (bullish or bearish)
Top and bottom prices
Visual boxes and an optional midline
On every new candle, all active breakers are updated:
Extended forward as new bars print.
Optionally invalidated and deleted if price closes back through the breaker in the opposite direction.
This gives you a dynamic map of which breaker blocks are still “respected” by price and which have failed.
-----------------------------------------------------------------------------------------------
⚙️ Key Inputs & Settings
All user-facing options are grouped under “Breaker Blocks” for a clean UI.
-Display Breaker Block
Toggle the visualization on/off without removing detection logic.
-Bullish Color / Bearish Color
Choose the fill color for bullish and bearish breaker zones.
-Show 50% Line
Plots a dashed line at the mid-point of each breaker block.
Helpful if you use the 50% level as a refinement or entry anchor.
-Max Visible
Limits how many of the most recent breaker blocks stay on the chart.
Older breakers are deleted once this limit is exceeded (keeps things clean and lightweight).
-Hide When Invalidated
If enabled:
Bullish breaker is hidden once price closes below its low.
Bearish breaker is hidden once price closes above its high.
If disabled, breakers remain visible even after those closes (for study / backtesting purposes).
These options allow you to run the tool in either a minimal, current-context only mode, or a more historical, educational mode.
-----------------------------------------------------------------------------------------------
🧭 How traders might use it
Some common ways traders may incorporate breaker blocks into their own plans:
As context zones around which to look for entries using their personal triggers.
As potential support/resistance areas after a shift in structure.
To visually separate active vs. invalidated zones instead of manually redrawing them.
In confluence with other SMC tools (FVGs, liquidity pools, PD arrays, etc.) and higher-timeframe bias.
This indicator is intended as a visual aid and works best when combined with a complete trading plan, risk management rules, and your own discretion.
-----------------------------------------------------------------------------------------------
⚠️ Disclaimer
This indicator does not guarantee profits or specific outcomes.
It is provided for educational and informational purposes only.
Past price behavior around breaker blocks does not imply future results.
Always test any tool on a demo account or in a simulated environment before using it with real capital.
Trading involves risk, and you are solely responsible for your own decisions.
EMMTECH Doji Pullback StrategyThis is a trend-following pullback trading strategy for TradingView that identifies high-probability entry points when price temporarily moves against the main trend, then shows signs of reversal.
Core Concept
The indicator waits for the market to establish a trend (using the 100 EMA as a reference), then looks for a brief counter-trend pullback followed by a doji candle (indecision candle), which signals potential trend resumption.
Key Components
1. Trend Filter - 100 EMA
The orange line on your chart representing the 100-period Exponential Moving Average
Price above EMA = uptrend (look for buy setups)
Price below EMA = downtrend (look for sell setups)
2. Pullback Detection
The strategy counts consecutive candles moving against the trend:
In an uptrend: waits for 2+ consecutive red (bearish) candles
In a downtrend: waits for 2+ consecutive green (bullish) candles
3. Clean Candle Filter (Optional)
Filters out candles with large wicks to ensure strong directional moves:
Measures wick size relative to body
Default: wicks can't exceed 30% of body size
Ensures the pullback candles show genuine selling/buying pressure
4. Doji Confirmation
After the pullback, the strategy looks for a doji candle:
Small body relative to total range (default: ≤10% of candle range)
Represents indecision and potential exhaustion of the pullback
Often signals the trend is about to resume
Trade Signals
BUY Signal (Green triangle below bar):
Price is above 100 EMA ✓
2+ consecutive clean red candles ✓
Current candle is a doji ✓
SELL Signal (Red triangle above bar):
Price is below 100 EMA ✓
2+ consecutive clean green candles ✓
Current candle is a doji ✓
Risk Management Visualization
When a signal triggers, the indicator automatically draws:
Red line: Stop loss (placed at the low of the setup for buys, high for sells)
Green line: Target (1:1 risk-reward ratio) (Preferably set SL at recent low)
Teal box: Visual representation of the trade's risk-reward zone
Customizable Parameters
EMA Length: Default 100, adjust for faster/slower trend identification
Consecutive Candles: Minimum pullback candles required (default 2)
Wick Filter: Toggle clean candle requirement on/off
Wick Threshold: How much wick is acceptable (0.3 = 30%)
Doji Filter: Toggle doji requirement on/off
Doji Threshold: How small the body must be (0.1 = 10% of range)
Trading Logic
This strategy aims to catch the "sweet spot" where:
The main trend is still intact (EMA filter)
Weak hands have been shaken out (pullback)
Momentum is exhausting (doji appears)
Strong hands are likely to resume the trend
The background color (light green/red) helps you quickly identify which side of the trend you're on.
SMC + OB + FVG + Reversal + UT Bot + Hull Suite – by Fatich.id🎯 7 INTEGRATED SYSTEMS:
✓ Mxwll Suite (SMC + Auto Fibs + CHoCH/BOS)
✓ UT Bot (Trend Signals + Label Management)
✓ Hull Suite (Momentum Analysis)
✓ LuxAlgo FVG (Fair Value Gaps)
✓ LuxAlgo Order Blocks (Volume Pivots) ⭐ NEW
✓ Three Bar Reversal (Pattern Recognition)
✓ Reversal Signals (Momentum Count Style)
⚡ KEY FEATURES:
• Smart Money Structure (CHoCH/BOS/I-CHoCH/I-BoS)
• Auto Fibonacci (10 customizable levels)
• Order Block Detection (Auto mitigation)
• Fair Value Gap Tracking
• Session Highlights (NY/London/Asia)
• Volume Activity Dashboard
• Multi-Timeframe Support
• Clean Label Management
🎨 PERFECT FOR:
• Smart Money Concept Traders
• Order Flow & Liquidity Analysis
• Support/Resistance Trading
• Trend Following & Reversals
• Multi-Timeframe Analysis
💡 RECOMMENDED SETTINGS:
Clean Charts: OB Count 3, UT Signals 3, FVG 5
Detailed Analysis: OB Count 5-10, All Signals
Scalping: Low sensitivity, Hull 20-30
Swing Trading: High sensitivity, Hull 55-100
VIX/VXV Ratio (TitsNany)This script plots the VXV/VIX ratio, which compares medium-term volatility (90-day fear) to short-term volatility (30-day fear). When the ratio rises above key levels like 1.16 or 1.24, it signals that traders expect future stress, often preceding market pullbacks. When the ratio falls toward or below 1.0, short-term fear is spiking, which typically occurs during active selloffs or volatility events. In short, elevated readings warn of potential market drops ahead, while sharp declines in the ratio reflect panic already hitting the market.
EMA 14/50 Crossover Strategy + Candle Source OptionsSimple fast and slow ema crossover strategy. you can select input sources for ema. also feel free to use it with other strategies






















