Double Weighted Moving Average (DWMA)# DWMA: Double Weighted Moving Average
## Overview and Purpose
The Double Weighted Moving Average (DWMA) is a technical indicator that applies weighted averaging twice in sequence to create a smoother signal with enhanced noise reduction. Developed in the late 1990s as an evolution of traditional weighted moving averages, the DWMA was created by quantitative analysts seeking enhanced smoothing without the excessive lag typically associated with longer period averages. By applying a weighted moving average calculation to the results of an initial weighted moving average, DWMA achieves more effective filtering while preserving important trend characteristics.
## Core Concepts
* **Cascaded filtering:** DWMA applies weighted averaging twice in sequence for enhanced smoothing and superior noise reduction
* **Linear weighting:** Uses progressively increasing weights for more recent data in both calculation passes
* **Market application:** Particularly effective for trend following strategies where noise reduction is prioritized over rapid signal response
* **Timeframe flexibility:** Works across multiple timeframes but particularly valuable on daily and weekly charts for identifying significant trends
The core innovation of DWMA is its two-stage approach that creates more effective noise filtering while minimizing the additional lag typically associated with longer-period or higher-order filters. This sequential processing creates a more refined output that balances noise reduction and signal preservation better than simply increasing the length of a standard weighted moving average.
## Common Settings and Parameters
| Parameter | Default | Function | When to Adjust |
|-----------|---------|----------|---------------|
| Length | 14 | Controls the lookback period for both WMA calculations | Increase for smoother signals in volatile markets, decrease for more responsiveness |
| Source | close | Price data used for calculation | Consider using hlc3 for a more balanced price representation |
**Pro Tip:** For trend following, use a length of 10-14 with DWMA instead of a single WMA with double the period - this provides better smoothing with less lag than simply increasing the period of a standard WMA.
## Calculation and Mathematical Foundation
**Simplified explanation:**
DWMA first calculates a weighted moving average where recent prices have more importance than older prices. Then, it applies the same weighted calculation again to the results of the first calculation, creating a smoother line that reduces market noise more effectively.
**Technical formula:**
```
DWMA is calculated by applying WMA twice:
1. First WMA calculation:
WMA₁ = (P₁ × w₁ + P₂ × w₂ + ... + Pₙ × wₙ) / (w₁ + w₂ + ... + wₙ)
2. Second WMA calculation applied to WMA₁:
DWMA = (WMA₁₁ × w₁ + WMA₁₂ × w₂ + ... + WMA₁ₙ × wₙ) / (w₁ + w₂ + ... + wₙ)
```
Where:
- Linear weights: most recent value has weight = n, second most recent has weight = n-1, etc.
- n is the period length
- Sum of weights = n(n+1)/2
**O(1) Optimization - Inline Dual WMA Architecture:**
This implementation uses an advanced O(1) algorithm with two complete inline WMA calculations. Each WMA uses the dual running sums technique:
1. **First WMA (source → wma1)**:
- Maintains buffer1, sum1, weighted_sum1
- Recurrence: `W₁_new = W₁_old - S₁_old + (n × P_new)`
- Cached denominator norm1 after warmup
2. **Second WMA (wma1 → dwma)**:
- Maintains buffer2, sum2, weighted_sum2
- Recurrence: `W₂_new = W₂_old - S₂_old + (n × WMA₁_new)`
- Cached denominator norm2 after warmup
**Implementation details:**
- Both WMAs fully integrated inline (no helper functions)
- Each maintains independent state: buffers, sums, counters, norms
- Both warm up independently from bar 1
- Performance: ~16 operations per bar regardless of period (vs ~10,000 for naive O(n²) implementation)
**Why inline architecture:**
Unlike helper functions, the inline approach makes all state variables and calculations visible in a single scope, eliminating function call overhead and making the dual-pass nature explicit. This is ideal for educational purposes and when debugging complex cascaded filters.
> 🔍 **Technical Note:** The dual-pass O(1) approach creates a filter that effectively increases smoothing without the quadratic increase in computational cost. Original O(n²) implementations required ~10,000 operations for period=100; this optimized version requires only ~16 operations, achieving a 625x speedup while maintaining exact mathematical equivalence.
## Interpretation Details
DWMA can be used in various trading strategies:
* **Trend identification:** The direction of DWMA indicates the prevailing trend
* **Signal generation:** Crossovers between price and DWMA generate trade signals, though they occur later than with single WMA
* **Support/resistance levels:** DWMA can act as dynamic support during uptrends and resistance during downtrends
* **Trend strength assessment:** Distance between price and DWMA can indicate trend strength
* **Noise filtering:** Using DWMA to filter noisy price data before applying other indicators
## Limitations and Considerations
* **Market conditions:** Less effective in choppy, sideways markets where its lag becomes a disadvantage
* **Lag factor:** More lag than single WMA due to double calculation process
* **Initialization requirement:** Requires more data points for full calculation, showing more NA values at chart start
* **Short-term trading:** May miss short-term trading opportunities due to increased smoothing
* **Complementary tools:** Best used with momentum oscillators or volume indicators for confirmation
## References
* Jurik, M. "Double Weighted Moving Averages: Theory and Applications in Algorithmic Trading Systems", Jurik Research Papers, 2004
* Ehlers, J.F. "Cycle Analytics for Traders," Wiley, 2013
In den Scripts nach "ha溢价率" suchen
ADX and DI deltaJust a small adjustment to a well known indicator, the ADX with +DI and -DI.
I've always been annoyed of how cluttered this indicator is, specially do to the increasing gap between +DI and -DI, so I changed it up a bit.
ADX line has not been adjusted
+DI and -DI have now merged into deltaDI
deltaDI changes color depending on which value is higher (+DI > -DI = green line, else red line)
Plots a dashed 0 line (not editable)
Plots a two dotted lines at value 20 and 25 (editable)
Plots a label above/below price on the chart if the trend is exhausted and might end. (can be disabled)
Now you only have the ADX line together with a delta line.
The delta line is the gap between +DI and -DI and will change color depending on which one is highest and controlling the trend.
+DI = green line
-DI = red line
I've also added both a 20 and 25 horizontal dotted line.
Normally ADX should be 25 or higher to start a trend, but I do know a lot of people like to be greedy and jump in early in the trend build-up.
A dashed 0 line has been added, just because I felt like it. If either the ADX or delta ever cross below it without you editing the script yourself, just delete the script as it clearly doesn't do its job.
A red label_down will be plotted above the price when the ADX starts curling down and +DI > -DI. This indicates at best a breather for a bullish up trend or a possible reversal.
A red label_down will be plotted above the price if the ADX is above 25 and starts curling down while +DI > -DI. This indicates at best a breather for a bullish up trend or a possible reversal.
A green label_up will be plotted below the price if the ADX is above 25 and starts curling down while -DI > +DI. This indicates at best a breather for a bearish down trend or a possible reversal.
Enjoy my take on the indicator.
Volume Surge by MashrabThe "Volume Surge" indicator is like a simple market health checkup. It looks at how much of an asset (like a stock or crypto) is being traded right now and compares it to the recent past. Think of it as a way to quickly see if interest in that asset is suddenly spiking, fading, or staying the same.
The indicator shows this information in an easy-to-read table right on your chart.
How it works:
The indicator keeps track of two main things for you:
Current Volume: The total trading volume over the last "N" days (or whatever time period you choose).
Previous Volume: The total trading volume over the period right before that
Then, it gives you a summary:
The "Ratio" tells you how many times bigger or smaller the current volume is.
The "Percent Change" shows the percentage jump in volume.
How to use it:
This indicator helps you see when something interesting might be happening. Here are a few ways traders use it:
Confirm Breakouts: If a stock breaks above a key price level and the indicator shows a huge volume surge, it’s a stronger signal that the move is real and not a false alarm.
Spot Reversals: If a stock has been trending up but the volume starts to drop off, it could mean the trend is losing steam. A sudden, massive volume surge on a down day might indicate panic selling, which can sometimes happen right before the price turns around.
Check Trend Strength: A healthy trend usually has increasing volume going in the same direction. For example, if a stock is in an uptrend, you want to see lots of volume on the days it goes up.
This indicator isn't a crystal ball, but it's a great tool for understanding the "who" and "how much" behind a price move. It helps you see when a price change is backed by a lot of market activity, which often makes the move more trustworthy.
FCBI Brake PressureBrake Pressure (FCBI − USIRYY)
Concept
The Brake Pressure indicator quantifies whether the bond market is braking or releasing liquidity relative to real yields (USIRYY).
It is derived from the Financial-Conditions Brake Index (FCBI) and expresses the balance between long-term yield pressure and real-rate dynamics.
Formula
Brake Pressure = FCBI − USIRYY
where FCBI = (US10Y) − (USINTR) − (CPI YoY)
Purpose
While FCBI measures the intensity of financial-condition pressure, Brake Pressure shows when that brake is being applied or released.
It captures the turning point of liquidity transmission in the financial system.
How to Read
Brake Pressure < 0 (orange) → Brake engaged → financial conditions tighter than real-rate baseline; liquidity constrained.
Brake Pressure ≈ 0 → Neutral zone → transition phase between tightening and easing.
Brake Pressure > 0 (teal) → Brake released → financial conditions looser than real-rate baseline; liquidity flows freely → late-cycle setup before recession.
Zero-Cross Logic
Cross ↑ above 0 → FCBI > USIRYY → brake released → liquidity acceleration → typically 6–18 months before recession.
Cross ↓ below 0 → FCBI < USIRYY → brake re-engaged → tightening resumes.
Historical Behavior
Each major U.S. recession (2001, 2008, 2020) was preceded by a Brake Pressure cross above zero after a negative phase, signaling that long yields had stopped resisting Fed cuts and liquidity was expanding.
Practical Use
• Identify late-cycle turning points and liquidity inflection phases.
• Combine with FCBI for a complete macro transmission picture.
• Watch for sustained positive readings as early macro-recession warnings.
Current Example (Oct 2025)
FCBI ≈ −3.1, USIRYY ≈ +3.0 → Brake Pressure ≈ −6.1 → Brake still engaged. When this crosses above 0, it signals that liquidity is free flowing and the recession countdown has begun.
Summary
FCBI shows how tight the brake is. Brake Pressure shows when the brake releases.
When Brake Pressure > 0, the system has entered the liquidity-expansion phase that historically precedes a U.S. recession.
HV Spike Strategy (HVP + OR Breakout + Reversal + TP/SL Modes)Here is a script that I tried to make it simple, although it has several parameters, I will try to explain, here we go:
Logic: Open Range Breakout: otherwise knows as First Candle Rule, usually used for the first candle in the opening of a market session, in my strategy there is an option to use it even for Crypto that operate 24/7, how to do that? Simply by detecting Volatility from the HVP (Historical Volatility Percentile). Then the ORB logic kicks in and the first candle with high volatility gives the ranges for the trades. The proper HVP Activation Threshold has to be selected for each currency pair/index/crypto in order to have maximum profit.
Enter a trade: when the price goes 100% above/below the First Candle Rule Range. That way it is filtering fake breakouts. Also if the price reverses back into the range the strategy takes the opposite trade.
Exit a trade: SL/TP By percentage or ATR, selection in the input menu.
My intention is to avoid using lagging indicators or guessing of Price Action, purely Bull/Bear indication by the first candle.
I hope you find this helpful! Wishing all successful Trades!
Pullback Finder AutoPullback Finder Auto — Intraday Momentum Cooling Detector
Pullback Finder Auto is designed to find stocks that have made a strong intraday run from the open and are now cooling off while still positive — the classic pullback zone where continuation entries often form.
It automatically measures the percentage change from today’s open and highlights bars where:
the stock has already run at least a chosen amount (for example +10 % above its open), and
the current price is still up but within a defined pullback range (for example between +3 % and +8 % above the open).
When those two conditions are met, you’ll see green graphics on your chart:
Green triangle markers under the candle.
Optionally, small green PB labels such as “PB 5.2 %” showing the exact percentage from open when the setup occurs.
A green highlight in the sub‑window or line plot if you left the “Change from Open %” plot active.
These are your visual cues that a pullback has formed — a stock that previously ran and is now pulling back while holding strength.
How it works
The script continuously monitors:
• High % from Open = (high − open) / open × 100
• Current % from Open = (close − open) / open × 100
A “Pullback” condition triggers only if:
the high % is greater than or equal to your minimum run threshold, and
the current % sits between your minimum and maximum pullback percentages.
When both are true, the indicator plots the green triangle and optional label.
Default parameters
Min Run % = 10
Min Current % = 3
Max Current % = 8
Session Start = 09:30 – 16:00 US Eastern
All can be changed to fit different volatility levels.
Lower values catch smaller moves; higher values restrict signals to explosive runners.
Using it in real time
During live trading, Pullback Finder Auto updates with each candle.
When a bar first enters the target zone, a green triangle and PB label will appear immediately under that candle.
These are dynamic: if price moves out of the valid zone on the same bar, the marker may disappear.
You can create an alert on “Pullback Finder Auto – Pullback Candidate” to be notified whenever new triangles appear across your active symbols.
This works on any timeframe:
use shorter timeframes such as 1‑minute or 5‑minute charts for fast, intraday detection,
use longer timeframes for a broader view of the day’s market structure.
Using it on past data (scanning backwards)
When you scroll back through history, past green triangles remain visible at every bar where the condition was true at that time.
The PB labels next to those candles show exactly how far above the open the stock was trading during the historical setup.
Use this for visual back‑testing: study how price reacted after these pullback points, adjust the thresholds, and refine your criteria for different markets.
The grey or teal line under the chart (if enabled) shows the percent‑from‑open curve so you can see the full run‑and‑cool pattern leading into each triangle signal.
If you convert the indicator into a strategy, the same condition becomes historical entry points you can test with the Strategy Tester.
Summary
1. Pullback Finder Auto paints green triangles and PB labels whenever an intraday pullback fits your criteria.
2. It runs dynamically in real‑time and also preserves markers for historical review.
3. Adjust the thresholds to match volatility or timeframe.
4. Ideal for visual scanning, watchlist alerts, or integration into a lightweight screening strategy.
mean reversion Spread Z-Score Your main "actor" is the Blue Line 🔵 (the Z-Score). It tells you if your spread is "expensive" or "cheap" compared to its average.
The other lines are your action zones.
Here is how to read the signals:
Scenario 1: SELL the Spread (The spread is TOO EXPENSIVE)
• ENTRY Signal: The Blue Line 🔵 moves up and crosses the Red Line 🔴 (at +1.8).
• Meaning: MNQ has become far too expensive compared to MES. The rubber band is stretched too far upwards.
• Your Action (Sell):
• ✅ SELL MNQ
• ✅ BUY MES
• EXIT Signal: The Blue Line 🔵 comes back down and crosses the Dotted Red Line (at +0.5).
• Meaning: The rubber band is back to normal. It's time to take your profits.
• Your Action (Close):
• ✅ BUY BACK your MNQ
• ✅ SELL your MES
Scenario 2: BUY the Spread (The spread is TOO CHEAP)
• ENTRY Signal: The Blue Line 🔵 moves down and crosses the Green Line 🟢 (at -1.8).
• Meaning: MNQ has become far too cheap compared to MES. The rubber band is stretched too far downwards.
• Your Action (Buy):
• ✅ BUY MNQ
• ✅ SELL MES
• EXIT Signal: The Blue Line 🔵 moves back up and crosses the Dotted Green Line (at -0.5).
• Meaning: The rubber band is back to normal. It's time to take your profits.
• Your Action (Close):
• ✅ SELL your MNQ
• ✅ BUY BACK your MES
In summary:
• Blue Line 🔵 touches Red Line 🔴 = Sell the spread.
• Blue Line 🔵 touches Green Line 🟢 = Buy the spread.
The Vishnu Zone Ver 2 by Dr. Sudhir Khollam## 📜 **The Vishnu Zone — Trade When the Brahma Zone Ends**
**Author:** Dr. Sudhir Khollam (SALSA© Method of Astrology & Market Psychology)
**Category:** Volatility Phase Detection / Bollinger Band Expansion Analysis
---
### 🔶 **Concept Overview**
In the **SALSA© Market Philosophy**, every market phase follows a cosmic rhythm —
* **Brahma Phase** represents *creation and expansion* (high volatility and strong directional movement).
* **Vishnu Phase** represents *maintenance and stability* (where expansion cools down and balanced opportunities appear).
**“The Vishnu Zone”** indicator identifies the exact moments when the **Brahma Phase ends** — signaling that the expansion has completed and the market is likely to enter a more stable, tradable state.
This is a **precision-timing indicator** that helps traders avoid entering at the end of impulsive phases and instead prepare for equilibrium-based trades (mean reversion, range setups, or steady trends).
---
### ⚙️ **How It Works**
The indicator measures **Bollinger Band Width (BBW)** to quantify expansion and contraction in volatility.
1. It calculates the **adaptive expansion threshold** using the average BBW over a rolling lookback period.
2. When the current BBW **drops below** this adaptive threshold **after being above it**, the script marks it as the **end of the Brahma Phase**.
3. This moment is shown visually as:
* 🕉 **“Vishnu” label** above the candle
* A **horizontal dotted line** extending for several bars
Together, these mark a **Vishnu Zone**, where the market transitions from expansion to consolidation — an ideal time for stabilization or entry planning.
---
### 📊 **Inputs & Settings**
| Parameter | Description |
| ---------------------------------- | ------------------------------------------------------------------------------ |
| **Bollinger Band Length** | The number of bars used for SMA and standard deviation (default 20). |
| **Bollinger Multiplier** | Determines the width of Bollinger Bands (default 2.0). |
| **Adaptive Lookback Period** | Rolling window to calculate the mean BBW for dynamic adjustment (default 150). |
| **Expansion Multiplier** | Multiplies the mean BBW to define the expansion threshold (default 1.35). |
| **Horizontal Line Extension Bars** | Number of bars to extend the Vishnu Zone line into the future (default 40). |
| **Show End-of-Brahma Labels?** | Toggle 🕉 labels on/off. |
| **Show Horizontal Lines?** | Toggle Vishnu Zone lines on/off. |
---
### 🔔 **Alerts**
When the **Brahma Phase ends**, the indicator triggers an alert:
> *“Brahma Phase Ends, Vishnu has taken over.”*
This helps traders receive real-time notification of volatility contraction and possible entry zones.
---
### 🧠 **Best Practices**
* Works effectively on **5-minute to 1-hour timeframes** for intraday trading.
* Best paired with **momentum or volume filters** to confirm trend exhaustion.
* Avoid entering during rapid expansion (Brahma phase). Wait for a Vishnu signal to ensure market stabilization.
---
### 🌌 **Philosophical Interpretation (SALSA© Principle)**
Just as Vishnu sustains the universe after Brahma’s creation, the market too enters a **maintenance phase** after every burst of expansion.
Recognizing this shift allows traders to align with **cosmic rhythm and price psychology**, not just technical metrics.
---
### 🧩 **Summary**
✅ Detects when expansion volatility ends
✅ Marks transition zones between impulsive and stable phases
✅ Sends real-time alerts
✅ Adaptive and self-adjusting across markets and assets
✅ Simple, clean visualization — ideal for disciplined trading
---
### ⚡ **Use Case**
Perfect for traders who:
* Prefer **low-risk entries** after volatility spikes
* Trade **mean reversion**, **range breakouts**, or **volatility collapses**
* Believe in the **cyclic nature of market energy**
---
Puell Multiple Variants [OperationHeadLessChicken]Overview
This script contains three different, but related indicators to visualise Bitcoin miner revenue.
The classical Puell Multiple : historically, it has been good at signaling Bitcoin cycle tops and bottoms, but due to the diminishing rewards miners get after each halving, it is not clear how you determine overvalued and undervalued territories on it. Here is how the other two modified versions come into play:
Halving-Corrected Puell Multiple : The idea is to multiply the miner revenue after each halving with a correction factor, so overvalued levels are made comparable by a horizontal line across cycles. After experimentation, this correction factor turned out to be around 1.63. This brings cycle tops close to each other, but we lose the ability to see undervalued territories as a horizontal region. The third variant aims to fix this:
Miner Revenue Relative Strength Index (Miner Revenue RSI) : It uses RSI to map miner revenue into the 0-100 range, making it easy to visualise over/undervalued territories. With correct parameter settings, it eliminates the diminishing nature of the original Puell Multiple, and shows both over- and undervalued revenues correctly.
Example usage
The goal is to determine cycle tops and bottoms. I recommend using it on high timeframes, like monthly or weekly . Lower than that, you will see a lot of noise, but it could still be used. Here I use monthly as the example.
The classical Puell Multiple is included for reference. It is calculated as Miner Revenue divided by the 365-day Moving Average of the Miner Revenue . As you can see in the picture below, it has been good at signaling tops at 1,3,5,7.
The problems:
- I have to switch the Puell Multiple to a logarithmic scale
- Still, I cannot use a horizontal oversold territory
- 5 didn't touch the trendline, despite being a cycle top
- 9 touched the trendline despite not being a cycle top
Halving-Corrected Puell Multiple (yellow): Multiplies the Puell Multiple by 1.63 (a number determined via experimentation) after each halving. In the picture below, you can see how the Classical (white) and Corrected (yellow) Puell Multiples compare:
Advantages:
- Now you can set a constant overvalued level (12.49 in my case)
- 1,3,7 are signaled correctly as cycle tops
- 9 is correctly not signaled as a cycle top
Caveats:
- Now you don't have bottom signals anymore
- 5 is still not signaled as cycle top
Let's see if we can further improve this:
Miner Revenue RSI (blue):
On the monthly, you can see that an RSI period of 6, an overvalued threshold of 90, and an undervalued threshold of 35 have given historically pretty good signals.
Advantages:
- Uses two simple and clear horizontal levels for undervalued and overvalued levels
- Signaling 1,3,5,7 correctly as cycle tops
- Correctly does not signal 9 as a cycle top
- Signaling 4,6,8 correctly as cycle bottoms
Caveats:
- Misses two as a cycle bottom, although it was a long time ago when the Bitcoin market was much less mature
- In the past, gave some early overvalued signals
Usage
Using the example above, you can apply these indicators to any timeframe you like and tweak their parameters to obtain signals for overvalued/undervalued BTC prices
You can show or hide any of the three indicators individually
Set overvalued/undervalued thresholds for each => the background will highlight in green (undervalued) or red (overvalued)
Set special parameters for the given indicators: correction factor for the Corrected Puell and RSI period for Revenue RSI
Show or hide halving events on the indicator panel
All parameters and colours are adjustable
Relative Performance Tracker [QuantAlgo]🟢 Overview
The Relative Performance Tracker is a multi-asset comparison tool designed to monitor and rank up to 30 different tickers simultaneously based on their relative price performance. This indicator enables traders and investors to quickly identify market leaders and laggards across their watchlist, facilitating rotation strategies, strength-based trading decisions, and cross-asset momentum analysis.
🟢 Key Features
1. Multi-Asset Monitoring
Track up to 30 tickers across any market (stocks, crypto, forex, commodities, indices)
Individual enable/disable toggles for each ticker to customize your watchlist
Universal compatibility with any TradingView symbol format (EXCHANGE:TICKER)
2. Ranking Tables (Up to 3 Tables)
Each ticker's percentage change over your chosen lookback period, calculated as:
(Current Price - Past Price) / Past Price × 100
Automatic sorting from strongest to weakest performers
Rank: Position from 1-30 (1 = strongest performer)
Ticker: Symbol name with color-coded background (green for gains, red for losses)
% Change: Exact percentage with color intensity matching magnitude
For example, Rank #1 has the highest gain among all enabled tickers, Rank #30 has the lowest (or most negative) return.
3. Histogram Visualization
Adjustable bar count: Display anywhere from 1 to 30 top-ranked tickers (user customizable)
Bar height = magnitude of percentage change.
Bars extend upward for gains, downward for losses. Taller bars = larger moves.
Green bars for positive returns, red for negative returns.
4. Customizable Color Schemes
Classic: Traditional green/red for intuitive interpretation
Aqua: Blue/orange combination for reduced eye strain
Cosmic: Vibrant aqua/purple optimized for dark mode
Custom: Full personalization of positive and negative colors
5. Built-In Ranking Alerts
Six alert conditions detect when rankings change:
Top 1 Changed: New #1 leader emerges
Top 3/5/10/15/20 Changed: Shifts within those tiers
🟢 Practical Applications
→ Momentum Trading: Focus on top-ranked assets (Rank 1-10) that show strongest relative strength for trend-following strategies
→ Market Breadth Analysis: Monitor how many tickers are above vs. below zero on the histogram to gauge overall market health
→ Divergence Spotting: Identify when previously leading assets lose momentum (drop out of top ranks) as potential trend reversal signals
→ Multi-Timeframe Analysis: Use different lookback periods on different charts to align short-term and long-term relative strength
→ Customized Focus: Adjust histogram bars to show only top 5-10 strongest movers for concentrated analysis, or expand to 20-30 for comprehensive overview
Triple Stochastic RSITriple Stochastic RSI (TSRSI)
The Triple Stochastic RSI is a momentum visualization tool designed to help identify potential market tops and bottoms with greater clarity. This indicator stacks three layers of smoothed StochRSI — Fast , Slow , and Slowest — each derived from increasingly longer RSI and Stochastic periods.
By analyzing how these layers interact, especially when the Slow (purple) and Slowest (orange) lines converge or cross near overbought or oversold zones, traders can spot high-probability reversal points. These moments often precede price turning points, and the signals gain strength when confirmed by divergences between price and indicator movement.
Key features include:
Triple StochRSI smoothing to capture short- to long-term momentum shifts.
Dynamic overbought/oversold signals with visual cross markers.
Built-in trend sentiment and average streak statistics.
Alerts for crossovers, trend shifts, and extended over/underperformance streaks.
Use it as a standalone momentum framework or as a supporting layer for divergence detection and market exhaustion analysis.
The stats table in your script provides insight into how long each Stochastic line (%K) typically stays above or below the 50 midline, and how the current streak compares to that average.
1. "Current" Column
This shows how many consecutive bars the %K has been:
Above 50 (▲)
OR Below 50 (▼)
It updates in real time on the last bar.
2. "Avg ▲ / Avg ▼" Column
These are historical averages based on your lookbackPeriod (default 1000 bars). It shows:
The average length of time %K stays above 50 (bullish bias)
The average time it stays below 50 (bearish bias)
Example Breakdown:
Let’s say the "Slow" row shows:
Current: 7 ▼
Avg ▲ / Avg ▼: 6 / 5
This means:
%K on the Slow lane has been below 50 for 7 bars
Historically, it only stays below 50 for about 5 bars on average
So, this bearish streak is already longer than usual
How to Use This Information:
A longer-than-average streak could imply a maturing move, potentially near exhaustion.
If current ▲ or ▼ streak is nearing or exceeding its average, it may warn of an upcoming shift.
Good for contextualizing trends and avoiding late entries.
Tradytics Levels with EMA CloudThis indicator has tradytics price chart levels where you can put in the input code seen below.
The code has positive gamma (green lines), negative gamma (Red lines) and white dotted line are the darkpool levels.
This is Amazon's 5 minute from Sep30th to October 20th Gammas and weekly Darkpool levels. Just copy and paste code below in the input code and the chart would show the levels.
212.8*1*neutral 220.07*1*neutral 216.038*1*neutral 215.57*1*neutral 219.988*1*neutral 217.401*1*neutral 217.351*1*neutral 212.815*1*neutral 212.75*1*neutral 212.4*1*neutral 215*0*negative 222.5*0*positive 217.5*0*positive 220*0*positive
ATR DAILY PROGRESSION)Indicator: ATR Daily Progression — Final Compact Edition
1. Indicator Objective
The ATR Daily Progression indicator measures the progression of intraday volatility as a percentage of the daily Average True Range (ATR).
It provides a quick visual overview of whether the market has reached or exceeded its average daily range of movement.
This helps traders avoid entering low-probability continuation trades once the day’s ATR is already completed.
2. Visual Presentation
Horizontal bar ranging from 0% to 150% of the ATR.
Green color up to 100%, then red beyond that point.
Main ticks: 0, 25, 50, 75, 90, 100, and 150%.
Full-height white vertical lines at 0%, 100%, and 150%.
A floating badge displaying the current ATR completion percentage, always visible.
Compact Height mode enabled by default for optimal visual integration.
3. Key Features
Function Description
Precise alignment The transition from green to red occurs exactly after the 100% tick.
Audio & visual alerts Triggered at 75%, 90%, 100%, and 150%.
Session flash effects The filled bar blinks when the ATR is reached (100%) or exceeded (150%).
Dynamic badge Displays the current ATR %, green before 100%, red after.
Compact layout Three-line table format for better chart integration.
4. Recommended Settings
ATR Length (Daily): 14
Bar width (steps): 32–40 (depending on chart size)
Always green below 100%: enabled
Show floating % badge: enabled
Compact Height: enabled by default
Flash at 75% and 90%: enabled
Flash at 100% and 150%: enabled
5. Strategic Use
The ATR Done Today is a visual discipline tool designed to help traders:
Identify when the market has likely completed its daily move.
Avoid late-session counter-trend trades.
Visualize volatility compression or expansion.
Determine optimal times to take profits or pause trading.
Quadruple AlphaTrendKivancOzbilgi's 'Alpha Trend' indicator has been developed as 'Quadruple Alpha Trend'.
It has been extended to AlphaTrend1,2,3,4, and each line allows users to freely choose colors.
Each of the AT1 to 2 and AT3 to 4 was again color-transformed at the crossing point, respectively.
We believe that the value of AT can compensate a lot for all the shortcomings of a regular moving average.
It can show the support and resistance of the low and high points at each horizontal section and
pressed neck point at the same time
Draw a horizontal line type.
These advantages make it easy to visually break through and collapse support and resistance on the monthly, weekly, and daily charts
It makes it possible to distinguish. I think it's an excellent indicator design by Kivanc Ozbilgi.
The most similar indicator to this one is the "UT BOT", which is close to the moving average in terms of support and resistance
Because it gives a euphemism, the value of "Alpha Trend" as an index that includes horizontal support and resistance
Very highly appreciated. If you have any issues or need to develop further, please leave a note.
MTF Intraday v2.0📊 Description
MTF Intraday v2.0 is an informative indicator for analyzing trend strength across multiple timeframes simultaneously. Designed specifically for intraday (session) trading during European and US market hours.
The indicator shows the real market picture without lagging signals - you see the trend strength right now for each timeframe.
🎯 Key Features
1. Multi-Timeframe Analysis (D1, H4, H1, M30, M15)
Analyzes 4 indicators on each TF: SuperTrend, RSI, EMA crossover, EMA200
Shows strength for each timeframe: STRONG / MED / WEAK
Color indication: 🟢 green (LONG strong), 🔴 red (SHORT strong), 🟡 yellow (medium), ⚪ gray (weak)
2. Intraday Trading Hierarchy
D1 - global context (affects quality assessment)
H4 - general (sets the main trend)
H1 - reference point for intraday
M30/M15 - finding entry points during sessions
3. Market Pulse
🔥 HOT - when both H4 and H1 are STRONG (best time to enter!)
✓ GOOD - when H4 or H1 is STRONG
L:45 S:20 - balance of power between LONG and SHORT (statistics instead of "wait")
4. Volume Indicator (24 hours)
Shows volume change over the last 24 hours
SPIKE! - when volume increased by the set % (default 50%)
Considers candle color: 🟢 LONG spike (rise + green candle), 🔴 SHORT spike (rise + red candle)
Works on any timeframe (automatically recalculates)
5. Compact Mode
OFF - shows all details: every indicator for each TF
ON - only strength per timeframe (for clean chart)
⚙️ Settings
Main:
SuperTrend Period (21) / Multiplier (6.3)
RSI Length (14)
EMA Short (50) / Long (100) / 200
Compact Mode - hide detailed indicators
Volume:
Show Volume - show/hide volume indicator
Volume Alerts ON/OFF - enable/disable volume alerts
Volume Spike (%) - spike threshold (30% / 50% / 100%)
🔔 Alerts
The indicator has 5 types of alerts:
Market HOT - H4 and H1 simultaneously became STRONG
VOL LONG - volume spike on bullish candle
VOL SHORT - volume spike on bearish candle
EMA200 UP - price crossed EMA200 upward
EMA200 DN - price crossed EMA200 downward
Set up in TradingView: Create Alert → Select desired alert from the list
📈 How to Use
For finding entry points:
Check H4 - should be at least MED (better STRONG)
Verify H1 - main filter for intraday
Wait for pulse "🔥 HOT" or at least "✓ GOOD"
Look at M30/M15 - seek confirmation
Check 24h VOL - if SPIKE, momentum has started
Quality Assessment:
EXCELLENT ⭐ - all stars aligned (D1 with us, high score)
GOOD - good setup
WARNING ⚠️ - D1 against trend (counter-trend, be careful!)
Color Indication:
🟢 Green cells - bullish signal
🔴 Red cells - bearish signal
🟡 Yellow cells - neutral/waiting
🟠 Orange TF labels - for readability
⚠️ Important
This is an informative indicator, not a trading system
Does not give "entry/exit" signals - shows trend strength in the moment
Use together with Price Action and your trading strategy
RSI on M15 is displayed but not counted (too much noise)
💡 Who is it for
✅ Intraday traders (Europe/US sessions)
✅ Scalpers on crypto and forex
✅ Swing traders for trend confirmation
✅ Those who trade on multiple timeframes simultaneously
ATR Anchored Range %b by TradeSeekersAll time highs got you spooked to enter with no levels in sight?
Stuck in a multi-week range and wondering where the heck the pivots are!?
Wondering if you're longing the top or shorting the potential bottom and about to get smoked, sending you back to burger flipping?!
Fret not trading friends!
I've been crafting the ultimate map for scalpers, slingers, swingers, swindlers, swashbucklers -and traders too.
Why should I care about this, what's an ATR!?
Nearly any trader that's entered the markets has heard of ATR, perhaps even taken a stab at trying to calculate the flux capacity of a weekly ATR on a lower timeframe. Continually calculating things manually sucks!
Ok, so you haven't heard of ATR? It's the average true range... what's the true range!? It's simply the low subtracted from the high (high - low) of any given candle.
How is ATR useful?
The theory is simple, if the ATRs on the daily timeframe for a stock are 5, then traders may have a reasonable expectation that any day in the near future the stock will mostly move +/- 5 pts. This +/- 5 can be used as a possible daily high and low for traders to use.
But ATR changes as time passes, with every billionaire X post, viral cat meme, fed announcement or government shutdown the market makes it's move. This means without this tool, traders need to run the standard lame (sorry) ATR indicator and then hand draw a bunch of important levels (barf).
I'm convinced and ready to join the ATR army, what do I do?
Glad to have you aboard sailor, slap this indicator on your layout - it'll initially display a bottom panel, say nice things to it.
Usage
The lower panel provides a %b plot representative of the current price relative to the timeframe and period ATR. (Defaults to 1D timeframe and 20 - 20 trading days in a month yo)
This %b plot is a map for price against the key ATR based levels and resets each time the timeframe change occurs.
Keep reading! (maybe grab a snack, you're doing great)
If you want to see what the indicator sees, how it maths the math, open the settings and check the "overlay" option... it's amazing, I know.
Main base of operations
This will be the gray area between first red and green lines, imagine this is a future candle for the timeframe anchored. The red would represent the candle high (red means stop/overbought), and the green would represent the candle low (green means go/oversold).
Regardless of the timeframe anchored, this area always represents the area the ATR indicates will be the building area of the current candle being formed. Traders should expect most of the trading to occur within this area.
The mid line
Don't diddle in the middle, this by default is the open price and it's the ultimate bias filter for bull or bear riders.
Extension areas
Beyond the gray area is the extension zone, this provides a whole ATR from the mid line to the extension.
Assembling a trade plan
There are just a couple of key concepts to master in order to become the ultimate ATR samurai warrior, capable of slicing through even the messiest liquidity.
Above the midline and holding, but still within the gray area? Could be a great long entry with targets to upper levels. The same holds true for below open and holding while still being within the lower gray area.
As price makes it's ascension or decline towards the ends of the initial gray ATR range, consider managing trades here. If it's suspected, due to a strong hold of the midline, that the range low or high is the midline, then continue to manage trades towards the extension zones.
Timeframes and periods oh my
The tooltips already provide some hints, but not everyone goes around clicking and hovering everything in sight (maybe I'm the only one that does that?).
There's a thoughtful approach to the default values, I like to consider the big market participants with my day trades, swings trades and beyond.
By default I've chosen the daily timeframe and a period of 20, one for each trading day of the calendar month.
It's no large leap to consider alternatives, what about 1W timeframe and a period of 4 (1 month) or 52 (1 year)?
The possibilities are nearly infinite, comment on any particular favorite combos.
An Italian Special Bonus!!!
...sorry, it's not pizza....
First, did you know the famous Italian Fibonacci's real name was actually Leonardo? I'm not sure how I feel about that. Fun fact, my ancestors are Italian.
Alright, you may have guessed that the special bonus is the mythical Fibonacci inspired "Golden Pocket", maybe it's a foreshadowing of your pockets - one can only hope.
Use this feature to show the commonly referenced Fibonacci levels within each major ATR range. I've seen some totally mathematical epic-ness with these hence the addition.
Once key ATR levels have been hit look for reversals back to golden pockets (you tricksy hobbits) for potential entry back towards the prior hit ATR level.
The %b turns gold if you have the feature enabled and of course the overlay displays them also, how fun!
Final thoughts
I hope you have as much fun using this indicator as I do, it has brought much joy to my trading experience. If you don't have fun with it, well I hope you had fun reading about it at least.
100% human crafted and darn proud of it
- SyntaxGeek
Daily ATR Zones
Dynamic Daily ATR Projection Zones
### **Description:**
This indicator projects potential price levels for the current trading day based on the Average True Range (ATR) of the previous day. It is designed to help intraday traders visualize daily volatility and identify key potential support, resistance, or target levels that are fixed for the entire session and do not repaint.
**How It Works**
The logic is based on two key components: a stable base price and a reliable volatility measure.
* **Base Price:** The indicator uses the **Open price of the current day** as the central anchor point for all projections.
* **Volatility Measure:** The calculation uses the final, completed **ATR value from the previous day**. This ensures that the projected zones are constant throughout the current trading day and are not subject to repainting.
The projection levels are then calculated using the formula:
`Current Day's Open + (Previous Day's ATR * Multiplier)`
**Features**
This script is fully customizable to fit your trading style:
* **Customizable ATR Multipliers:** Easily define your own price zones by entering a comma-separated list of multipliers (e.g., `0.5, 1.0, 1.5, -0.5, -1.0`).
* **Dynamic & Movable Labels:** The price labels are designed to stay on the right edge of the chart, ensuring they never obscure the current price action.
* **Adjustable Label Position:** Use the "Label Horizontal Offset" setting to control how far the labels are positioned from the current bar, keeping your chart clean.
* **Adjustable Label Size:** Choose from five different sizes (Tiny, Small, Normal, Large, Huge) to ensure the labels are perfectly readable on any device.
* **Toggle Labels:** You can turn all labels on or off with a single checkbox.
* **Full Color Customization:** Set unique colors for the positive (upper), negative (lower), and neutral projection zones.
**How to Use**
This tool can be integrated into various intraday trading strategies:
* **Intraday Targets:** The projected levels can serve as potential take-profit or stop-loss targets for scalpers and day traders.
* **Support & Resistance:** Watch for price reactions, such as bounces or rejections, at these ATR levels, as they often act as dynamic support and resistance zones.
* **Volatility Gauge:** The zones provide a quick visual reference for how far the price has moved relative to its recent average daily range. For example, if the price reaches the `1.0 ATR` level, it has completed an "average" day's move.
Advanced Speedometer Gauge [PhenLabs]Advanced Speedometer Gauge
Version: PineScript™v6
📌 Description
The Advanced Speedometer Gauge is a revolutionary multi-metric visualization tool that consolidates 13 distinct trading indicators into a single, intuitive speedometer display. Instead of cluttering your workspace with multiple oscillators and panels, this gauge provides a unified interface where you can switch between different metrics while maintaining consistent visual interpretation.
Built on PineScript™ v6, the indicator transforms complex technical calculations into an easy-to-read semi-circular gauge with color-coded zones and a precision needle indicator. Each of the 13 available metrics has been carefully normalized to a 0-100 scale, ensuring that whether you’re analyzing RSI, volume trends, or volatility extremes, the visual interpretation remains consistent and intuitive.
The gauge is designed for traders who value efficiency and clarity. By consolidating multiple analytical perspectives into one compact display, you can quickly assess market conditions without the visual noise of traditional multi-indicator setups. All metrics are non-overlapping, meaning each provides unique insights into different aspects of market behavior.
🚀 Points of Innovation
13 selectable metrics covering momentum, volume, volatility, trend, and statistical analysis, all accessible through a single dropdown menu
Universal 0-100 normalization system that standardizes different indicator scales for consistent visual interpretation across all metrics
Semi-circular gauge design with 21 arc segments providing smooth precision and clear visual feedback through color-coded zones
Non-redundant metric selection ensuring each indicator provides unique market insights without analytical overlap
Advanced metrics including MFI (volume-weighted momentum), CCI (statistical deviation), Volatility Rank (extended lookback), Trend Strength (ADX-style), Choppiness Index, Volume Trend, and Price Distance from MA
Flexible positioning system with 5 chart locations, 3 size options, and fully customizable color schemes for optimal workspace integration
🔧 Core Components
Metric Selection Engine: Dropdown interface allowing instant switching between 13 different technical indicators, each with independent parameter controls
Normalization System: All metrics converted to 0-100 scale using indicator-specific algorithms that preserve the statistical significance of each measurement
Semi-Circular Gauge: Visual display using 21 arc segments arranged in curved formation with two-row thickness for enhanced visibility
Color Zone System: Three distinct zones (0-40 green, 40-70 yellow, 70-100 red) providing instant visual feedback on metric extremes
Needle Indicator: Dynamic pointer that positions across the gauge arc based on precise current metric value
Table Implementation: Professional table structure ensuring consistent positioning and rendering across different chart configurations
🔥 Key Features
RSI (Relative Strength Index): Classic momentum oscillator measuring overbought/oversold conditions with adjustable period length (default 14)
Stochastic Oscillator: Compares closing price to price range over specified period with smoothing, ideal for identifying momentum shifts
MFI (Money Flow Index): Volume-weighted RSI that combines price movement with volume to measure buying and selling pressure intensity
CCI (Commodity Channel Index): Measures statistical deviation from average price, normalized from typical -200 to +200 range to 0-100 scale
Williams %R: Alternative overbought/oversold indicator using high-low range analysis, inverted to match 0-100 scale conventions
Volume %: Current volume relative to moving average expressed as percentage, capped at 100 for extreme spikes
Volume Trend: Cumulative directional volume flow showing whether volume is flowing into up moves or down moves over specified period
ATR Percentile: Current Average True Range position within historical range using specified lookback period (default 100 bars)
Volatility Rank: Close-to-close volatility measured against extended historical range (default 252 days), differs from ATR in calculation method
Momentum: Rate of change calculation showing price movement speed, centered at 50 and normalized to 0-100 range
Trend Strength: ADX-style calculation using directional movement to quantify trend intensity regardless of direction
Choppiness Index: Measures market choppiness versus trending behavior, where high values indicate ranging markets and low values indicate strong trends
Price Distance from MA: Measures current price over-extension from moving average using standard deviation calculations
🎨 Visualization
Semi-Circular Arc Display: Curved gauge spanning from 0 (left) to 100 (right) with smooth progression and two-row thickness for visibility
Color-Coded Zones: Green zone (0-40) for low/oversold conditions, yellow zone (40-70) for neutral readings, red zone (70-100) for high/overbought conditions
Needle Indicator: Downward-pointing triangle (▼) positioned precisely at current metric value along the gauge arc
Scale Markers: Vertical line markers at 0, 25, 50, 75, and 100 positions with corresponding numerical labels below
Title Display: Merged cell showing “𓄀 PhenLabs” branding plus currently selected metric name in monospace font
Large Value Display: Current metric value shown with two decimal precision in large text directly below title
Table Structure: Professional table with customizable background color, text color, and transparency for minimal chart obstruction
📖 Usage Guidelines
Metric Selection
Select Metric: Default: RSI | Options: RSI, Stochastic, Volume %, ATR Percentile, Momentum, MFI (Money Flow), CCI (Commodity Channel), Williams %R, Volatility Rank, Trend Strength, Choppiness Index, Volume Trend, Price Distance | Choose the technical indicator you want to display on the gauge based on your current analytical needs
RSI Settings
RSI Length: Default: 14 | Range: 1+ | Controls the lookback period for RSI calculation, shorter periods increase sensitivity to recent price changes
Stochastic Settings
Stochastic Length: Default: 14 | Range: 1+ | Lookback period for stochastic calculation comparing close to high-low range
Stochastic Smooth: Default: 3 | Range: 1+ | Smoothing period applied to raw stochastic value to reduce noise and false signals
Volume Settings
Volume MA Length: Default: 20 | Range: 1+ | Moving average period used to calculate average volume for comparison with current volume
Volume Trend Length: Default: 20 | Range: 5+ | Period for calculating cumulative directional volume flow trend
ATR and Volatility Settings
ATR Length: Default: 14 | Range: 1+ | Period for Average True Range calculation used in ATR Percentile metric
ATR Percentile Lookback: Default: 100 | Range: 20+ | Historical range used to determine current ATR position as percentile
Volatility Rank Lookback (Days): Default: 252 | Range: 50+ | Extended lookback period for Volatility Rank metric using close-to-close volatility
Momentum and Trend Settings
Momentum Length: Default: 10 | Range: 1+ | Lookback period for rate of change calculation in Momentum metric
Trend Strength Length: Default: 20 | Range: 5+ | Period for directional movement calculations in ADX-style Trend Strength metric
Advanced Metric Settings
MFI Length: Default: 14 | Range: 1+ | Lookback period for Money Flow Index calculation combining price and volume
CCI Length: Default: 20 | Range: 1+ | Period for Commodity Channel Index statistical deviation calculation
Williams %R Length: Default: 14 | Range: 1+ | Lookback period for Williams %R high-low range analysis
Choppiness Index Length: Default: 14 | Range: 5+ | Period for calculating market choppiness versus trending behavior
Price Distance MA Length: Default: 50 | Range: 10+ | Moving average period used for Price Distance standard deviation calculation
Visual Customization
Position: Default: Top Right | Options: Top Left, Top Right, Bottom Left, Bottom Right, Middle Right | Controls gauge placement on chart for optimal workspace organization
Size: Default: Normal | Options: Small, Normal, Large | Adjusts overall gauge dimensions and text size for different monitor resolutions and preferences
Low Zone Color (0-40): Default: Green (#00FF00) | Customize color for low/oversold zone of gauge arc
Medium Zone Color (40-70): Default: Yellow (#FFFF00) | Customize color for neutral/medium zone of gauge arc
High Zone Color (70-100): Default: Red (#FF0000) | Customize color for high/overbought zone of gauge arc
Background Color: Default: Semi-transparent dark gray | Customize gauge background for contrast and chart integration
Text Color: Default: White (#FFFFFF) | Customize all text elements including title, value, and scale labels
✅ Best Use Cases
Quick visual assessment of market conditions when you need instant feedback on whether an asset is in extreme territory across multiple analytical dimensions
Workspace organization for traders who monitor multiple indicators but want to reduce chart clutter and visual complexity
Metric comparison by switching between different indicators while maintaining consistent visual interpretation through the 0-100 normalization
Overbought/oversold identification using RSI, Stochastic, Williams %R, or MFI depending on whether you prefer price-only or volume-weighted analysis
Volume analysis through Volume %, Volume Trend, or MFI to confirm price movements with corresponding volume characteristics
Volatility monitoring using ATR Percentile or Volatility Rank to identify expansion/contraction cycles and adjust position sizing
Trend vs range identification by comparing Trend Strength (high values = trending) against Choppiness Index (high values = ranging)
Statistical over-extension detection using CCI or Price Distance to identify when price has deviated significantly from normal behavior
Multi-timeframe analysis by duplicating the gauge on different timeframe charts to compare metric readings across time horizons
Educational purposes for new traders learning to interpret technical indicators through consistent visual representation
⚠️ Limitations
The gauge displays only one metric at a time, requiring manual switching to compare different indicators rather than simultaneous multi-metric viewing
The 0-100 normalization, while providing consistency, may obscure the raw values and specific nuances of each underlying indicator
Table-based visualization cannot be exported or saved as an image separately from the full chart screenshot
Optimal parameter settings vary by asset type, timeframe, and market conditions, requiring user experimentation for best results
💡 What Makes This Unique
Unified Multi-Metric Interface: The only gauge-style indicator offering 13 distinct metrics through a single interface, eliminating the need for multiple oscillator panels
Non-Overlapping Analytics: Each metric provides genuinely unique insights—MFI combines volume with price, CCI measures statistical deviation, Volatility Rank uses extended lookback, Trend Strength quantifies directional movement, and Choppiness Index measures ranging behavior
Universal Normalization System: All metrics standardized to 0-100 scale using indicator-appropriate algorithms that preserve statistical meaning while enabling consistent visual interpretation
Professional Visual Design: Semi-circular gauge with 21 arc segments, precision needle positioning, color-coded zones, and clean table implementation that maintains clarity across all chart configurations
Extensive Customization: Independent parameter controls for each metric, five position options, three size presets, and full color customization for seamless workspace integration
🔬 How It Works
1. Metric Calculation Phase:
All 13 metrics are calculated simultaneously on every bar using their respective algorithms with user-defined parameters
Each metric applies its own specific calculation method—RSI uses average gains vs losses, Stochastic compares close to high-low range, MFI incorporates typical price and volume, CCI measures deviation from statistical mean, ATR calculates true range, directional indicators measure up/down movement, and statistical metrics analyze price relationships
2. Normalization Process:
Each calculated metric is converted to a standardized 0-100 scale using indicator-appropriate transformations
Some metrics are naturally 0-100 (RSI, Stochastic, MFI, Williams %R), while others require scaling—CCI transforms from ±200 range, Momentum centers around 50, Volume ratio caps at 2x for 100, ATR and Volatility Rank calculate percentile positions, and Price Distance scales by standard deviations
3. Gauge Rendering:
The selected metric’s normalized value determines the needle position across 21 arc segments spanning 0-100
Each arc segment receives its color based on position—segments 0-8 are green zone, segments 9-14 are yellow zone, segments 15-20 are red zone
The needle indicator (▼) appears in row 5 at the column corresponding to the current metric value, providing precise visual feedback
4. Table Construction:
The gauge uses TradingView’s table system with merged cells for title and value display, ensuring consistent positioning regardless of chart configuration
Rows are allocated as follows: Row 0 merged for title, Row 1 merged for large value display, Row 2 for spacing, Rows 3-4 for the semi-circular arc with curved shaping, Row 5 for needle indicator, Row 6 for scale markers, Row 7 for numerical labels at 0/25/50/75/100
All visual elements update on every bar when barstate.islast is true, ensuring real-time accuracy without performance impact
💡 Note:
This indicator is designed for visual analysis and market condition assessment, not as a standalone trading system. For best results, combine gauge readings with price action analysis, support and resistance levels, and broader market context. Parameter optimization is recommended based on your specific trading timeframe and asset class. The gauge works on all timeframes but may require different parameter settings for intraday versus daily/weekly analysis. Consider using multiple instances of the gauge set to different metrics for comprehensive market analysis without switching between settings.
T3 ATR [DCAUT]█ T3 ATR
📊 ORIGINALITY & INNOVATION
The T3 ATR indicator represents an important enhancement to the traditional Average True Range (ATR) indicator by incorporating the T3 (Tilson Triple Exponential Moving Average) smoothing algorithm. While standard ATR uses fixed RMA (Running Moving Average) smoothing, T3 ATR introduces a configurable volume factor parameter that allows traders to adjust the smoothing characteristics from highly responsive to heavily smoothed output.
This innovation addresses a fundamental limitation of traditional ATR: the inability to adapt smoothing behavior without changing the calculation period. With T3 ATR, traders can maintain a consistent ATR period while adjusting the responsiveness through the volume factor, making the indicator adaptable to different trading styles, market conditions, and timeframes through a single unified implementation.
The T3 algorithm's triple exponential smoothing with volume factor control provides improved signal quality by reducing noise while maintaining better responsiveness compared to traditional smoothing methods. This makes T3 ATR particularly valuable for traders who need to adapt their volatility measurement approach to varying market conditions without switching between multiple indicator configurations.
📐 MATHEMATICAL FOUNDATION
The T3 ATR calculation process involves two distinct stages:
Stage 1: True Range Calculation
The True Range (TR) is calculated using the standard formula:
TR = max(high - low, |high - close |, |low - close |)
This captures the greatest of the current bar's range, the gap from the previous close to the current high, or the gap from the previous close to the current low, providing a comprehensive measure of price movement that accounts for gaps and limit moves.
Stage 2: T3 Smoothing Application
The True Range values are then smoothed using the T3 algorithm, which applies six exponential moving averages in succession:
First Layer: e1 = EMA(TR, period), e2 = EMA(e1, period)
Second Layer: e3 = EMA(e2, period), e4 = EMA(e3, period)
Third Layer: e5 = EMA(e4, period), e6 = EMA(e5, period)
Final Calculation: T3 = c1×e6 + c2×e5 + c3×e4 + c4×e3
The coefficients (c1, c2, c3, c4) are derived from the volume factor (VF) parameter:
a = VF / 2
c1 = -a³
c2 = 3a² + 3a³
c3 = -6a² - 3a - 3a³
c4 = 1 + 3a + a³ + 3a²
The volume factor parameter (0.0 to 1.0) controls the weighting of these coefficients, directly affecting the balance between responsiveness and smoothness:
Lower VF values (approaching 0.0): Coefficients favor recent data, resulting in faster response to volatility changes with minimal lag but potentially more noise
Higher VF values (approaching 1.0): Coefficients distribute weight more evenly across the smoothing layers, producing smoother output with reduced noise but slightly increased lag
📊 COMPREHENSIVE SIGNAL ANALYSIS
Volatility Level Interpretation:
High Absolute Values: Indicate strong price movements and elevated market activity, suggesting larger position risks and wider stop-loss requirements, often associated with trending markets or significant news events
Low Absolute Values: Indicate subdued price movements and quiet market conditions, suggesting smaller position risks and tighter stop-loss opportunities, often associated with consolidation phases or low-volume periods
Rapid Increases: Sharp spikes in T3 ATR often signal the beginning of significant price moves or market regime changes, providing early warning of increased trading risk
Sustained High Levels: Extended periods of elevated T3 ATR indicate sustained trending conditions with persistent volatility, suitable for trend-following strategies
Sustained Low Levels: Extended periods of low T3 ATR indicate range-bound conditions with suppressed volatility, suitable for mean-reversion strategies
Volume Factor Impact on Signals:
Low VF Settings (0.0-0.3): Produce responsive signals that quickly capture volatility changes, suitable for short-term trading but may generate more frequent color changes during minor fluctuations
Medium VF Settings (0.4-0.7): Provide balanced signal quality with moderate responsiveness, filtering out minor noise while capturing significant volatility changes, suitable for swing trading
High VF Settings (0.8-1.0): Generate smooth, stable signals that filter out most noise and focus on major volatility trends, suitable for position trading and long-term analysis
🎯 STRATEGIC APPLICATIONS
Position Sizing Strategy:
Determine your risk per trade (e.g., 1% of account capital - adjust based on your risk tolerance and experience)
Decide your stop-loss distance multiplier (e.g., 2.0x T3 ATR - this varies by market and strategy, test different values)
Calculate stop-loss distance: Stop Distance = Multiplier × Current T3 ATR
Calculate position size: Position Size = (Account × Risk %) / Stop Distance
Example: $10,000 account, 1% risk, T3 ATR = 50 points, 2x multiplier → Position Size = ($10,000 × 0.01) / (2 × 50) = $100 / 100 points = 1 unit per point
Important: The ATR multiplier (1.5x - 3.0x) should be determined through backtesting for your specific instrument and strategy - using inappropriate multipliers may result in stops that are too tight (frequent stop-outs) or too wide (excessive losses)
Adjust the volume factor to match your trading style: lower VF for responsive stop distances in short-term trading, higher VF for stable stop distances in position trading
Dynamic Stop-Loss Placement:
Determine your risk tolerance multiplier (typically 1.5x to 3.0x T3 ATR)
For long positions: Set stop-loss at entry price minus (multiplier × current T3 ATR value)
For short positions: Set stop-loss at entry price plus (multiplier × current T3 ATR value)
Trail stop-losses by recalculating based on current T3 ATR as the trade progresses
Adjust the volume factor based on desired stop-loss stability: higher VF for less frequent adjustments, lower VF for more adaptive stops
Market Regime Identification:
Calculate a reference volatility level using a longer-period moving average of T3 ATR (e.g., 50-period SMA)
High Volatility Regime: Current T3 ATR significantly above reference (e.g., 120%+) - favor trend-following strategies, breakout trades, and wider targets
Normal Volatility Regime: Current T3 ATR near reference (e.g., 80-120%) - employ standard trading strategies appropriate for prevailing market structure
Low Volatility Regime: Current T3 ATR significantly below reference (e.g., <80%) - favor mean-reversion strategies, range trading, and prepare for potential volatility expansion
Monitor T3 ATR trend direction and compare current values to recent history to identify regime transitions early
Risk Management Implementation:
Establish your maximum portfolio heat (total risk across all positions, typically 2-6% of capital)
For each position: Calculate position size using the formula Position Size = (Account × Individual Risk %) / (ATR Multiplier × Current T3 ATR)
When T3 ATR increases: Position sizes automatically decrease (same risk %, larger stop distance = smaller position)
When T3 ATR decreases: Position sizes automatically increase (same risk %, smaller stop distance = larger position)
This approach maintains constant dollar risk per trade regardless of market volatility changes
Use consistent volume factor settings across all positions to ensure uniform risk measurement
📋 DETAILED PARAMETER CONFIGURATION
ATR Length Parameter:
Default Setting: 14 periods
This is the standard ATR calculation period established by Welles Wilder, providing balanced volatility measurement that captures both short-term fluctuations and medium-term trends across most markets and timeframes
Selection Principles:
Shorter periods increase sensitivity to recent volatility changes and respond faster to market shifts, but may produce less stable readings
Longer periods emphasize sustained volatility trends and filter out short-term noise, but respond more slowly to genuine regime changes
The optimal period depends on your holding time, trading frequency, and the typical volatility cycle of your instrument
Consider the timeframe you trade: Intraday traders typically use shorter periods, swing traders use intermediate periods, position traders use longer periods
Practical Approach:
Start with the default 14 periods and observe how well it captures volatility patterns relevant to your trading decisions
If ATR seems too reactive to minor price movements: Increase the period until volatility readings better reflect meaningful market changes
If ATR lags behind obvious volatility shifts that affect your trades: Decrease the period for faster response
Match the period roughly to your typical holding time - if you hold positions for N bars, consider ATR periods in a similar range
Test different periods using historical data for your specific instrument and strategy before committing to live trading
T3 Volume Factor Parameter:
Default Setting: 0.7
This setting provides a reasonable balance between responsiveness and smoothness for most market conditions and trading styles
Understanding the Volume Factor:
Lower values (closer to 0.0) reduce smoothing, allowing T3 ATR to respond more quickly to volatility changes but with less noise filtering
Higher values (closer to 1.0) increase smoothing, producing more stable readings that focus on sustained volatility trends but respond more slowly
The trade-off is between immediacy and stability - there is no universally optimal setting
Selection Principles:
Match to your decision speed: If you need to react quickly to volatility changes for entries/exits, use lower VF; if you're making longer-term risk assessments, use higher VF
Match to market character: Noisier, choppier markets may benefit from higher VF for clearer signals; cleaner trending markets may work well with lower VF for faster response
Match to your preference: Some traders prefer responsive indicators even with occasional false signals, others prefer stable indicators even with some delay
Practical Adjustment Guidelines:
Start with default 0.7 and observe how T3 ATR behavior aligns with your trading needs over multiple sessions
If readings seem too unstable or noisy for your decisions: Try increasing VF toward 0.9-1.0 for heavier smoothing
If the indicator lags too much behind volatility changes you care about: Try decreasing VF toward 0.3-0.5 for faster response
Make meaningful adjustments (0.2-0.3 changes) rather than small increments - subtle differences are often imperceptible in practice
Test adjustments in simulation or paper trading before applying to live positions
📈 PERFORMANCE ANALYSIS & COMPETITIVE ADVANTAGES
Responsiveness Characteristics:
The T3 smoothing algorithm provides improved responsiveness compared to traditional RMA smoothing used in standard ATR. The triple exponential design with volume factor control allows the indicator to respond more quickly to genuine volatility changes while maintaining the ability to filter noise through appropriate VF settings. This results in earlier detection of volatility regime changes compared to standard ATR, particularly valuable for risk management and position sizing adjustments.
Signal Stability:
Unlike simple smoothing methods that may produce erratic signals during transitional periods, T3 ATR's multi-layer exponential smoothing provides more stable signal progression. The volume factor parameter allows traders to tune signal stability to their preference, with higher VF settings producing remarkably smooth volatility profiles that help avoid overreaction to temporary market fluctuations.
Comparison with Standard ATR:
Adaptability: T3 ATR allows adjustment of smoothing characteristics through the volume factor without changing the ATR period, whereas standard ATR requires changing the period length to alter responsiveness, potentially affecting the fundamental volatility measurement
Lag Reduction: At lower volume factor settings, T3 ATR responds more quickly to volatility changes than standard ATR with equivalent periods, providing earlier signals for risk management adjustments
Noise Filtering: At higher volume factor settings, T3 ATR provides superior noise filtering compared to standard ATR, producing cleaner signals for long-term analysis without sacrificing volatility measurement accuracy
Flexibility: A single T3 ATR configuration can serve multiple trading styles by adjusting only the volume factor, while standard ATR typically requires multiple instances with different periods for different trading applications
Suitable Use Cases:
T3 ATR is well-suited for the following scenarios:
Dynamic Risk Management: When position sizing and stop-loss placement need to adapt quickly to changing volatility conditions
Multi-Style Trading: When a single volatility indicator must serve different trading approaches (day trading, swing trading, position trading)
Volatile Markets: When standard ATR produces too many false volatility signals during choppy conditions
Systematic Trading: When algorithmic systems require a single, configurable volatility input that can be optimized for different instruments
Market Regime Analysis: When clear identification of volatility expansion and contraction phases is critical for strategy selection
Known Limitations:
Like all technical indicators, T3 ATR has limitations that users should understand:
Historical Nature: T3 ATR is calculated from historical price data and cannot predict future volatility with certainty
Smoothing Trade-offs: The volume factor setting involves a trade-off between responsiveness and smoothness - no single setting is optimal for all market conditions
Extreme Events: During unprecedented market events or gaps, T3 ATR may not immediately reflect the full scope of volatility until sufficient data is processed
Relative Measurement: T3 ATR values are most meaningful in relative context (compared to recent history) rather than as absolute thresholds
Market Context Required: T3 ATR measures volatility magnitude but does not indicate price direction or trend quality - it should be used in conjunction with directional analysis
Performance Expectations:
T3 ATR is designed to help traders measure and adapt to changing market volatility conditions. When properly configured and applied:
It can help reduce position risk during volatile periods through appropriate position sizing
It can help identify optimal times for more aggressive position sizing during stable periods
It can improve stop-loss placement by adapting to current market conditions
It can assist in strategy selection by identifying volatility regimes
However, volatility measurement alone does not guarantee profitable trading. T3 ATR should be integrated into a comprehensive trading approach that includes directional analysis, proper risk management, and sound trading psychology.
USAGE NOTES
This indicator is designed for technical analysis and educational purposes. T3 ATR provides adaptive volatility measurement but has limitations and should not be used as the sole basis for trading decisions. The indicator measures historical volatility patterns, and past volatility characteristics do not guarantee future volatility behavior. Market conditions can change rapidly, and extreme events may produce volatility readings that fall outside historical norms.
Traders should combine T3 ATR with directional analysis tools, support/resistance analysis, and other technical indicators to form a complete trading strategy. Proper backtesting and forward testing with appropriate risk management is essential before applying T3 ATR-based strategies to live trading. The volume factor parameter should be optimized for specific instruments and trading styles through careful testing rather than assuming default settings are optimal for all applications.
Mean Reverting Suite [OmegaTools]Overview
The Mean Reverting Suits (MR Suite) by OmegaTools is an advanced analytical and visualization framework designed to identify directional exhaustion, statistical overextensions, and conditions consistent with mean-reversion dynamics. It integrates three pillars into a single display: a composite momentum-normalized oscillator, a percentile-based extension model with volume contextualization, and a dynamic structural mapping engine built on confirmed pivots. The indicator does not generate signals or prescribe trade actions; it provides objective context so users can evaluate market balance and the likelihood that price is departing from its recent statistical baseline.
Core logic
The composite oscillator blends MFI on two horizons and RSI on HL2, then averages them to produce a stabilized mean-reversion gauge. Candle and bar colors are mapped by a dual gradient centered at 50. Readings above 50 progressively shift from neutral gray toward the bearish accent color to reflect increasing momentum saturation; readings below 50 shift from the bullish accent color toward gray to reflect potential accumulation or temporary undervaluation. This continuous mapping avoids rigid thresholds and conveys the strength and decay of momentum as a smooth spectrum.
The percentile-based extension model measures the persistence of directional bias by tracking how many bars have elapsed since the last opposing condition. These rolling counts are compared to the 80th percentile of their own historical distributions stored in arrays. When a current streak exceeds its respective percentile, the environment is labeled as statistically extended in that direction. Background shading communicates this information and is modulated by relative volume, computed as live volume divided by a blended average of SMA(30) and EMA(11). Higher opacity implies greater liquidity participation during the extension.
The structural mapping module uses confirmed pivot highs and lows at the chosen length to create persistent horizontal levels that extend forward and automatically maintain themselves until price invalidates or refreshes them. These levels represent market memory zones and assist in reading where reactions previously formed. The engine updates in real time, ensuring the framework continuously reflects the prevailing structure.
Standard deviation and z-score overlay
The updated version introduces a mean and dispersion layer. A simple moving average of HL2 over twice the length provides the reference mean. Dispersion is estimated as the moving average of the absolute deviation between close and the mean over five times the length. The z-score is computed as the distance of price from the mean divided by this dispersion proxy. Visual arrows highlight observations where the absolute z-score exceeds two standard deviations, offering a concise view of statistically unusual departures from the local mean. This layer complements the percentile extension model by adding an orthogonal measure of extremity based on distributional distance rather than run length.
Visualization
Candle bodies and borders inherit the oscillator’s gradient color, creating an immediate sense of directional pressure and potential momentum fatigue. The chart background activates when the extension model detects a statistically rare streak, using blue tones for bearish extension and red tones for bullish extension, with intensity scaling by relative volume. Horizontal lines denote active pivot-based levels, automatically extending, truncating, and refreshing as structure evolves. The z-score arrows appear only when deviations exceed the ±2 threshold, keeping the display focused on noteworthy statistical events.
Inputs and configuration
Length controls the sensitivity of all modules. Lower values make the oscillator and pivot detection more reactive; higher values smooth readings and widen structural context. Bullish and Bearish colors are user-selectable to match platform themes or accessibility requirements.
Interpretation guidance
A strong red background indicates an unusually extended bullish run in the presence of meaningful volume; a strong blue background indicates an unusually extended bearish run in the presence of meaningful volume. Candle gradients near deep bearish tones suggest oscillator readings well above 50; gradients near deep bullish tones suggest oscillator readings well below 50. Pivot lines mark the most recently confirmed structural levels that the market has reacted to. Z-score arrows denote points where price has moved beyond approximately two standard deviations of its local mean, signaling statistically uncommon distance rather than directional persistence. None of these elements are directives; they are objective descriptors designed to improve situational awareness.
Advantages
The framework is adaptive by design and self-normalizes to each instrument’s volatility and rhythm through percentile logic and dispersion-based distance. It is volume-aware, visually encoding liquidity pressure so that users can distinguish thin extensions from structurally significant ones. It reduces chart clutter by unifying momentum state, statistical extension, standard deviation distance, and structural levels into a single coherent view. It is asset- and timeframe-agnostic, suitable for intraday through swing horizons across futures, equities, FX, and digital assets.
Usage notes
MR Suite is intended for analytical and educational purposes. It does not provide trading signals, risk parameters, or strategy instructions. Users may employ its context alongside their own methodologies, risk frameworks, and execution rules. The indicator’s value derives from quantifying how unusual a move is, showing how much liquidity supports it, and anchoring that information to evolving structural references, thereby improving the clarity and consistency of discretionary assessment without prescribing actions.
Daytrade Forex Scalper TwinPulse Auction Timer IndicatorWhat this indicator is
TwinPulse Auction Timer is a multi component execution aid designed for liquid markets. It looks for two families of opportunities
Breakouts that leave a compression area after a fresh sweep
Reversals that trigger after a sweep with strong wick polarity
It does not try to predict future prices. It measures present auction conditions with transparent rules and shows you when those conditions align. You get a simple table that says LONG SHORT or WAIT, optional session shading, clean entry and exit level visuals, and alerts you can wire to your workflow.
Why it is different
Most tools show a single signal. TwinPulse combines several independent signals into an Edge Score that you can tune. The components are
• Pulse. A signed measure of wick asymmetry with candle body direction
• Compression. Current true range compared with an average range
• Sweep timer. Bars elapsed since the most recent sweep of a prior high or low
• Bias. Direction of a higher timeframe candle
• Regime. Efficiency ratio and the relation of micro to macro volatility
• Location. Distance from the daily anchored VWAP
• Session. London and New York filter by time windows
Each component is visible in the inputs and in the table so you can understand why a suggestion appears. The script uses request.security() with lookahead off in all calls so it does not peek into the future. Shapes may move while a bar is open since price is still forming. They stop moving when the bar closes.
What you will see on the chart
• L and S shapes on entry bars
• An Exit shape at the price where a stop or the runner target would have been hit
• Four horizontal lines while a trade is active
Entry
Stop
TP1 at one R
TP2 at the runner target expressed in R
• Labels anchored to each line so you can instantly read Entry SL TP1 and TP2 with current values
• Optional shading during your session windows
• Optional daily VWAP line
The table in the top right shows
Action LONG SHORT IN LONG IN SHORT or WAIT
Session ON or OFF
Bias UP DOWN or FLAT
Pulse value
Compression value
Edge L percent and Edge S percent
How it works in detail
Pulse
For each bar the script measures up wick minus down wick divided by range and multiplies that by the sign of the candle body. The result is averaged with pulse_len. Positive numbers indicate aggressive buying. Negative numbers indicate aggressive selling. You control the minimum absolute value with pulse_thr.
Compression
Compression is the ratio of current range to an average range. You can choose the range basis. HL SMA uses simple high minus low smoothed by range_len. ATR uses classic True Range smoothed by atr_len. Values below comp_thr indicate a coil.
Sweeps and the timer
A sweep occurs when price trades beyond the highest high or lowest low seen in the previous sweep_len bars. A strict sweep requires a close back inside that prior range. The timer measures how many bars have elapsed since the last sweep. Breakout setups require the timer to exceed timer_thr.
Bias on a confirmation timeframe
A higher timeframe candle is read with confirm_tf. If close is above open bias is UP. If close is below open bias is DOWN. This keeps breakouts aligned with the prevailing drift.
Regime filters
Efficiency ratio measures the straight line change over the sum of absolute bar to bar changes over er_len. It rises in trendy conditions and falls in noise. Minimum efficiency is controlled by er_min.
Micro to macro volatility ratio compares a short lookback average range with a longer lookback average range using your chosen basis. For breakouts you usually want micro volatility to be near or above macro hence mvr_min. For reversals you often want micro volatility that is not overheated relative to macro hence mvr_max_rev.
VWAP distance gate
Daily anchored VWAP is rebuilt from the open of each session. The script computes the absolute distance from VWAP in units of your average range and requires that distance to exceed vwap_dist_thr when use_vwap_gate is true. This keeps entries away from the mean.
Edge Score
Each gate contributes a weight that you control. The script sums weights of the satisfied gates and divides by the sum of all weights to produce an Edge percent for long and an Edge percent for short. You can then require a minimum Edge percent using edge_min_pct. This turns the indicator into a step by step checklist that you can tune to your taste.
Using the indicator step by step
Choose markets and timeframes
The logic is designed for liquid instruments. Major currency pairs, index futures and cash index CFDs, and the most liquid crypto pairs work well. On intraday use one to fifteen minutes for signals and fifteen to sixty minutes for confirmation. On swing use one hour to one day for signals and one day for confirmation.
Decide on entry mode
Breakouts require a compression area and a sweep timer. Reversals require a strict sweep and a strong pulse. If you are unsure leave the default which allows both.
Pick a range basis
For FX and crypto HL SMA is often stable. For indices and single name equities with gaps ATR can adapt better. If results look too reactive increase the window. If results are too slow reduce it.
Tune regime filters
If you trade trend continuation raise er_min and mvr_min. If you trade counter rotation lower them and rely on the reversal path with the strict sweep condition.
Set the VWAP gate
Enabling it helps you avoid entries at the mean. Push the threshold higher on range bound days. Reduce it in strong trend days.
Table driven decision
Watch Action and the Edge percents. If the script says WAIT you can read Pulse and Compression to see what is missing. Often the best trades appear when both Edge percents are well separated and your session switch is ON.
Use the visuals
When a suggestion triggers you will see entry stop and targets. You can mirror the levels in your own workflow or use alerts.
Consider bar close
Signals are computed in real time. For a strict process you can wait until the bar closes to reduce noise.
Inputs explained with quick guidance
Setup
Signal TF chooses where the logic is computed. Leave blank to use the chart.
Confirm TF sets the higher timeframe for bias.
Session filter restricts signals to the London and New York windows you specify.
Invert flips long and short. It is useful on inverse instruments.
Logic options
Entry mode allows Breakouts Reversals or Both.
Average range basis selects HL SMA or ATR.
ATR length is used when ATR is selected.
Pulse source can be Regular OHLC or Heikin Ashi. Heikin Ashi smooths noisy series, but the script still runs on regular bars and you should publish and use it on standard candles to respect the platform guidance.
Core numeric settings
Sweep lookback controls the size of the liquidity pool targeted by the sweep condition.
Pulse window smooths the wick polarity measure.
Average range window controls your base range when you use HL SMA.
Pulse threshold sets the minimum polarity required.
Compression threshold sets the maximum current range relative to average to consider the market coiled.
Expansion timer bars sets how much time has passed since the last sweep before you allow a breakout.
Regime filters
Efficiency ratio length and minimum value keep you out of aimless drift.
Micro and Macro range lengths feed the micro to macro ratio.
Minimum micro to macro for breakouts and maximum micro to macro for reversals steer the two entry families.
VWAP gate and distance threshold keep you away from the mean.
Levels and trade management visuals
Runner target in R sets TP2 as a multiple of initial risk.
Stop distance as average range multiple sets initial risk size for the visuals.
Move stop to entry after one R touch turns on break even logic once price has traveled one risk unit.
Trail buffer as R fraction uses the last sweep as an anchor and keeps a dynamic stop at a chosen fraction of R beyond it.
Cooldown after exit prevents immediate re entries.
Edge Score
Weights for pulse compression timer bias efficiency ratio micro to macro VWAP gate and session let you align the checklist with your style.
Minimum Edge percent to suggest applies a final filter to LONG or SHORT suggestions.
UI
Table and markers switch the compact dashboard and the shapes.
TP and SL lines and labels draw and name each level.
TP1 partial label percent is printed in the TP1 label for clarity.
Session shading helps with focus.
Daily VWAP line is optional.
Alerts
The script provides alerts for Long Short Exit and for Edge percent crossing the threshold on either side. Use them to drive notifications or to sync with webhooks and your broker integration. Alerts trigger in real time and will repaint during a bar. For conservative use trigger on bar close.
Recommended presets
Intraday trend continuation
Confirm TF fifteen minutes
Entry mode Breakouts
Range basis HL SMA
Pulse threshold near 0.10
Compression threshold near 0.60
Timer around 18
Minimum efficiency ratio near 0.20
Minimum micro to macro near 1.00
VWAP gate enabled with distance near 0.35
Edge minimum 50 or higher
Intraday mean reversion at sweeps
Entry mode Reversals
Pulse source Regular OHLC
Compression threshold can be a little higher
Maximum micro to macro near 1.60
Efficiency ratio minimum lower near 0.12
VWAP gate enabled
Edge minimum 40 to 60
Swing trend continuation
Signal TF one hour
Confirm TF one day
Range basis ATR
ATR length around 14
Average range window 20 to 30
Efficiency ratio minimum near 0.18
Micro to macro windows 12 and 60
Edge minimum 50 to 70
These are starting points only. Your instrument and timeframe will require small adjustments.
Limitations and honest warnings
No indicator is perfect. TwinPulse will mark attractive conditions that do not always lead to profitable trades. During economic releases or very thin liquidity the assumptions behind compression and sweeps may fail. In strong gap environments the HL SMA basis may lag while ATR may overreact. Heikin Ashi pulse can help in choppy markets but it will lag during sharp reversals. Session times use the exchange time of your chart. If you switch symbol or exchange verify the windows.
Edge percent is not a probability of profit. It is the fraction of satisfied gates with your chosen weights. Two traders can set different weights and see different Edge readings on the same bar. That is the design. The score is a guide that helps you act with discipline.
This indicator does not place orders or manage real risk. The lines and labels show a model entry a model stop and two model targets built from the average range at entry and from recent swing points. Use them as references and not as hard rules. Always test on historical data and demo first. Past results do not guarantee anything in the future.
Credits and originality
All code in this publication is original and written for this indicator. The concept of the efficiency ratio originates from Perry Kaufman. The use of a daily anchored volume weighted average price is a standard industry tool. The specific combination of pulse from wick polarity strict sweep timing compression and the tunable Edge Score is unique to this script at the time of publication. If you reuse parts of the open source code in your own work remember to credit the author and contribute meaningful improvements.
How to read the table at a glance
Action reflects your current state.
IN LONG or IN SHORT appears while a trade is active.
LONG or SHORT appears when conditions for entry are met and the Edge threshold is satisfied.
WAIT appears when at least one gate is missing.
Session shows ON during your chosen windows.
Bias shows the color of the confirmation candle.
Pulse is the smoothed polarity number.
Comp shows current range divided by the average range. Values below one mean compression.
Edge L percent and Edge S percent show the long and short checklists as percents.
Final thoughts
Markets move because orders accumulate at certain prices and at certain times. The indicator tries to measure two things that often matter at those turning points. One is the existence of a hidden imbalance revealed by wick polarity and by sweeps of prior extremes. The other is the presence of energy stored in a coil that can release in the direction of a drift. Neither force guarantees profit. Together they can improve your selection and your timing.
Use the defaults for a few days so you learn the personality of the signals. After that adjust one group at a time. Start with the session filter and the Edge threshold. Then tune compression and the timer. Finally adjust the regime filters. Keep notes. You will learn which weights matter for your market and timeframe. The result is a process you can apply with consistency.
Disclaimer
This script and description are for education and analysis. They are not investment advice and they do not promise future results. Use at your own risk. Test thoroughly on historical data and in simulation before considering any live use.
RSI Donchian Channel [DCAUT]█ RSI Donchian Channel
📊 ORIGINALITY & INNOVATION
The RSI Donchian Channel represents an important synthesis of two complementary analytical frameworks: momentum oscillators and breakout detection systems. This indicator addresses a common limitation in traditional RSI analysis by replacing fixed overbought/oversold thresholds with adaptive zones derived from historical RSI extremes.
Key Enhancement:
Traditional RSI analysis relies on static threshold levels (typically 30/70), which may not adequately reflect changing market volatility regimes. This indicator adapts the reference zones dynamically based on the actual RSI behavior over the lookback period, helping traders identify meaningful momentum extremes relative to recent price action rather than arbitrary fixed levels.
The implementation combines the proven momentum measurement capabilities of RSI with Donchian Channel's breakout detection methodology, creating a framework that identifies both momentum exhaustion points and potential continuation signals through the same analytical lens.
📐 MATHEMATICAL FOUNDATION
Core Calculation Process:
Step 1: RSI Calculation
The Relative Strength Index measures momentum by comparing the magnitude of recent gains to recent losses:
Calculate price changes between consecutive periods
Separate positive changes (gains) from negative changes (losses)
Apply selected smoothing method (RMA standard, also supports SMA, EMA, WMA) to both gain and loss series
Compute Relative Strength (RS) as the ratio of smoothed gains to smoothed losses
Transform RS into bounded 0-100 scale using the formula: RSI = 100 - (100 / (1 + RS))
Step 2: Donchian Channel Application
The Donchian Channel identifies the highest and lowest RSI values within the specified lookback period:
Upper Channel: Highest RSI value over the lookback period, represents the recent momentum peak
Lower Channel: Lowest RSI value over the lookback period, represents the recent momentum trough
Middle Channel (Basis): Average of upper and lower channels, serves as equilibrium reference
Channel Width Dynamics:
The distance between upper and lower channels reflects RSI volatility. Wide channels indicate high momentum variability, while narrow channels suggest momentum consolidation and potential breakout preparation. The indicator monitors channel width over a 100-period window to identify squeeze conditions that often precede significant momentum shifts.
📊 COMPREHENSIVE SIGNAL ANALYSIS
Primary Signal Categories:
Breakout Signals:
Upper Breakout: RSI crosses above the upper channel, indicates momentum reaching new relative highs and potential trend continuation, particularly significant when accompanied by price confirmation
Lower Breakout: RSI crosses below the lower channel, suggests momentum reaching new relative lows and potential trend exhaustion or reversal setup
Breakout strength is enhanced when the channel is narrow prior to the breakout, indicating a transition from consolidation to directional movement
Mean Reversion Signals:
Upper Touch Without Breakout: RSI reaches the upper channel but fails to break through, may indicate momentum exhaustion and potential reversal opportunity
Lower Touch Without Breakout: RSI reaches the lower channel without breakdown, suggests potential bounce as momentum reaches oversold extremes
Return to Basis: RSI moving back toward the middle channel after touching extremes signals momentum normalization
Trend Strength Assessment:
Sustained Upper Channel Riding: RSI consistently remains near or above the upper channel during strong uptrends, indicates persistent bullish momentum
Sustained Lower Channel Riding: RSI stays near or below the lower channel during strong downtrends, reflects persistent bearish pressure
Basis Line Position: RSI position relative to the middle channel helps identify the prevailing momentum bias
Channel Compression Patterns:
Squeeze Detection: Channel width narrowing to 100-period lows indicates momentum consolidation, often precedes significant directional moves
Expansion Phase: Channel widening after a squeeze confirms the initiation of a new momentum regime
Persistent Narrow Channels: Extended periods of tight channels suggest market indecision and accumulation/distribution phases
🎯 STRATEGIC APPLICATIONS
Trend Continuation Strategy:
This approach focuses on identifying and trading momentum breakouts that confirm established trends:
Identify the prevailing price trend using higher timeframe analysis or trend-following indicators
Wait for RSI to break above the upper channel in uptrends (or below the lower channel in downtrends)
Enter positions in the direction of the breakout when price action confirms the momentum shift
Place protective stops below the recent swing low (long positions) or above swing high (short positions)
Target profit levels based on prior swing extremes or use trailing stops to capture extended moves
Exit when RSI crosses back through the basis line in the opposite direction
Mean Reversion Strategy:
This method capitalizes on momentum extremes and subsequent corrections toward equilibrium:
Monitor for RSI reaching the upper or lower channel boundaries
Look for rejection signals (price reversal patterns, volume divergence) when RSI touches the channels
Enter counter-trend positions when RSI begins moving back toward the basis line
Use the basis line as the initial profit target for mean reversion trades
Implement tight stops beyond the channel extremes to limit risk on failed reversals
Scale out of positions as RSI approaches the basis line and closes the position when RSI crosses the basis
Breakout Preparation Strategy:
This approach positions traders ahead of potential volatility expansion from consolidation phases:
Identify squeeze conditions when channel width reaches 100-period lows
Monitor price action for consolidation patterns (triangles, rectangles, flags) during the squeeze
Prepare conditional orders for breakouts in both directions from the consolidation
Enter positions when RSI breaks out of the narrow channel with expanding width
Use the channel width expansion as a confirmation signal for the breakout's validity
Manage risk with stops just inside the opposite channel boundary
Multi-Timeframe Confluence Strategy:
Combining RSI Donchian Channel analysis across multiple timeframes can improve signal reliability:
Identify the primary trend direction using a higher timeframe RSI Donchian Channel (e.g., daily or weekly)
Use a lower timeframe (e.g., 4-hour or hourly) to time precise entry points
Enter long positions when both timeframes show RSI above their respective basis lines
Enter short positions when both timeframes show RSI below their respective basis lines
Avoid trades when timeframes provide conflicting signals (e.g., higher timeframe below basis, lower timeframe above)
Exit when the higher timeframe RSI crosses its basis line in the opposite direction
Risk Management Guidelines:
Effective risk management is essential for all RSI Donchian Channel strategies:
Position Sizing: Calculate position sizes based on the distance between entry point and stop loss, limiting risk to 1-2% of capital per trade
Stop Loss Placement: For breakout trades, place stops just inside the opposite channel boundary; for mean reversion trades, use stops beyond the channel extremes
Profit Targets: Use the basis line as a minimum target for mean reversion trades; for trend trades, target prior swing extremes or use trailing stops
Channel Width Context: Increase position sizes during narrow channels (lower volatility) and reduce sizes during wide channels (higher volatility)
Correlation Awareness: Monitor correlations between traded instruments to avoid over-concentration in similar setups
📋 DETAILED PARAMETER CONFIGURATION
RSI Source:
Defines the price data series used for RSI calculation:
Close (Default): Standard choice providing end-of-period momentum assessment, suitable for most trading styles and timeframes
High-Low Average (HL2): Reduces the impact of closing auction dynamics, useful for markets with significant end-of-day volatility
High-Low-Close Average (HLC3): Provides a more balanced view incorporating the entire period's range
Open-High-Low-Close Average (OHLC4): Offers the most comprehensive price representation, helpful for identifying overall period sentiment
Strategy Consideration: Use Close for end-of-period signals, HL2 or HLC3 for intraday volatility reduction, OHLC4 for capturing full period dynamics
RSI Length:
Controls the number of periods used for RSI calculation:
Short Periods (5-9): Highly responsive to recent price changes, produces more frequent signals with increased false signal risk, suitable for short-term trading and volatile markets
Standard Period (14): Widely accepted default balancing responsiveness with stability, appropriate for swing trading and intermediate-term analysis
Long Periods (21-28): Produces smoother RSI with fewer signals but more reliable trend identification, better for position trading and reducing noise in choppy markets
Optimization Approach: Test different lengths against historical data for your specific market and timeframe, consider using longer periods in ranging markets and shorter periods in trending markets
RSI MA Type:
Determines the smoothing method applied to price changes in RSI calculation:
RMA (Relative Moving Average - Default): Wilder's original smoothing method providing stable momentum measurement with gradual response to changes, maintains consistency with classical RSI interpretation
SMA (Simple Moving Average): Treats all periods equally, responds more quickly to changes than RMA but may produce more whipsaws in volatile conditions
EMA (Exponential Moving Average): Weights recent periods more heavily, increases responsiveness at the cost of potential noise, suitable for traders prioritizing early signal generation
WMA (Weighted Moving Average): Applies linear weighting favoring recent data, offers a middle ground between SMA and EMA responsiveness
Selection Guidance: Maintain RMA for consistency with traditional RSI analysis, use EMA or WMA for more responsive signals in fast-moving markets, apply SMA for maximum simplicity and transparency
DC Length:
Specifies the lookback period for Donchian Channel calculation on RSI values:
Short Periods (10-14): Creates tight channels that adapt quickly to changing momentum conditions, generates more frequent trading signals but increases sensitivity to short-term RSI fluctuations
Standard Period (20): Balances channel responsiveness with stability, aligns with traditional Bollinger Bands and moving average periods, suitable for most trading styles
Long Periods (30-50): Produces wider, more stable channels that better represent sustained momentum extremes, reduces signal frequency while improving reliability, appropriate for position traders and higher timeframes
Calibration Strategy: Match DC length to your trading timeframe (shorter for day trading, longer for swing trading), test channel width behavior during different market regimes, consider using adaptive periods that adjust to volatility conditions
Market Adaptation: Use shorter DC lengths in trending markets to capture momentum shifts earlier, apply longer periods in ranging markets to filter noise and focus on significant extremes
Parameter Combination Recommendations:
Scalping/Day Trading: RSI Length 5-9, DC Length 10-14, EMA or WMA smoothing for maximum responsiveness
Swing Trading: RSI Length 14, DC Length 20, RMA smoothing for balanced analysis (default configuration)
Position Trading: RSI Length 21-28, DC Length 30-50, RMA or SMA smoothing for stable signals
High Volatility Markets: Longer RSI periods (21+) with standard DC length (20) to reduce noise
Low Volatility Markets: Standard RSI length (14) with shorter DC length (10-14) to capture subtle momentum shifts
📈 PERFORMANCE ANALYSIS & COMPETITIVE ADVANTAGES
Adaptive Threshold Mechanism:
Unlike traditional RSI analysis with fixed 30/70 thresholds, this indicator's Donchian Channel approach provides several improvements:
Context-Aware Extremes: Overbought/oversold levels adjust automatically based on recent momentum behavior rather than arbitrary fixed values
Volatility Adaptation: In low volatility periods, channels narrow to reflect tighter momentum ranges; in high volatility, channels widen appropriately
Market Regime Recognition: The indicator implicitly adapts to different market conditions without manual threshold adjustments
False Signal Reduction: Adaptive channels help reduce premature reversal signals that often occur with fixed thresholds during strong trends
Signal Quality Characteristics:
The indicator's dual-purpose design provides distinct advantages for different trading objectives:
Breakout Trading: Channel boundaries offer clear, objective breakout levels that update dynamically, eliminating the ambiguity of when momentum becomes "too high" or "too low"
Mean Reversion: The basis line provides a natural profit target for reversion trades, representing the midpoint of recent momentum extremes
Trend Strength: Persistent channel boundary riding offers an objective measure of trend strength without additional indicators
Consolidation Detection: Channel width analysis provides early warning of potential volatility expansion from compression phases
Comparative Analysis:
When compared to traditional RSI implementations and other momentum frameworks:
vs. Fixed Threshold RSI: Provides market-adaptive reference levels rather than static values, helping to reduce false signals during trending markets where RSI can remain "overbought" or "oversold" for extended periods
vs. RSI Bollinger Bands: Offers clearer breakout signals and more intuitive extreme identification through actual high/low boundaries rather than statistical standard deviations
vs. Stochastic Oscillator: Maintains RSI's momentum measurement advantages (unbounded calculation avoiding scale compression) while adding the breakout detection capabilities of Donchian Channels
vs. Standard Donchian Channels: Applies breakout methodology to momentum space rather than price, providing earlier signals of potential trend changes before price breakouts occur
Performance Characteristics:
The indicator exhibits specific behavioral patterns across different market conditions:
Trending Markets: Excels at identifying momentum continuation through channel breakouts, RSI tends to ride one channel boundary during strong trends, providing trend confirmation
Ranging Markets: Channel width narrows during consolidation, offering early preparation signals for potential breakout trading opportunities
High Volatility: Channels widen to reflect increased momentum variability, automatically adjusting signal sensitivity to match market conditions
Low Volatility: Channels contract, making the indicator more sensitive to subtle momentum shifts that may be significant in calm market environments
Transition Periods: Channel squeezes often precede major trend changes, offering advance warning of potential regime shifts
Limitations and Considerations:
Users should be aware of certain operational characteristics:
Lookback Dependency: Channel boundaries depend entirely on the lookback period, meaning the indicator has no predictive element beyond identifying current momentum relative to recent history
Lag Characteristics: As with all moving average-based indicators, RSI calculation introduces lag, and channel boundaries update only as new extremes occur within the lookback window
Range-Bound Sensitivity: In extremely tight ranges, channels may become very narrow, potentially generating excessive signals from minor momentum fluctuations
Trending Persistence: During very strong trends, RSI may remain at channel extremes for extended periods, requiring patience for mean reversion setups or commitment to trend-following approaches
No Absolute Levels: Unlike traditional RSI, this indicator provides no fixed reference points (like 50), making it less suitable for strategies that depend on absolute momentum readings
USAGE NOTES
This indicator is designed for technical analysis and educational purposes to help traders understand momentum dynamics and identify potential trading opportunities. The RSI Donchian Channel has limitations and should not be used as the sole basis for trading decisions.
Important considerations:
Performance varies significantly across different market conditions, timeframes, and instruments
Historical signal patterns do not guarantee future results, as market behavior continuously evolves
Effective use requires understanding of both RSI momentum principles and Donchian Channel breakout concepts
Risk management practices (stop losses, position sizing, diversification) are essential for any trading application
Consider combining with additional analytical tools such as volume analysis, price action patterns, or trend indicators for confirmation
Backtest thoroughly on your specific instruments and timeframes before live trading implementation
Be aware that optimization on historical data may lead to curve-fitting and poor forward performance
The indicator performs best when used as part of a comprehensive trading methodology that incorporates multiple forms of market analysis, sound risk management, and realistic expectations about win rates and drawdowns.
JK_Traders_Reality_LibLibrary "JK_Traders_Reality_Lib"
This library contains common elements used in Traders Reality scripts
calcPvsra(pvsraVolume, pvsraHigh, pvsraLow, pvsraClose, pvsraOpen, redVectorColor, greenVectorColor, violetVectorColor, blueVectorColor, darkGreyCandleColor, lightGrayCandleColor)
calculate the pvsra candle color and return the color as well as an alert if a vector candle has apperared.
Situation "Climax"
Bars with volume >= 200% of the average volume of the 10 previous chart TFs, or bars
where the product of candle spread x candle volume is >= the highest for the 10 previous
chart time TFs.
Default Colors: Bull bars are green and bear bars are red.
Situation "Volume Rising Above Average"
Bars with volume >= 150% of the average volume of the 10 previous chart TFs.
Default Colors: Bull bars are blue and bear are violet.
Parameters:
pvsraVolume (float) : the instrument volume series (obtained from request.sequrity)
pvsraHigh (float) : the instrument high series (obtained from request.sequrity)
pvsraLow (float) : the instrument low series (obtained from request.sequrity)
pvsraClose (float) : the instrument close series (obtained from request.sequrity)
pvsraOpen (float) : the instrument open series (obtained from request.sequrity)
redVectorColor (simple color) : red vector candle color
greenVectorColor (simple color) : green vector candle color
violetVectorColor (simple color) : violet/pink vector candle color
blueVectorColor (simple color) : blue vector candle color
darkGreyCandleColor (simple color) : regular volume candle down candle color - not a vector
lightGrayCandleColor (simple color) : regular volume candle up candle color - not a vector
@return
adr(length, barsBack)
Parameters:
length (simple int) : how many elements of the series to calculate on
barsBack (simple int) : starting possition for the length calculation - current bar or some other value eg last bar
@return adr the adr for the specified lenght
adrHigh(adr, fromDo)
Calculate the ADR high given an ADR
Parameters:
adr (float) : the adr
fromDo (simple bool) : boolean flag, if false calculate traditional adr from high low of today, if true calcualte from exchange midnight
@return adrHigh the position of the adr high in price
adrLow(adr, fromDo)
Parameters:
adr (float) : the adr
fromDo (simple bool) : boolean flag, if false calculate traditional adr from high low of today, if true calcualte from exchange midnight
@return adrLow the position of the adr low in price
splitSessionString(sessXTime)
given a session in the format 0000-0100:23456 split out the hours and minutes
Parameters:
sessXTime (simple string) : the session time string usually in the format 0000-0100:23456
@return
calcSessionStartEnd(sessXTime, gmt)
calculate the start and end timestamps of the session
Parameters:
sessXTime (simple string) : the session time string usually in the format 0000-0100:23456
gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
@return
drawOpenRange(sessXTime, sessXcol, showOrX, gmt)
draw open range for a session
Parameters:
sessXTime (simple string) : session string in the format 0000-0100:23456
sessXcol (simple color) : the color to be used for the opening range box shading
showOrX (simple bool) : boolean flag to toggle displaying the opening range
gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
@return void
drawSessionHiLo(sessXTime, showRectangleX, showLabelX, sessXcolLabel, sessXLabel, gmt, sessionLineStyle)
Parameters:
sessXTime (simple string) : session string in the format 0000-0100:23456
showRectangleX (simple bool)
showLabelX (simple bool)
sessXcolLabel (simple color) : the color to be used for the hi/low lines and label
sessXLabel (simple string) : the session label text
gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
sessionLineStyle (simple string) : the line stile for the session high low lines
@return void
calcDst()
calculate market session dst on/off flags
@return indicating if DST is on or off for a particular region
timestampPreviousDayOfWeek(previousDayOfWeek, hourOfDay, gmtOffset, oneWeekMillis)
Timestamp any of the 6 previous days in the week (such as last Wednesday at 21 hours GMT)
Parameters:
previousDayOfWeek (simple string) : Monday or Satruday
hourOfDay (simple int) : the hour of the day when psy calc is to start
gmtOffset (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
oneWeekMillis (simple int) : the amount if time for a week in milliseconds
@return the timestamp of the psy level calculation start time
getdayOpen()
get the daily open - basically exchange midnight
@return the daily open value which is float price
newBar(res)
new_bar: check if we're on a new bar within the session in a given resolution
Parameters:
res (simple string) : the desired resolution
@return true/false is a new bar for the session has started
toPips(val)
to_pips Convert value to pips
Parameters:
val (float) : the value to convert to pips
@return the value in pips
rLabel(ry, rtext, rstyle, rcolor, valid, labelXOffset)
a function that draws a right aligned lable for a series during the current bar
Parameters:
ry (float) : series float the y coordinate of the lable
rtext (simple string) : the text of the label
rstyle (simple string) : the style for the lable
rcolor (simple color) : the color for the label
valid (simple bool) : a boolean flag that allows for turning on or off a lable
labelXOffset (int) : how much to offset the label from the current position
rLabelOffset(ry, rtext, rstyle, rcolor, valid, labelOffset)
a function that draws a right aligned lable for a series during the current bar
Parameters:
ry (float) : series float the y coordinate of the lable
rtext (string) : the text of the label
rstyle (simple string) : the style for the lable
rcolor (simple color) : the color for the label
valid (simple bool) : a boolean flag that allows for turning on or off a lable
labelOffset (int)
rLabelLastBar(ry, rtext, rstyle, rcolor, valid, labelXOffset)
a function that draws a right aligned lable for a series only on the last bar
Parameters:
ry (float) : series float the y coordinate of the lable
rtext (string) : the text of the label
rstyle (simple string) : the style for the lable
rcolor (simple color) : the color for the label
valid (simple bool) : a boolean flag that allows for turning on or off a lable
labelXOffset (int) : how much to offset the label from the current position
drawLine(xSeries, res, tag, xColor, xStyle, xWidth, xExtend, isLabelValid, xLabelOffset, validTimeFrame)
a function that draws a line and a label for a series
Parameters:
xSeries (float) : series float the y coordinate of the line/label
res (simple string) : the desired resolution controlling when a new line will start
tag (simple string) : the text for the lable
xColor (simple color) : the color for the label
xStyle (simple string) : the style for the line
xWidth (simple int) : the width of the line
xExtend (simple string) : extend the line
isLabelValid (simple bool) : a boolean flag that allows for turning on or off a label
xLabelOffset (int)
validTimeFrame (simple bool) : a boolean flag that allows for turning on or off a line drawn
drawLineDO(xSeries, res, tag, xColor, xStyle, xWidth, xExtend, isLabelValid, xLabelOffset, validTimeFrame)
a function that draws a line and a label for the daily open series
Parameters:
xSeries (float) : series float the y coordinate of the line/label
res (simple string) : the desired resolution controlling when a new line will start
tag (simple string) : the text for the lable
xColor (simple color) : the color for the label
xStyle (simple string) : the style for the line
xWidth (simple int) : the width of the line
xExtend (simple string) : extend the line
isLabelValid (simple bool) : a boolean flag that allows for turning on or off a label
xLabelOffset (int)
validTimeFrame (simple bool) : a boolean flag that allows for turning on or off a line drawn
drawPivot(pivotLevel, res, tag, pivotColor, pivotLabelColor, pivotStyle, pivotWidth, pivotExtend, isLabelValid, validTimeFrame, levelStart, pivotLabelXOffset)
draw a pivot line - the line starts one day into the past
Parameters:
pivotLevel (float) : series of the pivot point
res (simple string) : the desired resolution
tag (simple string) : the text to appear
pivotColor (simple color) : the color of the line
pivotLabelColor (simple color) : the color of the label
pivotStyle (simple string) : the line style
pivotWidth (simple int) : the line width
pivotExtend (simple string) : extend the line
isLabelValid (simple bool) : boolean param allows to turn label on and off
validTimeFrame (simple bool) : only draw the line and label at a valid timeframe
levelStart (int) : basically when to start drawing the levels
pivotLabelXOffset (int) : how much to offset the label from its current postion
@return the pivot line series
getPvsraFlagByColor(pvsraColor, redVectorColor, greenVectorColor, violetVectorColor, blueVectorColor, lightGrayCandleColor)
convert the pvsra color to an internal code
Parameters:
pvsraColor (color) : the calculated pvsra color
redVectorColor (simple color) : the user defined red vector color
greenVectorColor (simple color) : the user defined green vector color
violetVectorColor (simple color) : the user defined violet vector color
blueVectorColor (simple color) : the user defined blue vector color
lightGrayCandleColor (simple color) : the user defined regular up candle color
@return pvsra internal code
updateZones(pvsra, direction, boxArr, maxlevels, pvsraHigh, pvsraLow, pvsraOpen, pvsraClose, transperancy, zoneupdatetype, zonecolor, zonetype, borderwidth, coloroverride, redVectorColor, greenVectorColor, violetVectorColor, blueVectorColor)
a function that draws the unrecovered vector candle zones
Parameters:
pvsra (int) : internal code
direction (simple int) : above or below the current pa
boxArr (array) : the array containing the boxes that need to be updated
maxlevels (simple int) : the maximum number of boxes to draw
pvsraHigh (float) : the pvsra high value series
pvsraLow (float) : the pvsra low value series
pvsraOpen (float) : the pvsra open value series
pvsraClose (float) : the pvsra close value series
transperancy (simple int) : the transparencfy of the vecor candle zones
zoneupdatetype (simple string) : the zone update type
zonecolor (simple color) : the zone color if overriden
zonetype (simple string) : the zone type
borderwidth (simple int) : the width of the border
coloroverride (simple bool) : if the color overriden
redVectorColor (simple color) : the user defined red vector color
greenVectorColor (simple color) : the user defined green vector color
violetVectorColor (simple color) : the user defined violet vector color
blueVectorColor (simple color) : the user defined blue vector color
cleanarr(arr)
clean an array from na values
Parameters:
arr (array) : the array to clean
@return if the array was cleaned
calcPsyLevels(oneWeekMillis, showPsylevels, psyType, sydDST)
calculate the psy levels
4 hour res based on how mt4 does it
mt4 code
int Li_4 = iBarShift(NULL, PERIOD_H4, iTime(NULL, PERIOD_W1, Li_0)) - 2 - Offset;
ObjectCreate("PsychHi", OBJ_TREND, 0, Time , iHigh(NULL, PERIOD_H4, iHighest(NULL, PERIOD_H4, MODE_HIGH, 2, Li_4)), iTime(NULL, PERIOD_W1, 0), iHigh(NULL, PERIOD_H4,
iHighest(NULL, PERIOD_H4, MODE_HIGH, 2, Li_4)));
so basically because the session is 8 hours and we are looking at a 4 hour resolution we only need to take the highest high an lowest low of 2 bars
we use the gmt offset to adjust the 0000-0800 session to Sydney open which is at 2100 during dst and at 2200 otherwize. (dst - spring foward, fall back)
keep in mind sydney is in the souther hemisphere so dst is oposite of when london and new york go into dst
Parameters:
oneWeekMillis (simple int) : a constant value
showPsylevels (simple bool) : should psy levels be calculated
psyType (simple string) : the type of Psylevels - crypto or forex
sydDST (bool) : is Sydney in DST
@return
adrHiLo(length, barsBack, fromDO)
Parameters:
length (simple int) : how many elements of the series to calculate on
barsBack (simple int) : starting possition for the length calculation - current bar or some other value eg last bar
fromDO (simple bool) : boolean flag, if false calculate traditional adr from high low of today, if true calcualte from exchange midnight
@return adr, adrLow and adrHigh - the adr, the position of the adr High and adr Low with respect to price
drawSessionHiloLite(sessXTime, showRectangleX, showLabelX, sessXcolLabel, sessXLabel, gmt, sessionLineStyle, sessXcol)
Parameters:
sessXTime (simple string) : session string in the format 0000-0100:23456
showRectangleX (simple bool)
showLabelX (simple bool)
sessXcolLabel (simple color) : the color to be used for the hi/low lines and label
sessXLabel (simple string) : the session label text
gmt (simple string) : the gmt offset string usually in the format GMT+1 or GMT+2 etc
sessionLineStyle (simple string) : the line stile for the session high low lines
sessXcol (simple color) : - the color for the box color that will color the session
@return void
msToHmsString(ms)
converts milliseconds into an hh:mm string. For example, 61000 ms to '0:01:01'
Parameters:
ms (int) : - the milliseconds to convert to hh:mm
@return string - the converted hh:mm string
countdownString(openToday, closeToday, showMarketsWeekends, oneDay)
that calculates how much time is left until the next session taking the session start and end times into account. Note this function does not work on intraday sessions.
Parameters:
openToday (int) : - timestamps of when the session opens in general - note its a series because the timestamp was created using the dst flag which is a series itself thus producing a timestamp series
closeToday (int) : - timestamp of when the session closes in general - note its a series because the timestamp was created using the dst flag which is a series itself thus producing a timestamp series
@return a countdown of when next the session opens or 'Open' if the session is open now
showMarketsWeekends (simple bool)
oneDay (simple int)
countdownStringSyd(sydOpenToday, sydCloseToday, showMarketsWeekends, oneDay)
that calculates how much time is left until the next session taking the session start and end times into account. special case of intraday sessions like sydney
Parameters:
sydOpenToday (int)
sydCloseToday (int)
showMarketsWeekends (simple bool)
oneDay (simple int)






















