ATR Extension from Moving Average, with Robust Sigma Bands
# ATR Extension from Moving Average, with Robust Sigma Bands
**What it does**
This indicator measures how far price is from a selected moving average, expressed in **ATR multiples**, then overlays **robust sigma bands** around the long run central tendency of that extension. Positive values mean price is extended above the MA, negative values mean price is extended below the MA. The signal adapts to volatility through ATR, which makes comparisons consistent across symbols and regimes.
**Why it can help**
* Normalizes distance to an MA by ATR, which controls for changing volatility
* Uses the **bar’s extreme** against the MA, not just the close, so it captures true stretch
* Computes a **median** and **standard deviation** of the extension over a multi-year window, which yields simple, intuitive bands for trend and mean-reversion decisions
---
## Inputs
* **MA length**: default 50, options 200, 64, 50, 20, 9, 4, 3
* **MA timeframe**: Daily or Weekly. The MA is computed on the chosen higher timeframe through `request.security`.
* **MA type**: EMA or SMA
* **Years lookback**: 1 to 10 years, default 5. This sets the sample for the median and sigma calculation, `years * 365` bars.
* **Line width**: visual width of the plotted extension series
* **Table**: optional on-chart table that displays the current long run **median** and **sigma** of the extension, with selectable text size
**Fixed parameters in this release**
* **ATR length**: 20 on the daily timeframe
* **ATR type**: classic ATR. ADR percent is not enabled in this version.
---
## Plots and colors
* **Main plot**: “Extension from 50d EMA” by default. Value is in **ATR multiples**.
* **Reference lines**:
* `median` line, black dashed
* +2σ orange, +3σ red
* −2σ blue, −3σ green
---
## How it is calculated
1. **Moving average** on the selected higher timeframe: EMA or SMA of `close`.
2. **Extreme-based distance** from MA, as a percent of price:
* If `close > MA`, use `(high − MA) / close * 100`
* Else, use `(low − MA) / close * 100`
3. **ATR percent** on the daily timeframe: `ATR(20) / close * 100`
4. **ATR multiples**: extension percent divided by ATR percent
5. **Robust center and spread** over the chosen lookback window:
* Center: **median** of the ATR-multiple series
* Spread: **standard deviation** of that series
* Bands: center ± 1σ, 2σ, 3σ, with 2σ and 3σ drawn
This design yields an intuitive unit scale. A value of **+2.0** means price is about 2 ATR above the selected MA by the most stretched side of the current bar. A value of **−3.0** means roughly 3 ATR below.
---
## Practical use
* **Trend continuation**
* Sustained readings near or above **+1σ** together with a rising MA often signal healthy momentum.
* **Mean reversion**
* Spikes into **±2σ** or **±3σ** can identify stretched conditions for fade setups in range or late-trend environments.
* **Regime awareness**
* The **median** moves slowly. When median drifts positive for many months, the market spends more time extended above the MA, which often marks bullish regimes. The opposite applies in bearish regimes.
**Notes**
* The MA can be set to Weekly while ATR remains Daily. This is deliberate, it keeps the normalization stable for most symbols.
* On very short intraday charts, the extension remains meaningful since it references the session’s extreme against a higher-timeframe MA and a daily ATR.
* Symbols with short histories may not fill the lookback window. Bands will adapt as data accrues.
---
## Table overlay
Enable **Table → Show** to see:
* “ATR from \”
* Current **median** and **sigma** of the extension series for your lookback
---
## Recommended settings
* **Swing equities**: 50 EMA on Daily, 5 to 7 years
* **Index trend work**: 200 EMA on Daily, 10 years
* **Position trading**: 20 or 50 EMA on Weekly MA, 5 to 10 years
---
## Interpretation examples
* Reading **+2.7** with price above a rising 50 EMA, near prior highs
* Strong trend extension, consider pyramiding in trend systems or waiting for a pullback if you are a mean-reverter.
* Reading **−2.2** into multi-month support with flattening MA
* Stretch to the downside that often mean-reverts, size entries based on your system rules.
---
## Credits
The concept of measuring stretch from a moving average in ATR units has a rich community history. This implementation and its presentation draw on ideas popularized by **Jeff Sun**, **SugarTrader**, and **Steve D Jacobs**. Thanks to each for their contributions to ATR-based extension thinking.
---
## License
This script and description are distributed under **MPL-2.0**, consistent with the header in the source code.
---
## Changelog
* **v1.0**: Initial public release. Daily ATR normalization, EMA or SMA on D or W timeframe, robust median and sigma bands, optional table.
---
## Disclaimer
This tool is for educational use only. It is not financial advice. Always test on your own data and strategies, then manage risk accordingly.
Indicadores y estrategias
BTC/USD 3分バイナリー予測【完全修正版v7.2】## BTC/USD 3-Minute Binary Prediction Indicator v7.2 Documentation
### Overview
This indicator predicts whether BTCUSD price will move ±$25 or more within 3 minutes using a 5-layer filter system and pattern recognition. Designed for 30-second timeframe analysis with statistical tracking.
### ⚠️ Critical Warnings
- **This is a prediction tool, NOT a profit guarantee**
- **30-second timeframe ONLY** (Will not function correctly on other timeframes)
- **BTCUSD pair ONLY**
- **Past performance does not guarantee future results**
- **Test thoroughly in demo before live trading**
- **You can lose your entire investment**
### Core Components
#### 1. Five-Layer Filter System
```
Layer 1: Trend Alignment (25 points) - EMA configuration analysis
Layer 2: Indicator Confluence (25 points) - RSI + MACD confirmation
Layer 3: Volume Analysis (20 points) - Abnormal volume detection
Layer 4: Key Levels (15 points) - Support/Resistance proximity
Layer 5: Momentum (15 points) - Price acceleration measurement
```
#### 2. Pattern Recognition Engine
- Double Top/Bottom formations
- Triangle patterns (Symmetrical, Ascending, Descending)
- Channel patterns
- Candlestick patterns (Engulfing, Hammer, Hanging Man)
#### 3. Performance Tracking
- Overall win rate
- Hourly performance
- Daily performance
- Real-time statistics
### Input Parameters
#### Basic Settings
- `Range Width ($)`: Target price movement (Default: $50 = ±$25)
- `Minimum Confidence (%)`: Required confidence for entry (Default: 75%)
- `Max Daily Trades`: Overtrading prevention (Default: 5)
#### Filter Settings
- `Trend Filter`: EMA alignment validation
- `Volume Confirmation`: Volume spike detection
- `S/R Filter`: Key level analysis
- `Momentum Alignment`: Directional strength confirmation
#### Display Settings
- `Minimal Mode`: Reduced visual elements for experienced users
- `Pattern Display`: Visual pattern overlays
- `EMA Lines`: Moving average visualization
### Usage Instructions
#### Setup Process
1. Open BTCUSD chart on TradingView
2. **Set timeframe to 30 seconds** (CRITICAL)
3. Add indicator to chart
4. Adjust parameters if needed
#### Reading Signals
**Decision Panel (Left Side)**
- `HIGH`: Predicts +$25 move in 3 minutes
- `LOW`: Predicts -$25 move in 3 minutes
- `WAIT`: Conditions building, no entry yet
- `STAY`: No trade opportunity
**F-Score Interpretation**
- 65+ points: Direction suggestion (light color)
- 80+ points: Strong signal (solid color)
- Entry ready: Exclamation mark (!)
**Statistics Panel (Right Side)**
- Win rate: Percentage of successful predictions
- 1H Stats: Last hour performance
- Daily Stats: Today's results
#### Entry Execution
1. Wait for `HIGH!` or `LOW!` in decision panel
2. Large arrow appears on chart (▲ for HIGH, ▼ for LOW)
3. Enter at **next candle open**
4. Result evaluated after 3 minutes (6 candles)
### Algorithm Logic
#### Early Entry System (v7.2 Feature)
The indicator uses predictive analysis starting at F-Score 65 instead of waiting for 80:
- Faster signal generation
- Reduced opportunity loss
- Slightly lower win rate trade-off
#### Confidence Calculation
```
Base confidence: 50%
+ Filter score bonus
+ Pattern recognition bonus
+ Volatility adjustment
- Risk factors
= Final confidence (50-95%)
```
### Technical Specifications
#### Multi-Timeframe Analysis
- Primary: 30-second chart
- Secondary: 1-minute data
- Reference: 5-minute trend
#### Data Processing
- Real-time tick analysis
- No repainting (signals are final)
- Historical verification system
### Limitations & Known Issues
1. **Spread/Commission Not Included**: Actual profits will be lower
2. **30-Second Noise**: High false signal risk on ultra-short timeframe
3. **Network Latency**: Execution delays not accounted for
4. **Market Conditions**: Performance varies with volatility
5. **Algorithm Trading**: Cannot compete with HFT systems
### Performance Metrics
- Target Win Rate: 83% (aspirational)
- Evaluation Period: 3 minutes
- Risk per trade: Fixed ±$25
- Maximum daily exposure: 5 trades
### Troubleshooting Guide
**No signals appearing?**
- Check F-Score (needs 65+)
- Verify 30-second timeframe
- Ensure BTCUSD pair selected
**Low win rate?**
- Only trade 75%+ confidence signals
- Respect daily trade limit
- Avoid news events
**Pattern shows "-"?**
- Normal when no clear pattern exists
- Not all market conditions produce patterns
### Code Modification Notes
Written in Pine Script v6. Key considerations for modifications:
- Global variables use `var` for persistence
- Drawing objects require manual management
- Bar counting varies by timeframe
- Pattern detection runs on confirmed bars only
### Risk Disclosure
**IMPORTANT**: Trading cryptocurrencies involves substantial risk of loss and is not suitable for all investors. The high degree of leverage can work against you as well as for you. Before deciding to trade, you should carefully consider your investment objectives, level of experience, and risk appetite. The possibility exists that you could sustain a loss of some or all of your initial investment and therefore you should not invest money that you cannot afford to lose.
### Support & Updates
- Report issues in TradingView comments
- Check for updates regularly
- Version 7.2 is current release
- Community feedback welcome
### Legal Notice
This indicator is provided for educational and research purposes only. It should not be construed as investment advice. The authors and distributors of this indicator accept no liability for losses incurred through its use. Always consult with a qualified financial advisor before making investment decisions.
---
*Version: 7.2*
*License: Mozilla Public License 2.0*
*Author: *
*Last Updated: 2024*
**FINAL WARNING: This indicator cannot predict the future. Use at your own risk. Start with demo trading. Never trade with money you cannot afford to lose.**
[blackcat] L1 Volume-Weighted RSIOVERVIEW
This script implements a Volume-Weighted RSI (VW-RSI) indicator that enhances traditional RSI calculations by incorporating volume data, providing more accurate momentum signals. The indicator plots a yellow VW-RSI line with customizable overbought/oversold levels and visual background coloring. It automatically generates BUY/SELL labels based on sophisticated crossover conditions, making it a powerful tool for identifying potential trend reversals and market entry/exit points. The script uses Wilder's Moving Average for smoothing and supports various price sources for flexible analysis.
FEATURES
📊 Volume-Weighted RSI Calculation: Incorporates trading volume into RSI calculations for more accurate momentum signals
🔧 Customizable Parameters: Adjustable RSI length (1-100), overbought/oversold levels, and price source selection
🎯 Visual Signals: Automatic BUY/SELL labels appear when specific crossover conditions are met
🎨 Visual Enhancements: Color-coded background (red for overbought, green for oversold) and reference lines
📈 Multiple Timeframe Support: Works across different timeframes with a max bars back setting of 5000
🔄 Sophisticated Logic: Combines multiple crossover conditions for reliable signal generation
HOW TO USE
Add to Chart: Add the indicator to your TradingView chart by searching for "L1-VW-RSI"
Configure Settings: Adjust the input parameters in the settings panel:
Price Source: Select your preferred price calculation (hl2 by default)
RSI Length: Set the lookback period (default: 34)
Overbought Level: Set the overbought threshold (default: 70)
Oversold Level: Set the oversold threshold (default: 30)
Interpret Signals:
Watch for BUY labels when the VW-RSI crosses above oversold levels
Watch for SELL labels when the VW-RSI crosses below overbought levels
Confirm with Volume: Pay attention to volume spikes when signals appear for confirmation
LIMITATIONS
The indicator may produce false signals in sideways or low-volume markets
Signals are based on historical price and volume data only
The script has a maximum of 500 labels to prevent performance issues
Wilder's Moving Average calculation may lag significantly during high volatility periods
The crossover logic combines multiple conditions which may occasionally conflict
NOTES
This script is designed for educational and analytical purposes only. Always use proper risk management when trading.
The default RSI length of 34 is optimized for most trading scenarios but can be adjusted based on your trading style.
For best results, combine this indicator with other technical analysis tools and price action confirmation.
The volume-weighted approach provides more reliable signals in high-volume environments.
Extreme Zone Volume ProfileExtreme Zone Volume Profile (EZVP)
Originality & Innovation
The Extreme Zone Volume Profile (EZVP) revolutionizes traditional volume profile analysis by applying statistical zone classification to volume distribution. Unlike standard volume profiles that display raw volume data, EZVP segments the price range into statistically meaningful zones based on percentile thresholds, allowing traders to instantly identify where volume concentration suggests strong support/resistance versus areas of potential breakout.
Technical Methodology
Core Algorithm:
Distributes volume across user-defined bins (20-200) over a lookback period
Calculates volume-weighted price levels for each bin
Applies percentile-based zone classification to the price range (not volume ranking)
Zone B (extreme zones): Outer percentile tails representing potential rejection areas
Zone A (significant zones): Secondary percentile bands indicating strong interest levels
Center Zone: Bulk trading range where most price discovery occurs
Mathematical Foundation:
The script uses price-range percentiles rather than volume percentiles. If the total price range is divided into 100%, Zone B captures the extreme price tails (default 2.5% each end ≈ 2 standard deviations), Zone A captures the next significant bands (default 14% each ≈ 1 standard deviation), leaving the center for normal distribution trading.
Key Calculations:
POC (Point of Control): Price level with maximum volume accumulation
Volume-weighted mean price: Total volume × price / total volume
Median price: Geometric center of the price range
Rightward-projected bars: Volume bars extend forward from current time to avoid historical chart clutter
Trading Applications
Zone Interpretation:
Zone B (Red/Green): Extreme price levels where volume suggests strong rejection potential. Price reaching these zones often indicates overextension and possible reversal points.
Zone A (Orange/Teal): Significant support/resistance areas with substantial volume interest. These levels often act as intermediate targets or consolidation zones.
Center (Gray): Fair value area where most trading occurs. Price tends to return to this range during normal market conditions.
Strategic Usage:
Reversal Trading: Look for rejection signals when price enters Zone B areas
Breakout Confirmation: Volume expansion beyond Zone B boundaries suggests genuine breakouts
Support/Resistance: Zone A boundaries often provide reliable entry/exit levels
Mean Reversion: Price tends to gravitate toward the volume-weighted mean and POC lines
Unique Value Proposition
EZVP addresses three key limitations of traditional volume profiles:
Visual Clarity: Standard profiles can be cluttered and difficult to interpret quickly. EZVP's color-coded zones provide instant visual feedback about price significance.
Statistical Framework: Rather than relying on subjective interpretation of volume nodes, EZVP applies objective percentile-based classification, making support/resistance identification more systematic.
Forward-Looking Display: Rightward-projecting bars keep historical price action clean while maintaining current market structure visibility.
Configuration Guide
Lookback Period (10-1000): Controls the historical depth of volume calculation. Shorter periods for intraday scalping, longer for swing trading.
Number of Bins (20-200): Resolution of volume distribution. Higher values provide more granular analysis but may create noise on lower timeframes.
Zone Percentages:
Zone B: Extreme threshold (default 2.5% = ~2σ statistical significance)
Zone A: Significant threshold (default 14% = ~1σ statistical significance)
Visual Controls: Toggle individual elements (POC, median, mean, zone lines) to customize display complexity for your trading style.
Technical Requirements
Pine Script v6 compatible
Maximum bars back: 5000 (ensures sufficient historical data)
Maximum boxes: 500 (supports high-resolution bin counts)
Maximum lines: 50 (accommodates all zone and reference lines)
This indicator synthesizes volume profile theory with statistical zone analysis, providing a quantitative framework for identifying high-probability support/resistance levels based on volume distribution patterns rather than arbitrary price levels.
EMA 5/25 Cross Signals with AlertsIt is EMA 5/25 Cross Signals with Alerts
So you can find Golden Cross and Dead Cross
Fisher (zero-color + simple OB assist)//@version=5
indicator("Fisher (zero-color + simple OB assist)", overlay=false)
// Inputs
length = input.int(10, "Fisher Period", minval=1)
pivotLen = input.int(3, "Structure pivot length (SMC-lite)", minval=1)
showZero = input.bool(true, "Show Zero Line")
colPos = input.color(color.lime, "Color Above 0 (fallback)")
colNeg = input.color(color.red, "Color Below 0 (fallback)")
useOB = input.bool(true, "Color by OB proximity (Demand below = green, Supply above = red)")
showOBMarks = input.bool(true, "Show OB markers")
// Fisher (MT4-style port)
price = (high + low) / 2.0
hh = ta.highest(high, length)
ll = ta.lowest(low, length)
rng = hh - ll
norm = rng != 0 ? (price - ll) / rng : 0.5
var float v = 0.0
var float fish = 0.0
v := 0.33 * 2.0 * (norm - 0.5) + 0.67 * nz(v , 0)
v := math.min(math.max(v, -0.999), 0.999)
fish := 0.5 * math.log((1 + v) / (1 - v)) + 0.5 * nz(fish , 0)
// SMC-lite OB
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
var float lastSwingHigh = na
var float lastSwingLow = na
if not na(ph)
lastSwingHigh := ph
if not na(pl)
lastSwingLow := pl
bosUp = not na(lastSwingHigh) and close > lastSwingHigh
bosDn = not na(lastSwingLow) and close < lastSwingLow
bearishBar = close < open
bullishBar = close > open
demHigh_new = ta.valuewhen(bearishBar, high, 0)
demLow_new = ta.valuewhen(bearishBar, low, 0)
supHigh_new = ta.valuewhen(bullishBar, high, 0)
supLow_new = ta.valuewhen(bullishBar, low, 0)
// แยกประกาศตัวแปรทีละตัว และใช้ชนิดให้ชัดเจน
var float demHigh = na
var float demLow = na
var float supHigh = na
var float supLow = na
var bool demActive = false
var bool supActive = false
if bosUp and not na(demHigh_new) and not na(demLow_new)
demHigh := demHigh_new
demLow := demLow_new
demActive := true
if bosDn and not na(supHigh_new) and not na(supLow_new)
supHigh := supHigh_new
supLow := supLow_new
supActive := true
// Mitigation (แตะโซน)
if demActive and not na(demHigh) and not na(demLow)
if low <= demHigh
demActive := false
if supActive and not na(supHigh) and not na(supLow)
if high >= supLow
supActive := false
demandBelow = useOB and demActive and not na(demHigh) and demHigh <= close
supplyAbove = useOB and supActive and not na(supLow) and supLow >= close
colDimUp = color.new(colPos, 40)
colDimDown = color.new(colNeg, 40)
barColor = demandBelow ? colPos : supplyAbove ? colNeg : fish > 0 ? colDimUp : colDimDown
// Plots
plot(0, title="Zero", color=showZero ? color.new(color.gray, 70) : color.new(color.gray, 100))
plot(fish, title="Fisher", style=plot.style_columns, color=barColor, linewidth=2)
plotchar(showOBMarks and demandBelow ? fish : na, title="Demand below", char="D", location=location.absolute, color=color.teal, size=size.tiny)
plotchar(showOBMarks and supplyAbove ? fish : na, title="Supply above", char="S", location=location.absolute, color=color.fuchsia, size=size.tiny)
alertcondition(ta.crossover(fish, 0.0), "Fisher Cross Up", "Fisher crosses above 0")
alertcondition(ta.crossunder(fish, 0.0), "Fisher Cross Down", "Fisher crosses below 0")
Avinacci LevelsThe Avinacci levels are based on Avi's(whop.com) reading of the 8am to 8:30am, 30mn candle. The script plots equidistant levels up and down from the high and lows of this 30mn period. It only works on the 30mn chart.
NY Sessions Boxes (Live Drawing)//@version=5
indicator("NY Sessions Boxes (Live Drawing)", overlay=true)
ny_tz = "America/New_York"
t = time(timeframe.period, ny_tz)
hour_ny = hour(t)
minute_ny = minute(t)
// سشن ۱: 02:00 – 05:00
session1_active = (hour_ny >= 2 and hour_ny < 5)
session1_start = (hour_ny == 2 and minute_ny == 0)
// سشن ۲: 09:30 – 11:00
session2_active = ((hour_ny == 9 and minute_ny >= 30) or (hour_ny > 9 and hour_ny < 11))
session2_start = (hour_ny == 9 and minute_ny == 30)
var box box1 = na
var float hi1 = na
var float lo1 = na
if session1_start
hi1 := high
lo1 := low
box1 := box.new(left = time, right = time, top = high, bottom = low, bgcolor=color.new(color.blue, 85), border_color=color.blue)
if session1_active and not na(box1)
hi1 := math.max(hi1, high)
lo1 := math.min(lo1, low)
box.set_right(box1, time)
box.set_top(box1, hi1)
box.set_bottom(box1, lo1)
if not session1_active and not na(box1)
box1 := na
hi1 := na
lo1 := na
var box box2 = na
var float hi2 = na
var float lo2 = na
if session2_start
hi2 := high
lo2 := low
box2 := box.new(left = time, right = time, top = high, bottom = low, bgcolor=color.new(color.purple, 85), border_color=color.purple)
if session2_active and not na(box2)
hi2 := math.max(hi2, high)
lo2 := math.min(lo2, low)
box.set_right(box2, time)
box.set_top(box2, hi2)
box.set_bottom(box2, lo2)
if not session2_active and not na(box2)
box2 := na
hi2 := na
lo2 := na
My script// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
ORB with Golden Zone FIB targets, Any Timeframe by TenAMTraderDescription:
This indicator is designed to help traders identify key price levels using Fibonacci extensions and retracements based on the Opening Range Breakout (ORB). The levels are visualized as “Golden Zones”, which can serve as potential targets for trades.
Features:
Customizable ORB Timeframe: By default, the ORB is set from 9:30 AM to 9:45 AM EST, but any timeframe can be configured in the settings to fit your trading style.
Golden Zones as Targets: Fibonacci levels are intended to be used as potential profit-taking zones or areas to monitor for reversals, providing a structured framework for intraday and swing trading.
Adjustable Chart Settings: Color-coded levels make it easy to interpret at a glance, and all lines can be customized for personal preference.
Versatile Application: The indicator works across any timeframe, enabling traders to analyze both intraday and multi-day price action.
How to Use:
Ensure Regular Trading Hours (RTH) is enabled on your chart for accurate level calculation.
Observe price action near Golden Zones: a confirmed breakout may indicate continuation, while a pullback could signal a reversal opportunity.
Use the Golden Zones as reference targets for managing risk and planning exits.
Adjust the ORB timeframe and display settings to match your preferred trading style.
Legal Disclosure:
This indicator is provided for educational purposes only and is not financial advice. Trading carries a substantial risk of loss. Users should always perform their own analysis and consult a licensed financial professional before making any trading decisions. Past performance is not indicative of future results.
SUHAIBs batvol 3d indicationHow it works:
Market is split into 3 regimes → Bull (uptrend), Bear (downtrend), Neutral (range).
Each regime is a sphere.
Loop on sphere = chance of staying in same regime.
Arrow between spheres = chance of switching to another regime.
Bigger loop/arrow = stronger probability.
Direction matters (Bull→Bear ≠ Bear→Bull).
Behind the scenes:
It detects regimes using price returns or 3 custom indicators.
Data is normalized (Z-score) and classified into Bull / Bear / Neutral.
Every bar, it updates a transition matrix (counts & probabilities of switching).
Uses Laplace smoothing so numbers don’t break.
How to read diagram:
Find current sphere (e.g., Neutral).
If loop is big → likely to continue Neutral.
If one outgoing arrow is big → that’s the most likely next regime.
Unique part:
3D animated spheres + arrows with particles show live probability flows.
Can be plugged into algo/backtesting → outputs (Bull=1, Neutral=0, Bear=-1).
👉 In short:
It’s a probability map of regime shifts. The chart tells you if the market will likely stay the same or flip to another state, and which flip is most probable.
Dual Adaptive Movings### Dual Adaptive Movings
By Gurjit Singh
A dual-layer adaptive moving average system that adjusts its responsiveness dynamically using market-derived factors (CMO, RSI, Fractal Roughness, or Stochastic Acceleration). It plots:
* Primary Adaptive MA (MA): Fast, reacts to changes in volatility/momentum.
* Following Adaptive MA (FAMA): A smoother, half-alpha version for trend confirmation.
Instead of fixed smoothing, it adapts dynamically using one of four methods:
* ACMO: Adaptive CMO (momentum)
* ARSI: Adaptive RSI (relative strength)
* FRMA: Fractal Roughness (volatility + fractal dimension)
* ASTA: Adaptive Stochastic Acceleration (%K acceleration)
### ⚙️ Inputs & Options
* Source: Price input (default: close).
* Moving (Type): ACMO, ARSI, FRMA, ASTA.
* MA Length (Primary): Core adaptive window.
* Following (FAMA) Length: Optional; can match MA length.
* Use Wilder’s: Toggles Wilder vs EMA-style smoothing.
* Colors & Fill: Bullish/Bearish tones with transparency control.
### 🔑 How to Use
1. Identify Trend:
* When MA > FAMA → Bullish (fills bullish color).
* When MA < FAMA → Bearish (fills bearish color).
2. Crossovers:
* MA crosses above FAMA → Bullish signal 🐂
* MA crosses below FAMA → Bearish signal 🐻
3. Adaptive Edge:
* Select method (ACMO/ARSI/FRMA/ASTA) depending on whether you want sensitivity to momentum, strength, volatility, or acceleration.
4. Alerts:
* Built-in alerts trigger on crossovers.
### 💡 Tips
* Wilder’s smoothing is gentler than EMA, reducing whipsaws in sideways conditions.
* ACMO and ARSI are best for momentum-driven directional markets, but may false-signal in ranges.
* FRMA and ASTA excels in choppy markets where volatility clusters.
👉 In short: Dual Adaptive Movings adapts moving averages to the market’s own behavior, smoothing noise yet staying responsive. Crossovers mark possible trend shifts, while color fills highlight bias.
Block-Based Trend Breakout (YTK/DTK) – v1📌 Overview
Block Trend Breakout (YTK/DTK) is a lightweight, rule-based indicator that detects potential trend reversals or volatility bursts by tracking breakouts of key structural support/resistance levels — derived from block-wise trend patterns.
The logic is simple yet effective: if a trend has been confirmed across multiple blocks (custom-length bar groups), and the price breaks its own structural boundary, a potential reversal or volatility signal is triggered.
🟥 YTK (Uptrend Breakdown) → Price breaks below the lowest low of the most recent block in an uptrend.
🟩 DTK (Downtrend Breakout) → Price breaks above the highest high of the most recent block in a downtrend.
🔍 How It Works
Block Construction: User-defined bar groups (e.g., 6 bars on a 4H chart = 24H blocks).
Trend Validation: At least N consecutive blocks must show higher highs/lows (uptrend) or lower highs/lows (downtrend).
Breakout Test: If the current bar violates the structural limit (MR block high/low), the corresponding signal is plotted.
📉 This logic identifies weakening trends or failed momentum, often preceding reversals or volatility expansions.
⚙️ Features
Adjustable block size and trend confirmation count
Option to use only closed bars (to reduce repaint risk)
Inclusive mode for “<= / >=” logic
Visual signals:
MR Block high/low levels
Trend-colored bars
Arrows for YTK (🔻) and DTK (🔺)
Built-in alerts for automated strategies
🎯 Use Cases
Spotting fakeouts and false breakouts
Identifying trend exhaustion before reversal
Confirming structural support/resistance breaks
Visual tool for discretionary traders
Signal generator for automated systems
💬 Feedback & Contributions
This script is open-source and community-driven. We actively welcome feedback, ideas, improvements, forks, and questions.
📩 Contact for collaboration or discussion:
📧 senbrke@gmail.com
Market Spiralyst [Hapharmonic]Hello, traders and creators! 👋
Market Spiralyst: Let's change the way we look at analysis, shall we? I've got to admit, I scratched my head on this for weeks, Haha :). What you're seeing is an exploration of what's possible when code meets art on financial charts. I wanted to try blending art with trading, to do something new and break away from the same old boring perspectives. The goal was to create a visual experience that's not just analytical, but also relaxing and aesthetically pleasing.
This work is intended as a guide and a design example for all developers, born from the spirit of learning and a deep love for understanding the Pine Script™ language. I hope it inspires you as much as it challenged me!
🧐 Core Concept: How It Works
Spiralyst is built on two distinct but interconnected engines:
The Generative Art Engine: At its core, this indicator uses a wide range of mathematical formulas—from simple polygons to exotic curves like Torus Knots and Spirographs—to draw beautiful, intricate shapes directly onto your chart. This provides a unique and dynamic visual backdrop for your analysis.
The Market Pulse Engine: This is where analysis meets art. The engine takes real-time data from standard technical indicators (RSI and MACD in this version) and translates their states into a simple, powerful "Pulse Score." This score directly influences the appearance of the "Scatter Points" orbiting the main shape, turning the entire artwork into a living, breathing representation of market momentum.
🎨 Unleash Your Creativity! This Is Your Playground
We've included 25 preset shapes for you... but that's just the starting point !
The real magic happens when you start tweaking the settings yourself. A tiny adjustment can make a familiar shape come alive and transform in ways you never expected.
I'm genuinely excited to see what your imagination can conjure up! If you create a shape you're particularly proud of or one that looks completely unique, I would love to see it. Please feel free to share a screenshot in the comments below. I can't wait to see what you discover! :)
Here's the default shape to get you started:
The Dynamic Scatter Points: Reading the Pulse
This is where the magic happens! The small points scattered around the main shape are not just decorative; they are the visual representation of the Market Pulse Score.
The points have two forms:
A small asterisk (`*`): Represents a low or neutral market pulse.
A larger, more prominent circle (`o`): Represents a high, strong market pulse.
Here’s how to read them:
The indicator calculates the Pulse Strength as a percentage (from 0% to 100%) based on the total score from the active indicators (RSI and MACD). This percentage determines the ratio of circles to asterisks.
High Pulse Strength (e.g., 80-100%): Most of the scatter points will transform into large circles (`o`). This indicates that the underlying momentum is strong and It could be an uptrend. It's a visual cue that the market is gaining strength and might be worth paying closer attention to.
Low Pulse Strength (e.g., 0-20%): Most or all of the scatter points will remain as small asterisks (`*`). This suggests weak, neutral, or bearish momentum.
The key takeaway: The more circles you see, the stronger the bullish momentum is according to the active indicators. Watch the artwork "breathe" as the circles appear and disappear with the market's rhythm!
And don't worry about the shape you choose; the scatter points will intelligently adapt and always follow the outer boundary of whatever beautiful form you've selected.
How to Use
Getting started with Spiralyst is simple:
Choose Your Canvas: Start by going into the settings and picking a `Shape` and `Palette` from the "Shape Selection & Palette" group that you find visually appealing. This is your canvas.
Tune Your Engine: Go to the "Market Pulse Engine" settings. Here, you can enable or disable the RSI and MACD scoring engines. Want to see the pulse based only on RSI? Just uncheck the MACD box. You can also fine-tune the parameters for each indicator to match your trading style.
Read the Vibe: Observe the scatter points. Are they mostly small asterisks or are they transforming into large, vibrant circles? Use this visual feedback as a high-level gauge of market momentum.
Check the Dashboard: For a precise breakdown, look at the "Market Pulse Analysis" table on the top-right. It gives you the exact values, scores, and total strength percentage.
Explore & Experiment: Play with the different shapes and color palettes! The core analysis remains the same, but the visual experience can be completely different.
⚙️ Settings & Customization
Spiralyst is designed to be highly customizable.
Shape Selection & Palette: This is your main control panel. Choose from over 25 unique shapes, select a color palette, and adjust the line extension style ( `extend` ) or horizontal position ( `offsetXInput` ).
scatterLabelsInput: This setting controls the total number of points (both asterisks and circles) that orbit the main shape. Think of it as adjusting the density or visual granularity of the market pulse feedback.
The Market Pulse engine will always calculate its strength as a percentage (e.g., 75%). This percentage is then applied to the `scatterLabelsInput` number you've set to determine how many points transform into large circles.
Example: If the Pulse Strength is 75% and you set this to `100` , approximately 75 points will become circles. If you increase it to `200` , approximately 150 points will transform.
A higher number provides a more detailed, high-resolution view of the market pulse, while a lower number offers a cleaner, more minimalist look. Feel free to adjust this to your personal visual preference; the underlying analytical percentage remains the same.
Market Pulse Engine:
`⚙️ RSI Settings` & `⚙️ MACD Settings`: Each indicator has its own group.
Enable Scoring: Use the checkbox at the top of each group to include or exclude that indicator from the Pulse Score calculation. If you only want to use RSI, simply uncheck "Enable MACD Scoring."
Parameters: All standard parameters (Length, Source, Fast/Slow/Signal) are fully adjustable.
Individual Shape Parameters (01-25): Each of the 25+ shapes has its own dedicated group of settings, allowing you to fine-tune every aspect of its geometry, from the number of petals on a flower to the windings of a knot. Feel free to experiment!
For Developers & Pine Script™ Enthusiasts
If you are a developer and wish to add more indicators (e.g., Stochastic, CCI, ADX), you can easily do so by following the modular structure of the code. You would primarily need to:
Add a new `PulseIndicator` object for your new indicator in the `f_getMarketPulse()` function.
Add the logic for its scoring inside the `calculateScore()` method.
The `calculateTotals()` method and the dashboard table are designed to be dynamic and will automatically adapt to include your new indicator!
One of the core design philosophies behind Spiralyst is modularity and scalability . The Market Pulse engine was intentionally built using User-Defined Types (UDTs) and an array-based structure so that adding new indicators is incredibly simple and doesn't require rewriting the main logic.
If you want to add a new indicator to the scoring engine—let's use the Stochastic Oscillator as a detailed example—you only need to modify three small sections of the code. The rest of the script, including the adaptive dashboard, will update automatically.
Here’s your step-by-step guide:
#### Step 1: Add the User Inputs
First, you need to give users control over your new indicator. Find the `USER INTERFACE: INPUTS` section and add a new group for the Stochastic settings, right after the MACD group.
Create a new group name: `string GRP_STOCH = "⚙️ Stochastic Settings"`
Add the inputs: Create a boolean to enable/disable it, and then add the necessary parameters (`%K`, `%D`, `Smooth`). Use the `active` parameter to link them to the enable/disable checkbox.
// Add this code block right after the GRP_MACD and MACD inputs
string GRP_STOCH = "⚙️ Stochastic Settings"
bool stochEnabledInput = input.bool(true, "Enable Stochastic Scoring", group = GRP_STOCH)
int stochKInput = input.int(14, "%K Length", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochDInput = input.int(3, "%D Smoothing", minval=1, group = GRP_STOCH, active = stochEnabledInput)
int stochSmoothInput = input.int(3, "Smooth", minval=1, group = GRP_STOCH, active = stochEnabledInput)
#### Step 2: Integrate into the Pulse Engine (The "Factory")
Next, go to the `f_getMarketPulse()` function. This function acts as a "factory" that builds and configures the entire market pulse object. You need to teach it how to build your new Stochastic indicator.
Update the function signature: Add the new `stochEnabledInput` boolean as a parameter.
Calculate the indicator: Add the `ta.stoch()` calculation.
Create a `PulseIndicator` object: Create a new object for the Stochastic, populating it with its name, parameters, calculated value, and whether it's enabled.
Add it to the array: Simply add your new `stochPulse` object to the `array.from()` list.
Here is the complete, updated `f_getMarketPulse()` function :
// Factory function to create and calculate the entire MarketPulse object.
f_getMarketPulse(bool rsiEnabled, bool macdEnabled, bool stochEnabled) =>
// 1. Calculate indicator values
float rsiVal = ta.rsi(rsiSourceInput, rsiLengthInput)
= ta.macd(close, macdFastInput, macdSlowInput, macdSignalInput)
float stochVal = ta.sma(ta.stoch(close, high, low, stochKInput), stochDInput) // We'll use the main line for scoring
// 2. Create individual PulseIndicator objects
PulseIndicator rsiPulse = PulseIndicator.new("RSI", str.tostring(rsiLengthInput), rsiVal, na, 0, rsiEnabled)
PulseIndicator macdPulse = PulseIndicator.new("MACD", str.format("{0},{1},{2}", macdFastInput, macdSlowInput, macdSignalInput), macdVal, signalVal, 0, macdEnabled)
PulseIndicator stochPulse = PulseIndicator.new("Stoch", str.format("{0},{1},{2}", stochKInput, stochDInput, stochSmoothInput), stochVal, na, 0, stochEnabled)
// 3. Calculate score for each
rsiPulse.calculateScore()
macdPulse.calculateScore()
stochPulse.calculateScore()
// 4. Add the new indicator to the array
array indicatorArray = array.from(rsiPulse, macdPulse, stochPulse)
MarketPulse pulse = MarketPulse.new(indicatorArray, 0, 0.0)
// 5. Calculate final totals
pulse.calculateTotals()
pulse
// Finally, update the function call in the main orchestration section:
MarketPulse marketPulse = f_getMarketPulse(rsiEnabledInput, macdEnabledInput, stochEnabledInput)
#### Step 3: Define the Scoring Logic
Now, you need to define how the Stochastic contributes to the score. Go to the `calculateScore()` method and add a new case to the `switch` statement for your indicator.
Here's a sample scoring logic for the Stochastic, which gives a strong bullish score in oversold conditions and a strong bearish score in overbought conditions.
Here is the complete, updated `calculateScore()` method :
// Method to calculate the score for this specific indicator.
method calculateScore(PulseIndicator this) =>
if not this.isEnabled
this.score := 0
else
this.score := switch this.name
"RSI" => this.value > 65 ? 2 : this.value > 50 ? 1 : this.value < 35 ? -2 : this.value < 50 ? -1 : 0
"MACD" => this.value > this.signalValue and this.value > 0 ? 2 : this.value > this.signalValue ? 1 : this.value < this.signalValue and this.value < 0 ? -2 : this.value < this.signalValue ? -1 : 0
"Stoch" => this.value > 80 ? -2 : this.value > 50 ? 1 : this.value < 20 ? 2 : this.value < 50 ? -1 : 0
=> 0
this
#### That's It!
You're done. You do not need to modify the dashboard table or the total score calculation.
Because the `MarketPulse` object holds its indicators in an array , the rest of the script is designed to be adaptive:
The `calculateTotals()` method automatically loops through every indicator in the array to sum the scores and calculate the final percentage.
The dashboard code loops through the `enabledIndicators` array to draw the table. Since your new Stochastic indicator is now part of that array, it will appear automatically when enabled!
---
Remember, this is your playground! I'm genuinely excited to see the unique shapes you discover. If you create something you're proud of, feel free to share it in the comments below.
Happy analyzing, and may your charts be both insightful and beautiful! 💛
MTF CRT Setup Finder (Raids + BOS linked)//@version=6
indicator("MTF CRT Setup Finder (Raids + BOS linked)", overlay=true, max_lines_count=500)
// === INPUTS ===
lookback = input.int(5, "Swing Lookback Bars", minval=2)
// === Function: Detect swing highs/lows ===
swingHigh(src, lb) => ta.pivothigh(src, lb, lb)
swingLow(src, lb) => ta.pivotlow(src, lb, lb)
// === Function: Detect CRT with memory ===
f_crt(tf) =>
hi = request.security(syminfo.tickerid, tf, high)
lo = request.security(syminfo.tickerid, tf, low)
cl = request.security(syminfo.tickerid, tf, close)
sh = request.security(syminfo.tickerid, tf, swingHigh(high, lookback))
sl = request.security(syminfo.tickerid, tf, swingLow(low, lookback))
raidHigh = not na(sh) and hi > sh and cl < sh
raidLow = not na(sl) and lo < sl and cl > sl
// store last raid state
var bool hadRaidHigh = false
var bool hadRaidLow = false
if raidHigh
hadRaidHigh := true
if raidLow
hadRaidLow := true
bosDown = hadRaidHigh and cl < sl
bosUp = hadRaidLow and cl > sh
// reset after BOS
if bosDown
hadRaidHigh := false
if bosUp
hadRaidLow := false
// === Apply on H1 only first (test) ===
= f_crt("60")
// === Plot ===
plotshape(raidHigh, title="Raid High", style=shape.diamond, color=color.red, size=size.small, text="Raid High")
plotshape(raidLow, title="Raid Low", style=shape.diamond, color=color.green, size=size.small, text="Raid Low")
plotshape(bosDown, title="Bearish CRT", style=shape.triangledown, color=color.red, size=size.large, text="CRT↓")
plotshape(bosUp, title="Bullish CRT", style=shape.triangleup, color=color.green, size=size.large, text="CRT↑")
Volume Heat ZoneVolume Zones Indicator
This Pine Script creates a volume-based zone analysis tool for TradingView.
Function:
Divides the price range (high to low) into 20 levels over a 100-candle lookback period
Measures volume activity at each price level
Draws boxes at levels with above-average volume (1.5x threshold)
Key Settings:
Lookback Period (100): Number of candles analyzed
Price Levels (20): Price range subdivisions
Volume Threshold (1.5): Minimum volume multiplier for zones
Candle Offset (1): Excludes current candle from analysis
Projection Bars (10): Extends boxes 10 bars into the future
How it works:
The indicator identifies price levels where significant trading volume occurred historically, highlighting potential support/resistance zones. Boxes are redrawn on each confirmed candle, showing dynamic volume concentration areas that traders can use for entry/exit decisions.
B A N K $ - HTF Candle Boxes (Power of 3)This indicator allows you to visualise the HTF candles on the LTF's, this is useful for using the Power of 3 / Accumulation, Manipulation & Distribution concepts.
By default, the HTF interval is set to 1h, this means that an outline will be created around the LTF candles that are within that 1h window. (i.e from 13:00-14:00 etc).
Features
HTF Interval Selector - this allows the user to customise which HTF interval to use
Candle Boxes - this outlines the full outer perimeter of the relevant candles
Include Body - this highlights the distance between the candle Open & Close
Show MidLine
Additional Settings
Hide Side Lines - this will only draw the Top & Bottom lines
Extend Lines to Current Candle - most recent Top & Bottom lines will extend to current price
Draw Lines from Exact Candle - this makes the most recent candle lines cleaner
I personally use this indicator to outline the most recent 3 1h candles to make it easier to identify sweeps & reversals however there is additional functionality to allow the user to customise the indicator to their preference.
Frank-Setup EMA, RS & RSI ✅It is a clean and simple indicator designed to identify weakness in stocks using two proven methods: RSI and Relative Strength (RS) vs. a benchmark (e.g., NIFTY).
🔹 Features
RSI Weakness Signals
Plots when RSI crosses below 50 (weakness begins).
Plots when RSI moves back above 50 (weakness ends).
Relative Strength (RS) vs Benchmark
Compares stock performance to a chosen benchmark.
Signals when RS drops below 1 (stock underperforming).
Signals when RS recovers above 1 (strength resumes).
Clear Visual Markers
Circles for RSI signals.
Triangles for RS signals.
Optional RSI labels for clarity.
Built-in Alerts
Get notified instantly when RSI or RS weakness starts or ends.
No need to constantly watch charts.
🎯 Use Case
This tool is built for traders who want to:
Spot shorting opportunities when a stock shows weakness.
Track underperformance vs. the index.
Manage risk by exiting longs when weakness appears.
Stockbee LabelUnlock the full potential of your TradingView charts with this powerful indicator designed specifically for Stockbee methods. Instantly gain key market insights at a glance with a sleek, easy-to-read label displayed on your chart. This dynamic label provides critical data including Volume, Total Float, Market Capitalization, Trend Intensity, Average Daily Range (ADR), Half-Day Stop Loss level, and Modified Double Trouble (MDT) .
Elevate your trading strategy with real-time, essential metrics all in one place—streamlining your decision-making and boosting your confidence in the market.
Disclaimer: This indicator is inspired by and built upon the original concepts of Stockbee and EG.
Balance & Reversal Indicator [SYNC & TRADE]ndicator Description: "Balance & Reversal Indicator "
Purpose of the Indicator
The "Balance & Reversal Indicator " indicator is designed for analyzing market activity in cryptocurrency and other financial markets. It assists traders in identifying potential trend reversal points, detecting market equilibrium zones, and evaluating the balance between buying and selling volumes. The indicator is suitable for both short-term and long-term trading, offering flexible settings to adapt to various trading styles and timeframes.
What Does the Indicator Provide?
Volume Analysis: Calculates buy and sell volumes, along with the Long/Short Ratio, to assess current market dynamics.
Reversal Signals: Generates signals for potential Long (buy) and Short (sell) reversals based on customizable levels, ranging from "Potential Reversal" to "Maximum Signal."
Equilibrium Zones: Identifies zones where the market is in balance, useful for recognizing neutral market conditions.
Flexible Calculation Methods: Supports four volume calculation methods (Tick Based, Candle Based, Delta Based, Price Movement) to suit different trading approaches.
Auto and Manual Sensitivity: Offers "Auto" mode for timeframe-based sensitivity or "Manual" mode for custom sensitivity settings.
Data Visualization: Displays key metrics (total volume, buy/sell volumes, ratio, and percentages) via a comparison table and on-chart labels for easy interpretation.
Volume Unit Customization: Allows volume display in USDT, Active contracts, or other units for enhanced flexibility.
How to Use the Indicator?
Adding to the Chart:
Find "Balance & Reversal Indicator " in the TradingView library and add it to your chart.
The indicator appears in a separate panel below the chart, keeping price data unobstructed (overlay=false).
Configuring Settings:
Calculation Method: Choose one of four volume analysis methods:
Tick Based: Analyzes price movement within a candle.
Candle Based: Evaluates candle direction (up/down).
Delta Based: Considers the difference between open and close prices.
Price Movement: Assesses movement strength based on candle body and wick sizes.
Sensitivity Mode:
In "Auto" mode, sensitivity adjusts automatically based on the timeframe (e.g., higher for minute charts, lower for daily charts).
In "Manual" mode, set sensitivity manually (from 0.1 to 1.0).
Reversal Levels (Long/Short): Configure levels for Long and Short signals with associated ranges. For example, Long Reversal Level 1 = -30% with a 5% range triggers signals between -35% and -30%.
Equilibrium Levels: Set levels for neutral market zones (e.g., ±7% for Equilibrium Level 1).
Messages: Customize signal messages to align with your trading style.
Analysis Period (Start/End Time): Define the time range for volume calculations.
Volume Unit: Select USDT, Active (active contracts), or Contracts for volume display.
Interpreting Signals:
Comparison Table (Top-Right Corner): Displays analysis results for all four calculation methods (Long/Short Ratio, Buy %, Sell %, Signal), enabling method comparison.
On-Chart Labels: Show total volume, buy/sell volumes, Long/Short Ratio, buy/sell percentages, current method, and sensitivity.
Color-Coded Signals:
Green: Potential Long (buy) opportunity.
Red: Potential Short (sell) opportunity.
Yellow: Market in equilibrium zone.
Chart Levels: Horizontal lines indicate reversal levels (green for Long, red for Short, yellow for equilibrium) with a transparency gradient for clarity.
Applying in Trading:
Use reversal signals to enter positions. For example, a "Maximum Long Signal" may indicate a strong buying opportunity.
Equilibrium zones help avoid trading during low-volatility periods.
Compare methods in the table to confirm signals.
Adjust settings to match your timeframe and asset. For instance, use "Tick Based" with high sensitivity for scalping on minute charts or "Price Movement" with low sensitivity for long-term trading.
Recommendations:
Test the indicator on historical data to optimize settings for your asset and strategy.
Combine indicator signals with other technical analysis tools (e.g., support/resistance levels or trend indicators) for greater accuracy.
Regularly update the time range (Start/End Time) to ensure relevant data analysis.
Who Is This Indicator For?
"Balance & Reversal Indicator " is ideal for traders who:
Trade on cryptocurrency exchanges and want to analyze trading volumes.
Seek reversal points for entering Long or Short positions.
Prefer customizable settings and the ability to compare different analysis methods.
Operate across various timeframes, from minutes to months.
Note: This indicator is not financial advice. Always conduct your own analysis and consider risks before making trading decisions.
© TradingStrategyCourses, 2025. All rights reserved.
VultureThis indicator ("vulture") is the volume of a candle divided by the spread.
When higher than 2 standard deviations, it suggests demand aggressively opposing supply and vice versa.
When lower than 2 standard deviations, it suggests demand hardly being opposed by supply or vice versa.
E.g., if the vulture is very high and volume is also very high, this indicates high institutional activity (who is usually right) against the herd (who is usually wrong). If the vulture is very low and volume is very high, this suggests a mark up or mark down. If vulture is very high and volume is very low, whilst prices are climbing up to a resistance area, the low volume climb is less likely an ease of movement, and more likely to be a significant "no demand" candle, and so prices are likely on the verge of a reversal back to the downside.