Mansfield Relative Strength (Original Version) by stageanalysisThe Mansfield Relative Strength ( Mansfield RS ) is one of the core components of the Stan Weinstein's Stage Analysis method as discussed in his classic book Stan Weinstein's Secrets for Profiting in Bull and Bear Markets .
The Mansfield RS measures the relative performance of the stock compared to an index such as the S&P 500, or to another stock etc.
However, this should not to be confused with the popular RSI (Relative Strength Index developed J. Welles Wilder), which is a momentum oscillator that measures the speed and change of price movements on a single stock.
The Mansfield RS indicator consists of the Relative Strength comparison line versus the S&P 500 (default universal setting, but can be edited), and the "Zero Line" – which is the 52 week MA of the Relative Strength line, that's been flattened to create the oscillator style.
How to use the Indicator:
Outperforming – Above the Zero Line
When the Relative Strength line crosses above the Zero Line (it's flattened 52 week RS MA), it is outperforming the index or stock that it's comparing against, and so it is showing stronger relative strength.
Underperforming – Below the Zero Line
When the Relative Strength line crosses below the Zero Line (it's flattened 52 week RS MA), it is underperforming the index or stock that it's comparing against, and so it is showing weaker relative strength.
Settings:
When you first add the indicator is has a coloured background, with a green tint for a postive RS score, and a red tint for a negative RS score. However, this can be turned off, or edited in the indicator settings, in the Style tab. So you can change the colors or remove it and just have the RS line and zero line showing. Both of which can also be edited in the settings.
Change the symbol that it compares against. The default is the S&P 500. But for crypto you might want to use Bitcoin for example. Or you might want to compare against competing stocks in the same peer group, or against the industry group or sector. The choice is yours. But the S&P 500 is a universal measure for the Mansfield RS. So I would recommend leaving it on that unless you have a particular reason to change it as mentioned.
MA Length is also an editable setting. This creates the Zero Line. So it will affect the values of the Mansfield RS if you change it. 52 is the default setting, and is set as such for the weekly chart. So I'd recommend not editing it on the weekly chart, but for other timeframes, different settings can be used.
在腳本中搜尋"摩根标普500指数基金的收益如何"
VIX Volatility Trend Analysis With Signals - Stocks OnlyVIX VOLATILITY TREND ANALYSIS CLOUD WITH BULLISH & BEARISH SIGNALS - STOCKS ONLY
This indicator is a visual aid that shows you the bullish or bearish trend of VIX market volatility so you can see the VIX trend without switching charts. When volatility goes up, most stocks go down and vice versa. When the cloud turns green, it is a bullish sign. When the cloud turns red, it is a bearish sign.
This indicator is meant for stocks with a lot of price action and volatility, so for best results, use it on charts that move similar to the S&P 500 or other similar charts.
This indicator uses real time data from the stock market overall, so it should only be used on stocks and will only give a few signals during after hours. It does work ok for crypto, but will not give signals when the US stock market is closed.
**HOW TO USE**
When the VIX Volatility Index trend changes direction, it will give a green or red line on the chart depending on which way the VIX is now trending. The cloud will also change color depending on which way the VIX is trending. Use this to determine overall market volatility and place trades in the direction that the indicator is showing. Do not use this by itself as sometimes markets won’t react perfectly to the overall market volatility. It should only be used as a secondary confirmation in your trading/trend analysis.
For more signals with earlier entries, go into settings and reduce the number. 10-100 is best for scalping. For less signals with later entries, change the number to a higher value. Use 100-500 for swing trades. Can go higher for long swing trades. Our favorite settings are 20, 60, 100, 500 and 1000.
***MARKETS***
This indicator should only be used on the US stock markets as signals are given based on the VIX volatility index which measures volatility of the US Stock Markets.
***TIMEFRAMES***
This indicator works on all time frames, but after hours will not change much at all due to the markets being closed.
**INVERSE CHARTS**
If you are using this on an inverse ETF and the signals are showing backwards, please comment with what chart it is and I will configure the indicator to give the correct signals. I have included over 50 inverse ETFs into the code to show the correct signals on inverse charts, but I'm sure there are some that I have missed so feel free to let me know and I will update the script with the requested tickers.
***TIPS***
Try using numerous indicators of ours on your chart so you can instantly see the bullish or bearish trend of multiple indicators in real time without having to analyze the data. Some of our favorites are our Auto Fibonacci, Directional Movement Index, Volume Profile with buy & sell pressure, Auto Support And Resistance, Vix Scalper and Money Flow Index in combination with this Vix Trend Analysis. They all have real time Bullish and Bearish labels as well so you can immediately understand each indicator's trend.
Tick travel ⍗This script is a further exploration of 'ticks' (only on realtime - live bars), based on my previous script:
- www.tradingview.com -
What are 'ticks'?
... Once the script’s execution reaches the rightmost bar in the dataset, if trading is currently active on the chart’s symbol,
then Pine indicators will execute once every time an update occurs, i.e., price or volume changes ...
(www.tradingview.com)
This script has 2 parts:
1) Option: ' Tick up/down'
This is a further progression of previous work.
During bar development, every time there is an update (tick), a dot is placed.
If for example there is 1 tick (first of new bar), a dot will be placed on 1,
if it is the 8th tick off that bar, there will be a dot placed on 8.
While my previous script had the issue that there was an upper limit per bar (max 32),
this script (because it is working with labels) can place max 500 dots.
For each bar this is better, it has to be mentioned though that looking in history, once the limit of 500 has been reached,
you'll notice the last ones are being deleted. This is one of the reasons the script is not suitable for higher timeframes
(1h and higher, even higher than 5 minutes can give some issues if it is a highly traded ticker), if a bar would have more
than 500 ticks, they won't be drawn anymore (which is not desirable of course)
2) Option: ' Tick progression'
These are the same ticks, but placed on the candle itself, or you can show the candle:
Or 'without' candle (or 'black' colour):
When 'No candles' are enabled, the 'candles' get the colour at the right.
At the moment it is not possible to drawn between 2 candles, this technique uses labels with 'text',
each tick on a candle will have a 'space' added, so you can see a progression to the right.
Colours
- if price is higher than previous tick price -> green
- if price is lower than previous tick price -> red
- otherwise -> blue (dimmed)
There are options to choose the 'dot', when choosing 'custom',
just enter (copy/paste) your symbol of your choice in the 'custom' field:
Caveats:
- Labels and text will not always be exactly on the price itself
- The scripts needs more testings, possibly some ticks don't always get drawn as they should.
The lower the timeframe, the more possible issues can occur
- Since (candle option) the dots move to the right, the higher the timeframe and/or the more ticks,
the sooner ticks will go in the area of next candle.
That's why I made a separate 'start symbol'
-> This is the very first tick on each candle, then you can zoom in/out more easily until the dots don't merge into each other candle area:
A timeframe higher than 5 minutes mostly won't be feasible I believe
This script wouldn't be possible without the help of @LucF, also because of his script
With very much respect I am hugely inspired by him! Many Thanks to him, Tradingview, and everything associated with them!
Cheers!
Auto Support & Resistance From Option Strike Price + PercentagesAUTO SUPPORT AND RESISTANCE FROM OPTIONS STRIKE PRICES WITH PERCENTAGE GAPS
This is an auto support and resistance level indicator that uses options strike prices or psychological numbers as the relevant levels. Set your starting level or strike price and input the options strike price gaps for that ticker and 15 lines in either direction will automatically populate on the chart. It also has a table in the bottom right corner that tells you how far the current price is from the next closest support and resistance levels.
Everything is easily customizable in the indicator input settings including turning the lines on/off, turning the percentage gaps table on/off, setting the options strike price gaps, setting the starting level, setting the position of the percentage gaps table, changing support and resistance line colors all at once and updating the linewidth of all of the support and resistance lines at once.
***HOW TO USE***
First, go into the indicator settings and set the starting level to use. If you are trading SPY and it is near 450, then set your starting level at 450. If you are trading SQQQ and it is near 38, set your starting level to 38. If you are trading crypto, set your levels to the nearest psychological or round number such as 40,000 for BTC or 2,500 for ETH or 16.50 for LINK.
Second, set your options strike price gaps. If you are trading SPY, this will be 2.5. If you are trading SQQQ this number would be 1. If you are trading crypto, try using psychological price levels instead of strike prices, such as 500, 1000 or 5000 for BTC and 100, 250 or 500 for ETH. For small priced cryptos, use decimals such as .25, .50, etc.
Once these inputs are filled in, 15 levels in each direction will automatically populate on the chart for you.
If price is above a level, it will paint green. If price is below a level it will paint red. These colors represent support and resistance visually for you on the chart and will change dynamically as price moves above or below these levels. These colors can be customized in the indicator input settings to change all lines by only updating one color.
There is a table of percentage gap updates that will tell you in real time how far away the price is from the nearest support and resistance lines so you always know your risk to reward ratios. Each label will also be colored the same as the corresponding support or resistance line as a visual aid.
***MARKETS***
This indicator can be used as a signal on all markets, including stocks, crypto, futures and forex.
***TIMEFRAMES***
This support and resistance indicator can be used on all timeframes.
***TIPS***
Try using numerous indicators of ours on your chart so you can instantly see the bullish or bearish trend of multiple indicators in real time without having to analyze the data. Some of our favorites are our Auto Fibonacci, Directional Movement Index, Volume Profile, Momentum and Money Flow Index in combination with this auto support and resistance indicator. They all have real time Bullish and Bearish labels as well so you can immediately understand each indicator's trend.
S&P Sector Advance/Decline Weighted -Tom1traderEnjoy, enhance your trading (I hope), copy or adapt to your needs and keep smiling!
Thanks to @MartinShkreli. The sector variables and the "repaint" option (approx lines 20 through 32 of this script) are used directly from your script "Sectors"
RECOMMENDATION: Update the sector weightings -inputs are provided. They change as often as monthly and the
annual changes are certainly significant. When updating weighting percentages use the decimal value. I.E. 29% is .29
Good on any time frame. Especially SPY, SPX and ES scalpers and 0DTE options traders may like this a lot.
This gives good signals on S & P and related (ES, SPY) and indicates / plots differently than the AD line or ratio.
Each sector's entire % weight is added or subtracted depending of whether that sector advanced or declined.
Example: Information Tech weight at 29% so that % of 500 (145) is added if InfoTech is up a penny and subtracted if it is
down a penny. All sectors processed the same way so that for a given bar/candle the value will be between +500 (all
sectors up) and -500 (all sectors down). This weighted AD line of sectors is scaled to +/- 350 and plotted as a red/green line
along with aqua/fuchsia columns of its 5 period ema. The line is actual sector behavior and the columns seem to make a
good signal with column zero crosses standing out.
The columns aqua / fuchsia are a 5 period ema of the Sector AD line and give pretty good signals at
zero cross for SPX. I colored the AD red green line also to emphasize the times it opposes the ema
for example the histo/colums zero cross signal is NOT true when the AD line is showing all or most sectors
going the other way.
For readability, the AD line itself is scaled to 350. This lets the columns of the ema stand out better. The hlines at
350 and at 175 give an idea for the AD green red line how much of the sector's weight is up or down.
350 is all sectors up (advancing) and -350 is all sectors down (declining). The hlines at +/- 175 seem to outline
a more or less "neutral" zone. For example in an uptrend with most of the AD level positive and the columns positive;
a negative spike that does not pass the -175 line and returns positive does not seem to impact the price as much as
a deeper negative spike.
RS Line - Gauge Performance vs IndexOverview:
This implementation of the RS Line mimics how Investor's Business Daily and CANSLIM investors measure growth stock performance versus the S&P 500.
If you are looking at a weekly chart, the RS Line is the performance of the stock over the past week versus the S&P 500 over that same time frame. The same logic applies to the daily and monthly charts, only the time frames are different.
If a stock moves up for the day/week/month and the S&P 500 does not, the RS Line will move up. If a stock ends the day/week/month flat, yet the S&P 500 moves up, the RS Line will go down.
Usage:
- Look for an upward sloping line.
- The steeper the line, the better.
- Can be used for viewing long-term trend.
Ivan_Long_Term_Cloud_BandThis is a combination of the 200 300 400 and 500 long terms weighted moving average.
The color code reflected the current uptrend or downtrend that the market is in by showing light green when 200 WMA is above the 300 WMA as well as showing darker green when 400 WMA is above the 500 WMA. On the other hand, when the 200 WMA is below the 300 WMA and the 400 beneath the 500, the band would be color-coded as light and deep red respectively to reflect the current level of support and resistance level.
ANN MACD : 25 IN 1 SCRIPTIn this script, I tried to fit deep learning series to 1 command system up to the maximum point.
After selecting the ticker, select the instrument from the menu and the system will automatically turn on the appropriate ann system.
Listed instruments with alternative tickers and error rates:
WTI : West Texas Intermediate (WTICOUSD , USOIL , CL1! ) Average error : 0.007593
BRENT : Brent Crude Oil (BCOUSD , UKOIL , BB1! ) Average error : 0.006591
GOLD : XAUUSD , GOLD , GC1! Average error : 0.012767
SP500 : S&P 500 Index (SPX500USD , SP1!) Average error : 0.011650
EURUSD : Eurodollar (EURUSD , 6E1! , FCEU1!) Average error : 0.005500
ETHUSD : Ethereum (ETHUSD , ETHUSDT ) Average error : 0.009378
BTCUSD : Bitcoin (BTCUSD , BTCUSDT , XBTUSD , BTC1!) Average error : 0.01050
GBPUSD : British Pound (GBPUSD,6B1! , GBP1!) Average error : 0.009999
USDJPY : US Dollar / Japanese Yen (USDJPY , FCUY1!) Average error : 0.009198
USDCHF : US Dollar / Swiss Franc (USDCHF , FCUF1! ) Average error : 0.009999
USDCAD : Us Dollar / Canadian Dollar (USDCAD) Average error : 0.012162
SOYBNUSD : Soybean (SOYBNUSD , ZS1!) Average error : 0.010000
CORNUSD : Corn (ZC1! ) Average error : 0.007574
NATGASUSD : Natural Gas (NATGASUSD , NG1!) Average error : 0.010000
SUGARUSD : Sugar (SUGARUSD , SB1! ) Average error : 0.011081
WHEATUSD : Wheat (WHEATUSD , ZW1!) Average error : 0.009980
XPTUSD : Platinum (XPTUSD , PL1! ) Average error : 0.009964
XU030 : Borsa Istanbul 30 Futures ( XU030 , XU030D1! ) Average error : 0.010727
VIX : S & P 500 Volatility Index (VX1! , VIX ) Average error : 0.009999
YM : E - Mini Dow Futures (YM1! ) Average error : 0.010819
ES : S&P 500 E-Mini Futures (ES1! ) Average error : 0.010709
GAZP : Gazprom Futures (GAZP , GZ1! ) Average error : 0.008442
SSE : Shangai Stock Exchange Composite (Index ) ( 000001 ) Average error : 0.011287
XRPUSD : Ripple (XRPUSD , XRPUSDT ) Average error : 0.009803
Note 1 : Australian Dollar (AUDUSD , AUD1! , FCAU1! ) : Instrument has been removed because it has an average error rate of over 0.13.
The average error rate is 0.1850.
I didn't delete it from the menu just because there was so much request,
You can use.
Note 2 : Friends have too many requests, it took me a week in total and 1 other script that I'll share in 2 days.
Reaching these error rates is a very difficult task, and when I keep at a low learning rate, they are trained for a very long time.
If I don't see the error rate at an average low, I increase the layers and go back into a longer process.
It takes me 45 minutes per instrument to command artificial neural networks, so I'll release one more open source, and then we'll be laying 70-80 percent of the world trade volume with artificial neural networks.
Note 3 :
I would like to thank wroclai for helping me with this script.
This script is subject to MIT License on behalf of both of us.
You can review my original idea scripts from my Github page.
You can use it free but if you are going to modify it, just quote this script .
I hope it will help everyone, after 1-2 days I will share another ann script that I think is of the same importance as this, stay tuned.
Regards , Noldo .
3 EMAS strategy to define trendsBasic script that allows you to have 3 scripts all in one EMA (exponential moving averages). They are useful to know the general trends of your chart: current long-term trend, short-term (or immediately) and general.
1 ° EMA 36 serves to define or mark action of the market trend price.
At the moment of crossing EMA 36 with EMA 200 upwards it indicates continuation to level 2 ...
2 ° EMA 200 serves as support or resistance according to the case, confirms continuation of trend in medium or long term when crossing with EMA 500, upward trend probability level 3 confirmed. As the case may be, cross up or down.
3 ° EMA 500 serves as support or resistance of the price action.
EMAS 200 and 500 give you a probability of Starting Area ...
Confirming with support or resistance.
Complementation with Stochastics ..
MACD
Note: Remember that "exponential" means that these indicators give more weight to the most recent data, making them more reactive to price changes (react faster to changes in recent prices than simple moving averages)
GROWINGS CRYPTOTRADERS
Infinite EMA with Alpha Control♾️ Infinite EMA with Alpha Control
What Makes This EMA "Infinite"?
Unlike traditional EMA indicators that are limited to typical periods (1-5000), this Infinite EMA breaks all boundaries. You can create EMAs with periods of 1,000, 10,000, or even 1,000,000 bars - that's why it's called "infinite"! Also Infinite EMA starts working immediately from the very first bar on your chart
Why This EMA is "Infinite":
1. Mathematically: When N → ∞, alpha → 0, meaning infinitely long "memory"
2. Practically: You can set any period - even 100,000 bars
3. Flexibility: Alpha allows precise control over the "forgetting speed"
How Does It Work?
The magic lies in the Alpha parameter. While regular EMAs use fixed formulas, this indicator gives you direct control over the EMA's "memory" through Alpha values:
• High Alpha (0.1-0.2): Fast reaction, short memory
• Medium Alpha (0.01-0.05): Balanced response
• Low Alpha (0.0001-0.001): Extremely slow reaction, very long memory
• Ultra-low Alpha (0.000001): Almost frozen in time
The Mathematical Formula:
Alpha = 2 / (Period + 1)
This means you can achieve any EMA period by adjusting Alpha, giving you infinite flexibility!
Expanded "Infinite EMA" Table:
Period EMA (N) - Alpha (Rounded) - Alpha (Exact) - Description
10 - 0.1818 - 0.181818... - Fast EMA
20 - 0.0952 - 0.095238... - Short-term
50 - 0.0392 - 0.039215... - Medium-term
100 - 0.0198 - 0.019801... - Long-term
200 - 0.0100 - 0.009950... - Standard long-term
500 - 0.0040 - 0.003996... - Very long-term
1,000 - 0.0020 - 0.001998... - Super long-term
2,000 - 0.0010 - 0.000999... - Ultra long-term
5,000 - 0.0004 - 0.000399... - Mega long-term
10,000 - 0.0002 - 0.000199... - Giga long-term
25,000 - 0.00008 - 0.000079... - Century-scale EMA
50,000 - 0.00004 - 0.000039... - Practically motionless
100,000 - 0.00002 - 0.000019... - "Glacial" EMA
500,000 - 0.000004 - 0.000003... - Geological timescale
1,000,000 - 0.000002 - 0.000001... - Approaching constant
5,000,000 - 0.0000004 - 0.0000003... - Virtually static
10,000,000 - 0.0000002 - 0.0000001... - Nearly flat line
100,000,000 - 0.00000002 - 0.00000001... - Mathematical infinity
Formula: Alpha = 2/(N+1) where N is the EMA period
Key Features:
Dual EMA System: Run fast and slow EMAs simultaneously
Crossover Signals: Automatic buy/sell signals with customizable alerts
Alpha Control: Direct mathematical control over EMA behavior
Infinite Periods: From 1 to 100,000,000+ bars
Visual Customization: Colors, fills, backgrounds, signal sizes
Instant Start: Works accurately from the very first bar
Update Intervals: Control calculation frequency for noise reduction
Why Choose Infinite EMA?
1. Unlimited Flexibility: Any period you can imagine
2. Mathematical Precision: Direct alpha control for exact behavior
3. Professional Grade: Suitable for all trading styles
4. Easy to Use: Simple settings with powerful results
5. No Warm-up Period: Accurate values from bar #1
Simple Explanation:
Think of EMA as a "memory system":
• High Alpha = Short memory (forgets quickly, reacts fast)
• Low Alpha = Long memory (remembers everything, moves slowly)
With Infinite EMA, you can set the "memory length" to anything from seconds to centuries!
⚡ Instant Start Feature - EMA from First Bar
Immediate Calculation from Bar #1
Unlike traditional EMA indicators that require a "warm-up period" of N bars before showing accurate values, Infinite EMA starts working immediately from the very first bar on your chart.
How It Works:
Traditional EMA Problem:
• Standard 200-period EMA: Needs 200+ bars to become accurate
• First 200 bars: Shows incorrect/unstable values
• Result: Large portions of historical data are unusable
Infinite EMA Solution:
Bar #1: EMA = Current Price (perfect starting point)
Bar #2: EMA = Alpha × Price + (1-Alpha) × Previous EMA
Bar #3: EMA = Alpha × Price + (1-Alpha) × Previous EMA
...and so on
Key Benefits:
No Warm-up Period: Start trading signals from day one
Full Chart Coverage: Every bar has a valid EMA value
Historical Accuracy: Backtesting works on entire dataset
New Markets: Works perfectly on newly listed assets
Short Datasets: Effective even with limited historical data
Practical Impact:
Scenario Traditional EMA Infinite EMA
New cryptocurrency Unusable for first 200 days ✅ Works from day 1
Limited data (< 200 bars) Inaccurate values ✅ Fully functional
Backtesting Must skip first 200 bars ✅ Test entire history
Real-time trading Wait for stabilization ✅ Trade immediately
Technical Implementation:
if barstate.isfirst
EMA := currentPrice // Perfect initialization
else
EMA := alpha × currentPrice + (1-alpha) × previousEMA
This smart initialization ensures mathematical accuracy from the very first calculation, eliminating the traditional EMA "ramp-up" problem.
Why This Matters:
For Backesters: Use 100% of available data
For Live Trading: Get signals immediately on any timeframe
For Researchers: Analyze complete datasets without gaps
Bottom Line: Infinite EMA is ready to work the moment you add it to your chart - no waiting, no warm-up, no exceptions!
Unlike traditional EMAs that require a "warm-up period" of 200+ bars before showing accurate values, Infinite EMA starts working immediately from bar #1.
This breakthrough eliminates the common problem where the first portion of your chart shows unreliable EMA data. Whether you're analyzing a newly listed cryptocurrency, working with limited historical data, or backtesting strategies, every single bar provides mathematically accurate EMA values.
No more waiting periods, no more unusable data sections - just instant, reliable trend analysis from the moment you apply the indicator to any chart.
🔄 Update Interval Bars Feature
The Update Interval feature allows you to control how frequently the EMA recalculates, providing flexible noise filtering without changing the core mathematics.
Set to 1 for standard behavior (updates every bar), or increase to 5-10 for smoother signals that update less frequently. Higher intervals reduce market noise and false signals but introduce slightly more lag. This is particularly useful on volatile timeframes where you want the EMA's directional bias without every minor price fluctuation affecting the calculation.
Perfect for swing traders who prefer cleaner, more stable trend lines over hyper-responsive indicators.
Conclusion
The Infinite EMA transforms the traditional EMA from a fixed-period tool into a precision instrument with unlimited flexibility. By understanding the Alpha-Period relationship, traders can create custom EMAs that perfectly match their trading style, timeframe, and market conditions.
The "infinite" nature comes from the ability to set any period imaginable - from ultra-fast 2-bar EMAs to glacially slow 10-million-bar EMAs, all controlled through a single Alpha parameter.
________________________________________
Whether you're a beginner looking for simple trend following or a professional researcher analyzing century-long patterns, Infinite EMA adapts to your needs. The power of infinite periods is now in your hands! 🚀
Go forward to the horizon. When you reach it, a new one will open up.
- J. P. Morgan
Psych Zones – 000/250/500/750 (250-pip bands, 500 emphasis)Market makers Strategy that helps all traders make money overtime
Market Internal Strength (DJI/Nasdaq/S&P)Market Health Dow, Nasdaq & S\&P 500 Breadth
Track the true internal health of the US market's three most important indices the Dow Jones Industrial Average (DJI), the Nasdaq 100 (NDX), and the S\&P 500 (SPX).
Price action alone can be deceiving. A rising index might be driven by only a handful of mega-cap stocks, masking underlying weakness. This indicator provides a crucial look "under the hood" to measure the market's true breadth.
It visualizes the percentage of stocks within each index that are trading above their key moving averages (5, 20, 50, 100, 150, and 200-day). This allows you to instantly gauge whether a market trend is broadly supported by the majority of its constituent stocks.
Key Features
* Covers 3 Major US Indices Seamlessly switch your analysis between the Dow Jones, Nasdaq 100, and S\&P 500.
* Complete Breadth Picture Six MA periods offer a full view, from short-term momentum (5D, 20D) to the long-term institutional trend (150D, 200D).
* Fully Customizable Toggle the visibility of any line and adjust overbought/oversold levels to fit your personal strategy.
How to Use
1. Extreme Readings (Overbought/Oversold)
* Above 80% Signals a very strong, potentially overbought market. Caution is advised as a pullback could be near.
* Below 20% Signals a deeply oversold market, often indicating capitulation and potential buying opportunities.
2. Divergence (Powerful Warning Signal)
* Bearish The index price makes a new high, but this indicator makes a lower high. This warns that the rally is not broad-based and may be losing steam.
* Bullish The index price makes a new low, but this indicator makes a higher low. This suggests internal strength is building and a bottom may be forming.
3. Trend Confirmation
When the long-term lines (150D, 200D) remain high (e.g., \> 50%), the primary market trend is healthy and confirmed.
IFVG by Toño# IFVG by Toño - Pine Script Indicator
## Overview
This Pine Script indicator identifies and visualizes **Fair Value Gaps (FVG)** and **Inverted Fair Value Gaps (IFVG)** on trading charts. It provides advanced analysis of price inefficiencies and their subsequent inversions when mitigated.
## Key Features
### 1. Fair Value Gap (FVG) Detection
- **Bullish FVG**: Detected when `low > high ` (gap between current low and high of 2 bars ago)
- **Bearish FVG**: Detected when `high < low ` (gap between current high and low of 2 bars ago)
- Visual representation using colored rectangles (green for bullish, red for bearish)
### 2. Inverted Fair Value Gap (IFVG) Creation
- **IFVG Formation**: When a FVG gets mitigated (price fills the gap with candle body), an IFVG is created
- **Color Inversion**: The IFVG takes the opposite color of the original FVG
- Mitigated bullish FVG → Creates red (bearish) IFVG
- Mitigated bearish FVG → Creates green (bullish) IFVG
- **Mitigation Logic**: Uses only candle body (not wicks) to determine when a FVG is filled
### 3. Customizable Display Options
- **Show Normal FVG**: Toggle visibility of regular Fair Value Gaps
- **Show IFVG**: Toggle visibility of Inverted Fair Value Gaps
- **Smart FVG Display**: Even when "Show Normal FVG" is disabled, FVGs that are part of IFVGs remain visible
- **Extension Control**: Option to extend FVGs until they are mitigated
### 4. IFVG Extension Methods
- **Full Cross Method**: IFVG remains active until price completely crosses through it (including wicks)
- **Number of Bars Method**: IFVG remains active for a specified number of bars (1-100)
### 5. Visual Mitigation Signals
- **Cross Markers**: Shows X-shaped markers when IFVGs are mitigated
- Green cross above bar: Bearish IFVG mitigated
- Red cross below bar: Bullish IFVG mitigated
### 6. Comprehensive Alert System
- **IFVG Formation Alerts**: Notifications when new IFVGs are created
- **IFVG Mitigation Alerts**: Notifications when IFVGs are filled/mitigated
- **Separate Controls**: Individual toggles for bullish and bearish IFVG alerts
## How It Works
### Step-by-Step Process:
1. **FVG Detection**: Script continuously scans for 3-bar patterns that create price gaps
2. **FVG Tracking**: Each FVG is stored with its coordinates, type, and status
3. **Mitigation Monitoring**: Script watches for candle bodies that fill the FVG
4. **IFVG Creation**: Upon mitigation, creates an IFVG with opposite polarity at the same location
5. **IFVG Management**: Tracks and extends IFVGs according to chosen method
6. **Visual Updates**: Dynamically updates colors and visibility based on user settings
## Use Cases
- **Support/Resistance Analysis**: IFVGs often act as strong support/resistance levels
- **Market Structure Understanding**: Helps identify how market inefficiencies get filled and reversed
- **Entry/Exit Timing**: Can be used to time entries around IFVG formations or mitigations
- **Confluence Analysis**: Combine with other technical analysis tools for stronger signals
## Configuration Parameters
- **Colors**: Customizable colors for bullish/bearish FVGs and IFVGs
- **Extension**: Choose how long to display gaps on the chart
- **Alerts**: Full control over notification preferences
- **Visual Clarity**: Options to show/hide different gap types for cleaner charts
## Technical Specifications
- **Pine Script Version**: 5
- **Overlay**: True (displays directly on price chart)
- **Max Boxes**: 500 (supports up to 500 simultaneous gaps)
- **Performance**: Optimized array management for smooth operation
This indicator is particularly valuable for traders who use **Smart Money Concepts (SMC)** and **Inner Circle Trader (ICT)** methodologies, as it provides clear visualization of how institutional order flow creates and fills market inefficiencies.
Elliott Wave - Impulse + Corrective Detector (Demo) เทคนิคการใช้
สำหรับมือใหม่
ดูเฉพาะ Impulse Wave ก่อน
เทรดตาม direction ของ impulse
ใช้ Fibonacci เป็น support/resistance
สำหรับ Advanced
ใช้ Corrective Wave หาจุด reversal
รวม Triangle กับ breakout strategy
ใช้ Complex correction วางแผนระยะยาว
⚙️ การปรับแต่ง
ถ้าเจอ Pattern น้อยเกินไป
ลด Swing Length เป็น 3-4
เพิ่ม Max History เป็น 500
ถ้าเจอ Pattern เยอะเกินไป
เพิ่ม Swing Length เป็น 8-12
ปิด patterns ที่ไม่ต้องการ
สำหรับ Timeframe ต่างๆ
H1-H4: Swing Length = 5-8
Daily: Swing Length = 3-5
Weekly: Swing Length = 2-3
⚠️ ข้อควรระวัง
Elliott Wave เป็น subjective analysis
ใช้ร่วมกับ indicators อื่นๆ
Backtest ก่อนใช้เงินจริง
Pattern อาจเปลี่ยนได้ตลอดเวลา
🎓 สรุป
โค้ดนี้เป็นเครื่องมือช่วยวิเคราะห์ Elliott Wave ที่:
✅ ใช้งานง่าย
✅ ตรวจจับอัตโนมัติ
✅ มี confidence scoring
✅ แสดงผล Fibonacci levels
✅ ส่ง alerts เรียลไทม์
เหมาะสำหรับ: Trader ที่ต้องการใช้ Elliott Wave ในการวิเคราะห์เทคนิค แต่ไม่มีเวลานั่งหา pattern เอง
💡 Usage Tips
For Beginners
Focus on Impulse Waves first
Trade in the direction of impulse
Use Fibonacci as support/resistance levels
For Advanced Users
Use Corrective Waves to find reversal points
Combine Triangles with breakout strategies
Use Complex corrections for long-term planning
⚙️ Customization
If You See Too Few Patterns
Decrease Swing Length to 3-4
Increase Max History to 500
If You See Too Many Patterns
Increase Swing Length to 8-12
Turn off unwanted pattern types
For Different Timeframes
H1-H4: Swing Length = 5-8
Daily: Swing Length = 3-5
Weekly: Swing Length = 2-3
⚠️ Important Warnings
Elliott Wave is subjective analysis
Use with other technical indicators
Backtest before using real money
Patterns can change at any time
🔧 Troubleshooting
No Patterns Showing
Check if you have enough price history
Adjust Swing Length settings
Make sure pattern detection is enabled
Too Many False Signals
Increase confidence threshold requirements
Use higher timeframes
Combine with trend analysis
Performance Issues
Reduce Max History setting
Turn off unnecessary visual elements
Use on liquid markets only
📈 Trading Applications
Entry Strategies
Wave 3 Entry: After Wave 2 completion (61.8%-78.6% retracement)
Wave 5 Target: Equal to Wave 1 or Fibonacci extensions
Corrective Bounce: Trade reversals at C wave completion
Risk Management
Stop Loss: Beyond pattern invalidation levels
Take Profit: Fibonacci extension targets
Position Sizing: Based on pattern confidence
🎓 Summary
This code is an Elliott Wave analysis tool that offers:
✅ Easy to use interface
✅ Automatic pattern detection
✅ Confidence scoring system
✅ Fibonacci level display
✅ Real-time alerts
Perfect for: Traders who want to use Elliott Wave analysis but don't have time to manually identify patterns.
📚 Quick Reference
Pattern Hierarchy (Most to Least Reliable)
Impulse Waves (90% confidence)
Expanded Flats (85% confidence)
Zigzags (80% confidence)
Triangles (75% confidence)
Complex Corrections (70% confidence)
Best Practices
Start with higher timeframes for main trend
Use lower timeframes for precise entries
Always confirm with volume and momentum
Don't trade against strong fundamental news
Keep a trading journal to track performance
Remember: Elliott Wave is an art as much as a science. This tool helps identify potential patterns, but always use your judgment and additional analysis before making trading decisions.
Markov Chain [3D] | FractalystWhat exactly is a Markov Chain?
This indicator uses a Markov Chain model to analyze, quantify, and visualize the transitions between market regimes (Bull, Bear, Neutral) on your chart. It dynamically detects these regimes in real-time, calculates transition probabilities, and displays them as animated 3D spheres and arrows, giving traders intuitive insight into current and future market conditions.
How does a Markov Chain work, and how should I read this spheres-and-arrows diagram?
Think of three weather modes: Sunny, Rainy, Cloudy.
Each sphere is one mode. The loop on a sphere means “stay the same next step” (e.g., Sunny again tomorrow).
The arrows leaving a sphere show where things usually go next if they change (e.g., Sunny moving to Cloudy).
Some paths matter more than others. A more prominent loop means the current mode tends to persist. A more prominent outgoing arrow means a change to that destination is the usual next step.
Direction isn’t symmetric: moving Sunny→Cloudy can behave differently than Cloudy→Sunny.
Now relabel the spheres to markets: Bull, Bear, Neutral.
Spheres: market regimes (uptrend, downtrend, range).
Self‑loop: tendency for the current regime to continue on the next bar.
Arrows: the most common next regime if a switch happens.
How to read: Start at the sphere that matches current bar state. If the loop stands out, expect continuation. If one outgoing path stands out, that switch is the typical next step. Opposite directions can differ (Bear→Neutral doesn’t have to match Neutral→Bear).
What states and transitions are shown?
The three market states visualized are:
Bullish (Bull): Upward or strong-market regime.
Bearish (Bear): Downward or weak-market regime.
Neutral: Sideways or range-bound regime.
Bidirectional animated arrows and probability labels show how likely the market is to move from one regime to another (e.g., Bull → Bear or Neutral → Bull).
How does the regime detection system work?
You can use either built-in price returns (based on adaptive Z-score normalization) or supply three custom indicators (such as volume, oscillators, etc.).
Values are statistically normalized (Z-scored) over a configurable lookback period.
The normalized outputs are classified into Bull, Bear, or Neutral zones.
If using three indicators, their regime signals are averaged and smoothed for robustness.
How are transition probabilities calculated?
On every confirmed bar, the algorithm tracks the sequence of detected market states, then builds a rolling window of transitions.
The code maintains a transition count matrix for all regime pairs (e.g., Bull → Bear).
Transition probabilities are extracted for each possible state change using Laplace smoothing for numerical stability, and frequently updated in real-time.
What is unique about the visualization?
3D animated spheres represent each regime and change visually when active.
Animated, bidirectional arrows reveal transition probabilities and allow you to see both dominant and less likely regime flows.
Particles (moving dots) animate along the arrows, enhancing the perception of regime flow direction and speed.
All elements dynamically update with each new price bar, providing a live market map in an intuitive, engaging format.
Can I use custom indicators for regime classification?
Yes! Enable the "Custom Indicators" switch and select any three chart series as inputs. These will be normalized and combined (each with equal weight), broadening the regime classification beyond just price-based movement.
What does the “Lookback Period” control?
Lookback Period (default: 100) sets how much historical data builds the probability matrix. Shorter periods adapt faster to regime changes but may be noisier. Longer periods are more stable but slower to adapt.
How is this different from a Hidden Markov Model (HMM)?
It sets the window for both regime detection and probability calculations. Lower values make the system more reactive, but potentially noisier. Higher values smooth estimates and make the system more robust.
How is this Markov Chain different from a Hidden Markov Model (HMM)?
Markov Chain (as here): All market regimes (Bull, Bear, Neutral) are directly observable on the chart. The transition matrix is built from actual detected regimes, keeping the model simple and interpretable.
Hidden Markov Model: The actual regimes are unobservable ("hidden") and must be inferred from market output or indicator "emissions" using statistical learning algorithms. HMMs are more complex, can capture more subtle structure, but are harder to visualize and require additional machine learning steps for training.
A standard Markov Chain models transitions between observable states using a simple transition matrix, while a Hidden Markov Model assumes the true states are hidden (latent) and must be inferred from observable “emissions” like price or volume data. In practical terms, a Markov Chain is transparent and easier to implement and interpret; an HMM is more expressive but requires statistical inference to estimate hidden states from data.
Markov Chain: states are observable; you directly count or estimate transition probabilities between visible states. This makes it simpler, faster, and easier to validate and tune.
HMM: states are hidden; you only observe emissions generated by those latent states. Learning involves machine learning/statistical algorithms (commonly Baum–Welch/EM for training and Viterbi for decoding) to infer both the transition dynamics and the most likely hidden state sequence from data.
How does the indicator avoid “repainting” or look-ahead bias?
All regime changes and matrix updates happen only on confirmed (closed) bars, so no future data is leaked, ensuring reliable real-time operation.
Are there practical tuning tips?
Tune the Lookback Period for your asset/timeframe: shorter for fast markets, longer for stability.
Use custom indicators if your asset has unique regime drivers.
Watch for rapid changes in transition probabilities as early warning of a possible regime shift.
Who is this indicator for?
Quants and quantitative researchers exploring probabilistic market modeling, especially those interested in regime-switching dynamics and Markov models.
Programmers and system developers who need a probabilistic regime filter for systematic and algorithmic backtesting:
The Markov Chain indicator is ideally suited for programmatic integration via its bias output (1 = Bull, 0 = Neutral, -1 = Bear).
Although the visualization is engaging, the core output is designed for automated, rules-based workflows—not for discretionary/manual trading decisions.
Developers can connect the indicator’s output directly to their Pine Script logic (using input.source()), allowing rapid and robust backtesting of regime-based strategies.
It acts as a plug-and-play regime filter: simply plug the bias output into your entry/exit logic, and you have a scientifically robust, probabilistically-derived signal for filtering, timing, position sizing, or risk regimes.
The MC's output is intentionally "trinary" (1/0/-1), focusing on clear regime states for unambiguous decision-making in code. If you require nuanced, multi-probability or soft-label state vectors, consider expanding the indicator or stacking it with a probability-weighted logic layer in your scripting.
Because it avoids subjectivity, this approach is optimal for systematic quants, algo developers building backtested, repeatable strategies based on probabilistic regime analysis.
What's the mathematical foundation behind this?
The mathematical foundation behind this Markov Chain indicator—and probabilistic regime detection in finance—draws from two principal models: the (standard) Markov Chain and the Hidden Markov Model (HMM).
How to use this indicator programmatically?
The Markov Chain indicator automatically exports a bias value (+1 for Bullish, -1 for Bearish, 0 for Neutral) as a plot visible in the Data Window. This allows you to integrate its regime signal into your own scripts and strategies for backtesting, automation, or live trading.
Step-by-Step Integration with Pine Script (input.source)
Add the Markov Chain indicator to your chart.
This must be done first, since your custom script will "pull" the bias signal from the indicator's plot.
In your strategy, create an input using input.source()
Example:
//@version=5
strategy("MC Bias Strategy Example")
mcBias = input.source(close, "MC Bias Source")
After saving, go to your script’s settings. For the “MC Bias Source” input, select the plot/output of the Markov Chain indicator (typically its bias plot).
Use the bias in your trading logic
Example (long only on Bull, flat otherwise):
if mcBias == 1
strategy.entry("Long", strategy.long)
else
strategy.close("Long")
For more advanced workflows, combine mcBias with additional filters or trailing stops.
How does this work behind-the-scenes?
TradingView’s input.source() lets you use any plot from another indicator as a real-time, “live” data feed in your own script (source).
The selected bias signal is available to your Pine code as a variable, enabling logical decisions based on regime (trend-following, mean-reversion, etc.).
This enables powerful strategy modularity : decouple regime detection from entry/exit logic, allowing fast experimentation without rewriting core signal code.
Integrating 45+ Indicators with Your Markov Chain — How & Why
The Enhanced Custom Indicators Export script exports a massive suite of over 45 technical indicators—ranging from classic momentum (RSI, MACD, Stochastic, etc.) to trend, volume, volatility, and oscillator tools—all pre-calculated, centered/scaled, and available as plots.
// Enhanced Custom Indicators Export - 45 Technical Indicators
// Comprehensive technical analysis suite for advanced market regime detection
//@version=6
indicator('Enhanced Custom Indicators Export | Fractalyst', shorttitle='Enhanced CI Export', overlay=false, scale=scale.right, max_labels_count=500, max_lines_count=500)
// |----- Input Parameters -----| //
momentum_group = "Momentum Indicators"
trend_group = "Trend Indicators"
volume_group = "Volume Indicators"
volatility_group = "Volatility Indicators"
oscillator_group = "Oscillator Indicators"
display_group = "Display Settings"
// Common lengths
length_14 = input.int(14, "Standard Length (14)", minval=1, maxval=100, group=momentum_group)
length_20 = input.int(20, "Medium Length (20)", minval=1, maxval=200, group=trend_group)
length_50 = input.int(50, "Long Length (50)", minval=1, maxval=200, group=trend_group)
// Display options
show_table = input.bool(true, "Show Values Table", group=display_group)
table_size = input.string("Small", "Table Size", options= , group=display_group)
// |----- MOMENTUM INDICATORS (15 indicators) -----| //
// 1. RSI (Relative Strength Index)
rsi_14 = ta.rsi(close, length_14)
rsi_centered = rsi_14 - 50
// 2. Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, length_14)
stoch_d = ta.sma(stoch_k, 3)
stoch_centered = stoch_k - 50
// 3. Williams %R
williams_r = ta.stoch(close, high, low, length_14) - 100
// 4. MACD (Moving Average Convergence Divergence)
= ta.macd(close, 12, 26, 9)
// 5. Momentum (Rate of Change)
momentum = ta.mom(close, length_14)
momentum_pct = (momentum / close ) * 100
// 6. Rate of Change (ROC)
roc = ta.roc(close, length_14)
// 7. Commodity Channel Index (CCI)
cci = ta.cci(close, length_20)
// 8. Money Flow Index (MFI)
mfi = ta.mfi(close, length_14)
mfi_centered = mfi - 50
// 9. Awesome Oscillator (AO)
ao = ta.sma(hl2, 5) - ta.sma(hl2, 34)
// 10. Accelerator Oscillator (AC)
ac = ao - ta.sma(ao, 5)
// 11. Chande Momentum Oscillator (CMO)
cmo = ta.cmo(close, length_14)
// 12. Detrended Price Oscillator (DPO)
dpo = close - ta.sma(close, length_20)
// 13. Price Oscillator (PPO)
ppo = ta.sma(close, 12) - ta.sma(close, 26)
ppo_pct = (ppo / ta.sma(close, 26)) * 100
// 14. TRIX
trix_ema1 = ta.ema(close, length_14)
trix_ema2 = ta.ema(trix_ema1, length_14)
trix_ema3 = ta.ema(trix_ema2, length_14)
trix = ta.roc(trix_ema3, 1) * 10000
// 15. Klinger Oscillator
klinger = ta.ema(volume * (high + low + close) / 3, 34) - ta.ema(volume * (high + low + close) / 3, 55)
// 16. Fisher Transform
fisher_hl2 = 0.5 * (hl2 - ta.lowest(hl2, 10)) / (ta.highest(hl2, 10) - ta.lowest(hl2, 10)) - 0.25
fisher = 0.5 * math.log((1 + fisher_hl2) / (1 - fisher_hl2))
// 17. Stochastic RSI
stoch_rsi = ta.stoch(rsi_14, rsi_14, rsi_14, length_14)
stoch_rsi_centered = stoch_rsi - 50
// 18. Relative Vigor Index (RVI)
rvi_num = ta.swma(close - open)
rvi_den = ta.swma(high - low)
rvi = rvi_den != 0 ? rvi_num / rvi_den : 0
// 19. Balance of Power (BOP)
bop = (close - open) / (high - low)
// |----- TREND INDICATORS (10 indicators) -----| //
// 20. Simple Moving Average Momentum
sma_20 = ta.sma(close, length_20)
sma_momentum = ((close - sma_20) / sma_20) * 100
// 21. Exponential Moving Average Momentum
ema_20 = ta.ema(close, length_20)
ema_momentum = ((close - ema_20) / ema_20) * 100
// 22. Parabolic SAR
sar = ta.sar(0.02, 0.02, 0.2)
sar_trend = close > sar ? 1 : -1
// 23. Linear Regression Slope
lr_slope = ta.linreg(close, length_20, 0) - ta.linreg(close, length_20, 1)
// 24. Moving Average Convergence (MAC)
mac = ta.sma(close, 10) - ta.sma(close, 30)
// 25. Trend Intensity Index (TII)
tii_sum = 0.0
for i = 1 to length_20
tii_sum += close > close ? 1 : 0
tii = (tii_sum / length_20) * 100
// 26. Ichimoku Cloud Components
ichimoku_tenkan = (ta.highest(high, 9) + ta.lowest(low, 9)) / 2
ichimoku_kijun = (ta.highest(high, 26) + ta.lowest(low, 26)) / 2
ichimoku_signal = ichimoku_tenkan > ichimoku_kijun ? 1 : -1
// 27. MESA Adaptive Moving Average (MAMA)
mama_alpha = 2.0 / (length_20 + 1)
mama = ta.ema(close, length_20)
mama_momentum = ((close - mama) / mama) * 100
// 28. Zero Lag Exponential Moving Average (ZLEMA)
zlema_lag = math.round((length_20 - 1) / 2)
zlema_data = close + (close - close )
zlema = ta.ema(zlema_data, length_20)
zlema_momentum = ((close - zlema) / zlema) * 100
// |----- VOLUME INDICATORS (6 indicators) -----| //
// 29. On-Balance Volume (OBV)
obv = ta.obv
// 30. Volume Rate of Change (VROC)
vroc = ta.roc(volume, length_14)
// 31. Price Volume Trend (PVT)
pvt = ta.pvt
// 32. Negative Volume Index (NVI)
nvi = 0.0
nvi := volume < volume ? nvi + ((close - close ) / close ) * nvi : nvi
// 33. Positive Volume Index (PVI)
pvi = 0.0
pvi := volume > volume ? pvi + ((close - close ) / close ) * pvi : pvi
// 34. Volume Oscillator
vol_osc = ta.sma(volume, 5) - ta.sma(volume, 10)
// 35. Ease of Movement (EOM)
eom_distance = high - low
eom_box_height = volume / 1000000
eom = eom_box_height != 0 ? eom_distance / eom_box_height : 0
eom_sma = ta.sma(eom, length_14)
// 36. Force Index
force_index = volume * (close - close )
force_index_sma = ta.sma(force_index, length_14)
// |----- VOLATILITY INDICATORS (10 indicators) -----| //
// 37. Average True Range (ATR)
atr = ta.atr(length_14)
atr_pct = (atr / close) * 100
// 38. Bollinger Bands Position
bb_basis = ta.sma(close, length_20)
bb_dev = 2.0 * ta.stdev(close, length_20)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
bb_position = bb_dev != 0 ? (close - bb_basis) / bb_dev : 0
bb_width = bb_dev != 0 ? (bb_upper - bb_lower) / bb_basis * 100 : 0
// 39. Keltner Channels Position
kc_basis = ta.ema(close, length_20)
kc_range = ta.ema(ta.tr, length_20)
kc_upper = kc_basis + (2.0 * kc_range)
kc_lower = kc_basis - (2.0 * kc_range)
kc_position = kc_range != 0 ? (close - kc_basis) / kc_range : 0
// 40. Donchian Channels Position
dc_upper = ta.highest(high, length_20)
dc_lower = ta.lowest(low, length_20)
dc_basis = (dc_upper + dc_lower) / 2
dc_position = (dc_upper - dc_lower) != 0 ? (close - dc_basis) / (dc_upper - dc_lower) : 0
// 41. Standard Deviation
std_dev = ta.stdev(close, length_20)
std_dev_pct = (std_dev / close) * 100
// 42. Relative Volatility Index (RVI)
rvi_up = ta.stdev(close > close ? close : 0, length_14)
rvi_down = ta.stdev(close < close ? close : 0, length_14)
rvi_total = rvi_up + rvi_down
rvi_volatility = rvi_total != 0 ? (rvi_up / rvi_total) * 100 : 50
// 43. Historical Volatility
hv_returns = math.log(close / close )
hv = ta.stdev(hv_returns, length_20) * math.sqrt(252) * 100
// 44. Garman-Klass Volatility
gk_vol = math.log(high/low) * math.log(high/low) - (2*math.log(2)-1) * math.log(close/open) * math.log(close/open)
gk_volatility = math.sqrt(ta.sma(gk_vol, length_20)) * 100
// 45. Parkinson Volatility
park_vol = math.log(high/low) * math.log(high/low)
parkinson = math.sqrt(ta.sma(park_vol, length_20) / (4 * math.log(2))) * 100
// 46. Rogers-Satchell Volatility
rs_vol = math.log(high/close) * math.log(high/open) + math.log(low/close) * math.log(low/open)
rogers_satchell = math.sqrt(ta.sma(rs_vol, length_20)) * 100
// |----- OSCILLATOR INDICATORS (5 indicators) -----| //
// 47. Elder Ray Index
elder_bull = high - ta.ema(close, 13)
elder_bear = low - ta.ema(close, 13)
elder_power = elder_bull + elder_bear
// 48. Schaff Trend Cycle (STC)
stc_macd = ta.ema(close, 23) - ta.ema(close, 50)
stc_k = ta.stoch(stc_macd, stc_macd, stc_macd, 10)
stc_d = ta.ema(stc_k, 3)
stc = ta.stoch(stc_d, stc_d, stc_d, 10)
// 49. Coppock Curve
coppock_roc1 = ta.roc(close, 14)
coppock_roc2 = ta.roc(close, 11)
coppock = ta.wma(coppock_roc1 + coppock_roc2, 10)
// 50. Know Sure Thing (KST)
kst_roc1 = ta.roc(close, 10)
kst_roc2 = ta.roc(close, 15)
kst_roc3 = ta.roc(close, 20)
kst_roc4 = ta.roc(close, 30)
kst = ta.sma(kst_roc1, 10) + 2*ta.sma(kst_roc2, 10) + 3*ta.sma(kst_roc3, 10) + 4*ta.sma(kst_roc4, 15)
// 51. Percentage Price Oscillator (PPO)
ppo_line = ((ta.ema(close, 12) - ta.ema(close, 26)) / ta.ema(close, 26)) * 100
ppo_signal = ta.ema(ppo_line, 9)
ppo_histogram = ppo_line - ppo_signal
// |----- PLOT MAIN INDICATORS -----| //
// Plot key momentum indicators
plot(rsi_centered, title="01_RSI_Centered", color=color.purple, linewidth=1)
plot(stoch_centered, title="02_Stoch_Centered", color=color.blue, linewidth=1)
plot(williams_r, title="03_Williams_R", color=color.red, linewidth=1)
plot(macd_histogram, title="04_MACD_Histogram", color=color.orange, linewidth=1)
plot(cci, title="05_CCI", color=color.green, linewidth=1)
// Plot trend indicators
plot(sma_momentum, title="06_SMA_Momentum", color=color.navy, linewidth=1)
plot(ema_momentum, title="07_EMA_Momentum", color=color.maroon, linewidth=1)
plot(sar_trend, title="08_SAR_Trend", color=color.teal, linewidth=1)
plot(lr_slope, title="09_LR_Slope", color=color.lime, linewidth=1)
plot(mac, title="10_MAC", color=color.fuchsia, linewidth=1)
// Plot volatility indicators
plot(atr_pct, title="11_ATR_Pct", color=color.yellow, linewidth=1)
plot(bb_position, title="12_BB_Position", color=color.aqua, linewidth=1)
plot(kc_position, title="13_KC_Position", color=color.olive, linewidth=1)
plot(std_dev_pct, title="14_StdDev_Pct", color=color.silver, linewidth=1)
plot(bb_width, title="15_BB_Width", color=color.gray, linewidth=1)
// Plot volume indicators
plot(vroc, title="16_VROC", color=color.blue, linewidth=1)
plot(eom_sma, title="17_EOM", color=color.red, linewidth=1)
plot(vol_osc, title="18_Vol_Osc", color=color.green, linewidth=1)
plot(force_index_sma, title="19_Force_Index", color=color.orange, linewidth=1)
plot(obv, title="20_OBV", color=color.purple, linewidth=1)
// Plot additional oscillators
plot(ao, title="21_Awesome_Osc", color=color.navy, linewidth=1)
plot(cmo, title="22_CMO", color=color.maroon, linewidth=1)
plot(dpo, title="23_DPO", color=color.teal, linewidth=1)
plot(trix, title="24_TRIX", color=color.lime, linewidth=1)
plot(fisher, title="25_Fisher", color=color.fuchsia, linewidth=1)
// Plot more momentum indicators
plot(mfi_centered, title="26_MFI_Centered", color=color.yellow, linewidth=1)
plot(ac, title="27_AC", color=color.aqua, linewidth=1)
plot(ppo_pct, title="28_PPO_Pct", color=color.olive, linewidth=1)
plot(stoch_rsi_centered, title="29_StochRSI_Centered", color=color.silver, linewidth=1)
plot(klinger, title="30_Klinger", color=color.gray, linewidth=1)
// Plot trend continuation
plot(tii, title="31_TII", color=color.blue, linewidth=1)
plot(ichimoku_signal, title="32_Ichimoku_Signal", color=color.red, linewidth=1)
plot(mama_momentum, title="33_MAMA_Momentum", color=color.green, linewidth=1)
plot(zlema_momentum, title="34_ZLEMA_Momentum", color=color.orange, linewidth=1)
plot(bop, title="35_BOP", color=color.purple, linewidth=1)
// Plot volume continuation
plot(nvi, title="36_NVI", color=color.navy, linewidth=1)
plot(pvi, title="37_PVI", color=color.maroon, linewidth=1)
plot(momentum_pct, title="38_Momentum_Pct", color=color.teal, linewidth=1)
plot(roc, title="39_ROC", color=color.lime, linewidth=1)
plot(rvi, title="40_RVI", color=color.fuchsia, linewidth=1)
// Plot volatility continuation
plot(dc_position, title="41_DC_Position", color=color.yellow, linewidth=1)
plot(rvi_volatility, title="42_RVI_Volatility", color=color.aqua, linewidth=1)
plot(hv, title="43_Historical_Vol", color=color.olive, linewidth=1)
plot(gk_volatility, title="44_GK_Volatility", color=color.silver, linewidth=1)
plot(parkinson, title="45_Parkinson_Vol", color=color.gray, linewidth=1)
// Plot final oscillators
plot(rogers_satchell, title="46_RS_Volatility", color=color.blue, linewidth=1)
plot(elder_power, title="47_Elder_Power", color=color.red, linewidth=1)
plot(stc, title="48_STC", color=color.green, linewidth=1)
plot(coppock, title="49_Coppock", color=color.orange, linewidth=1)
plot(kst, title="50_KST", color=color.purple, linewidth=1)
// Plot final indicators
plot(ppo_histogram, title="51_PPO_Histogram", color=color.navy, linewidth=1)
plot(pvt, title="52_PVT", color=color.maroon, linewidth=1)
// |----- Reference Lines -----| //
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dashed, linewidth=1)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-50, "Lower Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(25, "Upper Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-25, "Lower Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
// |----- Enhanced Information Table -----| //
if show_table and barstate.islast
table_position = position.top_right
table_text_size = table_size == "Tiny" ? size.tiny : table_size == "Small" ? size.small : size.normal
var table info_table = table.new(table_position, 3, 18, bgcolor=color.new(color.white, 85), border_width=1, border_color=color.gray)
// Headers
table.cell(info_table, 0, 0, 'Category', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 1, 0, 'Indicator', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 2, 0, 'Value', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
// Key Momentum Indicators
table.cell(info_table, 0, 1, 'MOMENTUM', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 1, 'RSI Centered', text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 2, 1, str.tostring(rsi_centered, '0.00'), text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 0, 2, '', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 1, 2, 'Stoch Centered', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 2, str.tostring(stoch_centered, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 3, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 3, 'Williams %R', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 3, str.tostring(williams_r, '0.00'), text_color=color.red, text_size=table_text_size)
table.cell(info_table, 0, 4, '', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 1, 4, 'MACD Histogram', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 2, 4, str.tostring(macd_histogram, '0.000'), text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 0, 5, '', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 1, 5, 'CCI', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 2, 5, str.tostring(cci, '0.00'), text_color=color.green, text_size=table_text_size)
// Key Trend Indicators
table.cell(info_table, 0, 6, 'TREND', text_color=color.navy, text_size=table_text_size, bgcolor=color.new(color.navy, 90))
table.cell(info_table, 1, 6, 'SMA Momentum %', text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 2, 6, str.tostring(sma_momentum, '0.00'), text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 0, 7, '', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 1, 7, 'EMA Momentum %', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 2, 7, str.tostring(ema_momentum, '0.00'), text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 0, 8, '', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 1, 8, 'SAR Trend', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 2, 8, str.tostring(sar_trend, '0'), text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 0, 9, '', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 1, 9, 'Linear Regression', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 2, 9, str.tostring(lr_slope, '0.000'), text_color=color.lime, text_size=table_text_size)
// Key Volatility Indicators
table.cell(info_table, 0, 10, 'VOLATILITY', text_color=color.yellow, text_size=table_text_size, bgcolor=color.new(color.yellow, 90))
table.cell(info_table, 1, 10, 'ATR %', text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 2, 10, str.tostring(atr_pct, '0.00'), text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 0, 11, '', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 1, 11, 'BB Position', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 2, 11, str.tostring(bb_position, '0.00'), text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 0, 12, '', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 1, 12, 'KC Position', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 2, 12, str.tostring(kc_position, '0.00'), text_color=color.olive, text_size=table_text_size)
// Key Volume Indicators
table.cell(info_table, 0, 13, 'VOLUME', text_color=color.blue, text_size=table_text_size, bgcolor=color.new(color.blue, 90))
table.cell(info_table, 1, 13, 'Volume ROC', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 13, str.tostring(vroc, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 14, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 14, 'EOM', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 14, str.tostring(eom_sma, '0.000'), text_color=color.red, text_size=table_text_size)
// Key Oscillators
table.cell(info_table, 0, 15, 'OSCILLATORS', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 15, 'Awesome Osc', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 15, str.tostring(ao, '0.000'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 16, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 16, 'Fisher Transform', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 16, str.tostring(fisher, '0.000'), text_color=color.red, text_size=table_text_size)
// Summary Statistics
table.cell(info_table, 0, 17, 'SUMMARY', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.gray, 70))
table.cell(info_table, 1, 17, 'Total Indicators: 52', text_color=color.black, text_size=table_text_size)
regime_color = rsi_centered > 10 ? color.green : rsi_centered < -10 ? color.red : color.gray
regime_text = rsi_centered > 10 ? "BULLISH" : rsi_centered < -10 ? "BEARISH" : "NEUTRAL"
table.cell(info_table, 2, 17, regime_text, text_color=regime_color, text_size=table_text_size)
This makes it the perfect “indicator backbone” for quantitative and systematic traders who want to prototype, combine, and test new regime detection models—especially in combination with the Markov Chain indicator.
How to use this script with the Markov Chain for research and backtesting:
Add the Enhanced Indicator Export to your chart.
Every calculated indicator is available as an individual data stream.
Connect the indicator(s) you want as custom input(s) to the Markov Chain’s “Custom Indicators” option.
In the Markov Chain indicator’s settings, turn ON the custom indicator mode.
For each of the three custom indicator inputs, select the exported plot from the Enhanced Export script—the menu lists all 45+ signals by name.
This creates a powerful, modular regime-detection engine where you can mix-and-match momentum, trend, volume, or custom combinations for advanced filtering.
Backtest regime logic directly.
Once you’ve connected your chosen indicators, the Markov Chain script performs regime detection (Bull/Neutral/Bear) based on your selected features—not just price returns.
The regime detection is robust, automatically normalized (using Z-score), and outputs bias (1, -1, 0) for plug-and-play integration.
Export the regime bias for programmatic use.
As described above, use input.source() in your Pine Script strategy or system and link the bias output.
You can now filter signals, control trade direction/size, or design pairs-trading that respect true, indicator-driven market regimes.
With this framework, you’re not limited to static or simplistic regime filters. You can rigorously define, test, and refine what “market regime” means for your strategies—using the technical features that matter most to you.
Optimize your signal generation by backtesting across a universe of meaningful indicator blends.
Enhance risk management with objective, real-time regime boundaries.
Accelerate your research: iterate quickly, swap indicator components, and see results with minimal code changes.
Automate multi-asset or pairs-trading by integrating regime context directly into strategy logic.
Add both scripts to your chart, connect your preferred features, and start investigating your best regime-based trades—entirely within the TradingView ecosystem.
References & Further Reading
Ang, A., & Bekaert, G. (2002). “Regime Switches in Interest Rates.” Journal of Business & Economic Statistics, 20(2), 163–182.
Hamilton, J. D. (1989). “A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle.” Econometrica, 57(2), 357–384.
Markov, A. A. (1906). "Extension of the Limit Theorems of Probability Theory to a Sum of Variables Connected in a Chain." The Notes of the Imperial Academy of Sciences of St. Petersburg.
Guidolin, M., & Timmermann, A. (2007). “Asset Allocation under Multivariate Regime Switching.” Journal of Economic Dynamics and Control, 31(11), 3503–3544.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets. New York Institute of Finance.
Brock, W., Lakonishok, J., & LeBaron, B. (1992). “Simple Technical Trading Rules and the Stochastic Properties of Stock Returns.” Journal of Finance, 47(5), 1731–1764.
Zucchini, W., MacDonald, I. L., & Langrock, R. (2017). Hidden Markov Models for Time Series: An Introduction Using R (2nd ed.). Chapman and Hall/CRC.
On Quantitative Finance and Markov Models:
Lo, A. W., & Hasanhodzic, J. (2009). The Heretics of Finance: Conversations with Leading Practitioners of Technical Analysis. Bloomberg Press.
Patterson, S. (2016). The Man Who Solved the Market: How Jim Simons Launched the Quant Revolution. Penguin Press.
TradingView Pine Script Documentation: www.tradingview.com
TradingView Blog: “Use an Input From Another Indicator With Your Strategy” www.tradingview.com
GeeksforGeeks: “What is the Difference Between Markov Chains and Hidden Markov Models?” www.geeksforgeeks.org
What makes this indicator original and unique?
- On‑chart, real‑time Markov. The chain is drawn directly on your chart. You see the current regime, its tendency to stay (self‑loop), and the usual next step (arrows) as bars confirm.
- Source‑agnostic by design. The engine runs on any series you select via input.source() — price, your own oscillator, a composite score, anything you compute in the script.
- Automatic normalization + regime mapping. Different inputs live on different scales. The script standardizes your chosen source and maps it into clear regimes (e.g., Bull / Bear / Neutral) without you micromanaging thresholds each time.
- Rolling, bar‑by‑bar learning. Transition tendencies are computed from a rolling window of confirmed bars. What you see is exactly what the market did in that window.
- Fast experimentation. Switch the source, adjust the window, and the Markov view updates instantly. It’s a rapid way to test ideas and feel regime persistence/switch behavior.
Integrate your own signals (using input.source())
- In settings, choose the Source . This is powered by input.source() .
- Feed it price, an indicator you compute inside the script, or a custom composite series.
- The script will automatically normalize that series and process it through the Markov engine, mapping it to regimes and updating the on‑chart spheres/arrows in real time.
Credits:
Deep gratitude to @RicardoSantos for both the foundational Markov chain processing engine and inspiring open-source contributions, which made advanced probabilistic market modeling accessible to the TradingView community.
Special thanks to @Alien_Algorithms for the innovative and visually stunning 3D sphere logic that powers the indicator’s animated, regime-based visualization.
Disclaimer
This tool summarizes recent behavior. It is not financial advice and not a guarantee of future results.
Comparaison DXY, VIX, SPX, DJI, GVZPine Script indicator compares the normalized values of DXY, VIX, SPX, DJI, and GVZ indices on a single scale from 0 to 100. Here's a breakdown of what it does:
Data Requests: Gets closing prices for:
US Dollar Index (DXY)
VIX Volatility Index
S&P 500 (SPX)
Dow Jones Industrial Average (DJI)
Gold Volatility Index (GVZ)
Normalization: Each index is normalized using a 500-period lookback to scale values between 0-100, making them comparable despite different price scales.
Visualization:
Plots each normalized index with distinct colors
Adds a dotted midline at 50 for reference
Uses thicker linewidth (2) for better visibility
Timeframe Flexibility: Works on any chart timeframe since it uses timeframe.period
This is useful for:
Comparing relative strength/weakness between these key market indicators
Identifying divergences or convergences in their movements
Seeing how different asset classes (currencies, equities, volatility) relate
You could enhance this by:
Adding correlation calculations between pairs
Including options to adjust the normalization period
Adding alerts when instruments diverge beyond certain thresholds
Including volume or other metrics alongside price
Hurst Exponent Adaptive Filter (HEAF) [PhenLabs]📊 PhenLabs - Hurst Exponent Adaptive Filter (HEAF)
Version: PineScript™ v6
📌 Description
The Hurst Exponent Adaptive Filter (HEAF) is an advanced Pine Script indicator designed to dynamically adjust moving average calculations based on real time market regimes detected through the Hurst Exponent. The intention behind the creation of this indicator was not a buy/sell indicator but rather a tool to help sharpen traders ability to distinguish regimes in the market mathematically rather than guessing. By analyzing price persistence, it identifies whether the market is trending, mean-reverting, or exhibiting random walk behavior, automatically adapting the MA length to provide more responsive alerts in volatile conditions and smoother outputs in stable ones. This helps traders avoid false signals in choppy markets and capitalize on strong trends, making it ideal for adaptive trading strategies across various timeframes and assets.
Unlike traditional moving averages, HEAF incorporates fractal dimension analysis via the Hurst Exponent to create a self-tuning filter that evolves with market conditions. Traders benefit from visual cues like color coded regimes, adaptive bands for volatility channels, and an information panel that suggests appropriate strategies, enhancing decision making without constant manual adjustments by the user.
🚀 Points of Innovation
Dynamic MA length adjustment using Hurst Exponent for regime-aware filtering, reducing lag in trends and noise in ranges.
Integrated market regime classification (trending, mean-reverting, random) with visual and alert-based notifications.
Customizable color themes and adaptive bands that incorporate ATR for volatility-adjusted channels.
Built-in information panel providing real-time strategy recommendations based on detected regimes.
Power sensitivity parameter to fine-tune adaptation aggressiveness, allowing personalization for different trading styles.
Support for multiple MA types (EMA, SMA, WMA) within an adaptive framework.
🔧 Core Components
Hurst Exponent Calculation: Computes the fractal dimension of price series over a user-defined lookback to detect market persistence or anti-persistence.
Adaptive Length Mechanism: Maps Hurst values to MA lengths between minimum and maximum bounds, using a power function for sensitivity control.
Moving Average Engine: Applies the chosen MA type (EMA, SMA, or WMA) to the adaptive length for the core filter line.
Adaptive Bands: Creates upper and lower channels using ATR multiplied by a band factor, scaled to the current adaptive length.
Regime Detection: Classifies market state with thresholds (e.g., >0.55 for trending) and triggers alerts on regime changes.
Visualization System: Includes gradient fills, regime-colored MA lines, and an info panel for at-a-glance insights.
🔥 Key Features
Regime-Adaptive Filtering: Automatically shortens MA in mean-reverting markets for quick responses and lengthens it in trends for smoother signals, helping traders stay aligned with market dynamics.
Custom Alerts: Notifies on regime shifts and band breakouts, enabling timely strategy adjustments like switching to trend-following in bullish regimes.
Visual Enhancements: Color-coded MA lines, gradient band fills, and an optional info panel that displays market state and trading tips, improving chart readability.
Flexible Settings: Adjustable lookback, min/max lengths, sensitivity power, MA type, and themes to suit various assets and timeframes.
Band Breakout Signals: Highlights potential overbought/oversold conditions via ATR-based channels, useful for entry/exit timing.
🎨 Visualization
Main Adaptive MA Line: Plotted with regime-based colors (e.g., green for trending) to visually indicate market state and filter position relative to price.
Adaptive Bands: Upper and lower lines with gradient fills between them, showing volatility channels that widen in random regimes and tighten in trends.
Price vs. MA Fills: Color-coded areas between price and MA (e.g., bullish green above MA in trending modes) for quick trend strength assessment.
Information Panel: Top-right table displaying current regime (e.g., "Trending Market") and strategy suggestions like "Follow trends" or "Trade ranges."
📖 Usage Guidelines
Core Settings
Hurst Lookback Period
Default: 100
Range: 20-500
Description: Sets the period for Hurst Exponent calculation; longer values provide more stable regime detection but may lag, while shorter ones are more responsive to recent changes.
Minimum MA Length
Default: 10
Range: 5-50
Description: Defines the shortest possible adaptive MA length, ideal for fast responses in mean-reverting conditions.
Maximum MA Length
Default: 200
Range: 50-500
Description: Sets the longest adaptive MA length for smoothing in strong trends; adjust based on asset volatility.
Sensitivity Power
Default: 2.0
Range: 1.0-5.0
Description: Controls how aggressively the length adapts to Hurst changes; higher values make it more sensitive to regime shifts.
MA Type
Default: EMA
Options: EMA, SMA, WMA
Description: Chooses the moving average calculation method; EMA is more responsive, while SMA/WMA offer different weighting.
🖼️ Visual Settings
Show Adaptive Bands
Default: True
Description: Toggles visibility of upper/lower bands for volatility channels.
Band Multiplier
Default: 1.5
Range: 0.5-3.0
Description: Scales band width using ATR; higher values create wider channels for conservative signals.
Show Information Panel
Default: True
Description: Displays regime info and strategy tips in a top-right panel.
MA Line Width
Default: 2
Range: 1-5
Description: Adjusts thickness of the main MA line for better visibility.
Color Theme
Default: Blue
Options: Blue, Classic, Dark Purple, Vibrant
Description: Selects color scheme for MA, bands, and fills to match user preferences.
🚨 Alert Settings
Enable Alerts
Default: True
Description: Activates notifications for regime changes and band breakouts.
✅ Best Use Cases
Trend-Following Strategies: In detected trending regimes, use the adaptive MA as a trailing stop or entry filter for momentum trades.
Range Trading: During mean-reverting periods, monitor band breakouts for buying dips or selling rallies within channels.
Risk Management in Random Markets: Reduce exposure when random walk is detected, using tight stops suggested in the info panel.
Multi-Timeframe Analysis: Apply on higher timeframes for regime confirmation, then drill down to lower ones for entries.
Volatility-Based Entries: Use upper/lower band crossovers as signals in adaptive channels for overbought/oversold trades.
⚠️ Limitations
Lagging in Transitions: Regime detection may delay during rapid market shifts, requiring confirmation from other tools.
Not a Standalone System: Best used in conjunction with other indicators; random regimes can lead to whipsaws if traded aggressively.
Parameter Sensitivity: Optimal settings vary by asset and timeframe, necessitating backtesting.
💡 What Makes This Unique
Hurst-Driven Adaptation: Unlike static MAs, it uses fractal analysis to self-tune, providing regime-specific filtering that's rare in standard indicators.
Integrated Strategy Guidance: The info panel offers actionable tips tied to regimes, bridging analysis and execution.
Multi-Regime Visualization: Combines adaptive bands, colored fills, and alerts in one tool for comprehensive market state awareness.
🔬 How It Works
Hurst Exponent Computation:
Calculates log returns over the lookback period to derive the rescaled range (R/S) ratio.
Normalizes to a 0-1 value, where >0.55 indicates trending, <0.45 mean-reverting, and in-between random.
Length Adaptation:
Maps normalized Hurst to an MA length via a power function, clamping between min and max.
Applies the selected MA type to close prices using this dynamic length.
Visualization and Signals:
Plots the MA with regime colors, adds ATR-based bands, and fills areas for trend strength.
Triggers alerts on regime changes or band crosses, with the info panel suggesting strategies like momentum riding in trends.
💡 Note:
For optimal results, backtest settings on your preferred assets and combine with volume or momentum indicators. Remember, no indicator guarantees profits—use with proper risk management. Access premium features and support at PhenLabs.
Recession Warning Model [BackQuant]Recession Warning Model
Overview
The Recession Warning Model (RWM) is a Pine Script® indicator designed to estimate the probability of an economic recession by integrating multiple macroeconomic, market sentiment, and labor market indicators. It combines over a dozen data series into a transparent, adaptive, and actionable tool for traders, portfolio managers, and researchers. The model provides customizable complexity levels, display modes, and data processing options to accommodate various analytical requirements while ensuring robustness through dynamic weighting and regime-aware adjustments.
Purpose
The RWM fulfills the need for a concise yet comprehensive tool to monitor recession risk. Unlike approaches relying on a single metric, such as yield-curve inversion, or extensive economic reports, it consolidates multiple data sources into a single probability output. The model identifies active indicators, their confidence levels, and the current economic regime, enabling users to anticipate downturns and adjust strategies accordingly.
Core Features
- Indicator Families : Incorporates 13 indicators across five categories: Yield, Labor, Sentiment, Production, and Financial Stress.
- Dynamic Weighting : Adjusts indicator weights based on recent predictive accuracy, constrained within user-defined boundaries.
- Leading and Coincident Split : Separates early-warning (leading) and confirmatory (coincident) signals, with adjustable weighting (default 60/40 mix).
- Economic Regime Sensitivity : Modulates output sensitivity based on market conditions (Expansion, Late-Cycle, Stress, Crisis), using a composite of VIX, yield-curve, financial conditions, and credit spreads.
- Display Options : Supports four modes—Probability (0-100%), Binary (four risk bins), Lead/Coincident, and Ensemble (blended probability).
- Confidence Intervals : Reflects model stability, widening during high volatility or conflicting signals.
- Alerts : Configurable thresholds (Watch, Caution, Warning, Alert) with persistence filters to minimize false signals.
- Data Export : Enables CSV output for probabilities, signals, and regimes, facilitating external analysis in Python or R.
Model Complexity Levels
Users can select from four tiers to balance simplicity and depth:
1. Essential : Focuses on three core indicators—yield-curve spread, jobless claims, and unemployment change—for minimalistic monitoring.
2. Standard : Expands to nine indicators, adding consumer confidence, PMI, VIX, S&P 500 trend, money supply vs. GDP, and the Sahm Rule.
3. Professional : Includes all 13 indicators, incorporating financial conditions, credit spreads, JOLTS vacancies, and wage growth.
4. Research : Unlocks all indicators plus experimental settings for advanced users.
Key Indicators
Below is a summary of the 13 indicators, their data sources, and economic significance:
- Yield-Curve Spread : Difference between 10-year and 3-month Treasury yields. Negative spreads signal banking sector stress.
- Jobless Claims : Four-week moving average of unemployment claims. Sustained increases indicate rising layoffs.
- Unemployment Change : Three-month change in unemployment rate. Sharp rises often precede recessions.
- Sahm Rule : Triggers when unemployment rises 0.5% above its 12-month low, a reliable recession indicator.
- Consumer Confidence : University of Michigan survey. Declines reflect household pessimism, impacting spending.
- PMI : Purchasing Managers’ Index. Values below 50 indicate manufacturing contraction.
- VIX : CBOE Volatility Index. Elevated levels suggest market anticipation of economic distress.
- S&P 500 Growth : Weekly moving average trend. Declines reduce wealth effects, curbing consumption.
- M2 + GDP Trend : Monitors money supply and real GDP. Simultaneous declines signal credit contraction.
- NFCI : Chicago Fed’s National Financial Conditions Index. Positive values indicate tighter conditions.
- Credit Spreads : Proxy for corporate bond spreads using 10-year vs. 2-year Treasury yields. Widening spreads reflect stress.
- JOLTS Vacancies : Job openings data. Significant drops precede hiring slowdowns.
- Wage Growth : Year-over-year change in average hourly earnings. Late-cycle spikes often signal economic overheating.
Data Processing
- Rate of Change (ROC) : Optionally applied to capture momentum in data series (default: 21-bar period).
- Z-Score Normalization : Standardizes indicators to a common scale (default: 252-bar lookback).
- Smoothing : Applies a short moving average to final signals (default: 5-bar period) to reduce noise.
- Binary Signals : Generated for each indicator (e.g., yield-curve inverted or PMI below 50) based on thresholds or Z-score deviations.
Probability Calculation
1. Each indicator’s binary signal is weighted according to user settings or dynamic performance.
2. Weights are normalized to sum to 100% across active indicators.
3. Leading and coincident signals are aggregated separately (if split mode is enabled) and combined using the specified mix.
4. The probability is adjusted by a regime multiplier, amplifying risk during Stress or Crisis regimes.
5. Optional smoothing ensures stable outputs.
Display and Visualization
- Probability Mode : Plots a continuous 0-100% recession probability with color gradients and confidence bands.
- Binary Mode : Categorizes risk into four levels (Minimal, Watch, Caution, Alert) for simplified dashboards.
- Lead/Coincident Mode : Displays leading and coincident probabilities separately to track signal divergence.
- Ensemble Mode : Averages traditional and split probabilities for a balanced view.
- Regime Background : Color-coded overlays (green for Expansion, orange for Late-Cycle, amber for Stress, red for Crisis).
- Analytics Table : Optional dashboard showing probability, confidence, regime, and top indicator statuses.
Practical Applications
- Asset Allocation : Adjust equity or bond exposures based on sustained probability increases.
- Risk Management : Hedge portfolios with VIX futures or options during regime shifts to Stress or Crisis.
- Sector Rotation : Shift toward defensive sectors when coincident signals rise above 50%.
- Trading Filters : Disable short-term strategies during high-risk regimes.
- Event Timing : Scale positions ahead of high-impact data releases when probability and VIX are elevated.
Configuration Guidelines
- Enable ROC and Z-score for consistent indicator comparison unless raw data is preferred.
- Use dynamic weighting with at least one economic cycle of data for optimal performance.
- Monitor stress composite scores above 80 alongside probabilities above 70 for critical risk signals.
- Adjust adaptation speed (default: 0.1) to 0.2 during Crisis regimes for faster indicator prioritization.
- Combine RWM with complementary tools (e.g., liquidity metrics) for intraday or short-term trading.
Limitations
- Macro indicators lag intraday market moves, making RWM better suited for strategic rather than tactical trading.
- Historical data availability may constrain dynamic weighting on shorter timeframes.
- Model accuracy depends on the quality and timeliness of economic data feeds.
Final Note
The Recession Warning Model provides a disciplined framework for monitoring economic downturn risks. By integrating diverse indicators with transparent weighting and regime-aware adjustments, it empowers users to make informed decisions in portfolio management, risk hedging, or macroeconomic research. Regular review of model outputs alongside market-specific tools ensures its effective application across varying market conditions.
Smart Elliott Wave [The_lurker]🔷 Smart Elliott Wave – موجات إليوت الذكية
A professional indicator for automatically detecting and analyzing Elliott Wave patterns on the chart. Built on classical Elliott Wave theory, it enhances accuracy with dynamic Fibonacci validation and geometric logic—solving the most common issues traders face when applying Elliott Wave manually: complexity, subjectivity, and misinterpretation of corrections.
🎯 Key Features
Smart Elliott Wave offers a layered intelligent system that:
- Automatically detects impulsive and corrective wave structures
- Validates wave formations using Fibonacci rules
- Highlights potential reversal zones (PRZ)
- Sends instant alerts for newly detected patterns
- Supports both bullish and bearish trends
- Includes fully customizable user settings
🧠 Core Concept
The indicator analyzes price movement over time using pivot points (discovered via `ta.pivothigh` and `ta.pivotlow`) to detect wave structures that conform to Elliott Wave sequencing:
- Impulse Wave: 0-1-2-3-4-5
- Simple Correction: ABC
- Complex Correction: WXY
Each structure is validated through a strict set of logical rules combined with Fibonacci ratio checks to ensure pattern integrity and reduce false signals.
🧩 Wave Structure Components
1️⃣ Impulse Waves
- Wave 3 is not the shortest
- Wave 4 does not overlap Wave 1
- Waves 1, 3, and 5 are impulsive; Waves 2 and 4 are corrective
- Fibonacci validation can be applied to Waves 2 and 4 if enabled
2️⃣ Simple Corrections (ABC)
- Wave B partially retraces Wave A
- Wave C completes the structure without invalid overlap
- Fibonacci ratios validate the symmetry of A, B, and C (if enabled)
3️⃣ Complex Corrections (WXY)
- Only used if ABC structure is insufficient
- Requires 6 sequential pivot points: W, X, Y
- W and Y are corrective; X is a linking wave
- Follows both structural and ratio-based validations
📏 Dynamic Fibonacci Validation
When Enable Fibonacci Rules is active:
- Validates against common ratios:
`38.2%`, `50%`, `61.8%`, `78.6%`, `127.2%`, `161.8%`
- Adjustable **Fibonacci Tolerance** allows for controlled deviation
- Patterns are ignored if ratios fall outside the accepted range
🔮 Potential Reversal Zones (PRZ)
- Calculated from the most recent completed impulse wave
- Uses Fibonacci extensions to project PRZ ahead of price
- Customizable visibility and color for each ratio
- Used as dynamic take-profit or stop-loss zones
🖍️ Dual Trend Detection & Wave Coloring
- Supports both bullish and bearish patterns
- Automatic wave coloring for quick visual recognition:
- 🟦 Blue: Bullish waves
- 🟥 Red: Bearish waves
- Optional fill color for correction zones
🔔 Smart Alert System
Instant alerts are triggered when a valid wave pattern is confirmed:
- New impulse wave detected
- ABC correction appears
- Complex WXY correction formed
> Alerts are triggered only after the bar closes to prevent repainting.
⚙️ Indicator Settings
📌 Wave Detection Settings
- Pivot Left Strength: Bars to the left used for pivot detection
- Pivot Right Strength: Bars to the right for confirmation (0 = real-time)
- Enable Fibonacci Rules: Toggle Fibonacci ratio validation
- Fibonacci Tolerance: Allowed deviation in percentage
🎨 Display Settings
- Show Previous Patterns: Toggle between all patterns or only the latest
- Fill correction zones with color
- Customize wave and PRZ color schemes
📉 PRZ Settings
- Show/hide specific Fibonacci ratios
- Customize each PRZ color
- Set maximum bar extension for PRZ display
🔕 Alert Settings
- Enable or disable alerts for each type of pattern
📚 Practical Use Cases
- Daily or intraday price structure analysis
- Combine with RSI, MACD, or momentum indicators
- Filter weak signals using Fibonacci-based pattern validation
- Use PRZ zones as dynamic entry/exit targets
- Learn and reinforce Elliott Wave theory through real-time examples
📝 Important Notes
- Setting `Pivot Right = 0` allows for real-time pattern previews (may repaint)
- Disabling Fibonacci validation increases pattern count but reduces accuracy
- TradingView limits to 500 visual objects (labels, boxes, lines); older patterns may be removed
- PRZ extends up to 100 bars or 0.618 of the previous impulse duration by default
⚠️ Disclaimer:
This indicator is for educational and analytical purposes only. It does not constitute financial, investment, or trading advice. Use it in conjunction with your own strategy and risk management. Neither TradingView nor the developer is liable for any financial decisions or losses.
🔷 Smart Elliott Wave – موجات إليوت الذكية
مؤشر احترافي لرصد وتحليل أنماط موجات إليوت تلقائيًا على الرسم البياني، يعتمد على المبادئ الكلاسيكية للنظرية مع تعزيزها بالتحقق الرياضي والهندسي، ويهدف إلى تجاوز العقبات التي يواجهها معظم المتداولين عند تطبيق موجات إليوت يدويًا، مثل صعوبة التحديد، التقديرات الذاتية، وتشويش التصحيحات.
🎯 ما الذي يميز هذا المؤشر؟
يُقدّم Smart Elliott Wave نظامًا تراكبيًا ذكيًا يقوم بـ:
رصد تلقائي للموجات (الدافعة والتصحيحية)
التحقق من صحة النموذج باستخدام قواعد فيبوناتشي
عرض مناطق الانعكاس المحتملة (PRZ)
توليد تنبيهات لحظية عند تشكّل أنماط جديدة
دعم الاتجاهين (الصاعد والهابط)
واجهة إعدادات مرنة قابلة للتخصيص الكامل
🧠 الفكرة الأساسية
يعتمد المؤشر على تحليل حركة السعر عبر تسلسل زمني من النقاط المحورية (Pivots)، والتي تُكتشف باستخدام دوال مدمجة مثل ta.pivothigh وta.pivotlow. ثم يُبني فوق هذه النقاط نماذج هندسية متوافقة مع تسلسل موجات إليوت:
الموجة الدافعة (Impulse): تسلسل 0-1-2-3-4-5
التصحيح البسيط (ABC)
التصحيح المعقد (WXY)
ويتم التحقق من كل نموذج اعتمادًا على قواعد إليوت + نسب فيبوناتشي، ما يضمن موضوعية التصنيف، ودقة التحديد.
🧩 مكوّنات التحليل:
1️⃣ الموجات الدافعة (Impulse Waves):
يُشترط أن تكون الموجة الثالثة غير الأقصر.
لا تتداخل الموجة الرابعة مع نطاق الموجة الأولى.
تأكيد أن الموجات 1 و3 و5 دافعة، و2 و4 تصحيحية.
يتم التحقق من نسب تصحيح الموجتين 2 و4 حسب قواعد فيبوناتشي عند تفعيلها.
2️⃣ التصحيح البسيط (ABC):
B تصحيح جزئي للموجة A.
C تُكمل الهيكل بدون تداخل مع A.
يتم التحقق من أطوال الموجات وفق نسب فيبوناتشي لضمان التناسق.
3️⃣ التصحيح المعقد (WXY):
لا يتم تفعيله إلا عند فشل ABC في تفسير النمط.
يتطلب 6 نقاط محورية متسلسلة: W, X, Y.
W وY تصحيحيتان، وX رابط مركزي.
يخضع أيضًا لقواعد النسب والتماثل البنائي.
📏 التحقق باستخدام نسب فيبوناتشي:
عند تفعيل خاصية Enable Fibonacci Rules، يتم التحقق الصارم من نسب تصحيح الموجات:
النسب المعتمدة:
38.2%, 50%, 61.8%, 78.6%, 127.2%, 161.8%
إذا لم تكن الموجة ضمن نطاق النسبة + نسبة التسامح (Tolerance)، يتم تجاهل النموذج.
يُستخدم هذا التحقق أيضًا لرسم مناطق الانعكاس المحتملة (PRZ).
🔮 مناطق الانعكاس المحتملة (PRZ)
تُحسب PRZ باستخدام نسب فيبوناتشي انطلاقًا من نهاية آخر موجة دافعة.
تُعرض بشكل مستطيلات شفافة أو ملونة.
يمكن تخصيص كل نسبة لونًا وشكلًا خاصًا.
تُستخدم PRZ كأداة توقع للموجة التالية أو لتحديد أهداف وقف الخسارة وجني الأرباح ديناميكيًا.
🖍️ دعم الاتجاهين وتلوين الموجات:
يدعم المؤشر النماذج الصاعدة والهابطة بشكل تلقائي.
يتم استخدام تلوين بصري لتسهيل التمييز:
الأزرق: للموجات الصاعدة
الأحمر: للموجات الهابطة
لون تعبئة مخصص لمناطق التصحيح
🔔 نظام التنبيهات الذكية
يحتوي المؤشر على تنبيهات تلقائية يتم تفعيلها عند اكتمال أي نمط جديد.
يدعم التنبيهات التالية:
موجة دافعة جديدة
تصحيح بسيط ABC
تصحيح معقد WXY
التنبيهات تُطلق بعد إغلاق الشمعة التي تحقق فيها النموذج (غير فوري Repainting-safe)
⚙️ إعدادات المؤشر
📌 إعدادات تحليل الموجة:
Pivot Left Strength: عدد الأعمدة (bars) إلى اليسار لتحديد الانعكاس
Pivot Right Strength: الأعمدة إلى اليمين لتأكيد الانعكاس (0 يعني تنبؤ لحظي)
Enable Fibonacci Rules: تفعيل/تعطيل التحقق من فيبوناتشي
Fibonacci Tolerance: نسبة التفاوت المقبولة بالنسب المئوية
🎨 إعدادات العرض:
Show Previous Patterns: إظهار كل الأنماط المكتشفة أو آخر نمط فقط
PRZ Settings:
إظهار أو إخفاء نسب معينة
تخصيص الألوان
تحديد امتداد مربع PRZ زمنيًا (Max Bars)
🔕 إعدادات التنبيهات:
تفعيل/تعطيل تنبيه عند كل نمط جديد
📚 حالات الاستخدام العملية:
تحليل الحركة السعرية في بداية كل جلسة
دمج المؤشر مع أدوات مثل RSI أو MACD للحصول على إشارات مركّبة
مراقبة الموجات التوسعية والتصحيحية على فواصل 4H / Daily
استخدام PRZ كأداة لتحديد الأهداف أو وقف الخسارة
التعلم العملي لنظرية إليوت من خلال أمثلة حية
📝 ملاحظات مهمة:
تعيين Pivot Right = 0 يعني نقاط فورية (قد يعاد رسمها لاحقًا)
تعطيل فيبوناتشي يزيد عدد النماذج، لكن قد يُضعف دقتها
TradingView يحد عدد الكائنات المرسومة (Labels, Boxes, Lines) إلى 500، مما قد يؤدي إلى حذف الأنماط الأقدم تلقائيًا
PRZ يمتد افتراضيًا حتى 100 شمعة، أو 0.618 من مدة الموجة الدافعة السابقة
⚠️ إخلاء مسؤولية:
هذا المؤشر لأغراض تعليمية وتحليلية فقط. لا يُمثل نصيحة مالية أو استثمارية أو تداولية. استخدمه بالتزامن مع استراتيجيتك الخاصة وإدارة المخاطر. لا يتحمل TradingView ولا المطور مسؤولية أي قرارات مالية أو خسائر.
Four Trading SessionsIve adapted this from someone else's script to include 4 sessions instead of 3
TradingView Indicator Description: Trading Sessions
Overview:
The "Trading Sessions" indicator, written in Pine Script v5, visually highlights major forex trading sessions (Tokyo, London, New York, and Sydney) on intraday charts. It displays session ranges as colored boxes, with optional open/close lines, average price lines, and labels showing session names, tick ranges, and average prices. Users can customize session times, time zones, colors, and display options.
Key Features:
Customizable Sessions: Supports up to four trading sessions (Tokyo, London, New York, Sydney) with user-defined names, time ranges, and time zones (e.g., "Asia/Tokyo", "America/New_York").
Visual Elements:
Draws semi-transparent boxes to mark session price ranges (high/low).
Optional dashed lines for session open and close prices.
Optional dotted line for the session's average price.
Labels displaying session name, tick range, and/or average price (configurable).
Time Zone Support: Specify time zones using IANA database names (e.g., "Australia/Sydney") or GMT notation, with a recommendation for IANA to handle daylight savings.
Display Options: Toggle session names, open/close lines, tick range, and average price visibility.
Intraday Restriction: Works only on intraday timeframes, with an error for daily/weekly/monthly charts.
Performance Optimized: Limits boxes, lines, and labels to 500 each to ensure smooth performance.
Inputs:
General Settings:
Show session names, open/close lines, tick range, and average price (all enabled by default).
Per Session (Tokyo, London, New York, Sydney):
Enable/disable session display.
Custom session name (e.g., "Tokyo").
Session time range (e.g., "0900-1500" for Tokyo).
Time zone (e.g., "Asia/Tokyo").
Session color (semi-transparent blue, orange, green, purple by default).
How It Works:
The script checks if the current bar falls within a session’s time range (adjusted for the specified time zone).
For each active session, it creates a box spanning the session’s high/low and updates it bar-by-bar.
Optional open/close lines and an average price line are drawn and updated dynamically.
Labels display user-selected metrics (name, range, average price) at the bottom of each session box.
Sessions reset daily, ensuring accurate representation across days.
Use Case:
Ideal for forex traders who want to analyze price action during specific trading sessions. The indicator helps identify session-specific volatility, key price levels, and trends, with clear visual cues and customizable settings.
Limitations:
Only works on intraday timeframes.
Limited to 500 boxes, lines, and labels to prevent performance issues.
Requires accurate time zone settings for proper session alignment.
Example:
Enable the Tokyo and New York sessions, set their respective time zones, and toggle on all display options to see colored boxes, open/close lines, average price lines, and labels with tick ranges and averages for each session.
Supply/Demand Zones - Fixed v3 (Cross YES Only)This Pine Script indicator creates Supply/Demand Zones with specific filtering criteria for TradingView. Here's a comprehensive description:
Supply/Demand Zones -(Cross YES Only)
Core Functionality
Session-Based Analysis: Identifies and visualizes price ranges during user-defined time sessions
Cross Validation Filter: Only displays zones when the "Cross" condition is met (Open and Close prices cross the mid-range level)
Real-Time Monitoring: Tracks price action during active sessions and creates zones after session completion
Key Features
Time Range Configuration
Customizable session hours (start/end time with minute precision)
Timezone support (default: Europe/Bucharest)
Flexible scheduling for different trading sessions
Visual Elements
Range Border: Dotted outline showing the full session range (High to Low)
Key Levels: Horizontal lines for High, Low, and Mid-range levels
Sub-Range Zones: Shaded areas showing Open and Close price zones
Percentage Labels: Display the percentage of range occupied by Open/Close zones
Active Session Background: Blue background highlighting during active sessions
Smart Filtering System
Cross Condition: Only creates zones when:
Open < Mid AND Close > Mid (bullish cross), OR
Open > Mid AND Close < Mid (bearish cross)
This filter ensures only significant price movements that cross the session's midpoint are highlighted
Customization Options
Display Controls: Toggle visibility for borders, lines, zones, and labels
Color Schemes: Full color customization for all elements
Transparency Settings: Adjustable transparency for zone fills
Text Styling: Configurable label colors and information display
Technical Specifications
Maximum capacity: 500 boxes, 500 lines, 200 labels
Overlay indicator (draws directly on price chart)
Bar-time based positioning for accurate historical placement
Use Cases
Supply/Demand Trading: Identify key price levels where institutions may have interest
Session Analysis: Understand price behavior during specific trading hours
Breakout Detection: Focus on sessions where price crosses significant levels
Support/Resistance: Use range levels for future trade planning
What Makes It Unique
The "Cross YES Only" filter ensures that only meaningful price sessions are highlighted - those where the market shows directional bias by crossing from one side of the range to the other, indicating potential institutional interest or significant market sentiment shifts.
Info TableOverview
The Info Table V1 is a versatile TradingView indicator tailored for intraday futures traders, particularly those focusing on MESM2 (Micro E-mini S&P 500 futures) on 1-minute charts. It presents essential market insights through two customizable tables: the Main Table for predictive and macro metrics, and the New Metrics Table for momentum and volatility indicators. Designed for high-activity sessions like 9:30 AM–11:00 AM CDT, this tool helps traders assess price alignment, sentiment, and risk in real-time. Metrics update dynamically (except weekly COT data), with optional alerts for key conditions like volatility spikes or momentum shifts.
This indicator builds on foundational concepts like linear regression for predictions and adapts open-source elements for enhanced functionality. Gradient code is adapted from TradingView's Color Library. QQE logic is adapted from LuxAlgo's QQE Weighted Oscillator, licensed under CC BY-NC-SA 4.0. The script is released under the Mozilla Public License 2.0.
Key Features
Two Customizable Tables: Positioned independently (e.g., top-right for Main, bottom-right for New Metrics) with toggle options to show/hide for a clutter-free chart.
Gradient Coloring: User-defined high/low colors (default green/red) for quick visual interpretation of extremes, such as overbought/oversold or high volatility.
Arrows for Directional Bias: In the New Metrics Table, up (↑) or down (↓) arrows appear in value cells based on metric thresholds (top/bottom 25% of range), indicating bullish/high or bearish/low conditions.
Consensus Highlighting: The New Metrics Table's title cells ("Metric" and "Value") turn green if all arrows are ↑ (strong bullish consensus), red if all are ↓ (strong bearish consensus), or gray otherwise.
Predicted Price Plot: Optional line (default blue) overlaying the ML-predicted price for visual comparison with actual price action.
Alerts: Notifications for high/low Frahm Volatility (≥8 or ≤3) and QQE Bias crosses (bullish/bearish momentum shifts).
Main Table Metrics
This table focuses on predictive, positional, and macro insights:
ML-Predicted Price: A linear regression forecast using normalized price, volume, and RSI over a customizable lookback (default 500 bars). Gradient scales from low (red) to high (green) relative to the current price ± threshold (default 100 points).
Deviation %: Percentage difference between current price and predicted price. Gradient highlights extremes (±0.5% default threshold), signaling potential overextensions.
VWAP Deviation %: Percentage difference from Volume Weighted Average Price (VWAP). Gradient indicates if price is above (green) or below (red) fair value (±0.5% default).
FRED UNRATE % Change: Percentage change in U.S. unemployment rate (via FRED data). Cell turns red for increases (economic weakness), green for decreases (strength), gray if zero or disabled.
Open Interest: Total open MESM2 futures contracts. Gradient scales from low (red) to high (green) up to a hardcoded 300,000 threshold, reflecting market participation.
COT Commercial Long/Short: Weekly Commitment of Traders data for commercial positions. Long cell green if longs > shorts (bullish institutional sentiment); Short cell red if shorts > longs (bearish); gray otherwise.
New Metrics Table Metrics
This table emphasizes technical momentum and volatility, with arrows for quick bias assessment:
QQE Bias: Smoothed RSI vs. trailing stop (default length 14, factor 4.236, smooth 5). Green for bullish (RSI > stop, ↑ arrow), red for bearish (RSI < stop, ↓ arrow), gray for neutral.
RSI: Relative Strength Index (default period 14). Gradient from oversold (red, <30 + threshold offset, ↓ arrow if ≤40) to overbought (green, >70 - offset, ↑ arrow if ≥60).
ATR Volatility: Score (1–20) based on Average True Range (default period 14, lookback 50). High scores (green, ↑ if ≥15) signal swings; low (red, ↓ if ≤5) indicate calm.
ADX Trend: Average Directional Index (default period 14). Gradient from weak (red, ↓ if ≤0.25×25 threshold) to strong trends (green, ↑ if ≥0.75×25).
Volume Momentum: Score (1–20) comparing current to historical volume (lookback 50). High (green, ↑ if ≥15) suggests pressure; low (red, ↓ if ≤5) implies weakness.
Frahm Volatility: Score (1–20) from true range over a window (default 24 hours, multiplier 9). Dynamic gradient (green/red/yellow); ↑ if ≥7.5, ↓ if ≤2.5.
Frahm Avg Candle (Ticks): Average candle size in ticks over the window. Blue gradient (or dynamic green/red/yellow); ↑ if ≥0.75 percentile, ↓ if ≤0.25.
Arrows trigger on metric-specific logic (e.g., RSI ≥60 for ↑), providing directional cues without strict color ties.
Customization Options
Adapt the indicator to your strategy:
ML Inputs: Lookback (10–5000 bars) and RSI period (2+) for prediction sensitivity—shorter for volatility, longer for trends.
Timeframes: Individual per metric (e.g., 1H for QQE Bias to match higher frames; blank for chart timeframe).
Thresholds: Adjust gradients and arrows (e.g., Deviation 0.1–5%, ADX 0–100, RSI overbought/oversold).
QQE Settings: Length, factor, and smooth for fine-tuned momentum.
Data Toggles: Enable/disable FRED, Open Interest, COT for focus (e.g., disable macro for pure intraday).
Frahm Options: Window hours (1+), scale multiplier (1–10), dynamic colors for avg candle.
Plot/Table: Line color, positions, gradients, and visibility.
Ideal Use Case
Perfect for MESM2 scalpers and trend traders. Use the Main Table for entry confirmation via predicted deviations and institutional positioning. Leverage the New Metrics Table arrows for short-term signals—enter bullish on green consensus (all ↑), avoid chop on low volatility. Set alerts to catch shifts without constant monitoring.
Why It's Valuable
Info Table V1 consolidates diverse metrics into actionable visuals, answering critical questions: Is price mispriced? Is momentum aligning? Is volatility manageable? With real-time updates, consensus highlights, and extensive customization, it enhances precision in fast markets, reducing guesswork for confident trades.
Note: Optimized for futures; some metrics (OI, COT) unavailable on non-futures symbols. Test on demo accounts. No financial advice—use at your own risk.
The provided script reuses open-source elements from TradingView's Color Library and LuxAlgo's QQE Weighted Oscillator, as noted in the script comments and description. Credits are appropriately given in both the description and code comments, satisfying the requirement for attribution.
Regarding significant improvements and proportion:
The QQE logic comprises approximately 15 lines of code in a script exceeding 400 lines, representing a small proportion (<5%).
Adaptations include integration with multi-timeframe support via request.security, user-customizable inputs for length, factor, and smooth, and application within a broader table-based indicator for momentum bias display (with color gradients, arrows, and alerts). This extends the original QQE beyond standalone oscillator use, incorporating it as one of seven metrics in the New Metrics Table for confluence analysis (e.g., consensus highlighting when all metrics align). These are functional enhancements, not mere stylistic or variable changes.
The Color Library usage is via official import (import TradingView/Color/1 as Color), leveraging built-in gradient functions without copying code, and applied to enhance visual interpretation across multiple metrics.
The script complies with the rules: reused code is minimal, significantly improved through integration and expansion, and properly credited. It qualifies for open-source publication under the Mozilla Public License 2.0, as stated.
RSI Mansfield +RSI Mansfield+ – Adaptive Relative Strength Indicator with Divergences
Overview
RSI Mansfield+ is an advanced relative strength indicator that compares your instrument’s performance against a configurable benchmark index or asset (e.g., Bitcoin Dominance, S&P 500). It combines Mansfield normalization, adaptive smoothing techniques, and automatic detection of bullish and bearish divergences (regular and hidden), delivering a comprehensive tool for assessing relative strength across any market and timeframe.
Originality and Motivation
Unlike traditional relative strength scripts, this indicator introduces several distinctive improvements:
Mansfield Normalization: Scales the ratio between the asset and the benchmark relative to its moving average, transforming it into a normalized oscillator that fluctuates around zero, making it easier to spot outperformance or underperformance.
Adaptive Smoothing: Automatically selects whether to use EMA or SMA based on the market type (crypto or stocks) and timeframe (intraday, daily, weekly, monthly), avoiding manual configuration and providing more robust results under varying volatility conditions.
Divergence Detection: Identifies four types of divergences in the Mansfield oscillator to help anticipate potential reversal points or trend confirmations.
Multi-Market Support: Offers benchmark selection among major crypto and global stock indices from a single input.
These enhancements make RSI Mansfield+ more practical and powerful than conventional relative strength scripts with static benchmarks or without divergence capabilities.
Core Concepts
Relative Strength (RS): Compares price evolution between your asset and the selected benchmark.
Mansfield Normalization: Measures how much the RS deviates from its historical moving average, expressed as a scaled oscillator.
Divergences: Detects regular and hidden bullish or bearish divergences within the Mansfield oscillator.
Timeframe Adaptation: Dynamically adjusts moving average lengths based on timeframe and market type.
How It Works
Benchmark Selection
Choose among over 10 indices or market domains (BTC Dominance, ETH Dominance, S&P 500, European indices, etc.).
Ratio Calculation
Computes the price-to-benchmark ratio and smooths it with the adaptive moving average.
Normalization and Scaling
Transforms deviations into a Mansfield oscillator centered around zero.
Dynamic Coloring
Green indicates relative outperformance, red signals underperformance.
Divergence Detection
Automatically identifies bullish and bearish (regular and hidden) divergences by comparing oscillator pivots against price pivots.
Baseline Reference
A clear zero line helps interpret relative strength trends.
Usage Guidelines
Benchmark Comparison
Ideal for traders analyzing whether an asset is outperforming or lagging its sector or market.
Divergence Analysis
Helps detect potential reversal or continuation signals in relative strength.
Multi-Timeframe Compatibility
Can be applied to intraday, daily, weekly, or monthly charts.
Interpretation
Oscillator >0 and green: outperforming the benchmark.
Oscillator <0 and red: underperforming.
Bullish divergences: potential relative strength reversal to the upside.
Bearish divergences: possible loss of momentum or reversal to the downside.
Credits
The concept of Mansfield Relative Strength is based on Stan Weinstein’s original work on relative performance analysis. This script was built entirely from scratch in TradingView Pine Script v6, incorporating original logic for adaptive smoothing, normalized scaling, and divergence detection, without reusing any external open-source code.