RSI 14 Cross Up SMA(14) With Volume FiltersUpgrade previous script to show crossover volume strength
Indicatori e strategie
ShooterViz Lazy Trader EMA SystemShooterViz Lazy Trader EMA System - Complete User Guide
What This Script Does
This is a position scaling indicator that tells you exactly when to enter, add to, and exit trades using a simplified 5-EMA system. It removes the guesswork and decision fatigue from trading by giving you clear visual signals.
The Core Concept
3 entry signals that build your position from 20% → 50% → 100%
2 exit signals that scale you out at 50% → 50% (complete exit)
1 higher timeframe filter that keeps you on the right side of the trend
No Fibonacci calculations, no RSI divergence, no multi-indicator confusion. Just EMAs and price action.
What You'll See On Your Chart
1. Colored EMA Lines
Blue Lines (Entry Zone):
3 EMA (lightest blue) - Early reversal detector
5 EMA (darker blue) - Confirmation line
Green Lines (Add Zone):
21 EMA (bright green) - First add location
34 EMA (lighter green) - Final add location
Red Lines (Exit Zone):
89 EMA (lighter red) - First exit trigger
144 EMA (darker red) - Final exit trigger
Orange Lines (Hyper Frame - optional):
Hyper 21 EMA (from higher timeframe) - Trend direction
Hyper 34 EMA (from higher timeframe) - Bias confirmation
2. Triangle Signals
Green Triangles (Below Price) = BUY/ADD:
Lime triangle with "20%" = Entry 1: Price reclaimed 3→5 EMA (starter position)
Green triangle with "30%" = Entry 2: Price bounced off 21 EMA (first add)
Teal triangle with "50%" = Entry 3: Price broke out from 34 EMA compression (final add)
Red Triangles (Above Price) = SELL:
Orange triangle with "50% OFF" = Exit 1: Price broke below 89 EMA (take half off)
Red triangle with "EXIT ALL" = Exit 2: Price broke below 144 EMA (close remaining position)
3. Background Color (Trend Bias)
Light green background = Hyper frame EMAs trending up (bias LONG)
Light red background = Hyper frame EMAs trending down (bias SHORT)
Gray background = Neutral/choppy (be cautious)
4. Info Table (Top Right Corner)
A live status dashboard showing:
Which entry signals are currently active (✓ or —)
Which exit signals are currently active (⚠ or ⛔)
Current hyper frame bias (🟢 LONG / 🔴 SHORT / ⚪ NEUTRAL)
Which timeframe you're using for hyper frame filtering
How to Install and Set Up
Step 1: Add the Script to TradingView
Open TradingView
Click "Pine Editor" at the bottom of the screen
Copy the entire script code
Paste it into the Pine Editor
Click "Add to Chart"
Step 2: Configure Your Settings
Click the gear icon ⚙️ next to "LazyEMA" in your indicators list.
Critical Settings to Configure:
Hyper Frame Selection (Most Important!)
Location: "Hyper Frame (Pick ONE)" section
Setting: "Timeframe"
What to choose:
Trading 15min or 1H charts? → Use "240" (4-hour)
Trading 4H or Daily charts? → Use "D" (Daily)
Trading Daily or Weekly charts? → Use "W" (Weekly)
Why this matters: This filter keeps you aligned with the bigger trend. Only take longs when this timeframe is green, shorts when it's red.
MA Type (Optional, default is fine)
Location: "MA Config" section
Default: EMA (recommended)
Options: EMA, SMA, WMA, HMA, RMA, VWMA
Most traders should stick with EMA
Visual Toggles (Customize your view)
Entry Zone: Turn individual EMAs on/off (3, 5, 21, 34)
Exit Zone: Turn individual EMAs on/off (89, 144)
Hyper Frame: Toggle the higher timeframe EMAs on/off
Step 3: Clean Up Your Chart
Turn OFF these if visible:
Volume bars (they clutter the view)
Any other indicators you have loaded
Grid lines (optional, but cleaner)
Keep ONLY:
Price candles
Your ShooterViz Lazy Trader EMA System
Maybe support/resistance levels if you manually draw them
How to Trade With This Script
The Basic Workflow
Before the Market Opens:
Check the background color and info table bias
Green background? Look for LONG setups only
Red background? Look for SHORT setups only
Gray background? Stay flat or trade small
During the Trading Session:
LONGS (When hyper frame is bullish):
Wait for Entry 1 signal:
Lime triangle appears with "20%"
Price has reclaimed the 5 EMA after dipping to 3 EMA
Action: Enter 20% of your intended position
Stop loss: Place below the 5 EMA or recent swing low
Wait for Entry 2 signal:
Green triangle appears with "30%"
Price pulled back to 21 EMA and bounced
Action: Add 30% more (you're now at 50% total)
Move stop: Trail it up to below 21 EMA
Wait for Entry 3 signal:
Teal triangle appears with "50%"
Price compressed at 34 EMA and broke out
Action: Add final 50% (you're now 100% loaded)
Move stop: Trail it up to below 34 EMA
Wait for Exit 1 signal:
Orange triangle appears with "50% OFF"
Price broke below 89 EMA
Action: Exit 50% of your position immediately
Move stop on rest: Trail to 89 EMA or lock in profits
Wait for Exit 2 signal:
Red triangle appears with "EXIT ALL"
Price broke below 144 EMA
Action: Exit remaining 50% (you're now flat)
Or: Stop gets hit at 89 EMA (same result)
SHORTS (When hyper frame is bearish):
Same process, but inverted
Triangles appear above price instead of below
Look for breakdowns below EMAs instead of bounces off them
Exit when price reclaims 89 and 144 EMAs
Real-World Example Walkthrough
Setup: Trading ES (S&P 500 Futures) on 1H Chart
Chart Configuration:
Timeframe: 1 Hour
Hyper Frame: 240 (4-hour)
Ticker: ES
Pre-Market Check:
Background is light green
Info table shows "🟢 LONG" for Hyper Bias
Decision: Only look for long entries today
9:30 AM - Market Opens
Price dips and touches 3 EMA
Watch for: Reclaim of 5 EMA
9:45 AM - Entry 1 Triggers
Lime triangle appears below bar
Price closed above 5 EMA at $4,550
Action taken:
Enter long 20% position (2 contracts if targeting 10 total)
Stop loss at $4,545 (below 5 EMA)
Risk: $10 per contract × 2 = $20 risk
10:30 AM - Entry 2 Triggers
Price rallied to $4,565, pulls back
Green triangle appears at 21 EMA ($4,555)
Action taken:
Add 30% (3 more contracts, now have 5 total)
Move stop to $4,550 (below 21 EMA)
Current P/L: +$25 ($5 gain on original 2 contracts, break-even on new 3)
11:15 AM - Entry 3 Triggers
Price consolidates at 34 EMA around $4,560
Teal triangle appears as price breaks to $4,568
Action taken:
Add final 50% (5 more contracts, now have 10 total)
Move stop to $4,555 (below 34 EMA)
Current P/L: +$70
1:00 PM - Price Extends
Price rallies to $4,595 (on track)
89 EMA is at $4,575
No action yet, let it run
2:15 PM - Exit 1 Triggers
Price pulls back from $4,600
Orange triangle appears as price breaks below 89 EMA at $4,580
Action taken:
Exit 50% (5 contracts closed at $4,580)
Keep 5 contracts with stop at 89 EMA ($4,575)
Banked: +$150 average gain on closed 5 contracts
2:45 PM - Exit 2 Triggers
Price continues down
Red triangle appears as price breaks 144 EMA at $4,570
Action taken:
Exit remaining 5 contracts at $4,570
Banked: +$100 on remaining 5 contracts
Final Results:
Total gain: $250 on the trade
Initial risk: $50 (if stopped out at Entry 1)
Risk/Reward: 5:1
Time in trade: ~5 hours
Common Questions
"What if I miss Entry 1? Can I still take Entry 2?"
Yes! Each entry is independent. If you miss the 3→5 reclaim, wait for the 21 EMA bounce. You'll start with a 30% position instead of 20%, but that's fine.
Rule: Never chase. Wait for the next EMA setup.
"What if multiple entry signals trigger at the same bar?"
Rare, but possible. If you see both Entry 1 and Entry 2 trigger together:
Take Entry 1 first (20%)
If the next bar confirms Entry 2 is still valid, add 30%
When in doubt, scale in gradually
"The hyper frame is green but I'm seeing short signals?"
Don't take them. The hyper frame is your bias filter. If it says "go long," ignore short setups. They're usually lower probability and will get stopped out.
"Can I use this for swing trading overnight?"
Absolutely. Just switch your hyper frame:
If you're on Daily charts, use Weekly hyper frame
If you're on 4H charts, use Daily hyper frame
Adjust position sizes for overnight risk
"What if the signal appears right at market close?"
Don't chase it. Wait for the next bar (next day) to confirm. Signals that appear in the last 5 minutes are often noise.
"How do I set up alerts?"
Right-click on the chart
Select "Add Alert"
Choose "LazyEMA" from the condition dropdown
Select which signal you want alerts for:
Entry 1: 3→5 Reclaim
Entry 2: 21 EMA Add
Entry 3: 34 EMA Breakout
Exit 1: 89 EMA Break
Exit 2: 144 EMA Break
Click "Create"
Pro tip: Set up all 5 alerts so you never miss a signal.
Position Sizing Guide see
swingtradenotes.substack.com
Critical Rule: Know your total risk BEFORE you take Entry 1. Don't wing it.
Customization Tips
For Day Traders (Scalpers)
Use 5min or 15min charts
Hyper frame: 1H or 4H
Expect 2-4 setups per day
Tighter stops (0.5% risk per entry)
For Swing Traders
Use 4H or Daily charts
Hyper frame: Daily or Weekly
Expect 1-2 setups per week
Wider stops (1-2% risk per entry)
For Position Traders
Use Daily or Weekly charts
Hyper frame: Weekly or Monthly
Expect 1-2 setups per month
Widest stops (2-3% risk per entry)
The "Don't Be Stupid" Checklist
Before taking ANY signal from this script, ask:
✅ Is the hyper frame bias pointing in my direction?
✅ Is the signal clean (not at a weird time or during news)?
✅ Do I know my stop loss level?
✅ Do I know my position size?
✅ Can I afford to lose if this trade fails?
If you answered "no" to ANY of these, skip the trade.
Troubleshooting
"I'm not seeing any signals"
Possible causes:
The "Show Lazy Trader System" toggle is off (turn it on)
Your chart timeframe is too high (try 1H or 4H)
Market is in a tight range (EMAs are compressed)
You need to refresh the chart
"Too many signals, getting whipsawed"
Fixes:
Increase your chart timeframe (go from 15m to 1H)
Switch to a less volatile ticker
Only trade when hyper frame bias is STRONG (not neutral)
Add a minimum bar count between signals
"The info table is covering my price action"
Fix:
Edit the script
Find the line: table.new(position.top_right, ...
Change position.top_right to position.bottom_right or position.top_left
"Signals appear then disappear"
This is normal (repainting). Some signals (especially compression breakouts) can disappear if the next bar reverses. This is why you:
Wait for bar close before acting
Use alerts that only fire on confirmed bars
Don't chase signals mid-bar
Final Thoughts
This script is a decision-making tool, not a crystal ball. It shows you high-probability setups based on EMA dynamics and trend structure. You still need to:
Manage your risk
Choose your position size
Stick to the rules
Accept losses when they happen
The system works when YOU work the system.
Print this guide, tape it next to your monitor, and follow it religiously for 20 trades before making ANY changes.
Good luck, and stay lazy (the smart way).
Scary Flush Indicator R0Work in progress.
Calculates the gradient based on candle lows (previous low to current low). Works on all time frames.
Looks for a selling gradient of >0.75pts per minute then highlights. Anything less than this indicates a lazy grind down and indicates a potential invalidation for the FBD.
Cold Brew Ranges🧭 Core Logic and Calculation
The fundamental logic for each range (OR and CR) is identical:
Time Definition: Each range is defined by a specific Start Time and a fixed 30-second duration. The timestamp function, using the "America/New_York" time zone, is used to calculate the exact start time in Unix milliseconds for the current day.
Example: t0200 = timestamp(TZ, yC, mC, dC, 2, 0, 0) sets the start time for the 02:00 OR to 2:00:00 AM NY time.
Range Data Collection: The indicator uses the request.security_lower_tf() function to collect the High (hArr) and Low (lArr) prices of all bars that fall within the defined 30-second window, using a user-specified, sub-chart-timeframe (openrangetime, defaulted to "1" second, "30S", or "5" minutes). This ensures high precision in capturing the exact high and low during the 30-second window.
High/Low Determination: It iteratively finds the absolute highest price (OR_high) and the absolute lowest price (OR_low) recorded by the bars during that 30-second window.
Range Locking: Once the current chart bar's time (lastTs) passes the 30-second End Time (tEnd), the High and Low are locked (OR_locked = true), meaning the range calculation is complete for the day.
Drawing: Upon locking, the range is drawn on the chart using line.new for the High, Low, and Equilibrium, and box.new for the shaded fill. The lines are extended to a subsequent time anchor point (e.g., the 02:00 OR is extended to 08:20, the 09:30 OR is extended to 16:00).
Equilibrium (EQ): This is calculated as the simple average (midpoint) of the High and Low of the range.
EQ=
2
OR_High+OR_Low
⏰ Defined Trading Ranges
The indicator defines and tracks the following specific 30-second ranges:
Range Name Type Start Time (NY) Line Extension End Time (NY) Common Market Context
02:00 OR Opening 02:00:00 08:20:00 Asian/European Market Overlap
08:20 OR Opening 08:20:00 16:00:00 Pre-New York Open
09:30 OR Opening 09:30:00 16:00:00 New York Stock Exchange Open (Most significant OR)
18:00 OR Opening 18:00:00 20:00:00 Futures Market Open (Sunday/Monday)
20:00 OR Opening 20:00:00 Next Day's session start Asian Session Start
15:50 CR Closing 15:50:00 20:00:00 New York Close Range
⚙️ Key User Inputs and Customization
The script offers extensive control over which ranges are displayed and how they are visualized:
Range Time & History
openrangetime: Sets the sub-timeframe (e.g., "1" for 1 second) used to calculate the precise High/Low of the 30-second range. Crucial for accuracy.
showHistory: A toggle to show the ranges from previous days (up to a histCap of 50 days).
Range Toggles and Styling
On/Off Toggles: Independent input.bool (e.g., OR_0200_on) to enable or disable the display of each individual range.
Colors & Width: Separate color and width inputs for the High/Low lines (hlC), the Equilibrium line (eqC), and the background fill (fillC) for each range.
Line Styles: Global inputs for the line styles of High/Low (lineStyleInput) and Equilibrium (eqLineStyleInput) lines (Solid, Dotted, or Dashed).
showFill: Global toggle to enable the shaded background box that highlights the area between the High and Low.
Extensions
The script calculates and plots extensions (multiples of the initial range) above the High and below the Low.
showExt: Toggles the visibility of the extension lines.
useRangeMultiples: If true, the step size for each extension level is equal to the initial range size:
Step=Range=OR_High−OR_Low
If false, the step size is a fixed value defined by stepPts (e.g., 60.0 points, which is a common value for NQ futures).
stepCnt: Determines how many extension levels (multiples) are drawn above and below the range (default is 10).
📈 Trading Strategy Implications
The Cold Brew Ranges indicator is a tool for session-based support and resistance and range breakout/reversal strategies.
Key Support/Resistance: The High and Low of these defined opening ranges often act as strong, predefined price levels. Traders look for price rejection off these boundaries or a breakout with conviction.
Equilibrium (Midpoint): The EQ often represents a fair value for that specific session's opening. Movements away from it are seen as opportunities, and a return to it is common.
Extensions: The range extensions serve as potential profit targets or stronger, layered support/resistance levels if the market trends aggressively after the opening range is set.
The core idea is that the activity in the first 30 seconds of a significant trading session (like the NYSE or a market session open) sets a bias and initial boundary for the trading period that follows.
RSI 14 Cross Up SMA(14) Within Last 4 BarsMomentum based crossover, seems to be best for swing trades
RV − IV Spread Alert (SPY vs VIX)Realized vs Implied Volatility Spread (RV − IV) for the S&P 500 / SPY.
Plots the daily difference between 30-day realized volatility (SPY) and implied volatility (VIX) in basis points.
Key insight from the research: when the spread turns and stays above ≈ +50 bps, forward returns historically degrade and volatility of returns rises sharply — a useful early-warning regime flag.
Features:
- Clean daily plot of RV − IV in bps
- Horizontal lines at 0, −50 bps and +50 bps
- Red background when spread > +50 bps
- Built-in alert condition that fires once per bar close when spread closes above +50 bps
- Optional “all-clear” alert when it drops back below
Use on SPY or ES1! daily chart. Perfect for anyone wanting a simple notification when the market enters the “risk-on” volatility regime highlighted by Machina Quanta and the original Bali & Hovakimian (2007) paper.
Moon Boys LineWe have the 44 and 125 day moving averages. When they cross, the trend is bullish or bearish.
仓位计算器# 仓位计算器
通过开仓、止损、止盈计算固定盈亏比适合的开仓数量,根据开仓和止损判断开仓方向。
首次使用需要手动设置开仓、止盈、止损,之后可以手动拖拽价格线设置值然后自动计算仓位信息。
---
# Position Calculator
Calculates the optimal position size with a fixed profit/loss ratio based on opening, stop-loss, and take-profit levels. Determines the direction of the position based on the opening and stop-loss settings.
Initial use requires manual setting of opening, take-profit, and stop-loss. Afterward, you can manually drag the price line to set values and the system will automatically calculate position information.
ATR ZigZag BreakoutATR ZigZag Breakout
This strategy uses my ATR ZigZag indicator (powered by the ZigZagCore library) to scalp breakouts at volatility-filtered highs and lows.
Everyone knows stops cluster around clear swing highs and lows. Breakout traders often pile in there, too. These levels are predictable areas where aggressive orders hit the tape. The idea here is simple:
→ Let ATR ZigZag define clean, volatility-filtered pivots
→ Arm a stop market order at those pivots
→ Join the breakout when the crowd hits the level
The key to greater success in this simple strategy lies in the ZigZag. Because the pivots are filtered by ATR instead of fixed bar counts or fractals, the levels tend to be more meaningful and less noisy.
This approach is especially suited for intraday trading on volatile instruments (e.g., NQ, GC, liquid crypto pairs).
How It Works
1. Pivot detection
The ATR ZigZag uses an ATR-based threshold to confirm swing highs and lows. Only when price has moved far enough in the opposite direction does a pivot become “official.”
2. Candidate breakout level
When a new swing direction is detected and the most recent high/low has not yet been broken in the current leg, the strategy arms a stop market order at that pivot.
• Long candidate → most recent swing high
• Short candidate → most recent swing low
These “candidate trades” are shown as dotted lines.
3. Entry, SL, and TP
If price breaks through the level, the stop order is filled and a bracket is placed:
• Stop loss = ATR × SL multiplier
• Take profit = SL distance × RR multiplier
Once a level has traded, it is not reused in the same swing leg.
4. Cancel & rotate
If the market reverses and forms a new swing in the opposite direction before the level is hit, the pending order is cancelled and a new candidate is considered in the new direction.
Additional Features
• Optional session filter for backtesting specific trading hours
Price Forecast - Future price Ichimoku ATR RSI Kumo It predicts
Future price (projected close)
future high-low (ATR projection)
Ichimoku Future Span overlay
alerts "future price above/below threshold".
Ichimoku Kumo Projection (Leading Span A & B). Senkou Span A (Future A) Senkou Span B (Future B).
ATR Projection Channel (ATR Bands/Volatility Forecast).
Linear regression forecast for +1 bar.
Multi timeframe
RSI+Kumo filter for clearer signals.
Algo & Dark Pool Activity - Find Hidden LiquidityThe script is designed to highlight potential algorithmic buying pressure and dark pool accumulation proxies on a TradingView chart. It overlays signals directly on price bars so you can visually spot when unusual activity may be occurring.
Volume Delta + Bandas de Bollinger📊 Volume Delta + Bollinger Bands Indicator
Characteristics
• Volume Delta Histogram
• Shows the difference between buying and selling pressure.
• Green bars indicate positive delta (buyers dominating).
• Red bars indicate negative delta (sellers dominating).
• The histogram oscillates around the zero line, which represents balance between buyers and sellers.
• Bollinger Bands applied to Delta
• A moving average (basis line) of the delta is calculated.
• Upper and lower bands are plotted using standard deviation.
• These bands highlight periods when the delta moves to statistically extreme levels.
• Helps identify unusual buying or selling pressure compared to recent history.
• Zero Line Reference
• A horizontal line at zero shows equilibrium.
• Crossing above zero suggests net buying pressure.
• Crossing below zero suggests net selling pressure.
How to Use
• Identify Buyer/Seller Dominance
• Green histogram bars above zero → buyers are stronger.
• Red histogram bars below zero → sellers are stronger.
• Spot Extremes with Bollinger Bands
• When delta touches or exceeds the upper band, it signals unusually strong buying pressure.
• When delta touches or exceeds the lower band, it signals unusually strong selling pressure.
• These extremes can precede reversals or mark continuation if confirmed by price action.
• Combine with Price Analysis
• Use delta signals together with price trends and support/resistance levels.
• For example, if price is at resistance and delta spikes into the upper band, it may indicate exhaustion of buyers.
• If price is at support and delta spikes into the lower band, it may indicate exhaustion of sellers.
• Trading Strategy Ideas
• Reversal setups: Look for delta extremes against key price levels.
• Trend confirmation: Sustained delta above zero supports bullish trends; sustained delta below zero supports bearish trends.
• Volatility filter: Bollinger Bands help filter out normal fluctuations and highlight significant imbalances.
👉 In short, this indicator combines order flow pressure (delta) with volatility context (Bollinger Bands), making it useful for spotting moments when buying or selling activity becomes unusually strong compared to recent history.
Triple ATR Adaptive MAs + VWAP Option + Clouds + Candle Trend V2Another one of my experiences ... combining things...
📘 Indicator Description – Triple ATR Adaptive Moving Averages with VWAP Influence
This indicator plots three adaptive moving averages whose behavior changes dynamically based on market volatility (ATR) and optionally VWAP deviation.
Because they adapt in real time to both volatility and VWAP pressure, their movement, slope, and reaction speed differ significantly from traditional moving averages.
🔶 1. ATR-Adaptive Moving Averages
Each of the three MAs uses a custom adaptive formula:
ATR (Average True Range) is measured over a chosen period.
Higher ATR → more volatility → the MA becomes more reactive and moves closer to price.
Lower ATR → stable market → the MA becomes smoother and slower.
This creates a volatility-aware smoothing factor, making the MA expand, contract, and respond to market conditions in ways a classic SMA, EMA, or HMA cannot.
🔷 2. Optional VWAP Influence
Each MA has an independent toggle allowing it to be influenced by VWAP.
When enabled:
The MA is gently “pulled” toward VWAP.
The strength of this attraction is determined by the VWAP Influence parameter (0–1).
This causes the moving averages to behave differently from normal MAs:
In trending markets, the ATR and price push the MA away from VWAP.
In mean-reverting or balanced conditions, VWAP pulls the MA back toward fair value.
The result is an MA that reflects both trend pressure and fair-value pressure.
🔶 3. Visual Behavior: Non-Traditional Movement
Because each MA is simultaneously influenced by volatility, trend magnitude, and VWAP deviation, their shape is often very distinct from normal moving averages.
They may:
Respond faster during high volatility
Flatten out earlier during consolidation
Curve toward VWAP when price becomes extended
Separate or compress depending on ATR strength
This is intentional and essential, since the goal is to show:
✔ Volatility expansion
✔ Trend exhaustion
✔ Overextended price relative to VWAP
✔ Dynamic trend confirmation
Rather than simply smoothing past price.
🔷 4. Three Independent Adaptive Lines
Each of the three moving averages has:
Its own ATR length
Its own sensitivity multiplier
Its own optional VWAP influence
Its own color and trail
This allows the user to combine:
a fast volatility-adaptive trend line
a mid-range adaptive baseline
a slow adaptive long-trend MA
All adapting independently to volatility and VWAP conditions.
🔶 5. Optional Candle Coloring
The indicator can color candles according to trend strength derived from the fast/slow MAs.
Stronger trends produce more vivid colors. Neutral or conflicting trends produce softer colors.
This adds a visual layer to identify:
Trend direction
Trend strength
Volatility state
Market compression
at a glance.
📌 Summary
This indicator does not behave like standard SMAs or EMAs because each line dynamically adapts to:
🔸 ATR (volatility)
🔸 VWAP (fair value)
This makes the indicator extremely responsive to market conditions while still reducing noise during stable phases.
It provides a more realistic, context-aware, and intelligent representation of price behavior compared to traditional moving averages.
SMAs TimePortalPlots 5× SMAs from 3 different timeframes - plus current chart timeframe
Plots 2× VWAPs with bands.
Meant for personal use, but maybe you can find it useful too.
Disclaimer: Beware I might update this with big changes in the future.
ATR ZigZag - Volatility-Filtered Market StructureDescription
This indicator draws ZigZags using an ATR based threshold for direction switching to identify major swing highs and lows. Instead of relying on fractals or fixed bar-count swings, pivots are confirmed only when price moves beyond the prior extreme by:
threshold = ATR(length) × ATR_mult
This filters noise, enforces valid swing structure (high → low → high), and adapts automatically to volatility. The ATR ZigZag is ideal for traders who want a clean, objective view of swing structure without noise. This has many uses, including mapping swing structure, drawing chart patterns, and trading around extremes.
Lag and Repainting
Pivots are confirmed only after price moves sufficiently in the opposite direction. This creates necessary lag. The ZigZag is drawn when this occurs, and will anchor to the high/low in the past. Optional detection dot plots show exactly when confirmation occurred.
What You See
ZigZag: dashed gray line, repainted to anchor at the confirmed highs and lows
Latest Pivot Levels: Dashed horizontal lines at the most recent confirmed high/low.
Optional Live Swing Leg: A real-time line from the last confirmed pivot to the current swing extreme, updating until a new pivot forms.
Optional ATR Boxes: 1×ATR shaded zones around the latest pivot for structural context.
Optional Pivot Confirmation Dots: Markers show the bar where the threshold is crossed and a swing is officially confirmed. This is to understand the lag and see when the ZigZag repainted.
Green Day or Red Day?What it is:
This simple indicator provides immediate visual context by tinting the background of your chart Green or Red based on the asset's daily performance.
Who's it for?
It is designed for day traders and scalpers who operate on lower timeframes (1m, 5m, 15m) but need to remain aware of the overall daily direction without switching charts. It can be used in combination with the ORB strategy as a helpful tool to "feel" the trend when you're way out of the ORB range. But this indicator can be used by anyone regardless of trading style.
How it works:
This script pulls data from the daily timeframe regardless of the chart interval you are currently viewing. It compares the current price to a user-selectable reference point (either Yesterday's Close or Today's Open) to determine the background color.
Good Luck. May you make good trades!
RenkoFlow PercentualIt calculates brick size as a percentage of the chart’s initial price and updates bricks only when price moves one full brick size up or down.
Green bricks represent upward movement and red bricks represent downward movement.
This tool is designed to help visualize directional price changes independently of time and can be used as a clean trend-filtering reference on any timeframe.
Long Term Holder Supply 155 DayThe “Long Term Holder Supply 155 Day” indicator is designed to bring on-chain inspired long-term analysis directly into chart-based technical trading.
The concept comes from the idea of Long-Term Holder (LTH) Supply, frequently used in Bitcoin on-chain analytics to identify price zones where long-term holders accumulated coins. These areas tend to act as strong support and resistance because long-term holders historically accumulate during undervaluation phases and distribute during overheated cycles.
What makes this script original
Unlike traditional moving averages or basic Donchian channels, this indicator combines both concepts using the same 155-day window, creating a unified model that visually represents:
The average long-term holder cost basis (via SMA 155).
The range of supply and demand zones historically defined by price extremes (via Donchian 155).
A trend-reactive color system that makes interpretation intuitive and immediate.
This dual-structure is not commonly found in standard TradingView scripts and is inspired by on-chain research methodology adapted for chart traders.
How it works
1. SMA 155 (LTH Mean Price)
Represents the long-term holder cost basis proxy.
Turns green when price is above it (market strength above holder basis).
Turns red when price is below it (market trading at a discount relative to long-term holders).
This allows traders to quickly identify whether Bitcoin is in a LTH profit or LTH loss environment — a critical on-chain concept.
2. Donchian Channel 155 (LTH Supply Range)
Upper Band (Green): Highest high of the last 155 days — interpreted as the upper bound of LTH supply/resistance.
Lower Band (Red): Lowest low of the last 155 days — interpreted as the lower bound of LTH accumulation/support.
This creates a long-term structural range showing where long-term holders were historically more likely to buy (lower band) or distribute (upper band).
How to use it
Bullish conditions:
Price breaks above the SMA 155.
Price begins approaching or breaking the upper Donchian band → signs of macro strength and potential long-term breakout.
Bearish conditions:
Price drops below SMA 155 (LTH basis lost).
Price moves toward the lower Donchian band → zone where long-term holders historically accumulate during deep value phases.
Sideways Accumulation:
Price oscillates inside the Donchian bands while hugging the SMA 155 → potential long-term consolidation before trend reversal.
Who this indicator is for
Long-term Bitcoin analysts
Swing traders
Investors tracking macro cycles
Traders who want lightweight on-chain logic without needing blockchain datasets
Core methodology behind the script
The indicator is built around:
SMA 155 → represents long-term average cost basis
Donchian 155 → long-term supply/demand range
Color-based trend confirmation → chart-based interpretation of on-chain behavior
This combination brings an on-chain inspired long-term model into pure price action, making it usable even by traders without access to blockchain data.
Market Structure Shift (MSS) [Sword & Shield]MARKET STRUCTURE SHIFT (MSS)
A clean and focused indicator for identifying Market Structure Shifts in price action.
════════════════════════════════════════════════════════════════════════════════
WHAT IS MARKET STRUCTURE SHIFT (MSS)?
════════════════════════════════════════════════════════════════════════════════
A Market Structure Shift occurs when price breaks a significant swing high or swing low,
indicating a potential change in market direction. This indicator automatically detects
and plots these key levels.
BULLISH MSS: Price breaks above a previous swing high
BEARISH MSS: Price breaks below a previous swing low
════════════════════════════════════════════════════════════════════════════════
FEATURES
════════════════════════════════════════════════════════════════════════════════
CLEAN DISPLAY
- Shows only the last 2 MSS by default (1 bullish + 1 bearish)
- Keeps charts clean and focused on recent structure
- Automatically removes old MSS when new ones appear
CUSTOMIZABLE DETECTION
- Adjustable swing detection (left/right bars)
- Choose break confirmation method (Close or Wick)
- Fixed-length lines (no infinite extension by default)
SMART FILTERING
- Only plots one MSS per direction until opposite MSS occurs
- Prevents duplicate signals in the same direction
- Clear visual distinction between bullish (blue) and bearish (red)
CLEAN LABELS
- Text labels positioned above lines
- No background tooltips for cleaner appearance
- Color-matched to their respective MSS lines
════════════════════════════════════════════════════════════════════════════════
SETTINGS
════════════════════════════════════════════════════════════════════════════════
SWING DETECTION
- Swing Left Bars (default: 2)
- Swing Right Bars (default: 2)
- Higher values = more significant swings detected
BREAK CONFIRMATION
- Close: MSS confirmed when candle closes beyond level
- Wick: MSS confirmed when wick touches beyond level
DISPLAY OPTIONS
- Show Only Last 2 MSS: ON by default (keeps chart clean)
- Extend lines to the right: OFF by default (fixed-length lines)
- Line bars (when not extended): 50 bars (customizable)
════════════════════════════════════════════════════════════════════════════════
HOW IT WORKS
════════════════════════════════════════════════════════════════════════════════
DETECTION LOGIC
1. Identifies swing highs and swing lows using pivot detection
2. Monitors price action for breaks of these levels
3. Confirms break based on selected method (Close or Wick)
4. Plots MSS line at the broken level
FILTERING LOGIC
- Only one MSS per direction is allowed consecutively
- Example: If bullish MSS appears, no new bullish MSS until bearish MSS occurs
- This prevents multiple signals in trending markets
DISPLAY LOGIC
- When "Show Only Last 2 MSS" is enabled:
• Only the most recent bullish MSS is shown
• Only the most recent bearish MSS is shown
• Old MSS are automatically deleted when new ones appear
- When disabled: All historical MSS remain visible
════════════════════════════════════════════════════════════════════════════════
USAGE EXAMPLES
════════════════════════════════════════════════════════════════════════════════
FOR TREND IDENTIFICATION
- Bullish MSS = Potential uptrend beginning
- Bearish MSS = Potential downtrend beginning
- Use in conjunction with other indicators for confirmation
FOR ENTRY SIGNALS
- Wait for MSS to confirm trend change
- Enter on pullback to MSS level
- Use MSS as support/resistance
FOR SCALPING (Lower Timeframes)
- Swing Left/Right Bars: 2-3 (more sensitive)
- Break Confirmation: Close (more reliable)
- Show Only Last 2 MSS: ON (cleaner charts)
FOR SWING TRADING (Higher Timeframes)
- Swing Left/Right Bars: 5-10 (more significant swings)
- Break Confirmation: Close (avoid false breaks)
- Show Only Last 2 MSS: ON or OFF based on preference
════════════════════════════════════════════════════════════════════════════════
VISUAL DESIGN
════════════════════════════════════════════════════════════════════════════════
LINES
- Dashed style for easy identification
- Blue for bullish MSS
- Red for bearish MSS
- Fixed length (50 bars default) for cleaner appearance
LABELS
- "MSS" text positioned above each line
- No background for clean display
- Color-matched to line color
- Small size to avoid chart clutter
════════════════════════════════════════════════════════════════════════════════
CREDITS & LICENSE
════════════════════════════════════════════════════════════════════════════════
© Sword & Shield
This Pine Script code is subject to the terms of the Mozilla Public License 2.0
mozilla.org
FOR CRT SMT – 4 CANDLEFOR CRT SMT – 4 CANDLE Indicator
This indicator detects SMT (Smart Money Technique) divergence by comparing the last 4 candle highs and lows of two different assets.
Originally designed for BTC–ETH comparison, but it works on any market, including Forex pairs.
You can open EURUSD on the chart and select GBPUSD from the settings, and the indicator will detect SMT divergence between EUR and GBP the same way it does between BTC and ETH. This makes it useful for analyzing correlated markets across crypto, forex, and more.
🔴 Upper SMT (Bearish Divergence – Red)
Occurs when:
The main chart asset makes a higher high,
The comparison asset makes a lower high.
This may signal a liquidity grab and potential reversal.
🟢 Lower SMT (Bullish Divergence – Green)
Occurs when:
The main chart asset makes a lower low,
The comparison asset makes a higher low.
This may indicate the market is sweeping liquidity before reversing upward.
📌 Features
Uses the last 4 candles of both assets.
Automatically draws divergence lines.
Shows clear “SMT ↑” or “SMT ↓” labels.
Works on Crypto, Forex, and all correlated assets.
Box TheoryBox Theory – Description
This indicator is based on the popular “Box Theory” concept, where the previous session’s High–Low range acts as the most important structure for the next session.
Traders use this because the market often reacts to the same areas where liquidity, orders, and imbalances were created in the prior session.
At every new session open, the indicator automatically records:
Previous High
Previous Low
Middle (50% level)
These three levels form a box, which becomes your roadmap for the new session.
This method is widely used because it highlights where most reversals, sweeps, and reactions occur—without needing any extra indicators.
How the Zones Are Calculated
Previous High
The highest price of the last session.
This forms the top edge, which acts as resistance and the basis for the Sell Zone.
Previous Low
The lowest price of the last session.
This forms the bottom edge, acting as support and the basis for the Buy Zone.
Middle Line (50% Level)
The exact midpoint between High and Low.
This is the fair-value zone, where price often consolidates and becomes directionless.
No signals are triggered near the middle, because trades taken here historically have low accuracy.
Buy Zone (Green Area)
The lower part of the box.
Price often reacts here because this area held buyers in the previous session.
When price enters this green zone inside the box, the indicator can show a Buy Zone label.
Sell Zone (Red Area)
The upper part of the box.
Price commonly rejects here because this area acted as resistance previously.
When price enters this red zone inside the box, the indicator can show a Sell Zone label.
How Zone Size Is Set (Sensitivity %)
You can adjust how big the Buy/Sell zones are using the Sensitivity (%) input.
Lower % → Smaller zones → More precise signals
Higher % → Larger zones → Signals appear earlier and from farther away
Formula:
Zone Size = (Previous High − Previous Low) × (Sensitivity % ÷ 100)
This lets you customize how tight or how early your signals appear.
Inside-Box Only Logic
The indicator only works inside the previous session’s range.
If price breaks above the previous High → No sell signal
If price breaks below the previous Low → No buy signal
This avoids false signals during breakouts or trending markets.
Alerts
The indicator includes two alerts:
Buy Zone Alert → Triggers when price enters the Buy Zone
Sell Zone Alert → Triggers when price enters the Sell Zone
Just enable them in TradingView’s alert panel.
ZigZagCoreZigZagCore
ZigZagCore is a generic ZigZag engine that works with any user-defined threshold (ATR-based, volatility-based, fixed ticks, etc.).
API
import ReflexSignals/ZigZagCore/ as zz
var zz.ZzState state = zz.zz_new()
float thr = ... // your threshold in price units
state := zz.zz_update(state, thr)
zz_update(state, thr)
Parameters:
state (ZzState)
thr (float)
ZzState
Fields:
dir (series int)
highSinceLow (series float)
lowSinceHigh (series float)
lastHighLevel (series float)
lastLowLevel (series float)
lastHighIndex (series int)
lastLowIndex (series int)
highSinceLowIndex (series int)
lowSinceHighIndex (series int)
isNewHigh (series bool)
isNewLow (series bool)
Directional State
dir = 1 → market is in an upswing
dir = -1 → market is in a downswing
dir = na → initial undecided state
Live Swing Tracking (Unconfirmed Leg)
Continuously updated swing extremes:
highSinceLow — highest price since the last confirmed low
lowSinceHigh — lowest price since the last confirmed high
Their corresponding bar indices
These fields describe the current active swing leg, which updates every bar until a pivot is confirmed.
Pivot Detection
A pivot confirms only when price moves beyond the prior swing extreme by more than threshold. When this occurs, the library sets:
isNewHigh = true (on the detection bar only) and updates lastHighLevel, lastHighIndex
isNewLow = true and updates lastLowLevel, lastLowIndex
Reversal WaveThis is the type of quantitative system that can get you hated on investment forums, now that the Random Walk Theory is back in fashion. The strategy has simple price action rules, zero over-optimization, and is validated by a historical record of nearly a century on both Gold and the S&P 500 index.
Recommended Markets
SPX (Weekly, Monthly)
SPY (Monthly)
Tesla (Weekly)
XAUUSD (Weekly, Monthly)
NVDA (Weekly, Monthly)
Meta (Weekly, Monthly)
GOOG (Weekly, Monthly)
MSFT (Weekly, Monthly)
AAPL (Weekly, Monthly)
System Rules and Parameters
Total capital: $10,000
We will use 10% of the total capital per trade
Commissions will be 0.1% per trade
Condition 1: Previous Bearish Candle (isPrevBearish) (the closing price was lower than the opening price).
Condition 2: Midpoint of the Body The script calculates the exact midpoint of the body of that previous bearish candle.
• Formula: (Previous Open + Previous Close) / 2.
Condition 3: 50% Recovery (longCondition) The current candle must be bullish (green) and, most importantly, its closing price must be above the midpoint calculated in the previous step.
Once these parameters are met, the system executes a long entry and calculates the exit parameters:
Stop Loss (SL): Placed at the low of the candle that generated the entry signal.
Take Profit (TP): Calculated by projecting the risk distance upward.
• Calculation: Entry Price + (Risk * 1).
Risk:Reward Ratio of 1:1.
About the Profit Factor
In my experience, TradingView calculates profits and losses based on the percentage of movement, which can cause returns to not match expectations. This doesn’t significantly affect trending systems, but it can impact systems with a high win rate and a well-defined risk-reward ratio. It only takes one large entry candle that triggers the SL to translate into a major drop in performance.
For example, you might see a system with a 60% win rate and a 1:1 risk-reward ratio generating losses, even though commissions are under control relative to the number of trades.
My recommendation is to manually calculate the performance of systems with a well-defined risk-reward ratio, assuming you will trade using a fixed amount per trade and limit losses to a fixed percentage.
Remember that, even if candles are larger or smaller in size, we can maintain a fixed loss percentage by using leverage (in cases of low volatility) or reducing the capital at risk (when volatility is high).
Implementing leverage or capital reduction based on volatility is something I haven’t been able to incorporate into the code, but it would undoubtedly improve the system’s performance dramatically, as it would fix a consistent loss percentage per trade, preventing losses from fluctuating with volatility swings.
For example, we can maintain a fixed loss percentage when volatility is low by using the following formula:
Leverage = % of SL you’re willing to risk / % volatility from entry point to exit or SL
And if volatility is high and exceeds the fixed percentage we want to expose per trade (if SL is hit), we could reduce the position size.
For example, imagine we only want to risk 15% per SL on Tesla, where volatility is high and would cause a 23.57% loss. In this case, we subtract 23.57% from 15% (the loss percentage we’re willing to accept per trade), then subtract the result from our usual position size.
23.57% - 15% = 8.57%
Suppose I use $200 per trade.
To calculate 8.57% of $200, simply multiply 200 by 8.57/100. This simple calculation shows that 8.57% equals about $17.14 of the $200. Then subtract that value from $200:
$200 - $17.14 = $182.86
In summary, if we reduced the position size to $182.86 (from the usual $200, where we’re willing to lose 15%), no matter whether Tesla moves up or down 23.57%, we would still only gain or lose 15% of the $200, thus respecting our risk management.
Final Notes
The code is extremely simple, and every step of its development is detailed within it.
If you liked this strategy, which complements very well with others I’ve already published, stay tuned. Best regards.






















