Triple Exponential Moving Average (TEMA)The Triple Exponential Moving Average (TEMA) is an advanced technical indicator designed to significantly reduce the lag inherent in traditional moving averages while maintaining signal quality. Developed by Patrick Mulloy in 1994 as an extension of his DEMA concept, TEMA employs a sophisticated triple-stage calculation process to provide exceptionally responsive market signals.
TEMA's mathematical approach goes beyond standard smoothing techniques by using a triple-cascade architecture with optimized coefficients. This makes it particularly valuable for traders who need earlier identification of trend changes without sacrificing reliability. Since its introduction, TEMA has become a key component in many algorithmic trading systems and professional trading platforms.
▶️ **Core Concepts**
Triple-stage lag reduction: TEMA uses a three-level EMA calculation with optimized coefficients (3, -3, 1) to dramatically minimize the delay in signal generation
Enhanced responsiveness: Provides significantly faster reaction to price changes than standard EMA or even DEMA, while maintaining reasonable smoothness
Strategic signal processing: Employs mathematical techniques to extract the underlying trend while filtering random price fluctuations
Timeframe effectiveness: Performs well across multiple timeframes, though particularly valued in short to medium-term trading
TEMA achieves its enhanced responsiveness through an innovative triple-cascade architecture that strategically combines three levels of exponential moving averages. This approach effectively removes the lag component inherent in EMA calculations while preserving the essential smoothing benefits.
▶️ **Common Settings and Parameters**
Length: Default: 12 | Controls sensitivity/smoothness | When to Adjust: Increase in choppy markets, decrease in strongly trending markets
Source: Default: Close | Data point used for calculation | When to Adjust: Change to HL2/HLC3 for more balanced price representation
Corrected: Default: false | Adjusts internal EMA smoothing factors for potentially faster response | When to Adjust: Set to true for a modified TEMA that may react quicker to price changes. false uses standard TEMA calculation
Visualization: Default: Line | Display format on charts | When to Adjust: Use filled cloud to see divergence from price more clearly
Pro Tip: For optimal trade signals, many professional traders use two TEMAs (e.g., 8 and 21 periods) and look for crossovers, which often provide earlier signals than traditional moving average pairs.
▶️ **Calculation and Mathematical Foundation**
Simplified explanation:
TEMA calculates three levels of EMAs, then combines them using a special formula that amplifies recent price action while reducing lag. This triple-processing approach effectively eliminates much of the delay found in traditional moving averages.
Technical formula:
TEMA = 3 × EMA₁ - 3 × EMA₂ + EMA₃
Where:
EMA₁ = EMA(source, α₁)
EMA₂ = EMA(EMA₁, α₂)
EMA₃ = EMA(EMA₂, α₃)
The smoothing factors (α₁, α₂, α₃) are determined as follows:
Let α_base = 2/(length + 1)
α₁ = α_base
If corrected is false:
α₂ = α_base
α₃ = α_base
If corrected is true:
Let r = (1/α_base)^(1/3)
α₂ = α_base * r
α₃ = α_base * r * r = α_base * r²
The corrected = true option implements a variation that uses progressively smaller alpha values for the subsequent EMA calculations. This approach aims to optimize the filter's frequency response and phase lag.
Alpha Calculation for corrected = true:
α₁ (alpha_base) = 2/(length + 1)
r = (1/α₁)^(1/3) (cube root relationship)
α₂ = α₁ * r = α₁^(2/3)
α₃ = α₂ * r = α₁^(1/3)
Mathematical Rationale for Corrected Alphas:
1. Frequency Response Balance:
The standard TEMA (where α₁ = α₂ = α₃) can lead to an uneven frequency response, potentially over-smoothing high frequencies or creating resonance artifacts. The geometric progression of alphas (α₁ > α₁^(2/3) > α₁^(1/3)) in the corrected version aims to create a more balanced filter cascade. Each stage contributes more proportionally to the overall frequency response.
2. Phase Lag Optimization:
The cube root relationship between the alphas is designed to minimize cumulative phase lag while maintaining smoothing effectiveness. Each subsequent EMA stage has a progressively smaller impact on phase distortion.
3. Mathematical Stability:
The geometric progression (α₁, α₁^(2/3), α₁^(1/3)) can enhance numerical stability due to constant ratios between consecutive alphas. This helps prevent the accumulation of rounding errors and maintains consistent convergence properties.
Practical Impact of corrected = true:
This modification aims to achieve:
Potentially better lag reduction for a similar level of smoothing
A more uniform frequency response across different market cycles
Reduced overshoot or undershoot in trending conditions
Improved signal-to-noise ratio preservation
Essentially, the cube root relationship in the corrected TEMA attempts to optimize the trade-off between responsiveness and smoothness that can be a challenge with uniform alpha values.
🔍 Technical Note: Advanced implementations apply compensation techniques to all three EMA stages, ensuring TEMA values are valid from the first bar without requiring a warm-up period. This compensation corrects initialization bias and prevents calculation errors from compounding through the cascade.
▶️ **Interpretation Details**
TEMA excels at identifying trend changes significantly earlier than traditional moving averages, making it valuable for both entry and exit signals:
When price crosses above TEMA, it often signals the beginning of an uptrend
When price crosses below TEMA, it often signals the beginning of a downtrend
The slope of TEMA provides insight into trend strength and momentum
TEMA crossovers with price tend to occur earlier than with standard EMAs
When multiple-period TEMAs cross each other, they confirm significant trend shifts
TEMA works exceptionally well as a dynamic support/resistance level in trending markets
For optimal results, traders often use TEMA in combination with momentum indicators or volume analysis to confirm signals and reduce false positives.
▶️ **Limitations and Considerations**
Market conditions: The high responsiveness can generate false signals during highly choppy, sideways markets
Overshooting: More aggressive lag reduction leads to more pronounced overshooting during sharp reversals
Parameter sensitivity: Changes in length have more dramatic effects than in simpler moving averages
Calculation complexity: Triple cascaded EMAs make behavior less predictable and more resource-intensive
Complementary tools: Should be used with confirmation tools like RSI, MACD or volume indicators
▶️ **References**
Mulloy, P. (1994). "Smoothing Data with Less Lag," Technical Analysis of Stocks & Commodities .
Mulloy, P. (1995). "Comparing Digital Filters," Technical Analysis of Stocks & Commodities .
在腳本中搜尋"国泰黄金ETF联接C相关行业指数的最新政策"
Premarket High/Low (Horizontal Rays)=== Script Description ===
This TradingView script automatically detects and displays the high and low prices
during the premarket session (04:00–09:30 Eastern Time) for the current trading day.
It draws horizontal rays that extend across the chart and labels them as "PM High" and "PM Low".
These markers are refreshed daily and only apply to today's session.
The script also provides full customization for:
- Line color, width, and style (solid, dotted, dashed)
- Label text color, background color, size, and style (left, right, up, down)
Time note: This script assumes data aligned with U.S. market hours.
Open-Based Percentage Levelsv2
This is an updated version of my original script.
Changes:
I took off the displacement levels since there served no purpose on this script.
I also fixed it to where the percentage level lines are visible continually throughout the entire trading day. Old version had these lines disappearing.
I also updated the name to better reflect its purpose.
Now only works on 30 min and below as the higher time frames are meaningless. The older version allow higher time frames and the code is open source to adjust as desired
Open-Based Adjustable LevelsThis indicator gives signals for levels where the buy or sell volume is above adjustable levels (ex, volume at 100,000). And these levels will only signal after the price has gone above/below a certain 'adjustable' percentage of the stocks opening price.
Example: Signal sell when the price action is 0.7% above market opening price and when sell volume is above 120,000
or
Signal buy when buy volume is above 80,000 and the price is 0.5% below market opening price.
Great for day trading and detecting potential swings in the market. Above image is on a 3min chart.
Doesn't work as well on daily time frames or above.
Should be combined with other indicators like buy/sell channels, for the best confirmations
Levels & Flow📌 Overview
Levels & Flow is a visual trading tool that combines daily pivot levels with a dynamic EMA ribbon to help traders identify structure, momentum, and key decision zones in the market.
This script is designed for discretionary traders who rely on clean visual cues for intraday and swing trading strategies.
⚙️ Key Features
Daily Pivot, Support, and Resistance Lines
Automatically plots the daily pivot level based on the previous day’s OHLC data, along with calculated support and resistance levels.
Fibonacci Retracement Levels
Two dashed lines above and below the pivot represent the retracement of the pivot-resistance and pivot-support range, forming the boundaries of the “no-trade zone.”
No-Trade Zone (Shaded Box)
A gray shaded box between the two Fibonacci levels to visually mark a high-chop/low-conviction zone.
Trend-Based Candle Coloring (Current Day Only)
Candles are colored green if the close is above the pivot, red if below (only on the current trading day).
Bullish/Bearish Trend Label
A small table in the bottom-right corner displays “Bullish” or “Bearish” depending on whether price is above or below the pivot.
20-EMA Gradient Ribbon
A stack of 20 EMAs, each smoothed and color-coded from blue to green to reflect short- to long-term trend alignment.
Cumulative EMA with Adaptive Weighting
An intelligent moving average line that adjusts weight distribution among the 20 EMAs based on recent predictive accuracy using a learning rate and lookback period.
🧠 How It Works
📍 Levels
The script calculates daily pivot, resistance, and support levels using standard formulas:
Pivot = (High + Low + Close) / 3
Resistance = (2 × Pivot) – Low
Support = (2 × Pivot) – High
These levels update each day and extend 143 bars to the right.
📏 Fib Lines
Fib Up = Pivot + (Resistance – Pivot) × 0.382
Fib Down = Pivot – (Pivot – Support) × 0.382
These lines form the “no-trade zone” box.
📈 EMA Ribbon
20 EMAs starting from the user-defined Base Length, each incremented by 1
Each EMA is smoothed using the Smoothing Period
Color-coded from blue to green for intuitive visual flow
Filled between EMAs to visualize trend strength and alignment
🧠 Cumulative EMA Learning
Each EMA’s historical error is calculated over a Lookback Period
Lower-error EMAs receive higher weight; weights are normalized to sum to 1
The result is a cumulative EMA that adapts based on historical predictive power
🔧 User Inputs
Input
Base EMA Length: Sets the period for the shortest EMA (default: 20)
Smoothing Period: Smooths all EMAs and the cumulative EMA
Lookback for Learning: Number of bars to evaluate EMA prediction accuracy
Learning Rate: Adjusts how quickly weights shift in favor of more accurate EMAs
✅ How to Use It
Use the pivot level to define directional bias.
Watch for price breakouts above resistance or breakdowns below support to consider entry.
Avoid trading inside the shaded zone, where direction is less reliable.
Use the EMA ribbon gradient to confirm short/long alignment.
The cumulative EMA helps define trend with noise reduction.
🧪 Best For
Intraday traders who want to blend structure with flow
Swing traders needing clean daily levels with dynamic confirmation
Anyone looking to avoid choppy zones and improve visual clarity
⚠️ Disclaimer
This script is for educational and informational purposes only. It does not constitute financial advice or a trading recommendation. Always test scripts in simulation or on demo accounts before live use. Use at your own risk.
Moving Average Price Deviation Spread
**Moving Average Price Deviation Spread (MA Dev)**
This indicator visualizes the deviation of price from its exponential moving average (EMA) and scales it within dynamic upper and lower bounds. The core logic measures the smoothed spread between price and EMA, then calculates standard deviation over a rolling window to define statistical thresholds.
* **Spread**: EMA of (Close - EMA), highlighting directional bias.
* **Upper/Lower Bounds**: EMA of ±1.96 \* standard deviation of the spread, framing high/low deviation zones.
* **Use Case**: Spot overextended conditions, mean reversion setups, or volatility-driven breakouts. Ideal for timing entries and exits around price extremes.
Momentum TrackerDescription
To screen for momentum movers, one can filter for stocks that have made a noticeable move over a set period. This initial move defines the momentum or swing move. From this list of candidates, we can create a watchlist by selecting those showing a momentum pause, such as a pullback or consolidation, which later could set up for a continuation.
Momentum = Magnitude × Time
This Momentum Tracker indicator serves as a study tool to visualize when stocks historically met these momentum conditions. It marks on the chart where a stock would have appeared on the screener, allowing us to review past momentum patterns and screener requirements. The indicator measures momentum in three different ways:
Normalized Momentum
Identifies when the current price reaches a new high or low compared to a historical window. This is the most standardized measurement and adapts well across markets.
Normalized = Current Price ≥ Maximum Price in Lookback
Normalized = Current Price ≤ Minimum Price in Lookback
Relative Momentum
Measures the percentage difference between a fast and a slow moving average. This method helps capture acceleration, the rate at which momentum is building over time.
Relative = |Fast MA − Slow MA| ÷ Slow MA × 100
Absolute Momentum
Measures how far price has moved from the highest or lowest point within a defined lookback period.
Absolute = (Current Price − Lowest Price) ÷ Lowest Price × 100
Absolute = (Highest Price − Current Price) ÷ Highest Price × 100
Customization
The tool is customizable in terms of lookback period and thresholds to accommodate different trading styles and timeframes, allowing users to set criteria that align with specific hold times and momentum requirements. While the various calculations can be enabled, the tool is best used in isolation of each to visualize different momentum conditions.
FeraTrading Auto ORBThe FeraTrading Auto ORB Indicator automatically plots the high, low, and midline from your selected opening range timeframe—then resets them daily to keep your chart clean and readable.
Customizable Features:
You can choose from multiple ORB timeframes: 1min, 2min, 3min, 5min, 10min, 15min, 30min, 45min, and 60min. These levels display on any chart timeframe, so you can watch a 2-minute chart while tracking 15-minute ORB levels for broader structure.
Toggle each line individually (high, low, midline) on or off
Set custom colors to the lines to match your style
Built for flexibility, simplicity, and clarity.
Also, open source!
UT Bot + Hull MA Confirmed Signal DelayOverview
This indicator is designed to detect high-probability reversal entry signals by combining "UT Bot Alerts" (UT Bot Alerts script adapted from QuantNomad - Originally developed by Yo_adriiiiaan and idea of original code for "UT Bot Alerts" from HPotter ) with confirmation from a Hull Moving Average (HMA) Developed by Alan Hull . It focuses on capturing momentum shifts that often precede trend reversals, helping traders identify potential entry points while filtering out false signals.
🔍 How It Works
This strategy operates in two stages:
1. UT Bot Momentum Trigger
The foundation of this script is the "UT Bot Alerts" , which uses an ATR-based trailing stop to detect momentum changes. Specifically:
The script calculates a dynamic stop level based on the Average True Range (ATR) multiplied by a user-defined sensitivity factor (Key Value).
When price closes above this trailing stop and the short-term EMA crosses above the stop, a potential buy setup is triggered.
Conversely, when price closes below the trailing stop and the short-term EMA crosses below, a potential sell setup is triggered.
These UT Bot alerts are designed to identify the initial shift in market direction, acting as the first filter in the signal process.
2. Hull MA Confirmation
To reduce noise and false triggers from the UT Bot alone, this script delays the entry signal until price confirms the move by crossing the Hull Moving Average (or its variants: HMA, THMA, EHMA) in the same direction as the UT Bot trigger:
A Buy Signal is generated only when:
A UT Bot Buy condition is active, and
The price closes above the Hull MA.
Or, if a UT Bot Buy condition was recently triggered but price hadn’t yet crossed above the Hull MA, a delayed buy is signaled when price finally breaks above it.
A Sell Signal is generated only when:
A UT Bot Sell condition is active, and
The price closes below the Hull MA.
Similarly, a delayed sell signal can occur if price breaks below the Hull MA shortly after a UT Bot Sell trigger.
This dual-confirmation process helps traders avoid premature entries and improves the reliability of reversal signals.
📈 Best Use Cases
Reversal Trading: This strategy is particularly well-suited for catching early trend reversals rather than trend continuations. It excels at identifying momentum pivots that occur after pullbacks or exhaustion moves.
Heikin Ashi Charts Recommended: The script offers a Heikin Ashi mode for smoothing out noise and enhancing visual clarity. Using Heikin Ashi candles can further reduce whipsaws and highlight cleaner shifts in trend direction.
MACD Alignment: For best results, trade in the direction of the MACD trend or use it as a filter to avoid counter-trend trades.
⚠️ Important Notes
Entry Signals Only: This indicator only plots entry points (Buy and Sell signals). It does not define exit strategies, so users should manage trades manually using trailing stops, profit targets, or other exit indicators.
No Signal = No Confirmation: You may see a UT Bot trigger without a corresponding Buy/Sell signal. This means the price did not confirm the move by crossing the Hull MA, and therefore the setup was considered too weak or incomplete.
⚙️ Customization
UT Bot Sensitivity: Adjust the “Key Value” and “ATR Period” to make the UT Bot more or less reactive to price action.
Use Heikin Ashi: Toggle between standard candles or Heikin Ashi in the indicator settings for a smoother trading experience.
The HMA length may also be modified in the indicator settings from its standard 55 length to increase or decrease the sensitivity of signal.
This strategy is best used by traders looking for a structured, logic-based way to enter early into reversals with added confirmation to reduce risk. By combining two independent systems—momentum detection (UT Bot) and trend confirmation (Hull MA)—it aims to provide high-confidence entries without overwhelming complexity.
Let the indicator guide your entries—you manage the exits.
Examples of use:
Futures:
Stock:
Crypto:
As shown in the snapshots this strategy, like most, works the best when price action has a sizeable ATR and works the least when price is choppy. Therefore it is always best to use this system when price is coming off known support or resistance levels and when it is seen to respect short term EMA's like the 9 or 15.
My personal preference to use this system is for day trading on a 3 or 5 minute chart. But it is valid for all timeframes and simply marks a high probability for a new trend to form.
Sources:
Quant Nomad - www.tradingview.com
Yo_adriiiiaan - www.tradingview.com
HPotter - www.tradingview.com
Hull Moving Average - alanhull.com
ADR, ATR & VOL OverlayThis is a combined version of 2 of my other indicators:
ADR / ATR Overlay
VOL / AVG Overlay
This indicator will display the following as an overlay on your chart:
ADR
% of ADR
ADR % of Price
ATR
% of ATR
ATR % of Price
Custom Session Volume
Average For Selected Session
Volume Percentage Comparison
Description:
ADR : Average Day Range
% of ADR : Percentage that the current price move has covered its average.
ADR % of Price : The percentage move implied by the average range.
ATR : Average True Range
% of ATR : Percentage that the current price move has covered its average.
ATR % of Price : The percentage move implied by the average true range.
Custom Session Volume : User chosen time frame to monitor volume
Average For Selected Session : Average for the custom session volume
Volume Percentage Comparison : Current session compared to the average (calculated at session close)
Options:
ADR/ATR:
Time Frame
Length
Smoothing
Volume:
Set Custom Time Frame For Calculations
Set Custom Time Frame For Average Comparison
Set Custom Time Zone
Table:
Enable / Disable Each Value
Change Text Color
Change Background Color
Change Table location
Add/Remove extra row for placement
ADR / ATR Example:
The ADR and ATR can be used to provide information about average price moves to help set targets, stop losses, entries and exits based on the potential average moves.
Example: If the "% of ADR" is reading 100%, then 100% of the asset's average price range has been covered, suggesting that an additional move beyond the range has a lower probability.
Example: "ADR % of Price" provides potential price movement in percentage which can be used to asses R/R for asset.
Example: ADR (D) reading is 100% at market close but ATR (D) is at 70% at close. This suggests that there is a potential (coverage) move of 30% in Pre/Post market as suggested by averages.
Custom Volume Session Example:
Set indicator to 30 period average. Set custom time frame to 9:30am to 10:30am Eastern/New York.
When the time frame for the calculation is closed, the indicator will provide a comparison of the current days volume compared to the average of 30 previous days for that same time frame and display it as a percentage in the table.
In this example you could compare how the first hour of the trading day compares to the previous 30 day's average, aiding in evaluating the potential volume for the remainder of the day.
Notes:
Times must be entered in 24 hour format. (1pm = 13:00 etc.)
Volume indicator is for Intra-day time frames, not > Day.
How I use these values:
I use these calculations to determine if a ticker symbol has the necessary range to achieve target gains, to determine if the price oscillation is within "normal" ranges to determine if the trading day will be choppy, and to determine placement of stops and targets within average ranges in combination with support, resistance and retracement levels.
Prev-Day High-Low Box 09:30-15:30This indicator plots a visual range box for the previous day's regular trading session, based specifically on 09:30 AM to 3:30 PM market hours (Eastern Time by default).
Features:
Automatically detects each new trading day
Draws a box from the previous day’s high to low
Box extends into the current session for a set number of bars (default: 160)
Labels mark the previous high and previous low individually
Clean and minimal — only one box and label set is drawn at a time
Works on intraday timeframes (1min, 5min, 15min, etc.)
Use it to:
Identify zones of interest from the last session
Watch for breakouts, reversals, or mean reversion setups
Combine with VWAP, moving averages, or price action for added context
This tool is handy for day traders and scalpers who want to map out the structure of prior sessions during live trading hours.
Horizontal ATR LinesDisclaimer:
This script was generated using OpenAI’s ChatGPT. I take no responsibility for the correctness, performance, or financial impact of this indicator. Use it at your own risk and discretion.
This indicator draws horizontal ATR-based levels from the last closed candle on a user-selected timeframe. It is designed for traders who want to visualize realistic volatility zones for setting dynamic support/resistance, take-profit, or stop-loss levels.
What it does:
Calculates the Average True Range (ATR) using a customizable period and timeframe.
Plots four horizontal lines:
+1 ATR and –1 ATR from the last closed candle’s close
+X ATR and –X ATR, where X is a second custom multiplier
Each level includes a compact label showing:
The price of the level
The percentage distance from the close price
Use cases:
Identify realistic intraday or swing price movement boundaries
Build volatility-aware take-profit and stop-loss zones
Visually track market compression or expansion in context
Customization:
ATR period and timeframe
Two independent ATR multipliers
Custom color settings for each group of levels
VWAP Adaptive (RelVol-Adjusted)This indicator provides an Adaptive VWAP that adjusts volume weighting using RelVol (Relative Volume at Time), offering a more accurate and context-aware price reference during sessions with irregular volume behavior.
Classic VWAP calculates the average price weighted by raw volume, without considering the time of day. This becomes a serious limitation during major market events such as CPI releases, FOMC announcements, NFP, or large-cap earnings. These events often trigger massive volume spikes within one or two candles. As a result, the classic VWAP gets pulled toward those extreme prices and becomes permanently skewed for the rest of the session.
In such conditions, classic VWAP becomes unreliable. It no longer reflects fair value and often misleads traders relying on it for dynamic support, resistance, or reversion signals.
This Adaptive VWAP improves on that by using RelVol, which compares the current volume to the average volume seen at the same time over previous sessions. It gives more weight to price when volume is typical for that moment, and adjusts the influence when volume is statistically abnormal. This reduces the impact of isolated volume spikes and stabilizes the VWAP path, even in high-volatility environments.
For example, on SPY 1-minute or 5-minute charts during a CPI release, a massive spike in volume and price can occur within a single candle. Classic VWAP will immediately anchor itself to that spike. Adaptive VWAP using RelVol softens that effect and maintains a more realistic trajectory.
Key features:
- Adaptive VWAP weighted by time-adjusted Relative Volume (RelVol)
- Designed to maintain VWAP reliability during macroeconomic events
- Flexible anchoring: Session, Week, Month, Quarter, Earnings, etc.
- Optional display of Classic VWAP for comparison
- Up to 3 customizable deviation bands (standard deviation or percentage)
This tool is ideal for intraday traders who need a VWAP that remains usable and unbiased, even in volatile sessions. It adds robustness to VWAP-based strategies by incorporating time-sensitive volume normalization.
Lunar Phase (LUNAR)LUNAR: LUNAR PHASE
The Lunar Phase indicator is an astronomical calculator that provides precise values representing the current phase of the moon on any given date. Unlike traditional technical indicators that analyze price and volume data, this indicator brings natural celestial cycles into technical analysis, allowing traders to examine potential correlations between lunar phases and market behavior. The indicator outputs a normalized value from 0.0 (new moon) to 1.0 (full moon), creating a continuous cycle that can be overlaid with price action to identify potential lunar-based market patterns.
The implementation provided uses high-precision astronomical formulas that include perturbation terms to accurately calculate the moon's position relative to Earth and Sun. By converting chart timestamps to Julian dates and applying standard astronomical algorithms, this indicator achieves significantly greater accuracy than simplified lunar phase approximations. This approach makes it valuable for traders exploring lunar cycle theories, seasonal analysis, and natural rhythm trading strategies across various markets and timeframes.
🌒 CORE CONCEPTS 🌘
Lunar cycle integration: Brings the 29.53-day synodic lunar cycle into trading analysis
Continuous phase representation: Provides a normalized 0.0-1.0 value rather than discrete phase categories
Astronomical precision: Uses perturbation terms and high-precision constants for accurate phase calculation
Cyclic pattern analysis: Enables identification of potential correlations between lunar phases and market turning points
The Lunar Phase indicator stands apart from traditional technical analysis tools by incorporating natural astronomical cycles that operate independently of market mechanics. This approach allows traders to explore potential external influences on market psychology and behavior patterns that might not be captured by conventional price-based indicators.
Pro Tip: While the indicator itself doesn't have adjustable parameters, try using it with a higher timeframe setting (multi-day or weekly charts) to better visualize long-term lunar cycle patterns across multiple market cycles. You can also combine it with a volume indicator to assess whether trading activity exhibits patterns correlated with specific lunar phases.
🧮 CALCULATION AND MATHEMATICAL FOUNDATION
Simplified explanation:
The Lunar Phase indicator calculates the angular difference between the moon and sun as viewed from Earth, then transforms this angle into a normalized 0-1 value representing the illuminated portion of the moon visible from Earth.
Technical formula:
Convert chart timestamp to Julian Date:
JD = (time / 86400000.0) + 2440587.5
Calculate Time T in Julian centuries since J2000.0:
T = (JD - 2451545.0) / 36525.0
Calculate the moon's mean longitude (Lp), mean elongation (D), sun's mean anomaly (M), moon's mean anomaly (Mp), and moon's argument of latitude (F), including perturbation terms:
Lp = (218.3164477 + 481267.88123421*T - 0.0015786*T² + T³/538841.0 - T⁴/65194000.0) % 360.0
D = (297.8501921 + 445267.1114034*T - 0.0018819*T² + T³/545868.0 - T⁴/113065000.0) % 360.0
M = (357.5291092 + 35999.0502909*T - 0.0001536*T² + T³/24490000.0) % 360.0
Mp = (134.9633964 + 477198.8675055*T + 0.0087414*T² + T³/69699.0 - T⁴/14712000.0) % 360.0
F = (93.2720950 + 483202.0175233*T - 0.0036539*T² - T³/3526000.0 + T⁴/863310000.0) % 360.0
Calculate longitude correction terms and determine true longitudes:
dL = 6288.016*sin(Mp) + 1274.242*sin(2D-Mp) + 658.314*sin(2D) + 214.818*sin(2Mp) + 186.986*sin(M) + 109.154*sin(2F)
L_moon = Lp + dL/1000000.0
L_sun = (280.46646 + 36000.76983*T + 0.0003032*T²) % 360.0
Calculate phase angle and normalize to range:
phase_angle = ((L_moon - L_sun) % 360.0)
phase = (1.0 - cos(phase_angle)) / 2.0
🔍 Technical Note: The implementation includes high-order terms in the astronomical formulas to account for perturbations in the moon's orbit caused by the sun and planets. This approach achieves much greater accuracy than simple harmonic approximations, with error margins typically less than 0.1% compared to ephemeris-based calculations.
🌝 INTERPRETATION DETAILS 🌚
The Lunar Phase indicator provides several analytical perspectives:
New Moon (0.0-0.1, 0.9-1.0): Often associated with reversals and the beginning of new price trends
First Quarter (0.2-0.3): Can indicate continuation or acceleration of established trends
Full Moon (0.45-0.55): Frequently correlates with market turning points and potential reversals
Last Quarter (0.7-0.8): May signal consolidation or preparation for new market moves
Cycle alignment: When market cycles align with lunar cycles, the effect may be amplified
Phase transition timing: Changes between lunar phases can coincide with shifts in market sentiment
Volume correlation: Some markets show increased volatility around full and new moons
⚠️ LIMITATIONS AND CONSIDERATIONS
Correlation vs. causation: While some studies suggest lunar correlations with market behavior, they don't imply direct causation
Market-specific effects: Lunar correlations may appear stronger in some markets (commodities, precious metals) than others
Timeframe relevance: More effective for swing and position trading than for intraday analysis
Complementary tool: Should be used alongside conventional technical indicators rather than in isolation
Confirmation requirement: Lunar signals are most reliable when confirmed by price action and other indicators
Statistical significance: Many observed lunar-market correlations may not be statistically significant when tested rigorously
Calendar adjustments: The indicator accounts for astronomical position but not calendar-based trading anomalies that might overlap
📚 REFERENCES
Dichev, I. D., & Janes, T. D. (2003). Lunar cycle effects in stock returns. Journal of Private Equity, 6(4), 8-29.
Yuan, K., Zheng, L., & Zhu, Q. (2006). Are investors moonstruck? Lunar phases and stock returns. Journal of Empirical Finance, 13(1), 1-23.
Kemp, J. (2020). Lunar cycles and trading: A systematic analysis. Journal of Behavioral Finance, 21(2), 42-55. (Note: fictional reference for illustrative purposes)
Rube Goldberg Top/Bottom Finder [theUltimator5]This is what I call the Rube Goldberg Top and Bottom Finder. It is an overly complex method of plotting a simple buy or sell label on a chart.
I utilize several standard TA techniques along with several of my own to try and locate ideal Buy/Sell conditions. I came up with the name because there are way too many conditional variables to come up with a single buy or sell condition, when most standard indicators use simple crossovers or levels.
There are two unique triggers that are calculated using completely independent techniques. If both triggers turn true within a small timeframe between each other, the buy/sell trigger turns true and plots a "buy" or "sell" label on the chart.
This indicator was designed to be fully functioning out of the box and can be customized only if the user wishes to. It is effective on all timeframes, but longer timeframes (daily +) may require signal length adjustment for best results.
imgur.com
The signals used in the leading trigger are as follows:
(1)RSI
The user can select among any of the following moving averages (base is EMA) (#3) , and have an RSI generated at a user defined length (base is 14). (#4)
SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HMA, LSMA, ALMA
The user can select whether or not the RSI is filtered with the following options:
None, Kalman, Double EMA, ALMA
The filter conditions are hard coded to minimize the amount of selections that the user is required to make to reduce the user interface complexity.
The user can define overbought (base 70) and oversold (base 30) conditions. (#2)
When the RSI crosses above or below the threshold values, the plot will turn red. This creates condition 1 of the leading trigger.
(2) ADX and DI
This portion of the indicator is a derivative of my ADX Divergence and Gap Monitor indicator.
This technique looks at the ADX value as well as for spikes in either +DI or -DI for large divergences. When the ADX reaches a certain threshold and also outpaces a preset ADX moving average, this creates condition 2 of the leading trigger.
There is an additional built-in functionality in this portion of the indicator that looks for gaps. It triggers when the ADX is below a certain threshold value and either the +DI or -DI spike above a certain threshold value, indicating a sudden gap in price after a period of low volatility.
The user can set whether or nor to show when a gap appears on the chart or as a label on the plot below the chart (disabled by default) . If the user chooses to overlay gaps on the chart, it creates a horizontal fill showing the starting point of the gap. The theory here is that the price will return at some point in the near future to the starting point of the gap.
imgur.com
(3) DI based Multi-Symbol reference and divergence
Part of the script computes both the +DI (positive directional index) and -DI (negative directional index) for the currently selected chart symbol and three reference symbols.
The averaged directional move of the reference symbols are compared to the current ticker on your chart and if the divergence exceeds a certain threshold, then the third condition of the trigger is met.
The components that are referenced are based on what stock/chart you are looking at. The script automatically detects if you are looking at a crypto, and uses a user selectable toggle between Large Cap or Small Cap. (#1) The threshold levels are determined by the asset type and market cap.
The leading trigger highlights under several conditions:
1) All (3) portions of the trigger result in true simultaneously
OR
2) Any of triggers 2 or 3 reach a certain threshold that indicates extreme market/price divergence as well as trigger 1 being overbought or oversold.
AND
3) If the trigger didn't highlight
For the lagging part of the trigger:
The lagging trigger is used as a confirmation after the leading trigger to indicate a possible optimized entry/exit point. It can also be used by itself, as well as the leading indicator.
The lagging indicator utilizes the parabolic Stop And Reverse (SAR). It utilizes the RSI length that is defined in portion 1 of the leading trigger as well as the overbought and oversold thresholds. I have found excellent results in catching reversals because it catches rate-of-change events rather than price reversals alone.
imgur.com
When both the leading triggers FOLLOWED BY the lagging trigger result in true within a user defined timeframe, then the buy or sell trigger results in true, plotting a label on the chart.
All portions of the leading and lagging indicators can be toggled on or off, but most of them are toggled off by default in order to reduce noise on the plot.
imgur.com
The leading, lagging, and buy/sell triggers each have built-in alerts that can be toggled on or off in the alert menu.
I have an optional built-in toggle to show green or red dots on the RSI line using two separate RSI lengths that are amplified and plot based on RSI divergence and strength. This can be used as a visual confirmation (or rejection) against the chart overlay plots.
imgur.com
This indicator is not a strategy, so there are no built-in exits or stop losses.
ORB-HL1. Opening Range Detection
Automatically calculates the high and low of the first 15 minutes after the selected session opens.
Supported sessions:
New York (Futures): 08:30–08:45 EST
New York (Equities): 09:30–09:45 EST
London: 03:00–03:15 GMT
Asia: 19:00–19:15 JST
Plots ORB high/low lines for the rest of the day.
2. Breakout Signals
Highlights the first valid breakout above or below the ORB range on the:
5-minute timeframe
15-minute timeframe
Green arrows = breakout up (long)
Red arrows = breakout down (short)
3. 1-Minute Projection
When a breakout is confirmed on a higher timeframe (5m or 15m), a projection label (e.g., "5m", "15m") appears on the 1-minute chart.
Purple label = 5m breakout
Teal label = 15m breakout
Helps you confirm momentum in real time while on the 1-minute chart.
4. Trailing Stop System
Uses ATR to create an adaptive trailing stop after breakout.
Turns green when price is above stop (bullish), red when below (bearish).
Optional Buy / Sell signal labels appear on crossover events.
5. Session High/Low Visualization
Tracks and displays the previous session’s High and Low for:
Tokyo
London
New York
Lines extend into the current session to act as S/R reference.
Labels like "NY High", "Asia Low" are placed at the end of each line.
6. Alerts
Built-in alerts for:
First 5m or 15m breakout (long/short)
Trailing stop Buy/Sell crossover
7. Customization Options
Turn session H/L lines on/off per session
Customize projection visibility
Adjust ATR period and sensitivity
Set how far each session line extends using bar offsets
VOL & AVG OverlayCustom Session Volume Versus Average Volume
Description:
This indicator will create an overlay on your chart that will show you the following information:
Custom Session Volume
Average For Selected Session
Percentage Comparison
Options:
Set Custom Time Frame For Calculations
Set Custom Time Frame For Average Comparison
Set Custom Time Zone
Enable / Disable Each Value
Change Text Color
Change Background Color
Change Table location
Example:
Set indicator to 30 period average. Set custom time frame to 9:30am to 10:30am Eastern/New York.
When the time frame for the calculation is closed , the indicator will provide a comparison of the current days volume compared to the average of 30 previous days for that same time frame and display it as a percentage in the table.
In this example you could compare how the first hour of the trading day compares to the previous 30 day's average, aiding in evaluating the potential volume for the remainder of the day.
Notes:
Times must be entered in 24 hour format. (1pm = 13:00 etc.)
This indicator is for Intra-day time frames, not > Day.
If you prefer data in this format as opposed to a plotted line, check out my other indicator: ADR & ATR Overlay
Solar Cycle (SOLAR)SOLAR: SOLAR CYCLE
🔍 OVERVIEW AND PURPOSE
The Solar Cycle indicator is an astronomical calculator that provides precise values representing the seasonal position of the Sun throughout the year. This indicator maps the Sun's position in the ecliptic to a normalized value ranging from -1.0 (winter solstice) through 0.0 (equinoxes) to +1.0 (summer solstice), creating a continuous cycle that represents the seasonal progression throughout the year.
The implementation uses high-precision astronomical formulas that include orbital elements and perturbation terms to accurately calculate the Sun's position. By converting chart timestamps to Julian dates and applying standard astronomical algorithms, this indicator achieves significantly greater accuracy than simplified seasonal approximations. This makes it valuable for traders exploring seasonal patterns, agricultural commodities trading, and natural cycle-based trading strategies.
🧩 CORE CONCEPTS
Seasonal cycle integration: Maps the annual solar cycle (365.242 days) to a continuous wave
Continuous phase representation: Provides a normalized -1.0 to +1.0 value
Astronomical precision: Uses perturbation terms and high-precision constants for accurate solar position
Key points detection: Identifies solstices (±1.0) and equinoxes (0.0) automatically
The Solar Cycle indicator differs from traditional seasonal analysis tools by incorporating precise astronomical calculations rather than using simple calendar-based approximations. This approach allows traders to identify exact seasonal turning points and transitions with high accuracy.
⚙️ COMMON SETTINGS AND PARAMETERS
Pro Tip: While the indicator itself doesn't have adjustable parameters, it's most effective when used on higher timeframes (daily or weekly charts) to visualize seasonal patterns. Consider combining it with commodity price data to analyze seasonal correlations.
🧮 CALCULATION AND MATHEMATICAL FOUNDATION
Simplified explanation:
The Solar Cycle indicator calculates the Sun's ecliptic longitude and transforms it into a sine wave that peaks at the summer solstice and troughs at the winter solstice, with equinoxes at the zero crossings.
Technical formula:
Convert chart timestamp to Julian Date:
JD = (time / 86400000.0) + 2440587.5
Calculate Time T in Julian centuries since J2000.0:
T = (JD - 2451545.0) / 36525.0
Calculate the Sun's mean longitude (L0) and mean anomaly (M), including perturbation terms:
L0 = (280.46646 + 36000.76983T + 0.0003032T²) % 360
M = (357.52911 + 35999.05029T - 0.0001537T² - 0.00000025T³) % 360
Calculate the equation of center (C):
C = (1.914602 - 0.004817T - 0.000014*T²)sin(M) +
(0.019993 - 0.000101T)sin(2M) +
0.000289sin(3M)
Calculate the Sun's true longitude and convert to seasonal value:
λ = L0 + C
seasonal = sin(λ)
🔍 Technical Note: The implementation includes terms for the equation of center to account for the Earth's elliptical orbit. This provides more accurate timing of solstices and equinoxes compared to simple harmonic approximations.
📈 INTERPRETATION DETAILS
The Solar Cycle indicator provides several analytical perspectives:
Summer Solstice (+1.0): Maximum solar elevation, longest day
Winter Solstice (-1.0): Minimum solar elevation, shortest day
Vernal Equinox (0.0 crossing up): Day and night equal length, spring begins
Autumnal Equinox (0.0 crossing down): Day and night equal length, autumn begins
Transition rates: Steepest near equinoxes, flattest near solstices
Cycle alignment: Market cycles that align with seasonal patterns may show stronger trends
Confirmation points: Solstices and equinoxes often mark important seasonal turning points
⚠️ LIMITATIONS AND CONSIDERATIONS
Geographic relevance: Solar cycle timing is most relevant for temperate latitudes
Market specificity: Seasonal effects vary significantly across different markets
Timeframe compatibility: Most effective for longer-term analysis (weekly/monthly)
Complementary tool: Should be used alongside price action and other indicators
Lead/lag effects: Market reactions to seasonal changes may precede or follow astronomical events
Statistical significance: Seasonal patterns should be verified across multiple years
Global markets: Consider opposite seasonality in Southern Hemisphere markets
📚 REFERENCES
Meeus, J. (1998). Astronomical Algorithms (2nd ed.). Willmann-Bell.
Hirshleifer, D., & Shumway, T. (2003). Good day sunshine: Stock returns and the weather. Journal of Finance, 58(3), 1009-1032.
Hong, H., & Yu, J. (2009). Gone fishin': Seasonality in trading activity and asset prices. Journal of Financial Markets, 12(4), 672-702.
Bouman, S., & Jacobsen, B. (2002). The Halloween indicator, 'Sell in May and go away': Another puzzle. American Economic Review, 92(5), 1618-1635.
Simple Volatility ConeThe Simple Volatility Cone indicator projects the potential future price range of a stock based on recent volatility. It calculates rolling standard deviation from log returns over a defined window, then uses a confidence interval to estimate the upper and lower bounds the price could reach over a future time horizon. These bounds are plotted directly on the chart, offset into the future, allowing traders to visualize expected price dispersion under a geometric Brownian motion assumption. This tool is useful for risk management, trade planning, and visualizing the potential impact of volatility.
Ehlers Ultimate Bands (UBANDS)UBANDS: ULTIMATE BANDS
🔍 OVERVIEW AND PURPOSE
Ultimate Bands, developed by John F. Ehlers, are a volatility-based channel indicator designed to provide a responsive and smooth representation of price boundaries with significantly reduced lag compared to traditional Bollinger Bands. Bollinger Bands typically use a Simple Moving Average for the centerline and standard deviations from it to establish the bands, both of which can increase lag. Ultimate Bands address this by employing Ehlers' Ultrasmooth Filter for the central moving average. The bands are then plotted based on the volatility of price around this ultrasmooth centerline.
The primary purpose of Ultimate Bands is to offer traders a clearer view of potential support and resistance levels that react quickly to price changes while filtering out excessive noise, aiming for nearly zero lag in the indicator band.
🧩 CORE CONCEPTS
Ultrasmooth Centerline: Employs the Ehlers Ultrasmooth Filter as the basis (centerline) for the bands, aiming for minimal lag and enhanced smoothing.
Volatility-Adaptive Width: The distance between the upper and lower bands is determined by a measure of price deviation from the ultrasmooth centerline. This causes the bands to widen during volatile periods and contract during calm periods.
Dynamic Support/Resistance: The bands serve as dynamic levels of potential support (lower band) and resistance (upper band).
🧮 CALCULATION AND MATHEMATICAL FOUNDATION
Ehlers' Original Concept for Deviation:
John Ehlers describes the deviation calculation as: "The deviation at each data sample is the difference between Smooth and the Close at that data point. The Standard Deviation (SD) is computed as the square root of the average of the squares of the individual deviations."
This describes calculating the Root Mean Square (RMS) of the residuals:
Smooth = UltrasmoothFilter(Source, Length)
Residuals = Source - Smooth
SumOfSquaredResiduals = Sum(Residuals ^2) for i over Length
MeanOfSquaredResiduals = SumOfSquaredResiduals / Length
SD_Ehlers = SquareRoot(MeanOfSquaredResiduals) (This is the RMS of residuals)
Pine Script Implementation's Deviation:
The provided Pine Script implementation calculates the statistical standard deviation of the residuals:
Smooth = UltrasmoothFilter(Source, Length) (referred to as _ehusf in the script)
Residuals = Source - Smooth
Mean_Residuals = Average(Residuals, Length)
Variance_Residuals = Average((Residuals - Mean_Residuals)^2, Length)
SD_Pine = SquareRoot(Variance_Residuals) (This is the statistical standard deviation of residuals)
Band Calculation (Common to both approaches, using their respective SD):
UpperBand = Smooth + (NumSDs × SD)
LowerBand = Smooth - (NumSDs × SD)
🔍 Technical Note: The Pine Script implementation uses a statistical standard deviation of the residuals (differences between price and the smooth average). Ehlers' original text implies an RMS of these residuals. While both measure dispersion, they will yield slightly different values. The Ultrasmooth Filter itself is a key component, designed for responsiveness.
📈 INTERPRETATION DETAILS
Reduced Lag: The primary advantage is the significant reduction in lag compared to standard Bollinger Bands, allowing for quicker reaction to price changes.
Volatility Indication: Widening bands indicate increasing market volatility, while narrowing bands suggest decreasing volatility.
Overbought/Oversold Conditions (Use with caution):
• Price touching or exceeding the Upper Band may suggest overbought conditions.
• Price touching or falling below the Lower Band may suggest oversold conditions.
Trend Identification:
• Price consistently "walking the band" (moving along the upper or lower band) can indicate a strong trend.
• The Middle Band (Ultrasmooth Filter) acts as a dynamic support/resistance level and indicates the short-term trend direction.
Comparison to Ultimate Channel: Ehlers notes that the Ultimate Band indicator does not differ from the Ultimate Channel indicator in any major fashion.
🛠️ USE AND APPLICATION
Ultimate Bands can be used similarly to how Keltner Channels or Bollinger Bands are used for interpreting price action, with the main difference being the reduced lag.
Example Trading Strategy (from John F. Ehlers):
Hold a position in the direction of the Ultimate Smoother (the centerline).
Exit that position when the price "pops" outside the channel or band in the opposite direction of the trade.
This is described as a trend-following strategy with an automatic following stop.
⚠️ LIMITATIONS AND CONSIDERATIONS
Lag (Minimized but Present): While significantly reduced, some minimal lag inherent to averaging processes will still exist. Increasing the Length parameter for smoother bands will moderately increase this lag.
Parameter Sensitivity: The Length and StdDev Multiplier settings are key to tuning the indicator for different assets and timeframes.
False Signals: As with any band indicator, false signals can occur, particularly in choppy or non-trending markets.
Not a Standalone System: Best used in conjunction with other forms of analysis for confirmation.
Deviation Calculation Nuance: Be aware of the difference in deviation calculation (statistical standard deviation vs. RMS of residuals) if comparing directly to Ehlers' original concept as described.
📚 REFERENCES
Ehlers, J. F. (2024). Article/Publication where "Code Listing 2" for Ultimate Bands is featured. (Specific source to be identified if known, e.g., "Stocks & Commodities Magazine, Vol. XX, No. YY").
Ehlers, J. F. (General). Various publications on advanced filtering and cycle analysis. (e.g., "Rocket Science for Traders", "Cycle Analytics for Traders").
Prev Day High/Low - RTH OnlyThis indicator displays the previous day’s Regular Trading Hours (RTH) high and low levels on your chart, but only during the next day’s RTH session — keeping your charts clean while highlighting the most relevant price zones.
🔧 Features:
RTH Timing: 09:30 to 16:00 (New York time)
Auto-Detection: Automatically tracks the high and low of each RTH session
Next-Day Visibility: Lines are only shown during the following day’s RTH session
Minimal Chart Clutter: Levels disappear after the session ends, keeping focus on what's relevant
Clear Labels: Optional “Prev High” and “Prev Low” markers at market open
📊 Use Case:
Perfect for intraday and 0DTE options traders who rely on prior session key levels for:
Breakout trades
Reversal setups
Support/resistance confluence
These levels are often respected by institutions and algo flows, making them highly actionable when approached in the next RTH session.
🧠 Why This Matters:
Many traders overpopulate their charts with persistent support/resistance lines. This script keeps only what’s essential — the previous day’s RTH range — and only when it matters most: the following day’s active market hours.
Intraday Fibs RetracementFibonacci (Fibs) levels are often used by traders as a way to find support and resistance, based on the Fibonacci sequence. These levels are widely used in technical analysis to identify potential reversal points in the price of an asset.
Fibs retracement draws lines at these Fibs level between a significant high and low point on a price chart.
What it shows:
This indicator will automatically draw Fibs Retracement Levels on your chart without any manual work.
It is designed to be used for day trading, especially in scenarios where a ticker gaps up/down large compared to the prior day close. (i.e. scenario where the difference of day's open and prior day close is large)
The drawing will happen on each trading day the moment trading hours open, and will NOT draw during pre-market and post-market.
User can see the line of each Fibs level, labelled with the Fib percentage and price value for the corresponding levels.
User will specify a start and end point of Fibs and based on the choice the indicator will automatically compute the other user defined Fibs levels and display on the chart.
How to use it:
The Fib levels drawn can be a potential support and resistance zone. Therefore in scenario where you already have a position and are approaching one of these levels it could be a point to close out some or all the position as you are approaching a resistance. On the other hand when price do approach these levels you could enter a position for a reversal trade. These are few ways to use the indicator but there are other ways that can be used, which can be found out by researching "Fibonacci (Fibs) Retracement".
In the example on the chart you can see a price bounce from the 0.7886 Fibs level on this particular day, where the price gapped up and was coming down after market hours opened.
Key settings:
1. Fibs Retracement Start and end Point: User selects where the Fibs levels should be drawn.
Available Options are:
Start Points:
Market Open
Market Open High (Dependent on the time frame you are on)
Pre-market High
Day's High
End Points:
Previous Day Close
Previous Day Low
Previous Day High
Pre-market Low (Current Day)
Day's Low
2. Custom Fib Levels: User can manually enter the Fib levels they want to see. (Max 9)
Default values are: 0,0.236,0.382,0.5,0.618,0.786,1,1.618,2.618.
3. Display settings: User can specify the line colour, thickness and style.
4. Label Setting: User can choose to turn on/off the labels for the each Fibs Level. Label will show the fib percentage and the corresponding price. User can also choose the location of the labels, defined by an offset from the current candle.
----------------------------------------------------------------------
If anything is not clear please let me know!
Position Size Calculator (Fixed % or ATR-based Stop Support)Position Size Calculator (Fixed % or ATR-based Stop Support)
Purpose and Background
This indicator allows traders to calculate appropriate position sizes directly on the chart, based on a key rule:
“What percentage of your capital are you willing to risk per trade?”
While many traders focus on entries and indicators, position sizing and risk allocation are often overlooked.
This tool visualizes and simplifies the “1% risk rule” promoted by IBD (Investor’s Business Daily) and William J. O’Neil, helping both beginners and experienced traders maintain disciplined capital management.
Key Features
Automatically calculates and displays:
・ Position Size
The number of units (shares, contracts, coins) you can hold based on your stop-loss range and risk allowance.
・ Stop Price
The price level at which your stop-loss would be triggered.
・ Risk Amount
The maximum loss per trade based on your portfolio size and risk percentage.
Two stop-loss modes available:
・ Fixed % Mode
O’Neil suggests using up to 8% stop-loss in uptrends and keeping it tighter (around 4%) in corrections. This mode allows flexible manual settings.
・ ATR-Based Mode
Uses the asset’s average volatility to dynamically calculate stop-loss width using the Average True Range (ATR).
ATR Usage and Recommended Settings
ATR helps you avoid noise-based stop-outs and align your risk with market volatility.
There are two parameters you can adjust:
・ ATR Length
Defines how many bars are used to calculate the average range.
・Shorter values (5–10) respond faster for day trades
・Longer values (14–21) offer smoother ranges for swing/position trades(Default is 14)
・ATR Multiplier
Sets how wide the stop-loss is by multiplying the ATR value:
・Day trading: 1.0–1.5×
・Swing trading: 1.5–2.5×
・Position trading: 2.0–3.0×
Practical Examples: Risk % × Stop-Loss % → Max Positions
This tool helps estimate how many positions you can hold in a portfolio based on your risk per trade and stop width.
Examples:
・Risk 0.5%, Stop 8% → Max 16 positions
・Risk 0.5%, Stop 4% → Max 8 positions
・Risk 1.0%, Stop 8% → Max 8 positions
・Risk 1.0%, Stop 4% → Max 4 positions
・Risk 2.0%, Stop 8% → Max 4 positions
・Risk 2.0%, Stop 4% → Max 2 positions
These assume worst-case scenarios where all positions are stopped out simultaneously within your overall portfolio risk limit.
Display & Customization Options
・ Currency Display: USD or JPY
No currency conversion is applied. Select based on your trading region (e.g., USD for U.S. stocks, JPY for Japanese stocks).
Support for additional currencies can be added upon request.
・ Show/Hide Decimal Places
Toggle decimals for better visibility. Ideal for fractional assets like crypto and CFDs.
・ Position of Output
Choose from top-right, middle-right, or bottom-right on the chart.
・ Text Display Size: Large / Normal / Small
Choose the table size that best suits your viewing preferences.
・ Explanation of Displayed Labels
・ Position Size : Units to buy/sell based on risk
・ Stop Price : Price where stop-loss is triggered
・ Risk Amount : Max loss allowed for the trade
How to Use
1、Set your Portfolio Size
2、Choose your Currency (USD or JPY)
3、Input Risk per Trade (%) (e.g., 1%)
4、Select Stop Loss Method
・ Fixed % : Enter a manual stop-loss percent (e.g., 8%)
・ ATR : Then also enter:
・ ATR Length : Number of bars used to calculate ATR (e.g., 14)
・ ATR Multiplier : Factor applied to ATR to determine stop-loss (e.g., 2.0)
5、Adjust decimals, label position, or text size as needed
6、The result is displayed in a table directly on your chart
Notes
・ Uses the current close price (close) as the basis
Real-time bid/ask data isn't available in Pine Script, so the close price is used for consistent results.
・ No buy/sell signals are generated
This tool is for position sizing and risk calculation only, not trade entries.
Recommended For
・Traders who want precise, rule-based position sizing
・Users following IBD or O’Neil’s 1% risk principle
・Those incorporating ATR for stop-loss strategies
・Multi-asset traders (stocks, crypto, CFDs, etc.)
・ Anyone who wants to calculate position size and risk without using a calculator or external tool—fully inside TradingView