Adaptive Freedom Machine w/labelsAdaptive Freedom Machine w/ Labels
Overview
The Adaptive Freedom Machine w/ Labels is a versatile Pine Script indicator designed to assist traders in identifying buy and sell opportunities across various market conditions (trending, ranging, or volatile). It combines Exponential Moving Averages (EMAs), Relative Strength Index (RSI), Average True Range (ATR), and customizable time filters to generate actionable signals. The indicator overlays on the price chart, displaying EMAs, a dynamic cloud, scaled RSI levels, buy/sell signals, and market condition labels, making it suitable for swing trading, day trading, or scalping.
What It Does
This indicator generates buy and sell signals based on the interaction of two EMAs, filtered by RSI thresholds, ATR-based volatility, and user-defined time windows. It adapts to the selected market condition by adjusting EMA lengths, RSI thresholds, and trading hours. A dynamic cloud highlights trend direction or neutral zones, and candlestick bodies are colored in neutral conditions for clarity. A table displays real-time trend and volatility status.
How It Works
The indicator uses the following components:
EMAs: Two EMAs (short and long) are calculated on a user-selected timeframe (1, 5, 15, 30, or 60 minutes). Their crossover or crossunder generates potential buy/sell signals, with lengths adjusted based on the market condition (e.g., longer EMAs for trending markets, shorter for ranging).
Dynamic Cloud: The area between the EMAs forms a cloud, colored green for uptrends, red for downtrends, or a user-defined color (default yellow) for neutral zones (when EMAs are close, determined by an ATR-based threshold). Users can widen the cloud for visibility.
RSI Filter: RSI is scaled to price levels and plotted on the chart (optional). Signals are filtered to ensure RSI is within user-defined buy/sell thresholds and not in overbought/oversold zones, with thresholds tailored to the market condition.
ATR Volatility Filter: An optional filter ensures signals occur during sufficient volatility (ATR(14) > SMA(ATR, 20)).
Time Filter: Signals are restricted to a user-defined or market-specific time window (e.g., 10:00–15:00 UTC for volatile markets), with an option for custom hours.
Visual Aids: Buy/sell signals appear as green triangles (buy) or red triangles (sell). Candlesticks in neutral zones are colored (default yellow). A table in the top-right corner shows the current trend (Uptrend, Downtrend, Neutral) and volatility (High or Low).
The indicator ensures compatibility with standard chart types (e.g., candlestick charts) to produce realistic signals, avoiding non-standard types like Heikin Ashi or Renko.
How to Use It
Add to Chart: Apply the indicator to a candlestick or bar chart on TradingView.
Configure Settings:
Timeframe: Choose a timeframe (1, 5, 15, 30, or 60 minutes) to align with your trading style.
Market Condition: Select one market condition (Trending, Ranging, or Volatile). Volatile is the default if none is selected. Only one condition can be active.
Filters:
Enable/disable the ATR volatility filter to trade only in high-volatility periods.
Enable the time filter and choose default hours (specific to the market condition) or set custom UTC hours.
Cloud Settings: Adjust the cloud width, neutral zone threshold, and color. Enable/disable the neutral cloud.
RSI Display: Toggle the scaled RSI and its thresholds on the chart.
Interpret Signals:
Buy Signal: A green triangle below the bar indicates a potential long entry (EMA crossover, RSI above buy threshold, within time window, and passing volatility filter).
Sell Signal: A red triangle above the bar indicates a potential short entry (EMA crossunder, RSI below sell threshold, within time window, and passing volatility filter).
Neutral Zone: Yellow candlesticks and cloud (if enabled) suggest a lack of clear trend; avoid trading or use for range-bound strategies.
Monitor the Table: Check the top-right table for real-time trend (Uptrend, Downtrend, Neutral) and volatility (High or Low) to confirm market context.
Unique Features
Adaptive Parameters: Automatically adjusts EMA lengths, RSI thresholds, and trading hours based on the selected market condition, reducing manual tweaking.
Neutral Zone Detection: Uses an ATR-based threshold to identify low-trend periods, helping traders avoid choppy markets.
Scaled RSI Visualization: Plots RSI and thresholds directly on the price chart, making it easier to assess momentum relative to price action.
Flexible Time Filtering: Supports both default and custom UTC-based trading windows, ideal for day traders targeting specific sessions.
Dynamic Cloud: Enhances trend visualization with customizable width and neutral zone coloring, improving readability.
Notes
Use on standard candlestick or bar charts to ensure realistic signals.
Test the indicator on a demo account to understand its behavior in your chosen market and timeframe.
Adjust settings to match your trading strategy, but avoid over-optimizing for past data.
The indicator is not a standalone system; combine it with other analysis (e.g., support/resistance, news events) for better results.
Limitations
Signals may lag in fast-moving markets due to EMA-based calculations.
Neutral zone detection may vary in extremely volatile or illiquid markets.
Time filters are UTC-based; ensure your platform’s timezone settings align.
This indicator is designed for traders seeking a customizable, trend-following tool that adapts to different market environments while providing clear visual cues and robust filtering.
Indicators and strategies
MTF VEGASThe MTF Tunnel Vegas indicator is a multi-timeframe (MTF) technical analysis tool designed to help traders identify trends and key price zones. It is based on the Vegas Tunnel system, which uses three key exponential moving averages (EMAs) — the 144, 169, and 233-period EMAs — to create a dynamic tunnel or channel on the price chart.
The purpose of this tunnel is to highlight zones where price may react, either as support/resistance or as breakout levels. When price approaches, bounces off, or crosses the tunnel, it can signal potential trading opportunities, whether for continuation or reversal setups.
The MTF component means that the indicator overlays the tunnel from a higher timeframe directly onto the current chart, giving traders a clear view of the larger trend context without needing to switch between multiple charts. This allows for better alignment of short-term decisions with long-term trend dynamics.
Key features:
✅ Plots 144, 169, and 233-period EMA tunnels from higher timeframes
✅ Highlights dynamic zones of support and resistance
✅ Helps traders stay aligned with the dominant trend
✅ Reduces chart noise and improves trade filtering
CUSTOM PRO RANGE V2.0 with AlertsCore Functions
Tracks High/Low Ranges
Daily (DR) or Initial (IDR) ranges within custom time windows (e.g., 9:30 AM–4:00 PM).
Optional extended hours (e.g., overnight).
Visual Tools
Draws boxes/lines for range boundaries, midpoints, and opening prices.
Custom colors/styles for clarity.
Smart Alerts
Notifies when price breaks high/low/mid of the range.
Avoids spam with once-per-bar alerts.
Flexible Timeframes
Works for intraday, daily, or even quarterly ranges with minor tweaks.
🎯 Who It Helps
Day Traders: Spot breakouts/reversals.
Swing Traders: Identify key support/resistance.
Analysts: Study price behavior in specific sessions.
VWAP table with color
## 📊 VWAP Table with Color – Clear VWAP Deviation at a Glance
This script displays a **VWAP (Volume-Weighted Average Price)** table in a non-intrusive, color-coded panel on your chart. It helps you **quickly assess where the current price stands relative to VWAP**, classified into sigma bands (standard deviations). The goal is to provide valuable VWAP insight **without cluttering the chart with multiple lines**.
---
### 🔍 Purpose & Concept
VWAP is a powerful tool used by institutional traders to measure the average price an asset has traded at throughout the day, based on both volume and price.
In this script:
- We **do not plot traditional VWAP lines** with multiple ±1σ, ±2σ, etc., on the chart.
- Instead, we **summarize VWAP and its relative position in a table**, color-coded by deviation.
- This provides the **same information**, but in a **cleaner, minimal, and visually digestible format**.
---
### 🧠 VWAP Deviation Classification
The script calculates how far the current price is from the VWAP, in units of **standard deviation (σ)**.
The formula is:
```plaintext
VWAP Delta σ = (Current Price - VWAP) / Standard Deviation
```
This gives you a normalized value for deviation from VWAP, and it is **clamped between -3 and +3** to avoid extreme outliers.
Each range is color-coded and classified as:
| VWAP Δσ | Zone | Interpretation | Color |
|---------|---------------|------------------------------------------|--------------|
| -3σ | Far Below | Strongly below VWAP – potentially oversold | 🔴 Red |
| -2σ | Below | Below VWAP – bearish territory | 🟠 Orange |
| -1σ | Slightly Below| Slightly under VWAP – weak signal | 🟡 Yellow |
| 0σ | At VWAP | Price is around VWAP – neutral zone | ⚪ Gray |
| +1σ | Slightly Above| Slightly above VWAP – weak bullish | 🟢 Lime Green |
| +2σ | Above | Above VWAP – bullish signal | 🟢 Green |
| +3σ | Far Above | Strongly above VWAP – potentially overbought | 🟦 Teal |
This **compact summary in the table** provides a clear situational view while keeping the chart clean.
---
### ⚙️ User Customization
Users can configure:
- **VWAP σ Multiplier** (default 0.1) to set the width of the optional VWAP band on the chart.
- **Table Position** (Top Center, Bottom Right, etc.).
- **Text Size** and **Text Color**.
- **Hide VWAP logic**: VWAP data can be hidden automatically on higher timeframes (e.g., daily or weekly).
- **Enable/disable the VWAP ±σ band lines** (optional visual aid).
---
### 📐 Technical Highlights
- VWAP is recalculated each day using `ta.vwap(hlc3, isNewPeriod, 1)`.
- The band width uses standard deviation and the selected multiplier: `VWAP ± σ * multiplier`.
- Table updates dynamically with the new VWAP values each day.
- To **avoid floating-point rounding issues**, `vwapDelta` is rounded before comparison, ensuring correct background color display.
---
### ✅ Why Use This?
- Keeps your chart **visually clean and readable**.
- Gives **immediate context** to current price action relative to VWAP.
- Helps **discretionary traders** or **scalpers** decide whether price is stretched too far from the mean.
- Easier than tracking multiple σ bands manually.
---
### Example Usage:
- On intraday timeframes, you can identify price exhaustion as it hits ±2σ or ±3σ.
- On a 5-minute chart, if price touches `+3σ`, you may consider taking profits on longs.
- On reversal setups, watch for price at `-3σ` with bullish divergence.
---
### 🧩 Future Enhancements (Optional Ideas)
- Add alerts for when `vwapDelta` crosses thresholds like ±2σ or ±3σ.
- Let user select the timeframe for VWAP source (e.g., 1H, 5M, etc.).
- Extend to display VWAP on session or weekly basis.
---
Let me know if you want a version of this script formatted and cleaned up for direct TradingView publication (with annotations, credits, and formatting). Would you like that?
Sine Swing OscillatorThe Sine Swing Oscillator (SSO) is a custom momentum indicator that transforms price movement into a sine-based oscillator ranging from -1 to +1. It does this by measuring the deviation of the current price from a reference price, which is updated at fixed bar intervals. The price deviation is normalized using the Average True Range (ATR) over the same interval, then mapped through a sine transformation to create a bounded oscillator. This transformation helps identify cyclical price behavior in a consistent range.
The resulting sine values are smoothed using a Simple Moving Average (SMA), and a signal line is derived by applying an Exponential Moving Average (EMA) to the smoothed oscillator. Traders can use signal line crossovers, or moves through the zero line, to help identify potential entry or exit signals based on cyclical momentum shifts.
The oscillator and signal line are plotted in a separate pane, with user-configurable smoothing lengths and colors. The zero line is also included for reference.
Daily Breakout + Daily Shadow By RouroThis script is a Pine v5 strategy designed to detect daily candle body breakouts and execute them on any intraday timeframe, while also providing:
Daily Data Retrieval
Using request.security(..., "D", ...) it fetches the OHLC and timestamp of the daily candle, regardless of the chart’s current timeframe.
Calculation of Yesterday’s and Day-Before-Yesterday’s Bodies
b1High and b1Low → the high/low of yesterday’s daily candle body
b2High and b2Low → the high/low of the previous day’s body
Detection of the First Intraday Bar After a New Day
By using ta.change(time("D")), it marks the start of each new trading day.
Drawing the Previous Day’s “Shadow” on the Chart
It overlays a box (box.new) and two wick lines (line.new) with configurable colors and transparency, so you can clearly see the full range of yesterday’s candle on any intraday chart.
Automatic End-of-Day Position Closure
It will automatically close any open position at the start of the next day to avoid unintended rollovers.
Entry Signals
On the very first intraday bar after the daily close:
Long if yesterday’s close broke above the body of the day before yesterday
Short if yesterday’s close broke below the body of the day before yesterday
…which triggers a strategy.entry at the intraday open.
Fully Customizable Stop-Loss and Take-Profit
SL options:
Opposite end of yesterday’s body
Fixed pips from entry
A risk-reward ratio on yesterday’s wick
Optional “safety SL” in fixed pips that overrides the above
TP options:
Fixed pips
Yesterday’s wick extreme (high/low)
Partial exit on the wick (TP1), then second exit (TP2) either:
At a multiplied RR
Or at the daily close (“Close of Day”)
You can also choose to move SL to breakeven after TP1 is hit.
Live Metrics Table
In the upper-right corner it displays in real time:
Start of backtest (date of first trade)
Number of ✅ Winning trades and ❌ Losing trades
Total number of trades
Win rate (%)
Profit Factor
All within a fixed table layout so it never runs out of rows or columns.
[TTM] ICT Sessions & Ranges🌟 Overview 🌟
The ICT Sessions & Ranges Indicator helps traders identify key intraday price levels by marking custom session highs/lows and opening ranges.
It helps traders spot potential liquidity grabs, reversals, and breakout zones by tracking price behavior around these key areas
🌟 Session Highs & Lows – Liquidity Zones 🌟
Session highs and lows often attract price due to stop orders resting above or below them. These levels are frequently targeted during high-volatility moves.
🔹 Asia Session
- Usually ranges in low volatility.
- Highs/lows often get swept during early London.
- Price may raid these levels, then reverse.
🔹 London Session
- First major volatility of the day.
- Highs/lows often tested or swept in New York.
- Commonly forms the day’s true high or low.
🌟 Opening Range Concepts 🌟
The Opening Range is the first 15, 30, or 60 minutes of a session (e.g., New York).
The high (ORH) and low (ORL) define the market’s initial balance and key reaction levels.
🔹 Breakout Trade
- Price breaks ORH/ORL with momentum.
- Signals directional intent.
- Traders enter on the breakout, with stops inside the range.
🔹 Liquidity Raid
- Price briefly breaks ORH/ORL to trigger stops.
- Reverses after the sweep.
- Look for structure shift and entry near FVG or OB.
🌟 Customizable Settings 🌟
The indicator includes 3 configurable ranges , each with:
Start & End Time – Set any custom time window.
Display Type – Choose Box (highlight range) or Lines (mark high/low).
Color Settings – Set custom colors for boxes and lines.
🌟 Default Settings 🌟
Range 1 : 19:00–00:00 (Asia Session)
Range 2 : 01:45–05:15 (London Session)
Range 3 : 09:30–10:00 (NY Opening Range – 30m)
Volumetric Tensegrity🧮 Volumetric Tensegrity unifies two of the Leading Indicator suite's critical engines — ZVOL ( volume anomaly detection ) and OBVX ( directional conviction ). Originally designed as a structural economizer for traders navigating strict indicator limits (e.g. < 10 slots per chart), it was forced to evolve beyond that constraint simply to fulfill it, albeit with a difference. The fatal flaw of traditional fusion, where two metrics are blended mathematically, is that they lose scale integrity (i.e. meaning). VTense encodes optical tensegrity to scale the amplitude of the ZVOL histogram and the slope of the OBVX spread independently, so that expansion and direction may coexist without either dominating the frame.
🧬 Tensegrity , by definition, is an intelligent design principle where elements in compression are suspended within a network of continuous tension, forming a stable, self-supporting structure . Originally conceived in esoteric biomorphology (c.f. Da Vinci, Snelson, Casteneda), tensegrity balances force through opposition, not rigidity. Applied to financial markets, Volumetric Tensegrity captures this same principle: price compresses, volume expands, conviction builds or fades — yet structure holds through the interplay. The result is not a prediction engine, but a pressure field — one that visualizes where structure might bend, break, or rebound based on how volume breathes.
🗜️ Rather than layering multiple indicators and consuming precious chart space, VTense frees up room for complementary overlays like momentum mapping, liquidity tiers, or volatility phase detection — making it ideal for modular traders operating in tight technical real estate.
🧠 Core Logic - VTense separates and preserves two essential structural forces:
• ZVOL Histogram : A Z-score-based expansion map that measures current volume deviation from its historical average. It reveals buildup zones, dormant stretches, and breakout pressure — regardless of price behavior.
• OBVX Spread : A directional conviction curve that tracks the difference between On-Balance Volume and its volume-weighted fast trend. It shows whether the crowd is leaning in (accumulation/distribution) or backing off.
🔊 ZVOL controls the amplitude of the histogram, while OBVX controls the curvature and slope of the spread. Without sacrificing breathing behavior or analytical depth, VTense provides a compact yet dynamic lens to track both expansion pressure and directional bias within a single footprint.
🌊 Volumetric Tensegrity forecasts breakout readiness, trend fatigue, and compression zones by measuring the volatility within volume . Unlike traditional tools that track volatility of price, this indicator reveals when effort becomes unstable — signaling inflection points before price reacts. Designed to decode rhythm shifts at the volume level, it operates as a pre-ignition scanner that thrives on low-timeframe charts (15m and under) while scaling effectively to 1H for validation.
🪖 From Generals to Scouts
👀 When used jointly, ZVOL + OBVX act as the general : deep-field analysts confirming stress, commitment, or exhaustion. VTense , by contrast, functions as a scout — capturing subtle buildup and alignment before structure fully reveals itself. The indicator aims to be a literal vanguard, establishing a position that can be confirmed or flexibly abandoned when the higher authority arrives to evaluate.
🥂 Use the ZVOL + OBVX pair when :
• You need independent axis control and manual dissection
• You’re building long-form confluence setups
• You have more indicator slots than you need
🔎 Use VTense when :
• You need compact clarity across multiple instruments
• You’re prioritizing confluence _detection_ over granular separation
• You’re building efficient multi-layered systems under slot constraints
🏗️ Structural Behavior and Interpretation
🫁 Z VOL Respiration Histogram : Structural Effort vs Baseline
🔵 Compression Coil – volume volatility is low and stable; the market is coiling
🟢 Steady Rhythm – volume is healthy but unremarkable; balanced participation
🟡 Passive/Absorbed Effort – expansion failing to manifest; watch for reversal
🟠 Clean Expansion – actionable volatility rise backed by structure
🔴 Volatile Blowout – chaos, climax; likely end-phase or fakeout
⚖️ ZVOL Respiration measures how hard the crowd is pressing — not just that volume is rising, but how statistically abnormal the surge is. Because it is rescaled proportionally to OBVX, the amplitude of the histogram reflects structural urgency without overwhelming the visual field.
🖐️ OBVX Spread : Real-Time Directional Conviction Behind Price Moves
🔑 The curvature of the spread reveals not just directional bias but crowd temp o: sharp slopes = urgent transitions; gradual slopes = building structural shifts. Curvature is key: sharp OBVX slope = urgency; gentle arcs = controlled drift or indecision.
• Green Rising : Accumulation — upward pressure from real buyers
• Red Falling : Distribution — sell pressure, downward slope
• Flat Curves : Transitional → uncertainty, microstructure digestion
🎭 Synchronized vs Divergent Behavior
⏱️ Synchronized (high-confluence) : often precedes structural breakouts, with internal conviction clearly visible before price resolves.
• ZVOL expands (yellow/orange/red) and OBVX climbs steeply green = strong bullish pressure
• ZVOL expands while OBVX steepens red = growing sell-side intent
🪤 Divergent (conflict tension) : flags potential traps, fakeouts, and liquidity sweeps.
• ZVOL expands sharply, but OBVX flattens or opposes → reactive expansion without crowd commitment
⛔️ Latent Drift + Structural Holding Patterns : tensegrity in action — the market holds tension without directional release.
• ZVOL compresses (blue) + OBVX meanders near zero → structure is resting, building up energy
• After prolonged drift, expect violent asymmetry when balance finally breaks
📚 Phase Interpretation: Dynamic Structural Read
• 1️⃣ Quiet Coil : Histogram flat, OBVX flat → no urgency
• 2️⃣ Initial Pulse : Yellow bars, OBVX slope builds → actionable tension
• 3️⃣ Structural Breath : Synchronized expansion and slope → directional commitment
• 4️⃣ Disagreement : Spike in ZVOL, flattening OBVX → exhaustion risk or false signal
💡 Suggested Use
• Run on 15m charts for breakout anticipation and 1H for validation
• Pair with ZVOL + OBVX to confirm crowd conviction behind the tension phase
• Use as a rhythm filter for the suite's trend indicators (e.g., RDI , SUPeR TReND 2.718 , et. al.)
• Ideal during low-volume regimes to detect pressure buildup before triggers
🧏🏻 Volumetric Tensegrity doesn’t signal. It breathes , and listens to pressure shifts before they speak in price. As a scout, it lets you see structural posture before signals align — helping you front-run resolution with clarity, not prediction.
6 Dynamic EMAs by Koenigsegg🚀 6 Dynamic EMAs by Koenigsegg
Take control of your chart with ultimate flexibility. This tool gives you 6 customizable EMAs across any timeframe, helping you read the market like a pro — whether you're scalping seconds or swinging days. Built for precision, designed for dominance.
The combinations? Endless. Mix and match any EMA lengths and timeframes for tailored confluence — exactly how elite traders operate.
🔑 Key Features
✅ 6 Fully Customizable EMAs
⏳ Multi-Timeframe Support (from seconds to months)
🎨 Custom Colors & Thickness for each EMA
🚨 Built-in Cross Alerts for instant trade signals
🧠 Clean, efficient logic using request.security()
🔁 Dynamically toggle EMAs on/off
⚙️ Lightweight for smooth chart performance
🧩 Endless combo potential — confluence on your terms
📈 What Is an EMA?
The EMA is a type of moving average that adjusts more quickly to recent price changes than a Simple Moving Average (SMA). It does this by giving exponentially more weight to the most recent candles.
⚙️ How Does It Function?
Smoothing Price Data:
It takes the average of closing prices over a chosen period (like 20 or 50 candles), but gives more influence to the latest prices.
Reacts Quickly to Price Shifts:
Since recent data is weighted more heavily, the EMA adjusts faster to sudden price changes — helping you spot trend reversals or momentum shifts earlier.
Dynamic Support & Resistance:
Traders often use EMAs as moving support/resistance levels. Price often "respects" EMAs in trending markets — bouncing off them during pullbacks.
Trend Confirmation:
- If price is above the EMA, the market is likely in an uptrend.
- If price is below the EMA, the market is likely in a downtrend.
- Multiple EMAs (like 12/21 or 50/200) crossing each other are used for entry/exit signals.
💡 Example:
If you use a 21 EMA on a chart, it shows you the average price of the last 21 candles, but the most recent ones weigh heavier. This makes the EMA more responsive than an SMA, and better for short-term or active trading.
📊 Why EMAs Matter — and How Multi-Timeframe EMAs Give You the Edge
Exponential Moving Averages (EMAs) are essential tools for identifying trend direction, momentum shifts, and dynamic support/resistance. Because they weight recent price data more heavily, EMAs adapt quickly to changing market conditions, giving traders early insight into reversals or continuations.
Where this script shines is in its multi-timeframe (MTF) capability. For example, plotting a daily EMA on a 4H chart gives you high-level directional guidance while still allowing precision entries. This enables confluence between LTF (low timeframe) signals and HTF (high timeframe) momentum — a crucial edge used by institutional-level traders.
You can configure the tool to run classic combos like the 12/21 crossover on your current chart, while layering in a 50 or 200 EMA from a higher timeframe for macro confirmation. The 6th EMA, colored light blue by default, is perfect for adding one final level of structure insight — often used as a long-term anchor or trend bias marker.
Whether you're riding the wave or catching the reversal, these EMAs serve as your adaptable compass in every environment.
🎯 Purpose
This indicator was built to give traders a clear, responsive, and multi-timeframe edge using dynamic Exponential Moving Averages. Whether you're trend-following, identifying momentum shifts, or building a confluence system — these 6 EMAs are here to align with your strategy and style.
💡 Pro Tip
Instead of cluttering your chart with multiple EMA indicators, this script consolidates all into one sleek tool. You can toggle off bands you don't currently need, like running only the 12/21 EMAs on your active chart timeframe, while adding the 12/21 EMAs from a higher timeframe to guide trade decisions.
With this setup, you're not just reacting — you're orchestrating your trades with intention.
⚠️ Disclaimer
This script is for educational and informational purposes only. It does not constitute financial advice. Always do your own research and trade responsibly. Past performance does not guarantee future results.
Triple Stoch and RSI (4 assets)4 Hour Green Dots -
This indicator looks at four different assets and shows when the RSI and 3 different stochastic RSI levels are all oversold.
You can optionally add Red dots when they are all overbought but doesn't seem to be as accurate.
The assets and levels are all customizable.
Absorption Lines Basic Indicator:
Green support lines and red resistance lines will appear on your chart
Numbers 1-7 will show up as triangles above and below bars
Green triangles below bars are sell signals
Red triangles above bars are buy signals
For Scanning:
In TradingView's Stock Screener, add a custom filter using this indicator
Look for "New Level", "Signal Number", or "Bar Close At Level" conditions
For specific signals, use "Buy Signal X" or "Sell Signal X" (where X is 1-7)
For Alerts:
Set up alerts using the three alert conditions in TradingView
You'll be notified when new lines are printed, when bars close at levels, or when signals appear
BTC Markup/Markdown Zones by Koenigsegg📈 BTC Markup/Markdown Zones
A handcrafted indicator designed to mark Bitcoin's most critical High Time Frame (HTF) structure shifts. This tool overlays true institutional-level Markup and Markdown Zones, selected manually after deep market review. Whether you're testing strategies or actively trading, this tool gives you the bigger picture at all times.
🔍 Key Features:
✅ HTF Markup & Markdown Zones
Every zone is manually selected — no indicators, no repainting. Just raw market history and real structure.
✅ Two Display Modes
• Background Zones — soft overlays with low opacity for visual context — with the option to increase opacity manually if desired.
• Start Candle Highlight — sharply highlighted candle marking the final pivot before a macro reversal.
✅ Custom Color Controls (Style Tab)
All visual styling lives in the Style tab, with clearly labeled fields:
• Markup Zone
• Markdown Zone
• Start Candle Highlight Markup
• Start Candle Highlight Markdown
✅ Minimal Input Section
Just one toggle: display mode. Everything else is kept clean and intuitive.
🧠 Purpose:
This script is made for any timeframe:
• Zoom into lower timeframes to know whether you're trading inside a Markup or Markdown
• Use it during strategy testing for true structural awareness
📅 Handpicked Macro Turning Points:
Each zone originates from a manually confirmed candle — the last meaningful candle before a shift in control between bulls and bears:
• FRI 19 AUG 2011 12PM – MARK DOWN
• THU 20 OCT 2011 12AM – MARK UP
• WED 10 APR 2013 12PM – MARK DOWN
• FRI 12 APR 2013 12PM – MARK UP
• SAT 30 NOV 2013 12AM – MARK DOWN
• WED 14 JAN 2015 12PM – MARK UP
• SUN 17 DEC 2017 12PM – MARK DOWN
• SAT 15 DEC 2018 12PM – MARK UP
• WED 14 APR 2021 4AM – MARK DOWN
• TUE 22 JUN 2021 12PM – MARK UP
• WED 10 NOV 2021 12PM – MARK DOWN
• MON 21 NOV 2022 8PM – MARK UP
• THU 14 MAR 2024 4AM – MARK DOWN
• MON 5 AUG 2024 12PM – MARK UP
• MON 20 JAN 2025 4AM – MARK DOWN
💡 Zones are manually updated by me after each new confirmed Markup or Markdown.
🧬 Fractal Structure for MTF Systems
Price is fractal — meaning the same principles of structure repeat across all timeframes. In Version 2, this tool evolves by introducing manually selected sub-zones inside each High Time Frame (HTF) Markup or Markdown. These sub-zones reflect Medium Timeframe (MTF) structure shifts, offering precision for traders who operate on both intraday and swing levels.
This makes the indicator ideal for low timeframe (LTF) Markup/Markdown awareness — whether you're managing 15m entries or building multi-timeframe confluence systems.
No auto-zones. No guesswork. Just clean, intentional structure division within the broader trend, handpicked for maximum clarity and edge.
💡 Pro Tip:
When price is inside a Markup Zone, shorting becomes riskier — you're trading against a macro bullish structure.
When inside a Markdown Zone, longing becomes riskier — you're fighting against confirmed bearish momentum.
Use this tool to stay aligned with the broader move, especially when zoomed into smaller timeframes or managing entries/exits during intraday setups.
📈 Markup Phase – Bullish Sentiment
Definition: A period where price makes higher highs and higher lows — the uptrend is in full force.
Why sentiment is bullish:
- Institutions and smart money are already positioned long.
- Public/institutional demand drives prices up.
- Momentum is supported by positive news, breakouts, and FOMO.
- Higher highs confirm buyers are in control.
📉 Markdown Phase – Bearish Sentiment
Definition: A period where price makes lower lows and lower highs — clear downtrend.
Why sentiment is bearish:
- Distribution has already occurred, and supply outweighs demand.
- Smart money is short or sidelined, waiting for deeper prices.
- Panic selling or trend-following traders add downside momentum.
- Lower lows confirm sellers are in control.
❌ Trading Against the Trend — Consequences:
-Reduced Probability of Success
-You’re fighting the dominant flow. Most participants are pushing in the opposite direction.
-Drawdowns & Stop-Outs
-Countertrend trades often get wicked or flushed before any meaningful move, especially without structure-based entries.
-Low Risk-Reward Ratio
-Trends offer sustained moves. Countertrend trades may have small take-profit zones or chop.
-Mental Drain & Doubt
-Fighting momentum causes anxiety, second-guessing, and emotional reactions.
-Missed Opportunities
-Focusing on fighting the trend makes you blind to the high-probability setups with the trend.
-Increased Transaction Costs
-More stop-outs and re-entries mean more fees, more friction.
-FOMO from Watching the Trend Run
-Entering countertrend means you might watch the trend explode without you.
-Confirmation Bias & Stubbornness
-Countertrend traders often look for reasons to justify staying in the wrong direction — leading to bigger losses.
🧠 Summary
In markup = bulls dominate → you swim with the current.
In markdown = bears dominate → going long is like pushing a rock uphill.
Trading with the trend is not just safer, it's smarter. The edge lives in momentum — not ego.
⚠️ Disclaimer
This indicator is for educational and analytical use only. It is not financial advice and should not be relied on for decision-making without personal analysis.
This is not a predictive tool. No indicator can forecast upcoming price movements.
What you see here is based purely on past market behavior — specifically, historical tops and bottoms that marked the start of confirmed reversals.
This script does not know where the next reversal begins, nor can it determine where a new Markup or Markdown starts or ends. It is designed to provide context, not prediction.
Always trade with responsibility and perform your own due diligence.
IU Inside out candlestick patternIU Inside Out Candlestick Pattern
This indicator identifies the Inside Out Candlestick Pattern — a unique 3-bar price action setup that captures strong market momentum and potential reversals with greater reliability than traditional patterns.
Pattern Logic:
The Inside Out pattern builds upon a classic engulfing setup by adding a breakout confirmation, making it a refined and filtered approach to candlestick analysis.
Bullish Inside Out Logic:
- Bar must be a bullish engulfing candle (engulfs previous bearish candle).
- Current bar must be bullish and must close above the high of the engulfing candle (a bullish breakout).
- When this setup is confirmed, a shaded green box is drawn around the range of the engulfing candle and its preceding bar.
Bearish Inside Out Logic:
- Bar must be a bearish engulfing candle (engulfs previous bullish candle).
- Current bar must be bearish and must close below the low of the engulfing candle (a bearish breakdown).
- When confirmed, a red box highlights the zone formed by the engulfing candle and its prior bar.
Why this is unique:
Unlike conventional candlestick indicators that trigger signals immediately after an engulfing pattern, this script adds a breakout condition to validate follow-through strength. This reduces false positives and gives traders a clearer edge. The pattern is also rare, which means it captures strong, decisive moves when it does appear.
How users can benefit:
- High-quality entries: Only shows patterns with proven follow-through, improving trade timing.
- Visual clarity: Boxes and labels highlight significant price zones for easy interpretation.
- Flexible use: Applicable across timeframes and instruments — ideal for both intraday and swing traders.
- Alerts included: Real-time alerts help traders stay updated without staring at charts all day.
This script is a powerful tool for price action traders looking to enhance pattern reliability and signal strength through structure-based breakout confirmation.
True Strength Index (TSI)%📌 Script Name: TSI Percentuale
This script is a custom True Strength Index (TSI) indicator that expresses momentum strength as a percentage from 0% to 100%, instead of the traditional TSI scale.
✅ What the Script Does
Calculates the standard TSI:
Uses double exponential smoothing of price changes and their absolute values.
Formula:
TSI_raw
=
100
×
DoubleSmoothed(ΔPrice)
DoubleSmoothed(|ΔPrice|)
TSI_raw=100×
DoubleSmoothed(|ΔPrice|)
DoubleSmoothed(ΔPrice)
Normalizes TSI to a percentile scale:
Over a user-defined lookback period, the script finds the lowest and highest TSI values.
It then rescales the current TSI to a value between 0% (minimum) and 100% (maximum).
50% represents neutral momentum (i.e., "flat").
Plots the result:
tsi_percent is plotted as a blue line.
Horizontal dashed/dotted lines are drawn at:
0% → strong downward momentum
50% → neutral
100% → strong upward momentum
⚙️ Inputs
Long Length: Long EMA smoothing period (default: 25)
Short Length: Short EMA smoothing period (default: 13)
Signal Length: (not used in this version, can be removed or extended)
Lookback Period: Number of bars to calculate min/max normalization (default: 100)
🧠 Why Use This Indicator
The classic TSI ranges around and can be hard to interpret.
This version makes TSI visually intuitive by converting it to percentile form, allowing easier comparison of momentum strength across time and instruments.
It’s particularly useful for defining zones like:
Above 70% = strong bullish
Below 30% = strong bearish
DDDDD: SMI Quad Sync📄DDDDD: SMI Quad Sync
A multi-timeframe momentum synchronization indicator using 4 Stochastic Oscillators with different lengths (9, 14, 40, 60) to detect collective oversold and overbought zones.
✅ Key Features:
Plots 4 stochastic lines with vertical offsets for better visual separation.
Generates a Long Signal (green square) when all 4 stochastics are below the oversold level.
Generates a Short Signal (red square) when all 4 stochastics are above the overbought level.
Use signals to confirm multi-timeframe momentum alignment or exhaustion.
🎯 How to Use:
Look for green square → potential LONG entry: signals multi-timeframe oversold condition.
Look for red square → potential SHORT entry: signals multi-timeframe overbought condition.
Combine with trend analysis, price action, or other confirmation for optimal entries.
📝 Notes:
The plotted stochastic lines are visually shifted (offset) for clarity; signals are computed from raw, unshifted values.
Designed for traders who prefer confluence across different stochastic lookback periods to improve confidence.
👉 Ideal for scalping, swing trading, or as a momentum filter in broader strategies.
Stochastic w/ Crossovers and Deadspace FilterThis is my extremely useful modification of the classic Stochastic indicator. It includes clear signals of crossovers and crossunders of the K/D lines.
Additionally, I added a "deadspace" filter to remove plotting of signals in the middle of the range, which tend to be misleading.
This can be incredibly useful to find entries and trends, especially when using 2 instances of this indicator at different lengths (such as one of 14,1,3 and another of 28,3,6).
The deadspace filter works based on the middle line, so a value of 20 will not plot any crossovers between 30-70.
EXODUS EXODUS by (DAFE) Trading Systems
EXODUS is a sophisticated trading algorithm built by Dskyz (DAFE) Trading Systems for competitive and competition purposes, designed to identify high-probability trades with robust risk management. this strategy leverages a multi-signal voting system, combining three core components—SPR, VWMO, and VEI—alongside ADX, choppiness filters, and ATR-based volatility gates to ensure trades are taken only in favorable market conditions. the algo uses a take-profit to stop-loss ratio, dynamic position sizing, and a strict voting mechanism requiring all signals to align before entering a trade.
EXODUS was not overfitted for any specific symbol. instead, it uses a generic tuned setting, making it versatile across various markets. while it can trade futures, it’s not currently set up for it but has the potential to do more with further development. visuals are intentionally minimal due to its competition focus, prioritizing performance over aesthetics. a more visually stunning version may be released in the future with enhanced graphics.
The Unique Core Components Developed for EXODUS
SPR (Session Price Recalibration)
SPR measures momentum during regular trading hours (RTH, 0930-1600, America/New_York) to catch session-specific trends.
spr_lookback = input.int(15, "SPR Lookback") this sets how many bars back SPR looks to calculate momentum (default 15 bars). it compares the current session’s price-volume score to the score 15 bars ago to gauge momentum strength.
how it works: a longer lookback smooths out the signal, focusing on bigger trends. a shorter one makes SPR more sensitive to recent moves.
how to adjust: on a 1-hour chart, 15 bars is 15 hours (about 2 trading days). if you’re on a shorter timeframe like 5 minutes, 15 bars is just 75 minutes, so you might want to increase it to 50 or 100 to capture more meaningful trends. if you’re trading a choppy stock, a shorter lookback (like 5) can help catch quick moves, but it might give more false signals.
spr_threshold = input.float (0.7, "SPR Threshold")
this is the cutoff for SPR to vote for a trade (default 0.7). if SPR’s normalized value is above 0.7, it votes for a long; below -0.7, it votes for a short.
how it works: SPR normalizes its momentum score by ATR, so this threshold ensures only strong moves count. a higher threshold means fewer trades but higher conviction.
how to adjust: if you’re getting too few trades, lower it to 0.5 to let more signals through. if you’re seeing too many false entries, raise it to 1.0 for stricter filtering. test on your chart to find a balance.
spr_atr_length = input.int(21, "SPR ATR Length") this sets the ATR period (default 21 bars) used to normalize SPR’s momentum score. ATR measures volatility, so this makes SPR’s signal relative to market conditions.
how it works: a longer ATR period (like 21) smooths out volatility, making SPR less jumpy. a shorter one makes it more reactive.
how to adjust: if you’re trading a volatile stock like TSLA, a longer period (30 or 50) can help avoid noise. for a calmer stock, try 10 to make SPR more responsive. match this to your timeframe—shorter timeframes might need a shorter ATR.
rth_session = input.session("0930-1600","SPR: RTH Sess.") rth_timezone = "America/New_York" this defines the session SPR uses (0930-1600, New York time). SPR only calculates momentum during these hours to focus on RTH activity.
how it works: it ignores pre-market or after-hours noise, ensuring SPR captures the main market action.
how to adjust: if you trade a different session (like London hours, 0300-1200 EST), change the session to match. you can also adjust the timezone if you’re in a different region, like "Europe/London". just make sure your chart’s timezone aligns with this setting.
VWMO (Volume-Weighted Momentum Oscillator)
VWMO measures momentum weighted by volume to spot sustained, high-conviction moves.
vwmo_momlen = input.int(21, "VWMO Momentum Length") this sets how many bars back VWMO looks to calculate price momentum (default 21 bars). it takes the price change (close minus close 21 bars ago).
how it works: a longer period captures bigger trends, while a shorter one reacts to recent swings.
how to adjust: on a daily chart, 21 bars is about a month—good for trend trading. on a 5-minute chart, it’s just 105 minutes, so you might bump it to 50 or 100 for more meaningful moves. if you want faster signals, drop it to 10, but expect more noise.
vwmo_volback = input.int(30, "VWMO Volume Lookback") this sets the period for calculating average volume (default 30 bars). VWMO weights momentum by volume divided by this average.
how it works: it compares current volume to the average to see if a move has strong participation. a longer lookback smooths the average, while a shorter one makes it more sensitive.
how to adjust: for stocks with spiky volume (like NVDA on earnings), a longer lookback (50 or 100) avoids overreacting to one-off spikes. for steady volume stocks, try 20. match this to your timeframe—shorter timeframes might need a shorter lookback.
vwmo_smooth = input.int(9, "VWMO Smoothing")
this sets the SMA period to smooth VWMO’s raw momentum (default 9 bars).
how it works: smoothing reduces noise in the signal, making VWMO more reliable for voting. a longer smoothing period cuts more noise but adds lag.
how to adjust: if VWMO is too jumpy (lots of false votes), increase to 15. if it’s too slow and missing trades, drop to 5. test on your chart to see what keeps the signal clean but responsive.
vwmo_threshold = input.float(10, "VWMO Threshold") this is the cutoff for VWMO to vote for a trade (default 10). above 10, it votes for a long; below -10, a short.
how it works: it ensures only strong momentum signals count. a higher threshold means fewer but stronger trades.
how to adjust: if you want more trades, lower it to 5. if you’re getting too many weak signals, raise it to 15. this depends on your market—volatile stocks might need a higher threshold to filter noise.
VEI (Velocity Efficiency Index)
VEI measures market efficiency and velocity to filter out choppy moves and focus on strong trends.
vei_eflen = input.int(14, "VEI Efficiency Smoothing") this sets the EMA period for smoothing VEI’s efficiency calc (bar range / volume, default 14 bars).
how it works: efficiency is how much price moves per unit of volume. smoothing it with an EMA reduces noise, focusing on consistent efficiency. a longer period smooths more but adds lag.
how to adjust: for choppy markets, increase to 20 to filter out noise. for faster markets, drop to 10 for quicker signals. this should match your timeframe—shorter timeframes might need a shorter period.
vei_momlen = input.int(8, "VEI Momentum Length") this sets how many bars back VEI looks to calculate momentum in efficiency (default 8 bars).
how it works: it measures the change in smoothed efficiency over 8 bars, then adjusts for inertia (volume-to-range). a longer period captures bigger shifts, while a shorter one reacts faster.
how to adjust: if VEI is missing quick reversals, drop to 5. if it’s too noisy, raise to 12. test on your chart to see what catches the right moves without too many false signals.
vei_threshold = input.float(4.5, "VEI Threshold") this is the cutoff for VEI to vote for a trade (default 4.5). above 4.5, it votes for a long; below -4.5, a short.
how it works: it ensures only strong, efficient moves count. a higher threshold means fewer trades but higher quality.
how to adjust: if you’re not getting enough trades, lower to 3. if you’re seeing too many false entries, raise to 6. this depends on your market—fast stocks like NQ1 might need a lower threshold.
Features
Multi-Signal Voting: requires all three signals (SPR, VWMO, VEI) to align for a trade, ensuring high-probability setups.
Risk Management: uses ATR-based stops (2.1x) and take-profits (4.1x), with dynamic position sizing based on a risk percentage (default 0.4%).
Market Filters: ADX (default 27) ensures trending conditions, choppiness index (default 54.5) avoids sideways markets, and ATR expansion (default 1.12) confirms volatility.
Dashboard: provides real-time stats like SPR, VWMO, VEI values, net P/L, win rate, and streak, with a clean, functional design.
Visuals
EXODUS prioritizes performance over visuals, as it was built for competitive and competition purposes. entry/exit signals are marked with simple labels and shapes, and a basic heatmap highlights market regimes. a more visually stunning update may be released later, with enhanced graphics and overlays.
Usage
EXODUS is designed for stocks and ETFs but can be adapted for futures with adjustments. it performs best in trending markets with sufficient volatility, as confirmed by its generic tuning across symbols like TSLA, AMD, NVDA, and NQ1. adjust inputs like SPR threshold, VWMO smoothing, or VEI momentum length to suit specific assets or timeframes.
Setting I used: (Again, these are a generic setting, each security needs to be fine tuned)
SPR LB = 19 SPR TH = 0.5 SPR ATR L= 21 SPR RTH Sess: 9:30 – 16:00
VWMO L = 21 VWMO LB = 18 VWMO S = 6 VWMO T = 8
VEI ES = 14 VEI ML = 21 VEI T = 4
R % = 0.4
ATR L = 21 ATR M (S) =1.1 TP Multi = 2.1 ATR min mult = 0.8 ATR Expansion = 1.02
ADX L = 21 Min ADX = 25
Choppiness Index = 14 Chop. Max T = 55.5
Backtesting: TSLA
Frame: Jan 02, 2018, 08:00 — May 01, 2025, 09:00
Slippage: 3
Commission .01
Disclaimer
this strategy is for educational purposes. past performance is not indicative of future results. trading involves significant risk, and you should only trade with capital you can afford to lose. always backtest and validate any strategy before using it in live markets.
(This publishing will most likely be taken down do to some miscellaneous rule about properly displaying charting symbols, or whatever. Once I've identified what part of the publishing they want to pick on, I'll adjust and repost.)
About the Author
Dskyz (DAFE) Trading Systems is dedicated to building high-performance trading algorithms. EXODUS is a product of rigorous research and development, aimed at delivering consistent, and data-driven trading solutions.
Use it with discipline. Use it with clarity. Trade smarter.
**I will continue to release incredible strategies and indicators until I turn this into a brand or until someone offers me a contract.
2025 Created by Dskyz, powered by DAFE Trading Systems. Trade smart, trade bold.
OTE & A-B-C Zone Indicator SwiftEdgeOTE & A-B-C Zone Indicator SwiftEdge
Overview
The OTE & A-B-C Zone Indicator SwiftEdge is a versatile tool designed to help traders identify high-probability trading setups using a combination of Optimal Trade Entry (OTE) zones, Fibonacci levels, and A-B-C price patterns. This indicator is particularly useful for traders who rely on price action and Fibonacci-based strategies to find entry points, set stop-losses, and target potential take-profit levels. By integrating swing point detection, trend analysis, and Fibonacci projections, SwiftEdge provides a clear visual framework for making informed trading decisions across various timeframes.
What It Does
SwiftEdge identifies key price levels and zones to guide your trading:
OTE Zone: Highlights the Optimal Trade Entry zone between swing points A (swing high) and B (swing low) using Fibonacci retracement levels (default: 0.618 to 0.786). This zone represents a high-probability area for price reversals, making it an ideal entry point for trades.
A-B-C Pattern: Marks the latest swing points as A (swing high), B (swing low), and C (projected take-profit level) with dashed lines and labels. A solid line connects A to B to C, visually illustrating the price movement from entry to target.
Take-Profit Zones: Projects three customizable take-profit levels (TP1, TP2, TP3) based on Fibonacci extensions (default: 1.272, 1.618, 2.0) from the A-B swing, helping traders plan exits with favorable risk-reward ratios.
How It Works
SwiftEdge combines several technical components to create a cohesive trading system:
Swing Point Detection: Identifies significant swing highs (A) and swing lows (B) using a dynamic lookback period that adjusts to the selected timeframe. On lower timeframes like 1-minute charts, an ATR-based filter reduces noise by requiring price movements to exceed a threshold (0.5 * ATR(14)).
Trend Analysis: Uses an Exponential Moving Average (EMA) to determine the trend direction (default: 50-period EMA on 1H). The indicator marks uptrends (price above EMA) in green and downtrends (price below EMA) in red, ensuring trades align with the market's direction.
Fibonacci Levels: Applies Fibonacci retracement to define the OTE zone between A and B, and Fibonacci extensions to project take-profit levels (C) beyond the initial swing. This approach leverages the natural tendency of markets to respect Fibonacci ratios for reversals and extensions.
Visual Clarity: Displays only the latest A-B-C pattern with three dashed lines (A, B, C) and a solid connecting line, ensuring the chart remains uncluttered and easy to interpret.
The combination of these elements creates a structured setup where the OTE zone (between A and B) serves as an entry point, while the projected C level offers a target, all within the context of the prevailing trend. This synergy makes SwiftEdge a powerful tool for traders seeking to combine price action, trend analysis, and Fibonacci strategies.
How to Use
Add the Indicator: Apply the indicator to your chart via TradingView's indicator menu.
Identify the Trend: The OTE zone and A-B-C pattern will be colored green in uptrends (price above EMA) or red in downtrends (price below EMA). Use this to determine the market direction.
Entry Point: Look for price reversals within the OTE zone (between A and B). This zone is typically between the 0.618 and 0.786 Fibonacci retracement levels of the A-B swing, making it a high-probability area for entries.
Stop-Loss: Place your stop-loss below the OTE zone in an uptrend (or above in a downtrend) to protect against false breakouts.
Take-Profit Targets: Use the projected take-profit zones (TP1, TP2, TP3) as potential exit levels. These are based on Fibonacci extensions and can be toggled on/off in the settings.
Customization:
Adjust the Fibonacci levels for the OTE zone (Fibonacci Level 1 and Fibonacci Level 2) to suit your strategy.
Modify the take-profit levels (Fibonacci Extension Level for TP1/TP2/TP3) to target different extension ratios.
Change the lookback period (Base Lookback Period) and EMA period (Base EMA Period) to fine-tune swing point detection and trend sensitivity.
Customize colors for uptrends, downtrends, and A-B-C lines to match your preferences.
What Makes It Unique
SwiftEdge stands out by integrating swing point detection, Fibonacci-based OTE zones, and A-B-C price patterns into a single, visually intuitive indicator. Unlike standalone Fibonacci tools or trend indicators, SwiftEdge combines these elements to provide a complete trading setup: it identifies entry zones (OTE), confirms trend direction (EMA), and projects take-profit targets (Fibonacci extensions). The dynamic timeframe adjustment ensures consistent performance across all chart intervals, while the clean A-B-C visualization (with only the latest pattern displayed) prevents chart clutter, making it easier to focus on the most relevant price levels.
Notes
This indicator is designed for traders familiar with price action and Fibonacci strategies. It does not guarantee profits and should be used in conjunction with other analysis tools and proper risk management.
Performance may vary depending on market conditions and timeframe. Test the indicator on a demo account before using it in live trading.
nineLivesUtilLibLibrary "nineLivesUtilLib"
isDateInRange(currentTime, useTimeFilter, startDate, endDate)
Checks if the current time is within the specified date range.
Parameters:
currentTime (int) : The current bar's time (time).
useTimeFilter (bool) : Bool 📅: Enable the date range filter.
startDate (int) : Timestamp 📅: The start date for the filter.
endDate (int) : Timestamp 📅: The end date for the filter.
Returns: True if the current time is within the range or filtering is disabled, false otherwise.
@example
inDateRange = nineLivesUtilLib.isDateInRange(time, useTimeFilter, startDate, endDate)
if inDateRange
// Execute trading logic
checkVolumeCondition(currentVolume, useVolumeFilter, volumeThresholdMultiplier, volumeLength)
Checks if the current volume meets the threshold condition.
Parameters:
currentVolume (float) : The current bar's volume (volume).
useVolumeFilter (bool) : Bool 📊: Enable the volume filter.
volumeThresholdMultiplier (float) : Float 📊: Volume threshold relative to average (e.g., 1.5 for 1.5x average).
volumeLength (int) : Int 📊: Lookback length for the volume average.
Returns: True if the volume condition is met or filtering is disabled, false otherwise.
@example
volumeOk = nineLivesUtilLib.checkVolumeCondition(volume, useVolumeFilter, volumeThreshold, volumeLength)
if volumeOk
// Proceed with trading logic
checkMultiTimeframeCondition(currentClose, currentOpen, htfClose, htfOpen, useMultiTimeframe, alignment)
Checks alignment with higher timeframe direction.
Parameters:
currentClose (float) : Float: The current bar's closing price (close).
currentOpen (float) : Float: The current bar's opening price (open).
htfClose (float) : Float: The closing price from the higher timeframe (must be fetched by the calling script using request.security).
htfOpen (float) : Float: The opening price from the higher timeframe (must be fetched by the calling script using request.security).
useMultiTimeframe (bool) : Bool ⏱️: Enable multi-timeframe analysis.
alignment (string) : String ⏱️: Desired alignment ("same", "opposite", "any").
Returns: True if the timeframe alignment condition is met or analysis is disabled, false otherwise.
@example
// In the calling script:
= request.security(syminfo.tickerid, higherTimeframe, )
tfOk = nineLivesUtilLib.checkMultiTimeframeCondition(close, open, htfClose, htfOpen, useMultiTimeframe, tfAlignment)
if tfOk
// Proceed with trading logic
checkMarketRegime(useMarketRegime, regimeIndicator, regimeThreshold, regimeLength, regimeMode)
Detects the market regime (trending or ranging) and checks if trading is allowed.
Parameters:
useMarketRegime (bool) : Bool 🔍: Enable market regime detection.
regimeIndicator (string) : String 🔍: Indicator to use ("ADX" or "Volatility").
regimeThreshold (int) : Int 🔍: Threshold for trend strength/volatility.
regimeLength (simple int) : Int 🔍: Lookback length for the indicator.
regimeMode (string) : String 🔍: Trading mode based on regime ("trend_only", "range_only", "adaptive").
Returns: A tuple containing:
: conditionMet (bool) - True if trading is allowed based on the regime mode and detection, false otherwise.
: inTrendingRegime (bool) - True if the current regime is trending based on the indicator and threshold.
@example
= nineLivesUtilLib.checkMarketRegime(useMarketRegime, regimeIndicator, regimeThreshold, regimeLength, regimeMode)
if regimeOk
// Proceed with trading logic
applyCooldown(buySignal, sellSignal, cooldownBars)
Applies a cooldown period after a signal.
Parameters:
buySignal (bool) : Bool: Buy signal (potentially after primary entry logic).
sellSignal (bool) : Bool: Sell signal (potentially after primary entry logic).
cooldownBars (int) : Int ⏳: The number of bars to wait after a signal before allowing another.
Returns: A tuple containing:
: cooldownFilteredBuy (bool) - Buy signal after cooldown filter.
: cooldownFilteredSell (bool) - Sell signal after cooldown filter.
@example
= nineLivesUtilLib.applyCooldown(rawBuySignal, rawSellSignal, iCool)
applyAllFilters(rawBuy, rawSell, inDateRange, tradeDirection, volumeOk, tfOk, regimeOk, drawdownOk, cooldownOkBuy, cooldownOkSell)
Applies all filtering conditions to the buy and sell signals.
Parameters:
rawBuy (bool) : Bool: The initial buy signal candidate (from primary entry logic, e.g., after cooldown).
rawSell (bool) : Bool: The initial sell signal candidate (from primary entry logic, e.g., after cooldown).
inDateRange (bool) : Bool 📅: Result from isDateInRange.
tradeDirection (string) : String 🔄: Overall trade direction preference ("longs_only", "shorts_only", "both").
volumeOk (bool) : Bool 📊: Result from checkVolumeCondition.
tfOk (bool) : Bool ⏱️: Result from checkMultiTimeframeCondition.
regimeOk (bool) : Bool 🔍: Result from checkMarketRegime.
drawdownOk (bool) : Bool 📉: Result from checkDrawdownExceeded (or equivalent).
cooldownOkBuy (bool) : Bool ⏳: Result from applyCooldown for buy.
cooldownOkSell (bool) : Bool ⏳: Result from applyCooldown for sell.
Returns: A tuple containing:
: finalBuySignal (bool) - The final buy signal after all filters.
: finalSellSignal (bool) - The final sell signal after all filters.
@example
= nineLivesUtilLib.applyAllFilters(cooldownBuy, cooldownSell, inDateRange, tradeDirection, volumeOk, tfOk, regimeOk, !drawdownExceeded, cooldownBuy, cooldownSell)
NOTE: This function filters signals generated by your primary entry logic (e.g., EMA crossover).
checkDrawdownExceeded(currentEquity, useMaxDrawdown, maxDrawdownPercent)
Tracks maximum equity and checks if current drawdown exceeds a threshold.
Parameters:
currentEquity (float) : Float: The strategy's current equity (strategy.equity).
useMaxDrawdown (bool) : Bool 📉: Enable max drawdown protection.
maxDrawdownPercent (float) : Float 📉: The maximum allowed drawdown as a percentage.
Returns: True if drawdown protection is enabled and the current drawdown exceeds the threshold, false otherwise.
@example
drawdownExceeded = nineLivesUtilLib.checkDrawdownExceeded(strategy.equity, useMaxDrawdown, maxDrawdownPercent)
if drawdownExceeded
// Consider stopping entries or exiting positions in the strategy script
calculateExitPrice(positionAvgPrice, percentage, isStop, isLong)
Calculates a stop loss or take profit price based on a percentage from the average entry price.
Parameters:
positionAvgPrice (float) : Float: The average price of the current position (strategy.position_avg_price).
percentage (float) : Float: The stop loss or take profit percentage (e.g., 2.0 for 2%).
isStop (bool) : Bool: True if calculating a stop loss price, false if calculating a take profit price.
isLong (bool) : Bool: True if the position is long, false if short.
Returns: The calculated stop price or take profit price, or na if no position or percentage is invalid.
@example
longSL = nineLivesUtilLib.calculateExitPrice(strategy.position_avg_price, stopLossPercent, true, true)
shortTP = nineLivesUtilLib.calculateExitPrice(strategy.position_avg_price, takeProfitPercent, false, false)
calculateTrailingStopLevel(positionAvgPrice, trailOffsetPercent, trailPercent, currentHigh, currentLow, isLong)
Calculates the current trailing stop level for a position.
Parameters:
positionAvgPrice (float) : Float: The average price of the current position (strategy.position_avg_price).
trailOffsetPercent (float) : Float 🔄: The percentage price movement to activate the trailing stop.
trailPercent (float) : Float 🔄: The percentage distance the stop trails behind the price.
currentHigh (float) : Float: The current bar's high (high).
currentLow (float) : Float: The current bar's low (low).
isLong (bool) : Bool: True if the position is long, false if short.
Returns: The calculated trailing stop price if active, otherwise na.
@example
longTrailStop = nineLivesUtilLib.calculateTrailingStopLevel(strategy.position_avg_price, trailOffset, trailPercent, high, low, true)
shortTrailStop = nineLivesUtilLib.calculateTrailingStopLevel(strategy.position_avg_price, trailOffset, trailPercent, high, low, false)
if not na(longTrailStop)
strategy.exit("Long Trail", from_entry="Long", stop=longTrailStop)
Support/Resistance Breakout DetectorThis indicator automatically detects and plots dynamic support and resistance levels using pivot highs and lows.
✅ It draws red resistance lines and blue support lines,
✅ The lines extend forward but automatically stop when the price touches them,
✅ It monitors for breakouts with strong volume,
✅ When a breakout happens, it shows labels like “B” or “Bull Wick” / “Bear Wick” on the chart,
✅ It also triggers alerts when support or resistance breaks with high volume.
Main settings:
Pivot lookback period
Show/hide breakout labels
Minimum volume for breakout
Maximum extension length for lines
This tool helps traders easily spot key price levels and watch for meaningful breakouts.
ATR Strength Index~~~~~~~ATRRSI~~~~~~~~~
Understanding the ATR Strength IndexThe "ATR Strength Index" (ATR SI) is a custom technical indicator derived by applying the calculation methodology of the Relative Strength Index (RSI) to the values of the Average True Range (ATR).
While the standard RSI measures the momentum of price changes, the ATR SI measures the momentum of volatility itself, as represented by the ATR.It is important to note that this is not a standard, widely recognised indicator like the traditional RSI or ATR.
It's a custom construction designed to provide a different perspective on market dynamics – specifically, the speed and magnitude of changes in volatility.
How it is Calculated
The calculation of the ATR Strength Index follows the same steps as the standard RSI, but the input data is the ATR value for each period, rather than the price.Let ATRi be the Average True Range value for the current period i.Let ATRi−1 be the Average True Range value for the previous period i−1.Calculate the period-over-period change in ATR:ΔATRi=ATRi−ATRi−1Separate ATR Gains and ATR Losses:If ΔATRi>0, then ATR,Gaini=ΔATRi and ATR,Lossi=0.If ΔATRi<0, then ATR,Gaini=0 and ATR,Lossi=∣ΔATRi∣.If ΔATRi=0, then ATR,Gaini=0 and ATR,Lossi=0.Calculate the Smoothed Average ATR Gain and Average ATR Loss over a specified lookback period (let's call this the "RSI Length" or n).
This typically uses a smoothing method similar to Wilder's original RSI calculation (a modified moving average or exponential moving average).Average,ATR,Gainn=Smoothed Average of ATR,Gain over n periodsAverage,ATR,Lossn=Smoothed Average of ATR,Loss over n periodsCalculate the ATR Relative Strength (ATR RS):ATR,RSn=Average,ATR,LossnAverage,ATR,GainnCalculate the ATR Strength Index:ATR,SIn=100−1+ATR,RSn100The resulting index oscillates between 0 and 100, just like the standard RSI.
How to Use It
Interpreting the ATR Strength Index focuses on the momentum of volatility rather than price momentum:High Values (e.g., above 70): Indicate that volatility (as measured by ATR) has been increasing rapidly over the chosen period.
This could suggest a market transitioning from a period of low volatility to high volatility, potentially preceding or accompanying strong directional price moves or increased choppiness.Low Values (e.g., below 30): Indicate that volatility has been decreasing rapidly.
This could suggest a market transitioning from high volatility to low volatility, potentially entering a period of consolidation or ranging price action.Midline (50): Represents a balance between increasing and decreasing volatility momentum.Divergence: You could potentially look for divergence between the ATR value itself and the ATR Strength Index. For example, if ATR is making higher highs but the ATR SI is making lower highs, it might suggest that while volatility is still increasing, the speed of that increase is slowing down. The interpretation and reliability of such divergence would need careful testing.
This indicator is best used as a supplementary tool to gain insight into the underlying volatility dynamics of the market, rather than as a primary signal generator for price direction.
It can help in understanding the current market environment – whether volatility is picking up or dying down – which can inform the suitability of different trading strategies (e.g., trend-following strategies might be more effective when volatility momentum is high, while range-bound strategies might suit periods of low volatility momentum).
Uniqueness
The ATR Strength Index is unique because it applies a momentum oscillator's logic (RSI) to a volatility indicator's output (ATR).Standard RSI: Focuses on the directional force of price movements.Standard ATR: Measures the amount of volatility, regardless of direction.ATR Strength Index: Measures the speed and direction of change in volatility.
It provides a perspective that neither the standard RSI nor ATR offers on their own – a quantified measure of how quickly the market's choppiness or range is expanding or contracting. This can be valuable for traders who incorporate volatility analysis into their decision-making process.In summary, the ATR Strength Index is a custom indicator that adapts the RSI calculation to measure the momentum of volatility, offering a unique view on market dynamics by showing how rapidly volatility is increasing or decreasing.
ADX Full [Titans_Invest]ADX Full
This is, without a doubt, the most complete ADX indicator available on TradingView — and quite possibly the most advanced in the world. We took the classic ADX structure and fully optimized it, preserving its essence while elevating its functionality to a whole new level. Every aspect has been enhanced — from internal logic to full visual customization. Now you can see exactly what’s happening inside the indicator in real time, with tags, flags, and informative levels. This indicator includes over 22 long entry conditions and 22 short entry conditions , covering absolutely every possibility the ADX can offer. Everything is transparent, adjustable, and ready to fit seamlessly into any professional trading strategy. This isn’t just another ADX — it’s the definitive ADX, built for traders who take the market seriously.
⯁ WHAT IS THE ADX❓
The Average Directional Index (ADX) is a technical analysis indicator developed by J. Welles Wilder. It measures the strength of a trend in a market, regardless of whether the trend is up or down.
The ADX is an integral part of the Directional Movement System, which also includes the Plus Directional Indicator (+DI) and the Minus Directional Indicator (-DI). By combining these components, the ADX provides a comprehensive view of market trend strength.
⯁ HOW TO USE THE ADX❓
The ADX is calculated based on the moving average of the price range expansion over a specified period (usually 14 periods). It is plotted on a scale from 0 to 100 and has three main zones:
Strong Trend: When the ADX is above 25, indicating a strong trend.
Weak Trend: When the ADX is below 20, indicating a weak or non-existent trend.
Neutral Zone: Between 20 and 25, where the trend strength is unclear.
⯁ ENTRY CONDITIONS
The conditions below are fully flexible and allow for complete customization of the signal.
______________________________________________________
🔹 CONDITIONS TO BUY 📈
______________________________________________________
• Signal Validity: The signal will remain valid for X bars .
• Signal Sequence: Configurable as AND or OR .
🔹 +DI > -DI
🔹 +DI < -DI
🔹 +DI > ADX
🔹 +DI < ADX
🔹 -DI > ADX
🔹 -DI < ADX
🔹 ADX > Threshold
🔹 ADX < Threshold
🔹 +DI > Threshold
🔹 +DI < Threshold
🔹 -DI > Threshold
🔹 -DI < Threshold
🔹 +DI (Crossover) -DI
🔹 +DI (Crossunder) -DI
🔹 +DI (Crossover) ADX
🔹 +DI (Crossunder) ADX
🔹 +DI (Crossover) Threshold
🔹 +DI (Crossunder) Threshold
🔹 -DI (Crossover) ADX
🔹 -DI (Crossunder) ADX
🔹 -DI (Crossover) Threshold
🔹 -DI (Crossunder) Threshold
______________________________________________________
______________________________________________________
🔸 CONDITIONS TO SELL 📉
______________________________________________________
• Signal Validity: The signal will remain valid for X bars .
• Signal Sequence: Configurable as AND or OR .
🔸 +DI > -DI
🔸 +DI < -DI
🔸 +DI > ADX
🔸 +DI < ADX
🔸 -DI > ADX
🔸 -DI < ADX
🔸 ADX > Threshold
🔸 ADX < Threshold
🔸 +DI > Threshold
🔸 +DI < Threshold
🔸 -DI > Threshold
🔸 -DI < Threshold
🔸 +DI (Crossover) -DI
🔸 +DI (Crossunder) -DI
🔸 +DI (Crossover) ADX
🔸 +DI (Crossunder) ADX
🔸 +DI (Crossover) Threshold
🔸 +DI (Crossunder) Threshold
🔸 -DI (Crossover) ADX
🔸 -DI (Crossunder) ADX
🔸 -DI (Crossover) Threshold
🔸 -DI (Crossunder) Threshold
______________________________________________________
______________________________________________________
🤖 AUTOMATION 🤖
• You can automate the BUY and SELL signals of this indicator.
______________________________________________________
______________________________________________________
⯁ UNIQUE FEATURES
______________________________________________________
Signal Validity: The signal will remain valid for X bars
Signal Sequence: Configurable as AND/OR
Condition Table: BUY/SELL
Condition Labels: BUY/SELL
Plot Labels in the Graph Above: BUY/SELL
Automate and Monitor Signals/Alerts: BUY/SELL
Signal Validity: The signal will remain valid for X bars
Signal Sequence: Configurable as AND/OR
Table of Conditions: BUY/SELL
Conditions Label: BUY/SELL
Plot Labels in the graph above: BUY/SELL
Automate & Monitor Signals/Alerts: BUY/SELL
______________________________________________________
📜 SCRIPT : ADX Full
🎴 Art by : @Titans_Invest & @DiFlip
👨💻 Dev by : @Titans_Invest & @DiFlip
🎑 Titans Invest — The Wizards Without Gloves 🧤
✨ Enjoy!
______________________________________________________
o Mission 🗺
• Inspire Traders to manifest Magic in the Market.
o Vision 𐓏
• To elevate collective Energy 𐓷𐓏
BBands Channels with EMAs# **BBands Channels with EMAs Indicator Explanation**
---
## **📌 Feature Overview**
### **1. Bollinger Bands**
- **Basis Line**: 160-period SMA (adjustable)
- **Inner Bands**:
- **Upper**: Basis + 2× Standard Deviation
- **Lower**: Basis - 2× Standard Deviation
- **Outer Bands**:
- **Upper Top**: Basis + 3× Standard Deviation
- **Lower Low**: Basis - 3× Standard Deviation
- **Fill Effect**: Semi-transparent black fill between inner and outer bands
### **2. Exponential Moving Averages (EMAs)**
| Period | Purpose | Line Style |
|--------------|-----------------------------|------------------|
| **EMA 27** | Short-term trend | Thin line |
| **EMA 120** | Short-to-medium-term trend | Medium line |
| **EMA 200** | Medium-term trend | Medium line |
| **EMA 1120** | Ultra-long-term trend | Thick line |
---
## **⚙️ Parameter Settings**
### **Bollinger Bands**
| Parameter | Default | Description |
|---------------|---------|--------------------------------------|
| `length` | 160 | SMA calculation period |
| `mult` | 2.0 | Standard deviation multiplier (inner bands) |
| `multOuter` | 3.0 | Standard deviation multiplier (outer bands) |
| `offset` | 0 | Time offset for plots (±500 bars) |
### **Exponential Moving Averages (EMAs)**
| Parameter | Default | Description |
|-----------------|---------|---------------------------|
| `ema1Length` | 27 | EMA 1 period |
| `ema2Length` | 120 | EMA 2 period |
| `ema3Length` | 200 | EMA 3 period |
| `ema4Length` | 1120 | EMA 4 period |
---
## **📊 Use Cases**
### **1. Trend Confirmation**
- **Bullish Trend**: Price above EMA200 + Bollinger Band expansion
- **Bearish Trend**: Price below EMA200 + Bollinger Band expansion
### **2. Overbought/Oversold Signals**
- **Upper Band Touch**: Price reaches Upper Top → Potential overbought
- **Lower Band Touch**: Price reaches Lower Low → Potential oversold
### **3. Volatility Strategies**
- **Band Squeeze**: Narrowing gap between bands → Breakout warning
- **Band Expansion**: Price breaks outer band → Trend acceleration
---
**✅ Summary**
This indicator combines **Bollinger Bands + Multi-period EMAs** for:
- Trend tracking
- Volatility analysis
- Multi-timeframe strategies
---
# **BBands Channels with EMAs 指標說明**
---
## **📌 功能概述**
### **1. 布林通道 (Bollinger Bands)**
- **基礎線 (Basis Line)**: 160週期SMA(可調整)
- **內通道 (Inner Bands)**:
- 上軌 (Upper): 基礎線 + 2倍標準差
- 下軌 (Lower): 基礎線 - 2倍標準差
- **外通道 (Outer Bands)**:
- 上外軌 (Upper Top): 基礎線 + 3倍標準差
- 下外軌 (Lower Low): 基礎線 - 3倍標準差
- **填充效果**: 內外通道間半透明黑色填充
### **2. 指數移動平均線 (EMAs)**
| 週期 | 用途 | 線條樣式 |
|-------------|-------------------|-----------------|
| **EMA 27** | 短期趨勢 | 細線 |
| **EMA 120** | 中短期趨勢 | 中等線 |
| **EMA 200** | 中期趨勢 | 中等線 |
| **EMA 1120**| 超長期趨勢 | 粗線 |
---
## **⚙️ 參數設定**
### **布林通道 (Bollinger Bands)**
| 參數名 | 預設值 | 說明 |
|-------------|--------|---------------------------|
| `length` | 160 | SMA計算週期 |
| `mult` | 2.0 | 內通道標準差倍數 |
| `multOuter` | 3.0 | 外通道標準差倍數 |
| `offset` | 0 | 線圖時間偏移(±500根K棒) |
### **指數移動平均線 (EMAs)**
| 參數名 | 預設值 | 說明 |
|----------------|---------|-------------------|
| `ema1Length` | 27 | 第一條EMA週期 |
| `ema2Length` | 120 | 第二條EMA週期 |
| `ema3Length` | 200 | 第三條EMA週期 |
| `ema4Length` | 1120 | 第四條EMA週期 |
---
## **📊 應用場景**
### **1. 趨勢確認**
- **多頭趨勢**: 價格在EMA200上方 + 布林通道擴張
- **空頭趨勢**: 價格在EMA200下方 + 布林通道擴張
### **2. 超買超賣信號**
- **觸及外軌**: 價格觸碰Upper Top → 可能超買
- **觸及下軌**: 價格觸碰Lower Low → 可能超賣
### **3. 波動率策略**
- **通道收窄**: 內外通道間距縮小 → 突破預警
- **通道擴張**: 價格突破外軌 → 趨勢加速
---
**✅ 總結**
本指標透過**布林通道+多週期EMA**的組合,適用於:
- 趨勢跟蹤
- 波動率分析
- 多時間框架策略