EXODUS EXODUS by (DAFE) Trading Systems
EXODUS is a sophisticated trading algorithm built by Dskyz (DAFE) Trading Systems for competitive and competition purposes, designed to identify high-probability trades with robust risk management. this strategy leverages a multi-signal voting system, combining three core components—SPR, VWMO, and VEI—alongside ADX, choppiness filters, and ATR-based volatility gates to ensure trades are taken only in favorable market conditions. the algo uses a take-profit to stop-loss ratio, dynamic position sizing, and a strict voting mechanism requiring all signals to align before entering a trade.
EXODUS was not overfitted for any specific symbol. instead, it uses a generic tuned setting, making it versatile across various markets. while it can trade futures, it’s not currently set up for it but has the potential to do more with further development. visuals are intentionally minimal due to its competition focus, prioritizing performance over aesthetics. a more visually stunning version may be released in the future with enhanced graphics.
The Unique Core Components Developed for EXODUS
SPR (Session Price Recalibration)
SPR measures momentum during regular trading hours (RTH, 0930-1600, America/New_York) to catch session-specific trends.
spr_lookback = input.int(15, "SPR Lookback") this sets how many bars back SPR looks to calculate momentum (default 15 bars). it compares the current session’s price-volume score to the score 15 bars ago to gauge momentum strength.
how it works: a longer lookback smooths out the signal, focusing on bigger trends. a shorter one makes SPR more sensitive to recent moves.
how to adjust: on a 1-hour chart, 15 bars is 15 hours (about 2 trading days). if you’re on a shorter timeframe like 5 minutes, 15 bars is just 75 minutes, so you might want to increase it to 50 or 100 to capture more meaningful trends. if you’re trading a choppy stock, a shorter lookback (like 5) can help catch quick moves, but it might give more false signals.
spr_threshold = input.float (0.7, "SPR Threshold")
this is the cutoff for SPR to vote for a trade (default 0.7). if SPR’s normalized value is above 0.7, it votes for a long; below -0.7, it votes for a short.
how it works: SPR normalizes its momentum score by ATR, so this threshold ensures only strong moves count. a higher threshold means fewer trades but higher conviction.
how to adjust: if you’re getting too few trades, lower it to 0.5 to let more signals through. if you’re seeing too many false entries, raise it to 1.0 for stricter filtering. test on your chart to find a balance.
spr_atr_length = input.int(21, "SPR ATR Length") this sets the ATR period (default 21 bars) used to normalize SPR’s momentum score. ATR measures volatility, so this makes SPR’s signal relative to market conditions.
how it works: a longer ATR period (like 21) smooths out volatility, making SPR less jumpy. a shorter one makes it more reactive.
how to adjust: if you’re trading a volatile stock like TSLA, a longer period (30 or 50) can help avoid noise. for a calmer stock, try 10 to make SPR more responsive. match this to your timeframe—shorter timeframes might need a shorter ATR.
rth_session = input.session("0930-1600","SPR: RTH Sess.") rth_timezone = "America/New_York" this defines the session SPR uses (0930-1600, New York time). SPR only calculates momentum during these hours to focus on RTH activity.
how it works: it ignores pre-market or after-hours noise, ensuring SPR captures the main market action.
how to adjust: if you trade a different session (like London hours, 0300-1200 EST), change the session to match. you can also adjust the timezone if you’re in a different region, like "Europe/London". just make sure your chart’s timezone aligns with this setting.
VWMO (Volume-Weighted Momentum Oscillator)
VWMO measures momentum weighted by volume to spot sustained, high-conviction moves.
vwmo_momlen = input.int(21, "VWMO Momentum Length") this sets how many bars back VWMO looks to calculate price momentum (default 21 bars). it takes the price change (close minus close 21 bars ago).
how it works: a longer period captures bigger trends, while a shorter one reacts to recent swings.
how to adjust: on a daily chart, 21 bars is about a month—good for trend trading. on a 5-minute chart, it’s just 105 minutes, so you might bump it to 50 or 100 for more meaningful moves. if you want faster signals, drop it to 10, but expect more noise.
vwmo_volback = input.int(30, "VWMO Volume Lookback") this sets the period for calculating average volume (default 30 bars). VWMO weights momentum by volume divided by this average.
how it works: it compares current volume to the average to see if a move has strong participation. a longer lookback smooths the average, while a shorter one makes it more sensitive.
how to adjust: for stocks with spiky volume (like NVDA on earnings), a longer lookback (50 or 100) avoids overreacting to one-off spikes. for steady volume stocks, try 20. match this to your timeframe—shorter timeframes might need a shorter lookback.
vwmo_smooth = input.int(9, "VWMO Smoothing")
this sets the SMA period to smooth VWMO’s raw momentum (default 9 bars).
how it works: smoothing reduces noise in the signal, making VWMO more reliable for voting. a longer smoothing period cuts more noise but adds lag.
how to adjust: if VWMO is too jumpy (lots of false votes), increase to 15. if it’s too slow and missing trades, drop to 5. test on your chart to see what keeps the signal clean but responsive.
vwmo_threshold = input.float(10, "VWMO Threshold") this is the cutoff for VWMO to vote for a trade (default 10). above 10, it votes for a long; below -10, a short.
how it works: it ensures only strong momentum signals count. a higher threshold means fewer but stronger trades.
how to adjust: if you want more trades, lower it to 5. if you’re getting too many weak signals, raise it to 15. this depends on your market—volatile stocks might need a higher threshold to filter noise.
VEI (Velocity Efficiency Index)
VEI measures market efficiency and velocity to filter out choppy moves and focus on strong trends.
vei_eflen = input.int(14, "VEI Efficiency Smoothing") this sets the EMA period for smoothing VEI’s efficiency calc (bar range / volume, default 14 bars).
how it works: efficiency is how much price moves per unit of volume. smoothing it with an EMA reduces noise, focusing on consistent efficiency. a longer period smooths more but adds lag.
how to adjust: for choppy markets, increase to 20 to filter out noise. for faster markets, drop to 10 for quicker signals. this should match your timeframe—shorter timeframes might need a shorter period.
vei_momlen = input.int(8, "VEI Momentum Length") this sets how many bars back VEI looks to calculate momentum in efficiency (default 8 bars).
how it works: it measures the change in smoothed efficiency over 8 bars, then adjusts for inertia (volume-to-range). a longer period captures bigger shifts, while a shorter one reacts faster.
how to adjust: if VEI is missing quick reversals, drop to 5. if it’s too noisy, raise to 12. test on your chart to see what catches the right moves without too many false signals.
vei_threshold = input.float(4.5, "VEI Threshold") this is the cutoff for VEI to vote for a trade (default 4.5). above 4.5, it votes for a long; below -4.5, a short.
how it works: it ensures only strong, efficient moves count. a higher threshold means fewer trades but higher quality.
how to adjust: if you’re not getting enough trades, lower to 3. if you’re seeing too many false entries, raise to 6. this depends on your market—fast stocks like NQ1 might need a lower threshold.
Features
Multi-Signal Voting: requires all three signals (SPR, VWMO, VEI) to align for a trade, ensuring high-probability setups.
Risk Management: uses ATR-based stops (2.1x) and take-profits (4.1x), with dynamic position sizing based on a risk percentage (default 0.4%).
Market Filters: ADX (default 27) ensures trending conditions, choppiness index (default 54.5) avoids sideways markets, and ATR expansion (default 1.12) confirms volatility.
Dashboard: provides real-time stats like SPR, VWMO, VEI values, net P/L, win rate, and streak, with a clean, functional design.
Visuals
EXODUS prioritizes performance over visuals, as it was built for competitive and competition purposes. entry/exit signals are marked with simple labels and shapes, and a basic heatmap highlights market regimes. a more visually stunning update may be released later, with enhanced graphics and overlays.
Usage
EXODUS is designed for stocks and ETFs but can be adapted for futures with adjustments. it performs best in trending markets with sufficient volatility, as confirmed by its generic tuning across symbols like TSLA, AMD, NVDA, and NQ1. adjust inputs like SPR threshold, VWMO smoothing, or VEI momentum length to suit specific assets or timeframes.
Setting I used: (Again, these are a generic setting, each security needs to be fine tuned)
SPR LB = 19 SPR TH = 0.5 SPR ATR L= 21 SPR RTH Sess: 9:30 – 16:00
VWMO L = 21 VWMO LB = 18 VWMO S = 6 VWMO T = 8
VEI ES = 14 VEI ML = 21 VEI T = 4
R % = 0.4
ATR L = 21 ATR M (S) =1.1 TP Multi = 2.1 ATR min mult = 0.8 ATR Expansion = 1.02
ADX L = 21 Min ADX = 25
Choppiness Index = 14 Chop. Max T = 55.5
Backtesting: TSLA
Frame: Jan 02, 2018, 08:00 — May 01, 2025, 09:00
Slippage: 3
Commission .01
Disclaimer
this strategy is for educational purposes. past performance is not indicative of future results. trading involves significant risk, and you should only trade with capital you can afford to lose. always backtest and validate any strategy before using it in live markets.
(This publishing will most likely be taken down do to some miscellaneous rule about properly displaying charting symbols, or whatever. Once I've identified what part of the publishing they want to pick on, I'll adjust and repost.)
About the Author
Dskyz (DAFE) Trading Systems is dedicated to building high-performance trading algorithms. EXODUS is a product of rigorous research and development, aimed at delivering consistent, and data-driven trading solutions.
Use it with discipline. Use it with clarity. Trade smarter.
**I will continue to release incredible strategies and indicators until I turn this into a brand or until someone offers me a contract.
2025 Created by Dskyz, powered by DAFE Trading Systems. Trade smart, trade bold.
Cerca negli script per "初中数学动点最值问题19大模型+例题详解"
Hippo Battlefield - Bulls VS Bears 20 bars## Hippo Battlefield – Bulls VS Bears (20 Bars)
**What it is**
A multi-dimensional momentum-and-sentiment oscillator that combines classic Bull/Bear Power with ATR- or peak-normalization, then layers on RSI and MACD-derived metrics into:
1. **A colored bar series** showing net Bull+Bear Power strength over the last 20 bars,
2. **A dynamic table** of each of those 20 BBP values (grouped into four 5-bar “quartals”), with symbols, per-bar change, and rolling averages, and
3. **A composite “Weighted BBP” histogram** blending normalized RSI, MACD, and BBP into a single view.
---
### Key Inputs
- **Length (EMA)** – look-back for the underlying EMA (default 60)
- **Normalization Length** – look-back window for peak-normalization (default 60)
- **Use ATR for Norm.** – toggle ATR-based normalization vs. highest-abs(BBP)
- **Show Tables** – toggle the bottom-right 21×11 grid of raw and average BBP values
---
### What You See
#### 1. Colored Bars (Overlay = false)
- Bars are colored by normalized BBP intensity:
- Extreme Bull (≥+10): deep blue
- Strong Bull (+5 to +10): green/yellow
- Weak Bull (+0 to +5): dark green
- Weak Bear (–0 to –5): dark red
- Strong Bear (–5 to –10): pink/red
- Extreme Bear (<–10): magenta
#### 2. Bottom-Right Table (20 Bars of Data)
- Divided into four columns (0–4, 5–9, 10–14, 15–19 bars ago) and one “average” row.
- Each cell shows:
1. Bar index (1–20),
2. Normalized BBP value (to four decimals),
3. Direction symbol (↑/↓/=),
4. Bar-to-bar change (± value),
5. A separator “|”.
- At the very bottom, each column’s 5-bar average is displayed as “Avg: X.XXXX” with a dot marker.
#### 3. Top-Center Mini-Table
- When ≥20 bars have elapsed, shows the date at 20 bars ago and the average BBP across the full 20-bar window.
#### 4. Normalized RSI Line
- Rescales the classic 14-period RSI into a –20…+20 band to align with BBP.
#### 5. MACD Lines (Hidden) & Composite Histogram
- MACD and signal lines are calculated but not plotted by default.
- A “Weighted BBP” histogram combines:
- 20% normalized RSI,
- 20% average of (MACD + signal + normalized BBP),
- 60% normalized BBP
- Plotted as columns, color-coded by strength using the same palette as the main bars.
#### 6. Middle Reference Line
- A horizontal zero line to anchor over/under-zero readings.
---
### How to Use It
- **Trend confirmation**: Strong blue/green bars alongside a rising histogram suggest bull conviction; strong reds/magentas signal bear dominance.
- **Divergence spotting**: Watch for price making new highs/lows while BBP or the histogram fails to follow.
- **Quartal analysis**: The 5-bar group averages can reveal whether recent momentum is accelerating or waning.
- **Cross-indicator weighting**: Because RSI, MACD, and raw BBP all feed into the final histogram, you get a smoothed, blended view of momentum shifts.
---
**Tip:** Tweak the EMA and normalization length to suit your preferred timeframe (e.g. shorter for intraday scalps, longer for swing trades). Enable/disable the table if you prefer a cleaner pane.
TCloud Future📘 Tcloud Future – Indicator Description & How to Use
Tcloud Future is a trend-based indicator that creates a forward-projected cloud between:
A customizable Exponential Moving Average (EMA)
A dynamic McGinley Moving Average
The cloud is shifted into the future (like the Ichimoku Cloud), giving traders a visual projection of potential trend direction.
🔧 Components:
EMA (default: 19-period) – fast-reacting average to short-term price action
McGinley Dynamic (default: 26-period) – smoother, adaptive average that reacts to volatility
Forward Projection (default: 26 candles) – pushes the cloud into the future to help anticipate trend continuation or reversal
Cloud Color
Green when EMA is above McGinley (bullish bias)
Red when EMA is below McGinley (bearish bias)
🟢 How to Trade with Tcloud Future
✅ Trend Confirmation
Use the cloud color and slope to confirm the current trend.
Green cloud sloping up → bullish momentum
Red cloud sloping down → bearish momentum
🟩 Entry Strategy (Trend-Following)
Go long when price is above the green cloud and the cloud is rising.
Go short when price is below the red cloud and the cloud is falling.
🔁 Cloud Crossovers (Trend Shift)
A color change in the projected cloud can signal a potential trend reversal.
Use this as a heads-up to prepare for position changes or tighten stops.
🛡️ Support/Resistance Zones
The cloud often acts as a dynamic support/resistance zone.
During an uptrend, pullbacks to the top or middle of the green cloud can be good entries.
During a downtrend, rallies into the red cloud can offer shorting opportunities.
🧠 Tips
Combine with RSI, MACD, or Volume for confirmation.
Avoid using it alone in sideways markets — it performs best in trending conditions.
Adjust projection and smoothing settings to fit the asset/timeframe you're trading.
RSI Trigger Count (30 Days) - Both SidesRSI Dual Trigger Counter (30 Days)
This indicator tracks both oversold ( crossunder ) and overbought ( crossover ) RSI events on a 30-minute chart, featuring:
Dual-Mode Selector:
Counts either RSI < 30 (oversold) or RSI > 70 (overbought) crossings
Toggle between modes via input menu
30-Day Rolling Count:
Displays total triggers in the last 30 days (e.g., "Times triggered (Oversold) ① 19")
Visual Alerts:
Red triangles ↓ for oversold crossunders
Green triangles ↑ for overbought crossovers
Customizable:
Adjustable RSI length (2-100) and thresholds (1-100)
Works on any timeframe (auto-scales calculations)
Purpose: Identifies frequent reversal signals for both buying dips (oversold) and selling rallies (overbought).
Buffett Indicator with Historical Bubbles (Clean)The Buffett Indicator is a trusted macroeconomic gauge that compares the total US stock market capitalization to the nation’s GDP. Popularized by Warren Buffett, this metric highlights periods of overvaluation and undervaluation in the market.
This tool offers a clean and accurate visualization of the Buffett Indicator, enhanced with historical bubble annotations for key market events:
Dot-com Bubble (2000)
Global Financial Crisis Peak (2007)
COVID-19 Pre-crash Peak (2020)
Post-COVID Bull Market Peak (2021)
Features:
Dynamic Buffett Ratio (%) calculation using Wilshire 5000 Index as the market cap proxy.
Customizable GDP input for accuracy (update quarterly).
Visual thresholds for fair value, undervaluation, and overvaluation zones.
Historical event markers for educational and analytical context.
Optimized to display clearly across all timeframes: Daily, Weekly, Monthly.
How to Use:
Manually update the GDP input as new data is released.
Use this indicator for macro-level market sentiment analysis and valuation tracking.
Combine with other tools and risk management strategies for comprehensive market insights.
Disclaimer:
This indicator is for educational purposes only. It does not constitute financial advice. Always perform your own research and analysis.
Version: 1.0
we ask Allah reconcile and repay
#BuffettIndicator #MarketValuation #MacroAnalysis #BubbleDetector #LongTermInvestor #USMarket #Wilshire5000 #TradingViewScript
BIN Based Support and Resistance [SS]This indicator presents a version of an alternative way to determine support and resistance, using a method called "Bins".
Bins provide for a flexible and interesting way to determine support and resistance levels.
First off, let's discuss BINS:
Bins are ranges or containers into which your data points can be sorted. For example, if you're grouping ages, you might have bins like 0–18, 19–35, 36–50, and 51+. Any data point within these intervals gets placed in the corresponding bin.
Binning simplifies complex data sets by grouping values into categories. This is useful for such things as
Visualizing data in histograms or bar charts.
Reducing noise and highlighting trends.
This indicator groups the price action into 10 separate bins. It determines the Support / Resistance level by averaging the values in the Bins to find an iteration of the "central tendency" or average reoccurring value.
Pros and Cons
Since this is a different approach to support and resistance, I think its important to highlight some of the pros and advantages, but also be open about the cons.
First off the PROS
Bin Based Support and Resistance Levels dynamically adjust to ranges as opposed to hard / fast peaks and valleys. This makes them better at analyzing price action vs simply drawing lines at random peaks and valleys.
Because Bins are analyzing ALL PA within a period's max and min range, Bin Support and Resistance can actually be used similar to Volume profile, where you are able to identify a pseudo-POC, or areas where price tends to consolidate. Take a look at this example on SPY:
You can see these 2 SR lines are close together. This represents that this general price range is an area where price likes to accumulate/consolidate. You can see the SPY ended up coming back to this range and consolidating there for a bit.
This is a strength of using a BIN based approach to calculating support and resistance, because as indicated before, it looks at price action vs peaks and valleys.
As a tip, these areas are areas you want to wait for a break in one direction or the other.
The indicator provides for backtest results of the support and resistance lines, to see how many times certain areas acted as resistance or support. Because this is analyzing and distributing PA evenly throughout the period's max and min, the indicator can tell you which areas tend to have higher rejection zones and which have higher support zones.
Now the CONS
Because bin based SR take an average approach, the SR lines can sometimes be slightly broken before the ticker finds rejection:
To combat this, make sure there is confirmed support. How the indicator actually backtests these lines is by waiting to see if the ticker has 3 consecutive closes above the support line or below the resistance line. So these are things to be mindful of.
It doesn't consider pivots. Most support and resistance indicators either identify max and min peaks and valleys or use pivot points. Pivot points are a great way to identify peaks and valleys and thus by extension support and resistance. However, this is also somewhat of a strength, as using BINS forces the indicator to consider ALL price action and not just the extremes (highs and lows).
Can be slightly skewed in highly volatile environments. Any time there is a massive drop or rally, it can skew the indicator to give extreme ranges to both ends. For example, the Tariff news collapse on ES1!:
Owning to limitations in lookback length, sometimes the min and max range can be exceeded and other traditional areas of support / resistance is where a ticker will find support.
Using the indicator
Here are some basic use/functionalities of the indicator:
Selecting display of backtest results: You can select to have the backtest results shown in a table:
Or directly on the lines:
Inversely, you can toggle them off completely:
You can modify the lookback length. The suggested lookback length is between 250 to 500 candles on smaller timeframes. I also suggest 252 on daily timeframes (which represents 1 trading year).
And that's the indicator!
It is very easy to use, so you should pick it up in no time!
Enjoy and as always, 🚀🚀 safe trades! 🚀🚀
First EMA Touch (Last N Bars)Okay, here's a description of the "First EMA Touch (Last N Bars)" TradingView indicator:
Indicator Name: First EMA Touch (Last N Bars)
Core Purpose:
This indicator is designed to visually highlight on the chart the exact moment when the price (specifically, the high/low range of a price bar) makes contact with a specified Exponential Moving Average (EMA) for the first time within a defined recent lookback period (e.g., the last 20 bars).
How it Works:
EMA Calculation: It first calculates a standard Exponential Moving Average (EMA) based on the user-defined EMA Length and EMA Source (e.g., close price). This EMA line is plotted on the chart, often serving as a dynamic level of potential support or resistance.
"Touch" Detection: For every price bar, the indicator checks if the bar's range (from its low to its high) overlaps with or crosses the calculated EMA value for that bar. If low <= EMA <= high, it's considered a "touch".
"First Touch" Logic: This is the key feature. The indicator looks back over a specified number of preceding bars (defined by the Lookback Period). If a "touch" occurs on the current bar, and no "touch" occurred on any of the bars within that preceding lookback window, then the current touch is marked as the "first touch".
Visual Signal: When a "first touch" condition is met, the indicator plots a distinct shape (by default, a small green triangle) below the corresponding price bar. This makes it easy to spot these specific events.
Key Components & Settings:
EMA Line: The calculated EMA itself is plotted (typically as an orange line) for visual reference.
First Touch Signal: A shape (e.g., green triangle) appears below bars meeting the "first touch" criteria.
EMA Length (Input): Determines the period used for the EMA calculation. Shorter lengths make the EMA more reactive to recent price changes; longer lengths make it smoother and slower.
Lookback Period (Input): Defines how many bars (including the current one) the indicator checks backwards to determine if the current touch is the first one. A lookback of 20 means it checks if there was a touch in the previous 19 bars before signalling the current one as the first.
EMA Source (Input): Specifies which price point (close, open, high, low, hl2, etc.) is used to calculate the EMA.
Interpretation & Potential Uses:
Identifying Re-tests: The signal highlights when price returns to test the EMA after having stayed away from it for the duration of the lookback period. This can be significant as the market re-evaluates the EMA level.
Potential Reversal/Continuation Points: A first touch might indicate:
A potential area where a trend might resume after a pullback (if price bounces off the EMA).
A potential area where a reversal might begin (if price strongly rejects the EMA).
A point of interest if price consolidates around the EMA after the first touch.
Filtering Noise: By focusing only on the first touch within a period, it can help filter out repeated touches that might occur during choppy or consolidating price action around the EMA.
Confluence: Traders might use this signal in conjunction with other forms of analysis (e.g., horizontal support/resistance, trendlines, candlestick patterns, other indicators) to strengthen trade setups.
Limitations:
Lagging: Like all moving averages, the EMA is a lagging indicator.
Not Predictive: The signal indicates a specific past event (the first touch) occurred; it doesn't guarantee a future price movement.
Parameter Dependent: The effectiveness and frequency of signals heavily depend on the chosen EMA Length and Lookback Period. These may need tuning for different assets and timeframes.
Requires Confirmation: It's generally recommended to use this indicator as part of a broader trading strategy and not rely solely on its signals for trade decisions.
In essence, the "First EMA Touch (Last N Bars)" indicator provides a specific, refined signal related to price interaction with a moving average, helping traders focus on potentially significant initial tests of the EMA after a period of separation.
Market Crashes & Recessions (1907-Present)Included Recession Periods:
Panic of 1907 (1907–1908)
Post-WWI Recession (1918–1919)
Great Depression (1929–1933)
1937–1938 Recession
1953, 1957, & 1973 Oil Crises Recessions
Early 1980s Recession (1980–1982)
Early 1990s Recession (1990–1991)
Dot-com Bubble (2000–2002)
Global Financial Crisis (2007–2009)
COVID-19 Recession (2020)
2022 Market Correction
Blood MoonsBlood Moon Dates
Description:
This indicator overlays vertical lines on your chart to mark the dates of total lunar eclipses (commonly known as "Blood Moons") from December 2010 to May 2040. Designed with cryptocurrency traders in mind, it’s perfect for analyzing potential correlations between these celestial events and price movements. The lines are drawn on the first bar and extend across the chart, making it easy to spot these dates on any timeframe.
Features:
Plots vertical lines for 19 Blood Moon events (2010–2040).
Customizable line color, style (solid, dotted, dashed), and width.
Option to toggle lines on/off for a cleaner chart.
Lines extend both ways for maximum visibility across your chart.
Settings:
Show Lines: Enable or disable the lines (default: enabled).
Line Color: Choose your preferred color (default: red).
Line Style: Select solid, dotted, or dashed (default: dotted).
Line Width: Adjust thickness from 1 to 5 (default: 2).
Usage:
Add this indicator to your chart to visualize Blood Moon dates alongside price action. Customize the appearance to suit your analysis style. Note: Lines are plotted based on timestamps and extend across the chart, so they’re best viewed on daily or higher timeframes for clarity.
Disclaimer:
This is an educational tool and not financial advice. Past performance does not guarantee future results. Use at your own risk.
Economic Crises by @zeusbottradingEconomic Crises Indicator by @zeusbottrading
Description and Use Case
Overview
The Economic Crises Highlight Indicator is designed to visually mark major economic crises on a TradingView chart by shading these periods in red. It provides a historical context for financial analysis by indicating when major recessions occurred, helping traders and analysts assess the performance of assets before, during, and after these crises.
What This Indicator Shows
This indicator highlights the following major economic crises (from 1953 to 2020), which significantly impacted global markets:
• 1953 Korean War Recession
• 1957 Monetary Tightening Recession
• 1960 Investment Decline Recession
• 1969 Employment Crisis
• 1973 Oil Crisis
• 1980 Inflation Crisis
• 1981 Fed Monetary Policy Recession
• 1990 Oil Crisis and Gulf War Recession
• 2001 Dot-Com Bubble Crash
• 2008 Global Financial Crisis (Great Recession)
• 2020 COVID-19 Recession
Each of these periods is shaded in red with 80% transparency, allowing you to clearly see the impact of economic downturns on various financial assets.
How This Indicator is Useful
This indicator is particularly valuable for:
✅ Comparative Performance Analysis – It allows traders and investors to compare how different assets (e.g., Gold, Silver, S&P 500, Bitcoin) performed before, during, and after major economic crises.
✅ Identifying Market Trends – Helps recognize recurring patterns in asset price movements during times of financial distress.
✅ Risk Management & Strategy Development – Understanding how markets reacted in the past can assist in making better-informed investment decisions for future downturns.
✅ Gold, Silver & Bitcoin as Safe Havens – Comparing precious metals and cryptocurrencies against traditional stocks (e.g., SPY) to analyze their performance as hedges during economic turmoil.
How to Use It in Your Analysis
By overlaying this indicator on your Gold, Silver, SPY, and Bitcoin chart (for example), you can quickly spot historical market reactions and use that insight to predict possible behaviors in future downturns.
⸻
How to Apply This in TradingView?
1. Click on Use on chart under the image.
2. Overlay it with Gold ( OANDA:XAUUSD ), Silver ( OANDA:XAGUSD ), SPY ( AMEX:SPY ), and Bitcoin ( COINBASE:BTCUSD ) for comparative analysis.
⸻
Conclusion
This indicator serves as a powerful historical reference for traders analyzing asset performance during economic downturns. By studying past crises, you can develop a data-driven investment strategy and improve your market insights. 🚀📈
Let me know if you need any modifications or enhancements!
Price AltimeterThis indicator should help visualize the price, inspired by a Digital Altimeter in a Pilots HUD.
It's by default calibrated to Bitcoin, with the small levels showing every $100 and the larger levels setup to display on every $1000. But you can change this to whatever you want by changing the settings for: Small and Large Level Increments.
The default colors are grey, but can be changed to whatever you want, and there are two cause if you want they work as a gradient.
There are options to fade as the values go away from the current price action.
There are options for Forward and Backward Offsets, 0 is the current price and each value represents a candle on whatever time frame your currently on.
Other Options include the Fade Ratio, the Line Width and Style, which are all self explanatory.
Hope you Enjoy!
Backtest it in fast mode to see it in action a little better...
Known Issues:
For some reason it bug's out when either or are displaying more than 19 lines, unsure why so its limited to that for now.
Extra Note on what this may be useful for: I always wanted to make this, but didn't realize how to put things in front of the price action... Offset! Duh! Anyways, I thought of this one because I often it's hard on these charts to really get an idea for absolute price amounts across different time frames, this in an intuitive, at a glance way to see it because the regular price thing on the right always adds values between values when you zoom in and you can sometimes get lost figuring out the proportions of things.
Could also be useful for Scalping?
Classic Nacked Z-Score ArbitrageThe “Classic Naked Z-Score Arbitrage” strategy employs a statistical arbitrage model based on the Z-score of the price spread between two assets. This strategy follows the premise of pair trading, where two correlated assets, typically from the same market sector, are traded against each other to profit from relative price movements (Gatev, Goetzmann, & Rouwenhorst, 2006). The approach involves calculating the Z-score of the price spread between two assets to determine market inefficiencies and capitalize on short-term mispricing.
Methodology
Price Spread Calculation:
The strategy calculates the spread between the two selected assets (Asset A and Asset B), typically from different sectors or asset classes, on a daily timeframe.
Statistical Basis – Z-Score:
The Z-score is used as a measure of how far the current price spread deviates from its historical mean, using the standard deviation for normalization.
Trading Logic:
• Long Position:
A long position is initiated when the Z-score exceeds the predefined threshold (e.g., 2.0), indicating that Asset A is undervalued relative to Asset B. This signals an arbitrage opportunity where the trader buys Asset B and sells Asset A.
• Short Position:
A short position is entered when the Z-score falls below the negative threshold, indicating that Asset A is overvalued relative to Asset B. The strategy involves selling Asset B and buying Asset A.
Theoretical Foundation
This strategy is rooted in mean reversion theory, which posits that asset prices tend to return to their long-term average after temporary deviations. This form of arbitrage is widely used in statistical arbitrage and pair trading techniques, where investors seek to exploit short-term price inefficiencies between two assets that historically maintain a stable price relationship (Avery & Sibley, 2020).
Further, the Z-score is an effective tool for identifying significant deviations from the mean, which can be seen as a signal for the potential reversion of the price spread (Braucher, 2015). By capturing these inefficiencies, traders aim to profit from convergence or divergence between correlated assets.
Practical Application
The strategy aligns with the Financial Algorithmic Trading and Market Liquidity analysis, emphasizing the importance of statistical models and efficient execution (Harris, 2024). By utilizing a simple yet effective risk-reward mechanism based on the Z-score, the strategy contributes to the growing body of research on market liquidity, asset correlation, and algorithmic trading.
The integration of transaction costs and slippage ensures that the strategy accounts for practical trading limitations, helping to refine execution in real market conditions. These factors are vital in modern quantitative finance, where liquidity and execution risk can erode profits (Harris, 2024).
References
• Gatev, E., Goetzmann, W. N., & Rouwenhorst, K. G. (2006). Pairs Trading: Performance of a Relative-Value Arbitrage Rule. The Review of Financial Studies, 19(3), 1317-1343.
• Avery, C., & Sibley, D. (2020). Statistical Arbitrage: The Evolution and Practices of Quantitative Trading. Journal of Quantitative Finance, 18(5), 501-523.
• Braucher, J. (2015). Understanding the Z-Score in Trading. Journal of Financial Markets, 12(4), 225-239.
• Harris, L. (2024). Financial Algorithmic Trading and Market Liquidity: A Comprehensive Analysis. Journal of Financial Engineering, 7(1), 18-34.
StockInfo ManualScript Description:
The StockInfo Manual is designed to display detailed stock information directly on the chart for the selected symbol. It processes user-provided input data, including
stock symbols
Industries
Relative Strength (RS) values
Band information
Key Features:
1. Symbol-Specific Data Display: Displays information only for the current chart symbol.
2. Customizable Table: Adjust the table's position, text size, colors, and headers to match your preferences.
3. Low RS/Band Conditions: Highlights critical metrics (RS < 50 or Band < 6) with a red background for quick visual cues.
4. Toggle Information: Choose to show or hide RS, Band, and Industry columns based on your needs.
How to Use the Script:
1. Use any platform (ex: chartsmaze) to get Industry,RS and Band information of any Stock. Prepare the data as separate column of excel
2. Configure Inputs:
- Stock Symbols (`Stock`): Enter a comma-separated list of stock symbols (e.g.,
NSE:ABDL,
NSE:ABFRL,
NSE:ABREL,
NSE:ABSLAMC,
NSE:ACC,
NSE:ACE,
- Industries (`Industry`): Provide a comma-separated list of industries for the stocks (e.g., 103-Brewerie,
109-Retail-D,
92-Paper & ,
19-Asset Ma,
62-Cement,
58-Industri,
- Relative Strength (`RS`): Input RS values for each stock (e.g.,
83,
52,
51,
81,
23,
59,
- Band Information (`Band`): Specify Band values for each stock. Use "No Band" if 10,
No Band,
20,
20,
No Band,
20,
3. Customize the Table:
-Display Options: Toggle the visibility of `RS`, `Band`, and `Industry` using the input checkboxes.
-Position and Appearance: Choose the table's position on the chart (e.g., top-right, bottom-center). Customize text size, background colors, header display, and other visual elements.
4. Interpret the Table:
- The table will dynamically display information for the current chart symbol only.
- If the `RS` is below 50 or the Band is below 6, the corresponding row is highlighted with a red background for immediate attention.
One need to enter details at least weekly for a correct result
Sunil BB Blast Heikin Ashi StrategySunil BB Blast Heikin Ashi Strategy
The Sunil BB Blast Heikin Ashi Strategy is a trend-following trading strategy that combines Bollinger Bands with Heikin-Ashi candles for precise market entries and exits. It aims to capitalize on price volatility while ensuring controlled risk through dynamic stop-loss and take-profit levels based on a user-defined Risk-to-Reward Ratio (RRR).
Key Features:
Trading Window:
The strategy operates within a user-defined time window (e.g., from 09:20 to 15:00) to align with market hours or other preferred trading sessions.
Trade Direction:
Users can select between Long Only, Short Only, or Long/Short trade directions, allowing flexibility depending on market conditions.
Bollinger Bands:
Bollinger Bands are used to identify potential breakout or breakdown zones. The strategy enters trades when price breaks through the upper or lower Bollinger Band, indicating a possible trend continuation.
Heikin-Ashi Candles:
Heikin-Ashi candles help smooth price action and filter out market noise. The strategy uses these candles to confirm trend direction and improve entry accuracy.
Risk Management (Risk-to-Reward Ratio):
The strategy automatically adjusts the take-profit (TP) level and stop-loss (SL) based on the selected Risk-to-Reward Ratio (RRR). This ensures that trades are risk-managed effectively.
Automated Alerts and Webhooks:
The strategy includes automated alerts for trade entries and exits. Users can set up JSON webhooks for external execution or trading automation.
Active Position Tracking:
The strategy tracks whether there is an active position (long or short) and only exits when price hits the pre-defined SL or TP levels.
Exit Conditions:
The strategy exits positions when either the take-profit (TP) or stop-loss (SL) levels are hit, ensuring risk management is adhered to.
Default Settings:
Trading Window:
09:20-15:00
This setting confines the strategy to the specified hours, ensuring trading only occurs during active market hours.
Strategy Direction:
Default: Long/Short
This allows for both long and short trades depending on market conditions. You can select "Long Only" or "Short Only" if you prefer to trade in one direction.
Bollinger Band Length (bbLength):
Default: 19
Length of the moving average used to calculate the Bollinger Bands.
Bollinger Band Multiplier (bbMultiplier):
Default: 2.0
Multiplier used to calculate the upper and lower bands. A higher multiplier increases the width of the bands, leading to fewer but more significant trades.
Take Profit Multiplier (tpMultiplier):
Default: 2.0
Multiplier used to determine the take-profit level based on the calculated stop-loss. This ensures that the profit target aligns with the selected Risk-to-Reward Ratio.
Risk-to-Reward Ratio (RRR):
Default: 1.0
The ratio used to calculate the take-profit relative to the stop-loss. A higher RRR means larger profit targets.
Trade Automation (JSON Webhooks):
Allows for integration with external systems for automated execution:
Long Entry JSON: Customizable entry condition for long positions.
Long Exit JSON: Customizable exit condition for long positions.
Short Entry JSON: Customizable entry condition for short positions.
Short Exit JSON: Customizable exit condition for short positions.
Entry Logic:
Long Entry:
The strategy enters a long position when:
The Heikin-Ashi candle shows a bullish trend (green close > open).
The price is above the upper Bollinger Band, signaling a breakout.
The previous candle also closed higher than it opened.
Short Entry:
The strategy enters a short position when:
The Heikin-Ashi candle shows a bearish trend (red close < open).
The price is below the lower Bollinger Band, signaling a breakdown.
The previous candle also closed lower than it opened.
Exit Logic:
Take-Profit (TP):
The take-profit level is calculated as a multiple of the distance between the entry price and the stop-loss level, determined by the selected Risk-to-Reward Ratio (RRR).
Stop-Loss (SL):
The stop-loss is placed at the opposite Bollinger Band level (lower for long positions, upper for short positions).
Exit Trigger:
The strategy exits a trade when either the take-profit or stop-loss level is hit.
Plotting and Visuals:
The Heikin-Ashi candles are displayed on the chart, with green candles for uptrends and red candles for downtrends.
Bollinger Bands (upper, lower, and basis) are plotted for visual reference.
Entry points for long and short trades are marked with green and red labels below and above bars, respectively.
Strategy Alerts:
Alerts are triggered when:
A long entry condition is met.
A short entry condition is met.
A trade exits (either via take-profit or stop-loss).
These alerts can be used to trigger notifications or webhook events for automated trading systems.
Notes:
The strategy is designed for use on intraday charts but can be applied to any timeframe.
It is highly customizable, allowing for tailored risk management and trading windows.
The Sunil BB Blast Heikin Ashi Strategy combines two powerful technical analysis tools (Bollinger Bands and Heikin-Ashi candles) with strong risk management, making it suitable for both beginners and experienced traders.
Feebacks are welcome from the users.
Volatility IndicatorThe volatility indicator presented here is based on multiple volatility indices that reflect the market’s expectation of future price fluctuations across different asset classes, including equities, commodities, and currencies. These indices serve as valuable tools for traders and analysts seeking to anticipate potential market movements, as volatility is a key factor influencing asset prices and market dynamics (Bollerslev, 1986).
Volatility, defined as the magnitude of price changes, is often regarded as a measure of market uncertainty or risk. Financial markets exhibit periods of heightened volatility that may precede significant price movements, whether upward or downward (Christoffersen, 1998). The indicator presented in this script tracks several key volatility indices, including the VIX (S&P 500), GVZ (Gold), OVX (Crude Oil), and others, to help identify periods of increased uncertainty that could signal potential market turning points.
Volatility Indices and Their Relevance
Volatility indices like the VIX are considered “fear gauges” as they reflect the market’s expectation of future volatility derived from the pricing of options. A rising VIX typically signals increasing investor uncertainty and fear, which often precedes market corrections or significant price movements. In contrast, a falling VIX may suggest complacency or confidence in continued market stability (Whaley, 2000).
The other volatility indices incorporated in the indicator script, such as the GVZ (Gold Volatility Index) and OVX (Oil Volatility Index), capture the market’s perception of volatility in specific asset classes. For instance, GVZ reflects market expectations for volatility in the gold market, which can be influenced by factors such as geopolitical instability, inflation expectations, and changes in investor sentiment toward safe-haven assets. Similarly, OVX tracks the implied volatility of crude oil options, which is a crucial factor for predicting price movements in energy markets, often driven by geopolitical events, OPEC decisions, and supply-demand imbalances (Pindyck, 2004).
Using the Indicator to Identify Market Movements
The volatility indicator alerts traders when specific volatility indices exceed a defined threshold, which may signal a change in market sentiment or an upcoming price movement. These thresholds, set by the user, are typically based on historical levels of volatility that have preceded significant market changes. When a volatility index exceeds this threshold, it suggests that market participants expect greater uncertainty, which often correlates with increased price volatility and the possibility of a trend reversal.
For example, if the VIX exceeds a pre-determined level (e.g., 30), it could indicate that investors are anticipating heightened volatility in the equity markets, potentially signaling a downturn or correction in the broader market. On the other hand, if the OVX rises significantly, it could point to an upcoming sharp movement in crude oil prices, driven by changing market expectations about supply, demand, or geopolitical risks (Geman, 2005).
Practical Application
To effectively use this volatility indicator in market analysis, traders should monitor the alert signals generated when any of the volatility indices surpass their thresholds. This can be used to identify periods of market uncertainty or potential market turning points across different sectors, including equities, commodities, and currencies. The indicator can help traders prepare for increased price movements, adjust their risk management strategies, or even take advantage of anticipated price swings through options trading or volatility-based strategies (Black & Scholes, 1973).
Traders may also use this indicator in conjunction with other technical analysis tools to validate the potential for significant market movements. For example, if the VIX exceeds its threshold and the market is simultaneously approaching a critical technical support or resistance level, the trader might consider entering a position that capitalizes on the anticipated price breakout or reversal.
Conclusion
This volatility indicator is a robust tool for identifying market conditions that are conducive to significant price movements. By tracking the behavior of key volatility indices, traders can gain insights into the market’s expectations of future price fluctuations, enabling them to make more informed decisions regarding market entries and exits. Understanding and monitoring volatility can be particularly valuable during times of heightened uncertainty, as changes in volatility often precede substantial shifts in market direction (French et al., 1987).
References
• Bollerslev, T. (1986). Generalized Autoregressive Conditional Heteroskedasticity. Journal of Econometrics, 31(3), 307-327.
• Christoffersen, P. F. (1998). Evaluating Interval Forecasts. International Economic Review, 39(4), 841-862.
• Whaley, R. E. (2000). Derivatives on Market Volatility. Journal of Derivatives, 7(4), 71-82.
• Pindyck, R. S. (2004). Volatility and the Pricing of Commodity Derivatives. Journal of Futures Markets, 24(11), 973-987.
• Geman, H. (2005). Commodities and Commodity Derivatives: Modeling and Pricing for Agriculturals, Metals and Energy. John Wiley & Sons.
• Black, F., & Scholes, M. (1973). The Pricing of Options and Corporate Liabilities. Journal of Political Economy, 81(3), 637-654.
• French, K. R., Schwert, G. W., & Stambaugh, R. F. (1987). Expected Stock Returns and Volatility. Journal of Financial Economics, 19(1), 3-29.
Uptrick: Volatility Reversion BandsUptrick: Volatility Reversion Bands is an indicator designed to help traders identify potential reversal points in the market by combining volatility and momentum analysis within one comprehensive framework. It calculates dynamic bands around a simple moving average and issues signals when price interacts with these bands. Below is a fully expanded description, structured in multiple sections, detailing originality, usefulness, uniqueness, and the purpose behind blending standard deviation-based and ATR-based concepts. All references to code have been removed to focus on the written explanation only.
Section 1: Overview
Uptrick: Volatility Reversion Bands centers on a moving average around which various bands are constructed. These bands respond to changes in price volatility and can help gauge potential overbought or oversold conditions. Signals occur when the price moves beyond certain thresholds, which may imply a reversal or significant momentum shift.
Section 2: Originality, Usefulness, Uniqness, Purpose
This indicator merges two distinct volatility measurements—Bollinger Bands and ATR—into one cohesive system. Bollinger Bands use standard deviation around a moving average, offering a baseline for what is statistically “normal” price movement relative to a recent mean. When price hovers near the upper band, it may indicate overbought conditions, whereas price near the lower band suggests oversold conditions. This straightforward construction often proves invaluable in moderate-volatility settings, as it pinpoints likely turning points and gauges a market’s typical trading range.
Yet Bollinger Bands alone can falter in conditions marked by abrupt volatility spikes or sudden gaps that deviate from recent norms. Intraday news, earnings releases, or macroeconomic data can alter market behavior so swiftly that standard-deviation bands do not keep pace. This is where ATR (Average True Range) adds an important layer. ATR tracks recent highs, lows, and potential gaps to produce a dynamic gauge of how much price is truly moving from bar to bar. In quieter times, ATR contracts, reflecting subdued market activity. In fast-moving markets, ATR expands, exposing heightened volatility on each new bar.
By overlaying Bollinger Bands and ATR-based calculations, the indicator achieves a broader situational awareness. Bollinger Bands excel at highlighting relative overbought or oversold areas tied to an established average. ATR simultaneously scales up or down based on real-time market swings, signaling whether conditions are calm or turbulent. When combined, this means a price that barely crosses the Bollinger Band but also triggers a high ATR-based threshold is likely experiencing a volatility surge that goes beyond typical market fluctuations. Conversely, a price breach of a Bollinger Band when ATR remains low may still warrant attention, but not necessarily the same urgency as in a high-volatility regime.
The resulting synergy offers balanced, context-rich signals. In a strong trend, the ATR layer helps confirm whether an apparent price breakout really has momentum or if it is just a temporary spike. In a range-bound market, standard deviation-based Bollinger Bands define normal price extremes, while ATR-based extensions highlight whether a breakout attempt has genuine force behind it. Traders gain clarity on when a move is both statistically unusual and accompanied by real volatility expansion, thus carrying a higher probability of a directional follow-through or eventual reversion.
Practical advantages emerge across timeframes. Scalpers in fast-paced markets appreciate how ATR-based thresholds update rapidly, revealing if a sudden price push is routine or exceptional. Swing traders can rely on both indicators to filter out false signals in stable conditions or identify truly notable moves. By calibrating to changes in volatility, the merged system adapts naturally whether the market is trending, ranging, or transitioning between these phases.
In summary, combining Bollinger Bands (for a static sense of standard-deviation-based overbought/oversold zones) with ATR (for a dynamic read on current volatility) yields an adaptive, intuitive indicator. Traders can better distinguish fleeting noise from meaningful expansions, enabling more informed entries, exits, and risk management. Instead of relying on a single yardstick for all market conditions, this fusion provides a layered perspective, encouraging traders to interpret price moves in the broader context of changing volatility.
Section 3: Why Bollinger Bands and ATR are combined
Bollinger Bands provide a static snapshot of volatility by computing a standard deviation range above and below a central average. ATR, on the other hand, adapts in real time to expansions or contractions in market volatility. When combined, these measures offset each other’s limitations: Bollinger Bands add structure (overbought and oversold references), and ATR ensures responsiveness to rapid price shifts. This synergy helps reduce noisy signals, particularly during sudden market turbulence or extended consolidations.
Section 4: User Inputs
Traders can adjust several parameters to suit their preferences and strategies. These typically include:
1. Lookback length for calculating the moving average and standard deviation.
2. Multipliers to control the width of Bollinger Bands.
3. An ATR multiplier to set the distance for additional reversal bands.
4. An option to display weaker signals when the price merely approaches but does not cross the outer bands.
Section 5: Main Calculations
At the core of this indicator are four important steps:
1. Calculate a basis using a simple moving average.
2. Derive Bollinger Bands by adding and subtracting a product of the standard deviation and a user-defined multiplier.
3. Compute ATR over the same lookback period and multiply it by the selected factor.
4. Combine ATR-based distance with the Bollinger Bands to set the outer reversal bands, which serve as stronger signal thresholds.
Section 6: Signal Generation
The script interprets meaningful reversal points when the price:
1. Crosses below the lower outer band, potentially highlighting oversold conditions where a bullish reversal may occur.
2. Crosses above the upper outer band, potentially indicating overbought conditions where a bearish reversal may develop.
Section 7: Visualization
The indicator provides visual clarity through labeled signals and color-coded references:
1. Distinct colors for upper and lower reversal bands.
2. Markers that appear above or below bars to denote possible buying or selling signals.
3. A gradient bar color scheme indicating a bar’s position between the lower and upper bands, helping traders quickly see if the price is near either extreme.
Section 8: Weak Signals (Optional)
For those preferring early cues, the script can highlight areas where the price nears the outer bands. When weak signals are enabled:
1. Bars closer to the upper reversal zone receive a subtle marker suggesting a less robust, yet still noteworthy, potential selling area.
2. Bars closer to the lower reversal zone receive a subtle marker suggesting a less robust, yet still noteworthy, potential buying area.
Section 9: Simplicity, Effectiveness, and Lower Timeframes
Although combining standard deviation and ATR involves sophisticated volatility concepts, this indicator is visually straightforward. Reversal bands and gradient-colored bars make it easy to see at a glance when price approaches or crosses a threshold. Day traders operating on lower timeframes benefit from such clarity because it helps filter out minor fluctuations and focus on more meaningful signals.
Section 10: Adaptability across Market Phases
Because both the standard deviation (for Bollinger Bands) and ATR adapt to changing volatility, the indicator naturally adjusts to various environments:
1. Trending: The additional ATR-based outer bands help distinguish between temporary pullbacks and deeper reversals.
2. Ranging: Bollinger Bands often remain narrower, identifying smaller reversals, while the outer ATR bands remain relatively close to the main bands.
Section 11: Reduced Noise in High-Volatility Scenarios
By factoring ATR into the band calculations, the script widens or narrows the thresholds during rapid market fluctuations. This reduces the amount of false triggers typically found in indicators that rely solely on fixed calculations, preventing overreactions to abrupt but short-lived price spikes.
Section 12: Incorporation with Other Technical Tools
Many traders combine this indicator with oscillators such as RSI, MACD, or Stochastic, as well as volume metrics. Overbought or oversold signals in momentum oscillators can provide additional confirmation when price reaches the outer bands, while volume spikes may reinforce the significance of a breakout or potential reversal.
Section 13: Risk Management Considerations
All trading strategies carry risk. This indicator, like any tool, can and does produce losing trades if price unexpectedly reverses again or if broader market conditions shift rapidly. Prudent traders employ protective measures:
1. Stop-loss orders or trailing stops.
2. Position sizing that accounts for market volatility.
3. Diversification across different asset classes when possible.
Section 14: Overbought and Oversold Identification
Standard Bollinger Bands highlight regions where price might be overextended relative to its recent average. The extended ATR-based reversal bands serve as secondary lines of defense, identifying moments when price truly stretches beyond typical volatility bounds.
Section 15: Parameter Customization for Different Needs
Users can tailor the script to their unique preferences:
1. Shorter lookback settings yield faster signals but risk more noise.
2. Higher multipliers spread the bands further apart, filtering out small moves but generating fewer signals.
3. Longer lookback periods smooth out market noise, often leading to more stable but less frequent trading cues.
Section 16: Examples of Different Trading Styles
1. Day Traders: Often reduce the length to capture quick price swings.
2. Swing Traders: May use moderate lengths such as 20 to 50 bars.
3. Position Traders: Might opt for significantly longer settings to detect macro-level reversals.
Section 17: Performance Limitations and Reality Check
No technical indicator is free from false signals. Sudden fundamental news events, extreme sentiment changes, or low-liquidity conditions can render signals less reliable. Backtesting and forward-testing remain essential steps to gauge whether the indicator aligns well with a trader’s timeframe, risk tolerance, and instrument of choice.
Section 18: Merging Volatility and Momentum
A critical uniqueness of this indicator lies in how it merges Bollinger Bands (standard deviation-based) with ATR (pure volatility measure). Bollinger Bands provide a relative measure of price extremes, while ATR dynamically reacts to market expansions and contractions. Together, they offer an enhanced perspective on potential market turns, ideally reducing random noise and highlighting moments where price has traveled beyond typical bounds.
Section 19: Purpose of this Merger
The fundamental purpose behind blending standard deviation measures with real-time volatility data is to accommodate different market behaviors. Static standard deviation alone can underreact or overreact in abnormally volatile conditions. ATR alone lacks a baseline reference to normality. By merging them, the indicator aims to provide:
1. A versatile dynamic range for both typical and extreme moves.
2. A filter against frequent whipsaws, especially in choppy environments.
3. A visual framework that novices and experts can interpret rapidly.
Section 20: Summary and Practical Tips
Uptrick: Volatility Reversion Bands offers a powerful tool for traders looking to combine volatility-based signals with momentum-derived reversals. It emphasizes clarity through color-coded bars, defined reversal zones, and optional weak signal markers. While potentially useful across all major timeframes, it demands ongoing risk management, realistic expectations, and careful study of how signals behave under different market conditions. No indicator serves as a crystal ball, so integrating this script into an overall strategy—possibly alongside volume data, fundamentals, or momentum oscillators—often yields the best results.
Disclaimer and Educational Use
This script is intended for educational and informational purposes. It does not constitute financial advice, nor does it guarantee trading success. Sudden economic events, low-liquidity times, and unexpected market behaviors can all undermine technical signals. Traders should use proper testing procedures (backtesting and forward-testing) and maintain disciplined risk management measures.
Logarithmic Regression AlternativeLogarithmic regression is typically used to model situations where growth or decay accelerates rapidly at first and then slows over time. Bitcoin is a good example.
𝑦 = 𝑎 + 𝑏 * ln(𝑥)
With this logarithmic regression (log reg) formula 𝑦 (price) is calculated with constants 𝑎 and 𝑏, where 𝑥 is the bar_index .
Instead of using the sum of log x/y values, together with the dot product of log x/y and the sum of the square of log x-values, to calculate a and b, I wanted to see if it was possible to calculate a and b differently.
In this script, the log reg is calculated with several different assumed a & b values, after which the log reg level is compared to each Swing. The log reg, where all swings on average are closest to the level, produces the final 𝑎 & 𝑏 values used to display the levels.
🔶 USAGE
The script shows the calculated logarithmic regression value from historical swings, provided there are enough swings, the price pattern fits the log reg model, and previous swings are close to the calculated Top/Bottom levels.
When the price approaches one of the calculated Top or Bottom levels, these levels could act as potential cycle Top or Bottom.
Since the logarithmic regression depends on swing values, each new value will change the calculation. A well-fitted model could not fit anymore in the future.
Swings are based on Weekly bars. A Top Swing, for example, with Swing setting 30, is the highest value in 60 weeks. Thirty bars at the left and right of the Swing will be lower than the Top Swing. This means that a confirmation is triggered 30 weeks after the Swing. The period will be automatically multiplied by 7 on the daily chart, where 30 becomes 210 bars.
Please note that the goal of this script is not to show swings rapidly; it is meant to show the potential next cycle's Top/Bottom levels.
🔹 Multiple Levels
The script includes the option to display 3 Top/Bottom levels, which uses different values for the swing calculations.
Top: 'high', 'maximum open/close' or 'close'
Bottom: 'low', 'minimum open/close' or 'close'
These levels can be adjusted up/down with a percentage.
Lastly, an "Average" is included for each set, which will only be visible when "AVG" is enabled, together with both Top and Bottom levels.
🔹 Notes
Users have to check the validity of swings; the above example only uses 1 Top Swing for its calculations, making the Top level unreliable.
Here, 1 of the Bottom Swings is pretty far from the bottom level, changing the swing settings can give a more reliable bottom level where all swings are close to that level.
Note the display was set at "Logarithmic", it can just as well be shown as "Regular"
In the example below, the price evolution does not fit the logarithmic regression model, where growth should accelerate rapidly at first and then slows over time.
Please note that this script can only be used on a daily timeframe or higher; using it at a lower timeframe will show a warning. Also, it doesn't work with bar-replay.
🔶 DETAILS
The code gathers data from historical swings. At the last bar, all swings are calculated with different a and b values. The a and b values which results in the smallest difference between all swings and Top/Bottom levels become the final a and b values.
The ranges of a and b are between -20.000 to +20.000, which means a and b will have the values -20.000, -19.999, -19.998, -19.997, -19.996, ... -> +20.000.
As you can imagine, the number of calculations is enormous. Therefore, the calculation is split into parts, first very roughly and then very fine.
The first calculations are done between -20 and +20 (-20, -19, -18, ...), resulting in, for example, 4.
The next set of calculations is performed only around the previous result, in this case between 3 (4-1) and 5 (4+1), resulting in, for example, 3.9. The next set goes even more in detail, for example, between 3.8 (3.9-0.1) and 4.0 (3.9 + 0.1), and so on.
1) -20 -> +20 , then loop with step 1 (result (example): 4 )
2) 4 - 1 -> 4 +1 , then loop with step 0.1 (result (example): 3.9 )
3) 3.9 - 0.1 -> 3.9 +0.1 , then loop with step 0.01 (result (example): 3.93 )
4) 3.93 - 0.01 -> 3.93 +0.01, then loop with step 0.001 (result (example): 3.928)
This ensures complicated calculations with less effort.
These calculations are done at the last bar, where the levels are displayed, which means you can see different results when a new swing is found.
Also, note that this indicator has been developed for a daily (or higher) timeframe chart.
🔶 SETTINGS
Three sets
High/Low
• color setting
• Swing Length settings for 'High' & 'Low'
• % adjustment for 'High' & 'Low'
• AVG: shows average (when both 'High' and 'Low' are enabled)
Max/Min (maximum open/close, minimum open/close)
• color setting
• Swing Length settings for 'Max' & 'Min'
• % adjustment for 'Max' & 'Min'
• AVG: shows average (when both 'Max' and 'Min' are enabled)
Close H/Close L (close Top/Bottom level)
• color setting
• Swing Length settings for 'Close H' & 'Close L'
• % adjustment for 'Close H' & 'Close L'
• AVG: shows average (when both 'Close H' and 'Close L' are enabled)
Show Dashboard, including Top/Bottom levels of the desired source and calculated a and b values.
Show Swings + Dot size
Ensemble Alerts█ OVERVIEW
This indicator creates highly customizable alert conditions and messages by combining several technical conditions into groups , which users can specify directly from the "Settings/Inputs" tab. It offers a flexible framework for building and testing complex alert conditions without requiring code modifications for each adjustment.
█ CONCEPTS
Ensemble analysis
Ensemble analysis is a form of data analysis that combines several "weaker" models to produce a potentially more robust model. In a trading context, one of the most prevalent forms of ensemble analysis is the aggregation (grouping) of several indicators to derive market insights and reinforce trading decisions. With this analysis, traders typically inspect multiple indicators, signaling trade actions when specific conditions or groups of conditions align.
Simplifying ensemble creation
Combining indicators into one or more ensembles can be challenging, especially for users without programming knowledge. It usually involves writing custom scripts to aggregate the indicators and trigger trading alerts based on the confluence of specific conditions. Making such scripts customizable via inputs poses an additional challenge, as it often involves complicated input menus and conditional logic.
This indicator addresses these challenges by providing a simple, flexible input menu where users can easily define alert criteria by listing groups of conditions from various technical indicators in simple text boxes . With this script, you can create complex alert conditions intuitively from the "Settings/Inputs" tab without ever writing or modifying a single line of code. This framework makes advanced alert setups more accessible to non-coders. Additionally, it can help Pine programmers save time and effort when testing various condition combinations.
█ FEATURES
Configurable alert direction
The "Direction" dropdown at the top of the "Settings/Inputs" tab specifies the allowed direction for the alert conditions. There are four possible options:
• Up only : The indicator only evaluates upward conditions.
• Down only : The indicator only evaluates downward conditions.
• Up and down (default): The indicator evaluates upward and downward conditions, creating alert triggers for both.
• Alternating : The indicator prevents alert triggers for consecutive conditions in the same direction. An upward condition must be the first occurrence after a downward condition to trigger an alert, and vice versa for downward conditions.
Flexible condition groups
This script features six text inputs where users can define distinct condition groups (ensembles) for their alerts. An alert trigger occurs if all the conditions in at least one group occur.
Each input accepts a comma-separated list of numbers with optional spaces (e.g., "1, 4, 8"). Each listed number, from 1 to 35, corresponds to a specific individual condition. Below are the conditions that the numbers represent:
1 — RSI above/below threshold
2 — RSI below/above threshold
3 — Stoch above/below threshold
4 — Stoch below/above threshold
5 — Stoch K over/under D
6 — Stoch K under/over D
7 — AO above/below threshold
8 — AO below/above threshold
9 — AO rising/falling
10 — AO falling/rising
11 — Supertrend up/down
12 — Supertrend down/up
13 — Close above/below MA
14 — Close below/above MA
15 — Close above/below open
16 — Close below/above open
17 — Close increase/decrease
18 — Close decrease/increase
19 — Close near Donchian top/bottom (Close > (Mid + HH) / 2)
20 — Close near Donchian bottom/top (Close < (Mid + LL) / 2)
21 — New Donchian high/low
22 — New Donchian low/high
23 — Rising volume
24 — Falling volume
25 — Volume above average (Volume > SMA(Volume, 20))
26 — Volume below average (Volume < SMA(Volume, 20))
27 — High body to range ratio (Abs(Close - Open) / (High - Low) > 0.5)
28 — Low body to range ratio (Abs(Close - Open) / (High - Low) < 0.5)
29 — High relative volatility (ATR(7) > ATR(40))
30 — Low relative volatility (ATR(7) < ATR(40))
31 — External condition 1
32 — External condition 2
33 — External condition 3
34 — External condition 4
35 — External condition 5
These constituent conditions fall into three distinct categories:
• Directional pairs : The numbers 1-22 correspond to pairs of opposing upward and downward conditions. For example, if one of the inputs includes "1" in the comma-separated list, that group uses the "RSI above/below threshold" condition pair. In this case, the RSI must be above a high threshold for the group to trigger an upward alert, and the RSI must be below a defined low threshold to trigger a downward alert.
• Non-directional filters : The numbers 23-30 correspond to conditions that do not represent directional information. These conditions act as filters for both upward and downward alerts. Traders often use non-directional conditions to refine trending or mean reversion signals. For instance, if one of the input lists includes "30", that group uses the "Low relative volatility" condition. The group can trigger an upward or downward alert only if the 7-period Average True Range (ATR) is below the 40-period ATR.
• External conditions : The numbers 31-35 correspond to external conditions based on the plots from other indicators on the chart. To set these conditions, use the source inputs in the "External conditions" section near the bottom of the "Settings/Inputs" tab. The external value can represent an upward, downward, or non-directional condition based on the following logic:
▫ Any value above 0 represents an upward condition.
▫ Any value below 0 represents a downward condition.
▫ If the checkbox next to the source input is selected, the condition becomes non-directional . Any group that uses the condition can trigger upward or downward alerts only if the source value is not 0.
To learn more about using plotted values from other indicators, see this article in our Help Center and the Source input section of our Pine Script™ User Manual.
Group markers
Each comma-separated list represents a distinct group , where all the listed conditions must occur to trigger an alert. This script assigns preset markers (names) to each condition group to make the active ensembles easily identifiable in the generated alert messages and labels. The markers assigned to each group use the format "M", where "M" is short for "Marker" and "x" is the group number. The titles of the inputs at the top of the "Settings/Inputs" tab show these markers for convenience.
For upward conditions, the labels and alert messages show group markers with upward triangles (e.g., "M1▲"). For downward conditions, they show markers with downward triangles (e.g., "M1▼").
NOTE: By default, this script populates the "M1" field with a pre-configured list for a mean reversion group ("2,18,24,28"). The other fields are empty. If any "M*" input does not contain a value, the indicator ignores it in the alert calculations.
Custom alert messages
By default, the indicator's alert message text contains the activated markers and their direction as a comma-separated list. Users can override this message for upward or downward alerts with the two text fields at the bottom of the "Settings/Inputs" tab. When the fields are not empty , the alerts use that text instead of the default marker list.
NOTE: This script generates alert triggers, not the alerts themselves. To set up an alert based on this script's conditions, open the "Create Alert" dialog box, then select the "Ensemble Alerts" and "Any alert() function call" options in the "Condition" tabs. See the Alerts FAQ in our Pine Script™ User Manual for more information.
Condition visualization
This script offers organized visualizations of its conditions, allowing users to inspect the behaviors of each condition alongside the specified groups. The key visual features include:
1) Conditional plots
• The indicator plots the history of each individual condition, excluding the external conditions, as circles at different levels. Opposite conditions appear at positive and negative levels with the same absolute value. The plots for each condition show values only on the bars where they occur.
• Each condition's plot is color-coded based on its type. Aqua and orange plots represent opposing directional conditions, and purple plots represent non-directional conditions. The titles of the plots also contain the condition numbers to which they apply.
• The plots in the separate pane can be turned on or off with the "Show plots in pane" checkbox near the top of the "Settings/Inputs" tab. This input only toggles the color-coded circles, which reduces the graphical load. If you deactivate these visuals, you can still inspect each condition from the script's status line and the Data Window.
• As a bonus, the indicator includes "Up alert" and "Down alert" plots in the Data Window, representing the combined upward and downward ensemble alert conditions. These plots are also usable in additional indicator-on-indicator calculations.
2) Dynamic labels
• The indicator draws a label on the main chart pane displaying the activated group markers (e.g., "M1▲") each time an alert condition occurs.
• The labels for upward alerts appear below chart bars. The labels for downward alerts appear above the bars.
NOTE: This indicator can display up to 500 labels because that is the maximum allowed for a single Pine script.
3) Background highlighting
• The indicator can highlight the main chart's background on bars where upward or downward condition groups activate. Use the "Highlight background" inputs in the "Settings/Inputs" tab to enable these highlights and customize their colors.
• Unlike the dynamic labels, these background highlights are available for all chart bars, irrespective of the number of condition occurrences.
█ NOTES
• This script uses Pine Script™ v6, the latest version of TradingView's programming language. See the Release notes and Migration guide to learn what's new in v6 and how to convert your scripts to this version.
• This script imports our new Alerts library, which features functions that provide high-level simplicity for working with complex compound conditions and alerts. We used the library's `compoundAlertMessage()` function in this indicator. It evaluates items from "bool" arrays in groups specified by an array of strings containing comma-separated index lists , returning a tuple of "string" values containing the marker of each activated group.
• The script imports the latest version of the ta library to calculate several technical indicators not included in the built-in `ta.*` namespace, including Double Exponential Moving Average (DEMA), Triple Exponential Moving Average (TEMA), Fractal Adaptive Moving Average (FRAMA), Tilson T3, Awesome Oscillator (AO), Full Stochastic (%K and %D), SuperTrend, and Donchian Channels.
• The script uses the `force_overlay` parameter in the label.new() and bgcolor() calls to display the drawings and background colors in the main chart pane.
• The plots and hlines use the available `display.*` constants to determine whether the visuals appear in the separate pane.
Look first. Then leap.
Session Highs and Lows IndicatorThis indicator marks the high and low levels for key trading sessions, allowing traders to identify significant price zones across different markets. The default session times are defined in UTC and will automatically adjust to your local timezone:
- **London Session (07:00-09:00 UTC)**: Tracks intraday liquidity zones for potential highs/lows.
- **New York Session (12:00-14:00 UTC)**: Highlights volatility during market overlaps with Europe.
- **Asia Session (23:00-01:00 UTC)**: Confirms trend continuation and retracement opportunities.
- **New York Close Session (19:00-21:00 UTC)**: Focuses on reversals and breakout tests during global transitions.
The script dynamically updates session highs and lows with clear labels and dashed horizontal lines for better visualization. **Time ranges can be adjusted to suit your trading preferences.** This makes the indicator flexible and effective for liquidity hunting, trend trading, and breakout strategies.
Cryptocurrency StrengthMulti-Currency Analysis: Monitor up to 19 different currencies simultaneously, including major pairs like USD, EUR, JPY, and GBP, as well as emerging market currencies such as CNY, INR, and BRL.
Customizable Display: Easily toggle the visibility of each currency and personalize their colors to suit your preferences, allowing for a tailored analysis experience.
Real-Time Strength Measurement: The indicator calculates and displays the relative strength of each currency in real-time, helping you identify potential trends and trading opportunities.
Clear Visual Representation: With color-coded lines and a dynamic legend, the indicator presents complex currency relationships in an easy-to-understand format.
Advantages
Comprehensive Market View: Gain insights into the broader forex market dynamics by analyzing multiple currencies at once.
Trend Identification: Quickly spot strong and weak currencies, aiding in the identification of potential trending pairs.
Divergence Detection: Use the indicator to identify divergences between currency strength and price action, potentially signaling reversals or continuation patterns.
Flexible Time Frames: Apply the indicator across various time frames to align with your trading strategy, from intraday to long-term analysis.
Enhanced Decision Making: Make more informed trading decisions by understanding the relative strength of currencies involved in your trades.
Unique Qualities
TSI-Based Calculations: Utilizes the True Strength Index for a more nuanced and responsive measure of currency strength compared to simple price-based indicators.
Adaptive Legend: The indicator features a dynamic legend that updates automatically based on the selected currencies, ensuring a clutter-free and relevant display.
Emerging Market Inclusion: Unlike many standard currency strength indicators, this tool includes a wide range of emerging market currencies, providing a truly global perspective.
Whether you're a seasoned forex trader or just starting out, this Currency Strength Indicator offers valuable insights that can complement your existing strategy and potentially improve your trading outcomes. Its combination of comprehensive analysis, customization options, and clear visualization makes it an essential tool for navigating the complex world of currency trading.
NASI +The NASI + indicator is an advanced adaptation of the classic McClellan Oscillator, a tool widely used to gauge market breadth. It calculates the McClellan Oscillator by measuring the difference between the 19-day and 39-day EMAs of net advancing issues, which are optionally adjusted to account for the relative strength of advancing vs. declining stocks.
To enhance this analysis, NASI + applies the Relative Strength Index (RSI) to the cumulative McClellan Oscillator values, generating a unique momentum-based view of market breadth. Additionally, two extra EMAs—a 10-day and a 4-day EMA—are applied to the RSI, providing further refinement to signals for overbought and oversold conditions.
With NASI +, users benefit from:
-A deeper analysis of market momentum through cumulative breadth data.
-Enhanced sensitivity to trend shifts with the applied RSI and dual EMAs.
-Clear visual cues for overbought and oversold conditions, aiding in intuitive signal identification.
Performance Summary and Shading (Offset Version)Modified "Recession and Crisis Shading" Indicator by @haribotagada (Original Link: )
The updated indicator accepts a days offset (positive or negative) to calculate performance between the offset date and the input date.
Potential uses include identifying performance one week after company earnings or an FOMC meeting.
This feature simplifies input by enabling standardized offset dates, while still allowing flexibility to adjust ranges by overriding inputs as needed.
Summary of added features and indicator notes:
Inputs both positive and negative offset.
By default, the script calculates performance from the close of the input date to the close of the date at (input date + offset) for positive offsets, and from the close of (input date - offset) to the close of the input date for negative offsets. For example, with an input date of November 1, 2024, an offset of 7 calculates performance from the close on November 1 to the close on November 8, while an offset of -7 calculates from the close on October 25 to the close on November 1.
Allows user to perform the calculation using the open price on the input date instead of close price
The input format has been modified to allow overrides for the default duration, while retaining the original capabilities of the indicator.
The calculation shows both the average change and the average annualized change. For bar-wise calculations, annualization assumes 252 trading days per year. For date-wise calculations, it assumes 365 days for annualization.
Carries over all previous inputs to retain functionality of the previous script. Changes a few small settings:
Calculates start to end date performance by default instead of peak to trough performance.
Updates visuals of label text to make it easier to read and less transparent.
Changed stat box color scheme to make the text easier to read
Updated default input data to new format of input with offsets
Changed default duration statistic to number of days instead of number of bars with an option to select number of bars.
Potential Features to Add:
Import dataset from CSV files or by plugging into TradingView calendar
Example Input Datasets:
Recessions:
2020-02-01,COVID-19,59
2007-12-01,Subprime mortgages,547
2001-03-01,Dot-com,243
1990-07-01,Oil shock,243
1981-07-01,US unemployment,788
1980-01-01,Volker,182
1973-11-01,OPEC,485
Japan Revolving Door Elections
2006-09-26, Shinzo Abe
2007-09-26, Yasuo Fukuda
2008-09-24, Taro Aso
2009-09-16, Yukio Hatoyama
2010-07-08, Naoto Kan
2011-09-02, Yoshihiko Noda
Hope you find the modified indicator useful and let me know if you would like any features to be added!
CMF and Scaled EFI OverlayCMF and Scaled EFI Overlay Indicator
Overview
The CMF and Scaled EFI Overlay indicator combines the Chaikin Money Flow (CMF) and a scaled version of the Elder Force Index (EFI) into a single chart. This allows traders to analyze both indicators simultaneously, facilitating better insights into market momentum and volume dynamics , specifically focusing on buying/selling pressure and momentum , without compromising the integrity of either indicator.
Purpose
Chaikin Money Flow (CMF): Measures buying and selling pressure by evaluating price and volume over a specified period. It indicates accumulation (buying pressure) when values are positive and distribution (selling pressure) when values are negative.
Elder Force Index (EFI): Combines price changes and volume to assess the momentum behind market moves. Positive values indicate upward momentum (prices rising with strong volume), while negative values indicate downward momentum (prices falling with strong volume).
By scaling the EFI to match the amplitude of the CMF, this indicator enables a direct comparison between pressure and momentum , preserving their shapes and zero crossings. Traders can observe the relationship between price movements, volume, and momentum more effectively, aiding in decision-making.
Understanding Pressure vs. Momentum
Chaikin Money Flow (CMF):
- Indicates the level of demand (buying pressure) or supply (selling pressure) in the market based on volume and price movements.
- Accumulation: When institutional or large investors are buying significant amounts of an asset, leading to an increase in buying pressure.
- Distribution: When these investors are selling off their holdings, increasing selling pressure.
Elder Force Index (EFI):
- Measures the strength and speed of price movements, indicating how forceful the current trend is.
- Positive Momentum: Prices are rising quickly, indicating a strong uptrend.
- Negative Momentum: Prices are falling rapidly, indicating a strong downtrend.
Understanding the difference between pressure and momentum is crucial. For example, a market may exhibit strong buying pressure (positive CMF) but weak momentum (low EFI), suggesting accumulation without significant price movement yet.
Features
Overlay of CMF and Scaled EFI: Both indicators are plotted on the same chart for easy comparison of pressure and momentum dynamics.
Customizable Parameters: Adjust lengths for CMF and EFI calculations and fine-tune the scaling factor for optimal alignment.
Preserved Indicator Integrity: The scaling method preserves the shape and zero crossings of the EFI, ensuring accurate analysis.
How It Works
CMF Calculation:
- Calculates the Money Flow Multiplier (MFM) and Money Flow Volume (MFV) to assess buying and selling pressure.
- CMF is computed by summing the MFV over the specified length and dividing by the sum of volume over the same period:
CMF = (Sum of MFV over n periods) / (Sum of Volume over n periods)
EFI Calculation:
- Calculates the EFI using the Exponential Moving Average (EMA) of the price change multiplied by volume:
EFI = EMA(n, Change in Close * Volume)
Scaling the EFI:
- The EFI is scaled by multiplying it with a user-defined scaling factor to match the CMF's amplitude.
Plotting:
- Both the CMF and the scaled EFI are plotted on the same chart.
- A zero line is included for reference, aiding in identifying crossovers and divergences.
Indicator Settings
Inputs
CMF Length (`cmf_length`):
- Default: 20
- Description: The number of periods over which the CMF is calculated. A higher value smooths the indicator but may delay signals.
EFI Length (`efi_length`):
- Default: 13
- Description: The EMA length for the EFI calculation. Adjusting this value affects the sensitivity of the EFI to price changes.
EFI Scaling Factor (`efi_scaling_factor`):
- Default: 0.000001
- Description: A constant used to scale the EFI to match the CMF's amplitude. Fine-tuning this value ensures the indicators align visually.
How to Adjust the EFI Scaling Factor
Start with the Default Value:
- Begin with the default scaling factor of `0.000001`.
Visual Inspection:
- Observe the plotted indicators. If the EFI appears too large or small compared to the CMF, proceed to adjust the scaling factor.
Fine-Tune the Scaling Factor:
- Increase or decrease the scaling factor incrementally (e.g., `0.000005`, `0.00001`, `0.00005`) until the amplitudes of the CMF and EFI visually align.
- The optimal scaling factor may vary depending on the asset and timeframe.
Verify Alignment:
- Ensure that the scaled EFI preserves the shape and zero crossings of the original EFI.
- Overlay the original EFI (if desired) to confirm alignment.
How to Use the Indicator
Analyze Buying/Selling Pressure and Momentum:
- Positive CMF (>0): Indicates accumulation (buying pressure).
- Negative CMF (<0): Indicates distribution (selling pressure).
- Positive EFI: Indicates positive momentum (prices rising with strong volume).
- Negative EFI: Indicates negative momentum (prices falling with strong volume).
Look for Indicator Alignment:
- Both CMF and EFI Positive:
- Suggests strong bullish conditions with both buying pressure and upward momentum.
- Both CMF and EFI Negative:
- Indicates strong bearish conditions with selling pressure and downward momentum.
Identify Divergences:
- CMF Positive, EFI Negative:
- Buying pressure exists, but momentum is negative; potential for a bullish reversal if momentum shifts.
- CMF Negative, EFI Positive:
- Selling pressure exists despite rising prices; caution advised as it may indicate a potential bearish reversal.
Confirm Signals with Other Analysis:
- Use this indicator in conjunction with other technical analysis tools (e.g., trend lines, support/resistance levels) to confirm trading decisions.
Example Usage
Scenario 1: Bullish Alignment
- CMF Positive: Indicates accumulation (buying pressure).
- EFI Positive and Increasing: Shows strengthening upward momentum.
- Interpretation:
- Strong bullish signal suggesting that buyers are active, and the price is likely to continue rising.
- Action:
- Consider entering a long position or adding to existing ones.
Scenario 2: Bearish Divergence
- CMF Negative: Indicates distribution (selling pressure).
- EFI Positive but Decreasing: Momentum is positive but weakening.
- Interpretation:
- Potential bearish reversal; price may be rising but underlying selling pressure suggests caution.
- Action:
- Be cautious with long positions; consider tightening stop-losses or preparing for a possible trend reversal.
Tips
Adjust for Different Assets:
- The optimal scaling factor may differ across assets due to varying price and volume characteristics.
- Always adjust the scaling factor when analyzing a new asset.
Monitor Indicator Crossovers:
- Crossings above or below the zero line can signal potential trend changes.
Watch for Divergences:
- Divergences between the CMF and EFI can provide early warning signs of trend reversals.
Combine with Other Indicators:
- Enhance your analysis by combining this overlay with other indicators like moving averages, RSI, or Ichimoku Cloud.
Limitations
Scaling Factor Sensitivity:
- An incorrect scaling factor may misalign the indicators, leading to inaccurate interpretations.
- Regular adjustments may be necessary when switching between different assets or timeframes.
Not a Standalone Indicator:
- Should be used as part of a comprehensive trading strategy.
- Always consider other market factors and indicators before making trading decisions.
Disclaimer
No Guarantee of Performance:
- Past performance is not indicative of future results.
- Trading involves risk, and losses can exceed deposits.
Use at Your Own Risk:
- This indicator is provided for educational purposes.
- The author is not responsible for any financial losses incurred while using this indicator.
Code Summary
//@version=5
indicator(title="CMF and Scaled EFI Overlay", shorttitle="CMF & Scaled EFI", overlay=false)
cmf_length = input.int(20, minval=1, title="CMF Length")
efi_length = input.int(13, minval=1, title="EFI Length")
efi_scaling_factor = input.float(0.000001, title="EFI Scaling Factor", minval=0.0, step=0.000001)
// --- CMF Calculation ---
ad = high != low ? ((2 * close - low - high) / (high - low)) * volume : 0
mf = math.sum(ad, cmf_length) / math.sum(volume, cmf_length)
// --- EFI Calculation ---
efi_raw = ta.ema(ta.change(close) * volume, efi_length)
// --- Scale EFI ---
efi_scaled = efi_raw * efi_scaling_factor
// --- Plotting ---
plot(mf, color=color.green, title="CMF", linewidth=2)
plot(efi_scaled, color=color.red, title="EFI (Scaled)", linewidth=2)
hline(0, color=color.gray, title="Zero Line", linestyle=hline.style_dashed)
- Lines 4-6: Define input parameters for CMF length, EFI length, and EFI scaling factor.
- Lines 9-11: Calculate the CMF.
- Lines 14-16: Calculate the EFI.
- Line 19: Scale the EFI by the scaling factor.
- Lines 22-24: Plot the CMF, scaled EFI, and zero line.
Feedback and Support
Suggestions: If you have ideas for improvements or additional features, please share your feedback.
Support: For assistance or questions regarding this indicator, feel free to contact the author through TradingView.
---
By combining the CMF and scaled EFI into a single overlay, this indicator provides a powerful tool for traders to analyze market dynamics more comprehensively. Adjust the parameters to suit your trading style, and always practice sound risk management.