Enhanced Stock Ticker with 50MA vs 200MADescription
The Enhanced Stock Ticker with 50MA vs 200MA is a versatile Pine Script indicator designed to visualize the relative position of a stock's price within its short-term and long-term price ranges, providing actionable bullish and bearish signals. By calculating normalized indices based on user-defined lookback periods (defaulting to 50 and 200 bars), this indicator helps traders identify potential reversals or trend continuations. It offers the flexibility to plot signals either on the main price chart or in a separate lower pane, leveraging Pine Script v6's force_overlay functionality for seamless integration. The indicator also includes a customizable ticker table, visual fills, and alert conditions for automated trading setups.
Key Features
Dual Lookback Indices: Computes short-term (default: 50 bars) and long-term (default: 200 bars) indices, normalizing the closing price relative to the high/low range over the specified periods.
Flexible Signal Plotting: Users can toggle between plotting crossover signals (triangles) on the main price chart (location.abovebar/belowbar) or in the lower pane (location.top/bottom) using the Plot Signals on Main Chart option.
Crossover Signals: Generates bullish (Golden Cross) and bearish (Death Cross) signals when the short or long index crosses above 5 or below 95, respectively.
Visual Enhancements:
Plots short-term (blue) and long-term (white) indices in a separate pane with customizable lookback periods.
Includes horizontal reference lines at 0, 20, 50, 80, and 100, with green and red fills to highlight overbought/oversold zones.
Dynamic fill between indices (green when short > long, red when long > short) for quick trend visualization.
Displays a ticker and legend table in the top-right corner, showing the symbol and lookback periods.
Alert Conditions: Supports alerts for bullish and bearish crossovers on both short and long indices, enabling integration with TradingView's alert system.
Technical Innovation: Utilizes Pine Script v6's force_overlay parameter to plot signals on the main chart from a non-overlay indicator, combining the benefits of a separate pane and chart-based signals in a single script.
Technical Details
Calculation Logic:
Uses confirmed bars (barstate.isconfirmed) to calculate indices, ensuring reliability by avoiding real-time bar fluctuations.
Short-term index: (close - lowest(low, lookback_short)) / (highest(high, lookback_short) - lowest(low, lookback_short)) * 100
Long-term index: (close - lowest(low, lookback_long)) / (highest(high, lookback_long) - lowest(low, lookback_long)) * 100
Signals are triggered using ta.crossover() and ta.crossunder() for indices crossing 5 (bullish) and 95 (bearish).
Signal Plotting:
Main chart signals use force_overlay=true with location.abovebar/belowbar for precise alignment with price bars.
Lower pane signals use location.top/bottom for visibility within the indicator pane.
Plotting is controlled by boolean conditions (e.g., bullishLong and plot_on_chart) to ensure compliance with Pine Script's global scope requirements.
Performance Considerations: Optimized for efficiency by calculating indices only on confirmed bars and using lightweight plotting functions.
How to Use
Add to Chart:
Copy the script into TradingView's Pine Editor and add it to your chart.
Configure Settings:
Short Lookback Period: Adjust the short-term lookback (default: 50 bars) to match your trading style (e.g., 20 for shorter-term analysis).
Long Lookback Period: Adjust the long-term lookback (default: 200 bars) for broader market context.
Plot Signals on Main Chart: Check this box to display signals on the price chart; uncheck to show signals in the lower pane.
Interpret Signals:
Golden Cross (Bullish): Green (long) or blue (short) triangles indicate the index crossing above 5, suggesting a potential buying opportunity.
Death Cross (Bearish): Red (long) or white (short) triangles indicate the index crossing below 95, signaling a potential selling opportunity.
Set Alerts:
Use TradingView's alert system to create notifications for the four alert conditions: Long Index Valley, Long Index Peak, Short Index Valley, and Short Index Peak.
Customize Visuals:
The ticker table displays the symbol and lookback periods in the top-right corner.
Adjust colors and styles via TradingView's settings if desired.
Example Use Cases
Swing Trading: Use the short-term index (e.g., 50 bars) to identify short-term reversals within a broader trend defined by the long-term index.
Trend Confirmation: Monitor the fill between indices to confirm whether the short-term trend aligns with the long-term trend.
Automated Trading: Leverage alert conditions to integrate with bots or manual trading strategies.
Notes
Testing: Always backtest the indicator on your chosen market and timeframe to validate its effectiveness.
Optional Histogram: The script includes a commented-out histogram for the index difference (index_short - index_long). Uncomment the plot(index_diff, ...) line to enable it.
Compatibility: Built for Pine Script v6 and tested on TradingView as of May 27, 2025.
Acknowledgments
This indicator was inspired by the need for a flexible tool that combines lower-pane analysis with main chart signals, made possible by Pine Script's force_overlay feature. Share your feedback or suggestions in the comments below, and happy trading!
Cerca negli script per "山子高科2025年一季度财务报告关键指标"
EMA5/21 + VWAP + MACD HistogramScript Summary: EMA + VWAP + MACD + RSI Strategy
Objective: Combine multiple technical indicators to identify market entry and exit opportunities, aiming to increase signal accuracy.
Indicators Used:
EMAs (Exponential Moving Averages): Periods of 5 (short-term) and 21 (long-term) to identify trend crossovers.
VWAP (Volume Weighted Average Price): Serves as a reference to determine if the price is in a fair value zone.
MACD (Moving Average Convergence Divergence): Standard settings of 12, 26, and 9 to detect momentum changes.
RSI (Relative Strength Index): Period of 14 to identify overbought or oversold conditions.
Entry Rules:
Buy (Long): 5-period EMA crosses above the 21-period EMA, price is above VWAP, MACD crosses above the signal line, and RSI is above 40.
Sell (Short): 5-period EMA crosses below the 21-period EMA, price is below VWAP, MACD crosses below the signal line, and RSI is below 60.
Exit Rules:
For long positions: When the 5-period EMA crosses below the 21-period EMA or MACD crosses below the signal line.
For short positions: When the 5-period EMA crosses above the 21-period EMA or MACD crosses above the signal line.
Visual Alerts:
Buy and sell signals are highlighted on the chart with green (buy) and red (sell) arrows below or above the corresponding candles.
Indicator Plotting:
The 5 and 21-period EMAs, as well as the VWAP, are plotted on the chart to facilitate the visualization of market conditions.
This script is a versatile tool for traders seeking to combine multiple technical indicators into a single strategy. It can be used across various timeframes and assets, allowing adjustments according to the trader's profile and market characteristics.
Juliano Einhardt Ulguim, Brazil, 05/27/2025.
US Presidents (Alternating Fills by Order)📜 Indicator Description: US Presidents Background Fill
This indicator highlights the terms of U.S. Presidents on your chart with alternating red and blue background fills based on their political party:
• 🟥 Republicans = Red
• 🟦 Democrats = Blue
• 🎨 Dark/Light shading alternates with each new president to clearly distinguish consecutive terms, even within the same party.
The fill starts from President Ulysses S. Grant (18th President, 1873) through to the 47th president in 2025. It is designed to work with any asset and automatically adapts to the visible date range on your chart.
Ideal for visualizing macro trends, historical context, and how markets may have reacted under different political administrations.
Mogwai Method with RSI and EMA - BTCUSD 15mThis is a custom TradingView indicator designed for trading Bitcoin (BTCUSD) on a 15-minute timeframe. It’s based on the Mogwai Method—a mean-reversion strategy—enhanced with the Relative Strength Index (RSI) for momentum confirmation. The indicator generates buy and sell signals, visualized as green and red triangle arrows on the chart, to help identify potential entry and exit points in the volatile cryptocurrency market.
Components
Bollinger Bands (BB):
Purpose: Identifies overextended price movements, signaling potential reversions to the mean.
Parameters:
Length: 20 periods (standard for mean-reversion).
Multiplier: 2.2 (slightly wider than the default 2.0 to suit BTCUSD’s volatility).
Role:
Buy signal when price drops below the lower band (oversold).
Sell signal when price rises above the upper band (overbought).
Relative Strength Index (RSI):
Purpose: Confirms momentum to filter out false signals from Bollinger Bands.
Parameters:
Length: 14 periods (classic setting, effective for crypto).
Overbought Level: 70 (price may be overextended upward).
Oversold Level: 30 (price may be overextended downward).
Role:
Buy signal requires RSI < 30 (oversold).
Sell signal requires RSI > 70 (overbought).
Exponential Moving Averages (EMAs) (Plotted but not currently in signal logic):
Purpose: Provides trend context (included in the script for visualization, optional for signal filtering).
Parameters:
Fast EMA: 9 periods (short-term trend).
Slow EMA: 50 periods (longer-term trend).
Role: Can be re-added to filter signals (e.g., buy only when Fast EMA > Slow EMA).
Signals (Triangles):
Buy Signal: Green upward triangle below the bar when price is below the lower Bollinger Band and RSI is below 30.
Sell Signal: Red downward triangle above the bar when price is above the upper Bollinger Band and RSI is above 70.
How It Works
The indicator combines Bollinger Bands and RSI to spot mean-reversion opportunities:
Buy Condition: Price breaks below the lower Bollinger Band (indicating oversold conditions), and RSI confirms this with a reading below 30.
Sell Condition: Price breaks above the upper Bollinger Band (indicating overbought conditions), and RSI confirms this with a reading above 70.
The strategy assumes that extreme price movements in BTCUSD will often revert to the mean, especially in choppy or ranging markets.
Visual Elements
Green Upward Triangles: Appear below the candlestick to indicate a buy signal.
Red Downward Triangles: Appear above the candlestick to indicate a sell signal.
Bollinger Bands: Gray lines (upper, middle, lower) plotted for reference.
EMAs: Blue (Fast) and Orange (Slow) lines for trend visualization.
How to Use the Indicator
Setup
Open TradingView:
Log into TradingView and select a BTCUSD chart from a supported exchange (e.g., Binance, Coinbase, Bitfinex).
Set Timeframe:
Switch the chart to a 15-minute timeframe (15m).
Add the Indicator:
Open the Pine Editor (bottom panel in TradingView).
Copy and paste the script provided.
Click “Add to Chart” to apply it.
Verify Display:
You should see Bollinger Bands (gray), Fast EMA (blue), Slow EMA (orange), and buy/sell triangles when conditions are met.
Trading Guidelines
Buy Signal (Green Triangle Below Bar):
What It Means: Price is oversold, potentially ready to bounce back toward the Bollinger Band middle line.
Action:
Enter a long position (buy BTCUSD).
Set a take-profit near the middle Bollinger Band (bb_middle) or a resistance level.
Place a stop-loss 1-2% below the entry (or based on ATR, e.g., ta.atr(14) * 2).
Best Context: Works well in ranging markets; avoid during strong downtrends.
Sell Signal (Red Triangle Above Bar):
What It Means: Price is overbought, potentially ready to drop back toward the middle line.
Action:
Enter a short position (sell BTCUSD) or exit a long position.
Set a take-profit near the middle Bollinger Band or a support level.
Place a stop-loss 1-2% above the entry.
Best Context: Effective in ranging markets; avoid during strong uptrends.
Trend Filter (Optional):
To reduce false signals in trending markets, you can modify the script:
Add and ema_fast > ema_slow to the buy condition (only buy in uptrends).
Add and ema_fast < ema_slow to the sell condition (only sell in downtrends).
Check the Fast EMA (blue) vs. Slow EMA (orange) alignment visually.
Tips for BTCUSD on 15-Minute Charts
Volatility: BTCUSD can be erratic. If signals are too frequent, increase bb_mult (e.g., to 2.5) or adjust RSI levels (e.g., 75/25).
Confirmation: Use volume spikes or candlestick patterns (e.g., doji, engulfing) to confirm signals.
Time of Day: Mean-reversion works best during low-volume periods (e.g., Asian session in crypto).
Backtesting: Use TradingView’s Strategy Tester (convert to a strategy by adding entry/exit logic) to evaluate performance with historical BTCUSD data up to March 13, 2025.
Risk Management
Position Size: Risk no more than 1-2% of your account per trade.
Stop Losses: Always use stops to protect against BTCUSD’s sudden moves.
Avoid Overtrading: Wait for clear signals; don’t force trades in choppy or unclear conditions.
Example Scenario
Chart: BTCUSD, 15-minute timeframe.
Buy Signal: Price drops to $58,000, below the lower Bollinger Band, RSI at 28. A green triangle appears.
Action: Buy at $58,000, target $59,000 (middle BB), stop at $57,500.
Sell Signal: Price rises to $60,500, above the upper Bollinger Band, RSI at 72. A red triangle appears.
Action: Sell at $60,500, target $59,500 (middle BB), stop at $61,000.
This indicator is tailored for mean-reversion trading on BTCUSD. Let me know if you’d like to tweak it further (e.g., add filters, alerts, or alternative indicators)!
SW monthly Gann Days**Script Description:**
The script you are looking at is based on the work of W.D. Gann, a famous trader and market analyst in the early 20th century, known for his use of geometry, astrology, and numerology in market analysis. Gann believed that certain days in the market had significant importance, and he observed that markets often exhibited significant price moves around specific dates. These dates were typically associated with cyclical patterns in price movements, and Gann referred to these as "Gann Days."
In this script, we have focused on highlighting certain days of the month that Gann believed to have an influence on market behavior. The specific days in question are the **6th to 7th**, **9th to 10th**, **14th to 15th**, **19th to 20th**, **23rd to 24th**, and **29th to 31st** of each month. These ranges are based on Gann’s theory that there are recurring time cycles in the market that cause turning points or critical price movements to occur around certain days of the month.
### **Why Gann Used These Days:**
1. **Mathematical and Astrological Cycles:**
Gann believed that markets were influenced by natural cycles, and that certain dates (or combinations of dates) played a critical role in the price movements. These specific days are part of his broader theory of "time cycles" where the market would often change direction, reverse, or exhibit significant volatility on particular days. Gann's research was based on both mathematical principles and astrological observations, leading him to assign importance to these days.
2. **Gann's Universal Timing Theory:**
According to Gann, financial markets operate in a universe governed by geometric and astrological principles. These cycles repeat themselves over time, and specific days in a given month correspond to key turning points within these repeating cycles. Gann found that the 6th to 7th, 9th to 10th, 14th to 15th, 19th to 20th, 23rd to 24th, and 29th to 31st often marked significant changes in the market, making them particularly important for traders to watch.
3. **Market Psychology and Sentiment:**
These specific days likely correspond to key moments where market participants tend to react in predictable ways, influenced by past market behavior on similar dates. For example, news events or scheduled economic reports might fall within these time windows, causing the market to respond in a particular way. Gann's method involves using these cyclical patterns to predict turning points in market prices, enabling traders to anticipate when the market might make a reversal or face a significant shift in direction.
4. **Turning Points:**
Gann believed that markets often reversed or encountered critical points around specific dates. This is why he considered certain days more important than others. By identifying and focusing on these days, traders can better anticipate the market’s movement and make more informed trading decisions.
5. **Numerology:**
Gann also utilized numerology in his trading system, believing that numbers, and particularly certain key numbers, had significance in predicting market movements. The days selected in this script may correspond to numerological patterns that Gann identified in his analysis of the markets, such as recurring numbers in his astrological and geometric systems.
### **Purpose of the Script:**
This script highlights these "Gann Days" within a trading chart for 2024 and 2025. The color-coding or background highlighting is intended to draw attention to these dates, so traders can observe the potential for significant market movements during these times. By identifying these specific dates, traders following Gann's theories may gain insights into possible turning points, corrections, or key price movements based on the market's historical behavior around these days.
Overall, Gann’s use of specific days was based on his deep belief in the cyclical nature of the market and his attempt to tie those cycles to the natural laws of time, geometry, and astrology. By focusing on these dates, Gann aimed to give traders an edge in predicting significant market events and price shifts.
CM_VixFix_RSI_HMA200_TrailStop_vFinal📌 CM_VixFix_RSI_HMA200_TrailStop – vFinal | BTC 30-Minute Strategy (Long & Short)
This strategy combines volatility-based market shock detection (Williams Vix Fix), trend confirmation (HMA200), and momentum filtering (RSI) to generate high-probability trade entries. It is engineered for BTC/USDT on the 30-minute timeframe, with carefully tuned parameters through extensive backtesting.
🎯 Core Components:
WVF (Williams Vix Fix): Identifies volatility spikes, acting as a proxy for oversold conditions or panic drops.
RSI (Relative Strength Index): Generates directional momentum signals, with separate thresholds for long and short entries.
HMA200: Filters trades based on the prevailing market trend. Trades are only allowed in the direction of HMA slope and position.
ATR-Based Trailing Stop Engine: Activates after a minimum profit threshold is hit. Combines dynamic trailing logic with a Hard Stop (maximum loss limit) to mitigate risk.
⚠️ Short-Side Challenges & Solutions
During development, the short-side trades exhibited a lower win rate, a common behavior in crypto bull-biased markets. To address this, we implemented:
RSI trigger reduced to 20 to capture only high-momentum sell-offs.
Dual confirmation: RSI must also be below its EMA(21) and price below EMA(100).
MaxBars filter (10 candles): Prevents multiple short entries in tight ranges or low-volatility zones.
As a result:
Short trades now yield a Risk/Reward ratio above 3.4
Average short trade profit is ~3x the average loss, making short entries valuable despite lower hit rate.
📊 Performance Summary (Backtest: BTCUSDT, 30-Min, July 2024–July 2025)
Metric Long Short Overall
Total Trades 401 50 451
Win Rate 49.6% 30.0% 47.4%
Avg PnL 311 USDT 1,229 USDT 413 USDT
Risk/Reward (Avg K/L) 1.05 3.48 1.16
🚨 Disclaimer
This strategy is not a plug-and-play black box. While signals are statistically validated, we strongly recommend using this tool in conjunction with:
Volume and time-of-day filters
Fundamental/macro overlays (especially around Fed announcements or CPI data)
A broader risk management framework
Note: This strategy has been optimized exclusively for BTC/USDT on the 30-minute timeframe. If applied to other assets or timeframes, recalibration is necessary.
log.info() - 5 Exampleslog.info() is one of the most powerful tools in Pine Script that no one knows about. Whenever you code, you want to be able to debug, or find out why something isn’t working. The log.info() command will help you do that. Without it, creating more complex Pine Scripts becomes exponentially more difficult.
The first thing to note is that log.info() only displays strings. So, if you have a variable that is not a string, you must turn it into a string in order for log.info() to work. The way you do that is with the str.tostring() command. And remember, it's all lower case! You can throw in any numeric value (float, int, timestamp) into str.string() and it should work.
Next, in order to make your output intelligible, you may want to identify whatever value you are logging. For example, if an RSI value is 50, you don’t want a bunch of lines that just say “50”. You may want it to say “RSI = 50”.
To do that, you’ll have to use the concatenation operator. For example, if you have a variable called “rsi”, and its value is 50, then you would use the “+” concatenation symbol.
EXAMPLE 1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
log.info(“RSI= ” + str.tostring(rsi))
Example Output =>
RSI= 50
Here, we use double quotes to create a string that contains the name of the variable, in this case “RSI = “, then we concatenate it with a stringified version of the variable, rsi.
Now that you know how to write a log, where do you view them? There isn’t a lot of documentation on it, and the link is not conveniently located.
Open up the “Pine Editor” tab at the bottom of any chart view, and you’ll see a “3 dot” button at the top right of the pane. Click that, and right above the “Help” menu item you’ll see “Pine logs”. Clicking that will open that to open a pane on the right of your browser - replacing whatever was in the right pane area before. This is where your log output will show up.
But, because you’re dealing with time series data, using the log.info() command without some type of condition will give you a fast moving stream of numbers that will be difficult to interpret. So, you may only want the output to show up once per bar, or only under specific conditions.
To have the output show up only after all computations have completed, you’ll need to use the barState.islast command. Remember, barState is camelCase, but islast is not!
EXAMPLE 2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
if barState.islast
log.info("RSI=" + str.tostring(rsi))
plot(rsi)
However, this can be less than ideal, because you may want the value of the rsi variable on a particular bar, at a particular time, or under a specific chart condition. Let’s hit these one at a time.
In each of these cases, the built-in bar_index variable will come in handy. When debugging, I typically like to assign a variable “bix” to represent bar_index, and include it in the output.
So, if I want to see the rsi value when RSI crosses above 0.5, then I would have something like
EXAMPLE 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,0.5)
if rsiCrossedOver
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
bix=19964 - RSI=51.8449459867
bix=19972 - RSI=50.0975830828
bix=19983 - RSI=53.3529808079
bix=19985 - RSI=53.1595745146
bix=19999 - RSI=66.6466337654
bix=20001 - RSI=52.2191767466
Here, we see that the output only appears when the condition is met.
A useful thing to know is that if you want to limit the number of decimal places, then you would use the command str.tostring(rsi,”#.##”), which tells the interpreter that the format of the number should only be 2 decimal places. Or you could round the rsi variable with a command like rsi2 = math.round(rsi*100)/100 . In either case you’re output would look like:
bix=19964 - RSI=51.84
bix=19972 - RSI=50.1
bix=19983 - RSI=53.35
bix=19985 - RSI=53.16
bix=19999 - RSI=66.65
bix=20001 - RSI=52.22
This would decrease the amount of memory that’s being used to display your variable’s values, which can become a limitation for the log.info() command. It only allows 4096 characters per line, so when you get to trying to output arrays (which is another cool feature), you’ll have to keep that in mind.
Another thing to note is that log output is always preceded by a timestamp, but for the sake of brevity, I’m not including those in the output examples.
If you wanted to only output a value after the chart was fully loaded, that’s when barState.islast command comes in. Under this condition, only one line of output is created per tick update — AFTER the chart has finished loading. For example, if you only want to see what the the current bar_index and rsi values are, without filling up your log window with everything that happens before, then you could use the following code:
EXAMPLE 4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
if barstate.islast
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
Example Output =>
bix=20203 - RSI=53.1103309071
This value would keep updating after every new bar tick.
The log.info() command is a huge help in creating new scripts, however, it does have its limitations. As mentioned earlier, only 4096 characters are allowed per line. So, although you can use log.info() to output arrays, you have to be aware of how many characters that array will use.
The following code DOES NOT WORK! And, the only way you can find out why will be the red exclamation point next to the name of the indicator. That, and nothing will show up on the chart, or in the logs.
// CODE DOESN’T WORK
//@version=6
indicator("MW - log.info()")
var array rsi_arr = array.new()
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50)
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
// No code errors, but will not compile because too much is being written to the logs.
However, after putting some time restrictions in with the i_startTime and i_endTime user input variables, and creating a dateFilter variable to use in the conditions, I can limit the size of the final array. So, the following code does work.
EXAMPLE 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// CODE DOES WORK
//@version=6
indicator("MW - log.info()")
i_startTime = input.time(title="Start", defval=timestamp("01 Jan 2025 13:30 +0000"))
i_endTime = input.time(title="End", defval=timestamp("1 Jan 2099 19:30 +0000"))
var array rsi_arr = array.new()
dateFilter = time >= i_startTime and time <= i_endTime
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50) and dateFilter // <== The dateFilter condition keeps the array from getting too big
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
rsi_arr:
bix=20210 - RSI=56.9030578034
Of course, if you restrict the decimal places by using the rounding the rsi value with something like rsiRounded = math.round(rsi * 100) / 100 , then you can further reduce the size of your array. In this case the output may look something like:
Example Output =>
rsi_arr:
bix=20210 - RSI=55.6947486019
This will give your code a little breathing room.
In a nutshell, I was coding for over a year trying to debug by pushing output to labels, tables, and using libraries that cluttered up my code. Once I was able to debug with log.info() it was a game changer. I was able to start building much more advanced scripts. Hopefully, this will help you on your journey as well.
RSI-Adaptive T3 + Squeeze Momentum Strategy✅ Strategy Guide: RSI-Adaptive T3 + Squeeze Momentum Strategy
📌 Overview
The RSI-Adaptive T3 + Squeeze Momentum Strategy is a dynamic trend-following strategy based on an RSI-responsive T3 moving average and Squeeze Momentum detection .
It adapts in real-time to market volatility to enhance entry precision and optimize risk.
⚠️ This strategy is provided for educational and research purposes only.
Past performance does not guarantee future results.
🎯 Strategy Objectives
The main objective of this strategy is to catch the early phase of a trend and generate consistent entry signals.
Designed to be intuitive and accessible for traders from beginner to advanced levels.
✨ Key Features
RSI-Responsive T3: T3 length dynamically adjusts according to RSI values for adaptive trend detection
Squeeze Momentum: Combines Bollinger Bands and Keltner Channels to identify trend buildup phases
Visual Triggers: Entry signals are generated from T3 crossovers and momentum strength after squeeze release
📊 Trading Rules
Long Entry:
When T3 crosses upward, momentum is positive, and the squeeze has just been released.
Short Entry:
When T3 crosses downward, momentum is negative, and the squeeze has just been released.
Exit (Reversal):
When the opposite condition to the entry is triggered, the position is reversed.
💰 Risk Management Parameters
Pair & Timeframe: BTC/USD (30-minute chart)
Capital (simulated): $30,00
Order size: `$100` per trade (realistic, low-risk sizing)
Commission: 0.02%
Slippage: 2 pips
Risk per Trade: 5%
Number of Trades (backtest period): 181
📊 Performance Overview
Symbol: BTC/USD
Timeframe: 30-minute chart
Date Range: January 1, 2024 – July 3, 2025
Win Rate: 47.8%
Profit Factor: 2.01
Net Profit: 173.16 (units not specified)
Max Drawdown: 5.77% or 24.91 (0.79%)
⚙️ Indicator Parameters
Indicator Name: RSI-Adaptive T3 + Squeeze Momentum
RSI Length: 14
T3 Min Length: 5
T3 Max Length: 50
T3 Volume Factor: 0.7
BB Length: 27 (Multiplier: 2.0)
KC Length: 20 (Multiplier: 1.5, TrueRange enabled)
🖼 Visual Support
T3 slope direction, squeeze status, and momentum bars are visually plotted on the chart,
providing high clarity for quick trend analysis and execution.
🔧 Strategy Improvements & Uniqueness
Inspired by the RSI Adaptive T3 by ChartPrime and Squeeze Momentum Indicator by LazyBear ,
this strategy fuses both into a hybrid trend-reversal and momentum breakout detection system .
Compared to traditional trend-following methods, it excels at capturing early trend signals with greater sensitivity .
✅ Summary
The RSI-Adaptive T3 + Squeeze Momentum Strategy combines momentum detection with volatility-responsive risk management.
With a strong balance between visual clarity and practicality, it serves as a powerful tool for traders seeking high repeatability.
⚠️ This strategy is based on historical data and does not guarantee future profits.
Always use appropriate risk management when applying it.
Intermarket Analisis V.1What is Intermarket Analysis?
Intermarket analysis looks at how various asset classes influence each other. The key idea is that markets are interconnected, and movements in one can signal or predict movements in another. For example:
Stocks and Bonds: Rising bond yields (e.g., US 10-year Treasury) often pressure stock prices downward.
Commodities and Forex: A rising US Dollar (USD) typically weakens gold (XAU/USD) prices due to their inverse relationship.
Forex and Equities: Strong economic data boosting equities might strengthen the USD.
This method helps you confirm trends, anticipate reversals, or avoid false signals in your EMA 10/20 crossover strategy.
Key Intermarket Relationships
USD Index (DXY) and Gold (XAU/USD):
Correlation: Inverse. When DXY rises (stronger USD), gold often falls, and vice versa.
Indicator: Track DXY on a separate chart. Use a 50-period SMA or RSI to spot overbought/oversold conditions in USD strength.
Application: If your EMA 10/20 gives a buy signal on gold but DXY is overbought (RSI > 70), it might be a false signal—wait for DXY to cool off.
US 10-Year Treasury Yields and Equities (e.g., S&P 500):
Correlation: Inverse. Higher yields increase borrowing costs, pressuring stocks.
Indicator: Use a 200-day EMA on yields (e.g., ^TNX) and compare with S&P 500’s 50-day EMA.
Application: If yields are trending up (above 200 EMA) while your EMA 10/20 signals a stock buy, consider it risky—cross-check with macro data.
Crude Oil (WTI/Brent) and Gold:
Correlation: Positive. Both are inflation hedges, so they often move together during economic uncertainty.
Indicator: Apply a MACD (12, 26, 9) on oil prices to confirm trend direction.
Application: If oil’s MACD shows a bullish crossover and your gold buy signal aligns, it strengthens the case for a trend.
Bond Yields and USD:
Correlation: Positive. Rising yields support a stronger USD.
Indicator: Use a Stochastic Oscillator (14, 3, 3) on DXY to spot momentum shifts.
Application: If Stochastic is overbought on DXY and yields are high, a gold sell signal from EMA 10/20 might be more reliable.
How to Apply Intermarket Analysis to Your EMA 10/20 Strategy
Your current strategy uses EMA 10/20 crossovers for entry/exit, with SL at swing low/high and no TP until an opposite crossover. Here’s how to integrate intermarket analysis:
Confirmation: Before acting on a buy signal (EMA 10 > EMA 20), check if DXY is weakening (e.g., below 50 SMA) or oil is rising (MACD bullish). This supports a gold uptrend.
Divergence Warning: If your EMA 10/20 buy signal occurs but DXY is trending up (strong USD) or yields are spiking, it might indicate a false breakout—hold off.
Macro Context: On July 02, 2025, 08:30 PM WIB, watch for upcoming US Jobless Claims (3-4 July). A weak report could boost gold and weaken USD, aligning with your buy signal.
IntermarketWhat is Intermarket Analysis?
Intermarket analysis looks at how various asset classes influence each other. The key idea is that markets are interconnected, and movements in one can signal or predict movements in another. For example:
Stocks and Bonds: Rising bond yields (e.g., US 10-year Treasury) often pressure stock prices downward.
Commodities and Forex: A rising US Dollar (USD) typically weakens gold (XAU/USD) prices due to their inverse relationship.
Forex and Equities: Strong economic data boosting equities might strengthen the USD.
This method helps you confirm trends, anticipate reversals, or avoid false signals in your EMA 10/20 crossover strategy.
Key Intermarket Relationships
USD Index (DXY) and Gold (XAU/USD):
Correlation: Inverse. When DXY rises (stronger USD), gold often falls, and vice versa.
Indicator: Track DXY on a separate chart. Use a 50-period SMA or RSI to spot overbought/oversold conditions in USD strength.
Application: If your EMA 10/20 gives a buy signal on gold but DXY is overbought (RSI > 70), it might be a false signal—wait for DXY to cool off.
US 10-Year Treasury Yields and Equities (e.g., S&P 500):
Correlation: Inverse. Higher yields increase borrowing costs, pressuring stocks.
Indicator: Use a 200-day EMA on yields (e.g., ^TNX) and compare with S&P 500’s 50-day EMA.
Application: If yields are trending up (above 200 EMA) while your EMA 10/20 signals a stock buy, consider it risky—cross-check with macro data.
Crude Oil (WTI/Brent) and Gold:
Correlation: Positive. Both are inflation hedges, so they often move together during economic uncertainty.
Indicator: Apply a MACD (12, 26, 9) on oil prices to confirm trend direction.
Application: If oil’s MACD shows a bullish crossover and your gold buy signal aligns, it strengthens the case for a trend.
Bond Yields and USD:
Correlation: Positive. Rising yields support a stronger USD.
Indicator: Use a Stochastic Oscillator (14, 3, 3) on DXY to spot momentum shifts.
Application: If Stochastic is overbought on DXY and yields are high, a gold sell signal from EMA 10/20 might be more reliable.
How to Apply Intermarket Analysis to Your EMA 10/20 Strategy
Your current strategy uses EMA 10/20 crossovers for entry/exit, with SL at swing low/high and no TP until an opposite crossover. Here’s how to integrate intermarket analysis:
Confirmation: Before acting on a buy signal (EMA 10 > EMA 20), check if DXY is weakening (e.g., below 50 SMA) or oil is rising (MACD bullish). This supports a gold uptrend.
Divergence Warning: If your EMA 10/20 buy signal occurs but DXY is trending up (strong USD) or yields are spiking, it might indicate a false breakout—hold off.
Macro Context: On July 02, 2025, 08:30 PM WIB, watch for upcoming US Jobless Claims (3-4 July). A weak report could boost gold and weaken USD, aligning with your buy signal.
Metaplanet MSW Strike LevelsMetaplanet Moving Strike Warrant (MSW) Price Tracker
This indicator displays Metaplanet's actual Moving Strike Warrant pricing schedule with real-time strike price visualization. It shows the exact strike prices that determine warrant exercise values based on Metaplanet's official MSW terms.
Key Features:
Current Period: Strike locked at ¥1,649 from June 24th through July 1st, 2025
Automatic Updates: Starting July 2nd, strike prices re-evaluate every 3 trading days using 3-day SMA of closing prices
Visual Strike Lines: Yellow horizontal lines show active MSW strike prices for each period
Background Signals: Light green when price is above strike (favorable), light red when below
Information Panel: Orange table displays current strike price and next evaluation date
Evaluation Markers: Orange/yellow dots mark re-evaluation dates
How It Works:
The indicator follows Metaplanet's official MSW schedule, automatically calculating new strike prices every 3 trading days based on the 3-day simple moving average of previous closing prices. This helps warrant holders track exercise opportunities and understand the dynamic pricing mechanism.
Heikin RiderHeikin Rider
Smoothed Heikin Ashi Breakout Signals with Flow Confirmation
by Ben Deharde, 2025
Overview:
Heikin Rider is a trend-following indicator that detects clean breakout signals using a custom smoothed Heikin Ashi wave (the H-Wave) with optional confirmation from a flow-based filter. It's designed for traders who want precise, momentum-aligned entries.
What It Does:
Plots dynamic high/low bands from smoothed Heikin Ashi candles.
Triggers Buy/Sell signals on full candle breakouts above/below the wave.
Colors bars based on price position and momentum relative to a custom flow line.
Optionally filters signals based on flow direction.
How the H-Wave Works:
The H-Wave is a two-stage smoothed Heikin Ashi construction:
Pre-smoothing: Price is smoothed using a short-length MA (SMA, EMA, or HMA).
HA Calculation: Heikin Ashi values are calculated from the smoothed data.
Post-smoothing: A second, longer MA is applied to the HA values.
Wave Envelope: The high and low wicks of the final smoothed HA candles form the H-Wave envelope.
Signals are generated when price fully breaks this envelope, with optional confirmation from the flow color.
Inputs:
Trend timeframe
Pre/Post smoothing type and length
Flow MA type and length
Toggle for bar coloring and signal filtering
Notes:
Built with original logic, using the open-source TAExt library (credited).
No repainting — all signals are confirmed at close.
For use on standard candles only (not HA or Renko).
Alerts:
Long Signal (Buy)
Short Signal (Sell)
Greer Revenue Yield📊 Greer Revenue Yield – RPS%
Author: Sean Lee Greer
Date Published: June 23, 2025
🔍 Overview
The Greer Revenue Yield indicator evaluates a stock's Revenue Per Share Yield (RPS%), giving investors a unique lens into how much top-line revenue a company produces per share relative to its stock price. This can help identify under- or over-valued conditions based on fundamental efficiency.
Revenue per Share = Total Revenue ÷ Shares Outstanding
Revenue Yield (%) = Revenue per Share ÷ Stock Price × 100
A simple yet powerful valuation metric, dynamically visualized with smart coloring:
🟢 Green = Yield is above average (potential value opportunity)
🔴 Red = Yield is below average (potentially overvalued)
🧠 Use Case
Use this tool to assess whether a company’s price justifies its revenue output on a per-share basis. Especially useful in combination with other indicators in the Greer Financial Toolkit:
📘 Greer Value – Tracks year-over-year growth consistency across 6 key financial metrics
📊 Greer Value Yields Dashboard – Visualizes multiple valuation-based yields
🟢 Greer BuyZone – Identifies long-term technical entry points based on trend cycles and valuation zones
⚠️ Disclaimer
This script is for educational purposes only and should not be considered financial advice. Always conduct your own research or consult a financial advisor before making investment decisions.
Greer Value Yields Dashboard🧾 Greer Value Yields Dashboard – v1.0
Author: Sean Lee Greer
Release Date: June 22, 2025
🧠 Overview
The Greer Value Yields Dashboard visualizes and evaluates four powerful valuation metrics for any publicly traded company:
📘 Earnings per Share Yield
💵 Free Cash Flow Yield
💰 Revenue Yield
🏦 Book Value Yield
Each yield is measured as a percentage of current stock price and compared against its historical average. The script assigns 1 point per metric when the current yield exceeds its long-term average. The total score (0 to 4) is displayed as a color-coded column chart, helping long-term investors quickly assess fundamental valuation strength.
✅ Key Features
📊 Real-time calculation of 4 yield-based valuation metrics
⚖ Historical average tracking for each yield
🎯 Visual scoring system:
🟥 0–1 = Weak
🟨 2 = Neutral
🟩 4 = Strong (all metrics above average)
🎛️ Toggle visibility of each yield independently
🧮 Fully compatible with other Greer Financial Toolkit indicators
🛠 Ideal For
Long-term value investors
Dividend and cash-flow-focused investors
Analysts seeking clean yield visualizations
Greer Toolkit users combining with Greer Value and BuyZone
lib_core_utilsLibrary "lib_core_utils"
Core utility functions for Pine Script strategies
Provides safe mathematical operations, array management, and basic helpers
Version: 1.0.0
Author: NQ Hybrid Strategy Team
Last Updated: 2025-06-18
===================================================================
safe_division(numerator, denominator)
safe_division
@description Performs division with safety checks for zero denominators and invalid values
Parameters:
numerator (float) : (float) The numerator value
denominator (float) : (float) The denominator value
Returns: (float) Result of division, or 0.0 if invalid
safe_division_detailed(numerator, denominator)
safe_division_detailed
@description Enhanced division with detailed result information
Parameters:
numerator (float) : (float) The numerator value
denominator (float) : (float) The denominator value
Returns: (SafeCalculationResult) Detailed calculation result
safe_multiply(a, b)
safe_multiply
@description Performs multiplication with safety checks for overflow and invalid values
Parameters:
a (float) : (float) First multiplier
b (float) : (float) Second multiplier
Returns: (float) Result of multiplication, or 0.0 if invalid
safe_add(a, b)
safe_add
@description Performs addition with safety checks
Parameters:
a (float) : (float) First addend
b (float) : (float) Second addend
Returns: (float) Result of addition, or 0.0 if invalid
safe_subtract(a, b)
safe_subtract
@description Performs subtraction with safety checks
Parameters:
a (float) : (float) Minuend
b (float) : (float) Subtrahend
Returns: (float) Result of subtraction, or 0.0 if invalid
safe_abs(value)
safe_abs
@description Safe absolute value calculation
Parameters:
value (float) : (float) Input value
Returns: (float) Absolute value, or 0.0 if invalid
safe_max(a, b)
safe_max
@description Safe maximum value calculation
Parameters:
a (float) : (float) First value
b (float) : (float) Second value
Returns: (float) Maximum value, handling NA cases
safe_min(a, b)
safe_min
@description Safe minimum value calculation
Parameters:
a (float) : (float) First value
b (float) : (float) Second value
Returns: (float) Minimum value, handling NA cases
safe_array_get(arr, index)
safe_array_get
@description Safely retrieves value from array with bounds checking
Parameters:
arr (array) : (array) The array to access
index (int) : (int) Index to retrieve
Returns: (float) Value at index, or na if invalid
safe_array_push(arr, value, max_size)
safe_array_push
@description Safely pushes value to array with size management
Parameters:
arr (array) : (array) The array to modify
value (float) : (float) Value to push
max_size (int) : (int) Maximum array size
Returns: (bool) True if push was successful
safe_array_unshift(arr, value, max_size)
safe_array_unshift
@description Safely adds value to beginning of array with size management
Parameters:
arr (array) : (array) The array to modify
value (float) : (float) Value to add at beginning
max_size (int) : (int) Maximum array size
Returns: (bool) True if unshift was successful
get_array_stats(arr, max_size)
get_array_stats
@description Gets statistics about an array
Parameters:
arr (array) : (array) The array to analyze
max_size (int) : (int) The maximum allowed size
Returns: (ArrayStats) Statistics about the array
cleanup_array(arr, target_size)
cleanup_array
@description Cleans up array by removing old elements if it's too large
Parameters:
arr (array) : (array) The array to cleanup
target_size (int) : (int) Target size after cleanup
Returns: (int) Number of elements removed
is_valid_price(price)
is_valid_price
@description Checks if a price value is valid for trading calculations
Parameters:
price (float) : (float) Price to validate
Returns: (bool) True if price is valid
is_valid_volume(vol)
is_valid_volume
@description Checks if a volume value is valid
Parameters:
vol (float) : (float) Volume to validate
Returns: (bool) True if volume is valid
sanitize_price(price, default_value)
sanitize_price
@description Sanitizes price value to ensure it's within valid range
Parameters:
price (float) : (float) Price to sanitize
default_value (float) : (float) Default value if price is invalid
Returns: (float) Sanitized price value
sanitize_percentage(pct)
sanitize_percentage
@description Sanitizes percentage value to 0-100 range
Parameters:
pct (float) : (float) Percentage to sanitize
Returns: (float) Sanitized percentage (0-100)
is_session_active(session_string, timezone)
Parameters:
session_string (string)
timezone (string)
get_session_progress(session_string, timezone)
Parameters:
session_string (string)
timezone (string)
format_price(price, decimals)
Parameters:
price (float)
decimals (int)
format_percentage(pct, decimals)
Parameters:
pct (float)
decimals (int)
bool_to_emoji(condition, true_emoji, false_emoji)
Parameters:
condition (bool)
true_emoji (string)
false_emoji (string)
log_debug(message, level)
Parameters:
message (string)
level (string)
benchmark_start()
benchmark_end(start_time)
Parameters:
start_time (int)
get_library_info()
get_library_version()
SafeCalculationResult
SafeCalculationResult
Fields:
value (series float) : (float) The calculated value
is_valid (series bool) : (bool) Whether the calculation was successful
error_message (series string) : (string) Error description if calculation failed
ArrayStats
ArrayStats
Fields:
size (series int) : (int) Current array size
max_size (series int) : (int) Maximum allowed size
is_full (series bool) : (bool) Whether array has reached max capacity
BTC Dominance Zones (For Altseason)Overview
The "BTC Dominance Zones (For Altseason)" indicator is a visual tool designed to help traders navigate the different phases of the altcoin market cycle by tracking Bitcoin Dominance (BTC.D).
It provides clear, color-coded zones directly on the BTC.D chart, offering an intuitive roadmap for the progression of alt season.
Purpose & Problem Solved
Many traders often miss altcoin rotations or get caught at market tops due to emotional decision-making or a lack of a clear framework. This indicator aims to solve that problem by providing an objective, historically informed guide based on Bitcoin Dominance, helping users to prepare before the market makes its decisive moves. It distils complex market dynamics into easily digestible sections.
Key Features & Components
Color-Coded Horizontal Zones: The indicator draws fixed horizontal bands on the BTC.D chart, each representing a distinct phase of the altcoin market cycle.
Descriptive Labels: Each zone is clearly labeled with its strategic meaning (e.g., "Alts are dead," "Danger Zone") and the corresponding BTC.D percentage range, positioned to the right of the price action for clarity.
Consistent Aesthetics: All text within the labels is rendered in white for optimal visibility across the colored zones.
Symbol Restriction: The indicator includes an automatic check to ensure it only draws its visuals when applied specifically to the CRYPTOCAP:BTC.D chart. If applied to another chart, it displays a helpful message and remains invisible to prevent confusion.
Methodology & Interpretation
The indicator's methodology is based on the historical behavior of Bitcoin Dominance during various market cycles, particularly the 2021 bull run. Each zone provides a specific interpretation for altcoin strategy:
Grey Zone (BTC.D 60-70%+): "Alts Are Dead"
Interpretation: When Bitcoin Dominance is in this grey zone (typically above 60%), Bitcoin is king, and capital remains concentrated in BTC. This indicates that alt season is largely inactive or "dead". This phase is generally not conducive for aggressive altcoin trading.
Blue Zone (BTC.D 55-60%): "Alt Season Loading"
Interpretation: As BTC.D drops into this blue zone (below 60%), it signals that the market is "heating up" for altcoins. This is the time to start planning and executing your initial positions in high-conviction large-cap and strong narrative plays, as capital begins to look for more risk.
Green Zone (BTC.D 50-55%): "Alt Season Underway"
Interpretation: Entering this green zone (below 55%) signifies that "real momentum" is building, and alt season is genuinely "underway". Money is actively flowing from Ethereum into large and mid-cap altcoins. If you've positioned correctly, your portfolio should be showing strong gains in this phase.
Orange Zone (BTC.D 45-50%): "Alt Season Ending"
Interpretation: As BTC.D dips into this orange zone (below 50%), it suggests that altcoin dominance is reaching its peak, indicating the "ending" phase of alt season. While euphoria might be high, this is a critical warning zone to prepare for profit-taking, as it's a phase of "peak risk".
Red Zone (BTC.D Below 45%): "Danger Zone - Alts Overheated"
Interpretation: This red zone (below 45%) is the most critical "DANGER ZONE". It historically marks the point of maximum froth and risk, where altcoins are overheated. This is the decisive signal to aggressively take profits, de-risk, and exit positions to preserve your capital before a potential sharp correction. Historically, dominance has gone as low as 39-40% in this phase.
How to Use
Open TradingView and search for the BTC.D symbol to load the Bitcoin Dominance chart and view the indicator.
Double click the indicator to access settings.
Inputs/Settings
The indicator's zone boundaries are set to historically relevant levels for consistency with the Alt Season Blueprint strategy. However, the colors of each zone are fully customizable through the indicator's settings, allowing users to personalize the visual appearance to their preference. You can access these color options in the indicator's "Settings" menu once it's added to your chart.
Disclaimer
This indicator is provided for informational and educational purposes only. It is not financial advice. Trading cryptocurrencies involves substantial risk of loss and is not suitable for every investor. Past performance is not indicative of future results. Always conduct your own research and consult with a qualified financial professional before making any investment decisions.
About the Author
This indicator was developed by Nick from Lab of Crypto.
Release Notes
v1.0 (June 2025): Initial release featuring color-coded horizontal BTC.D zones with descriptive labels, based on Alt Season Blueprint strategy. Includes symbol restriction for correct chart application and consistent white text.
Position Size Calculator v206/17/2025 - Updated to add MGC to list of instruments
Position Size Calculator for Futures Trading
A professional position sizing tool designed specifically for futures traders who want to maintain disciplined risk management. This indicator calculates the optimal number of contracts based on your predefined risk amount and provides instant visual feedback.
Key Features:
• Interactive price selection - simply click on the chart to set entry, stop loss, and take profit levels
• Supports all major futures contracts: ES, NQ, GC, RTY, YM, MNQ, MES with accurate contract specifications
• Customizable risk amount (defaults to $500 but fully adjustable)
• Real-time position size calculations that never exceed your risk tolerance
• Visual risk validation with color-coded header (green = valid risk, red = excessive risk)
• Automatic 2:1 risk/reward ratio calculations
• Compact, non-intrusive table display in top-right corner
• Clean interface with no chart clutter
How to Use:
Select your futures instrument from the dropdown
Set your maximum risk amount (default $500)
Click on the chart to set your Entry Price
Click on the chart to set your Stop Loss Price
Optionally click to set your Take Profit Price
The calculator instantly shows maximum contracts, actual risk, expected profit, and R/R ratio
Risk Management:
The indicator enforces strict risk management by calculating the maximum number of contracts you can trade while staying within your specified risk limit. The header turns green when your trade is within acceptable risk parameters and red when the risk is too high, providing instant visual feedback.
Perfect for day traders, swing traders, and anyone trading futures who wants to maintain consistent position sizing and risk management discipline.
Momentum ScopeOverview
Momentum Scope is a Pine Script™ v6 study that renders a –1 to +1 momentum heatmap across up to 32 lookback periods in its own pane. Using an Augmented Relative Momentum Index (ARMI) and color shading, it highlights where momentum strengthens, weakens, or stays flat over time—across any asset and timeframe.
Key Features
Full-Spectrum Momentum Map : Computes ARMI for 1–32 lookbacks, indexed from –1 (strong bearish) to +1 (strong bullish).
Flexible Scale Gradation : Choose Linear or Exponential spacing, with adjustable expansion ratio and maximum depth.
Trending Bias Control : Apply a contrast-style curve transform to emphasize trending vs. mean-reverting behavior.
Duotone & Tritone Palettes : Select between two vivid color styles, with user-definable hues for bearish, bullish, and neutral momentum.
Compact, Overlay-Free Display : Renders solely in its own pane—keeping your price chart clean.
Inputs & Customization
Scale Gradation : Linear or Exponential spacing of intervals
Scale Expansion : Ratio governing step-size between successive lookbacks
Scale Maximum : Maximum lookback period (and highest interval)
Trending Bias : Curve-transform bias to tilt the –1 … +1 grid
Color Style : Duotone or Tritone rendering modes
Reducing / Increasing / Neutral Colors : Pick your own hues for bearish, bullish, and flat zones
How to Use
Add to Chart : Apply “Momentum Scope” as a separate indicator.
Adjust Scale : For exponential spacing, switch your indicator Y-axis to Logarithmic .
Set Bias & Colors : Tweak Trending Bias and choose a palette that stands out on your layout.
Interpret the Heatmap :
Red tones = weakening/bearish momentum
Green tones = strengthening/bullish momentum
Neutral hues = indecision or flat momentum
Copyright © 2025 MVPMC. Licensed under MIT. For full license see opensource.org
Open Interest-RSI + Funding + Fractal DivergencesIndicator — “Open Interest-RSI + Funding + Fractal Divergences”
A multi-factor oscillator that fuses Open-Interest RSI, real-time Funding-Rate data and price/OI fractal divergences.
It paints BUY/SELL arrows in its own pane and directly on the price chart, helping you spot spots where crowd positioning, leverage costs and price action contradict each other.
1 Purpose
OI-RSI – measures conviction behind position changes instead of price momentum.
Funding Rate – shows who pays to hold positions (longs → bull bias, shorts → bear bias).
Fractal Divergences – detects HH/LL in price that are not confirmed by OI-RSI.
Optional Funding filter – hides signals when funding is already extreme.
Together these elements highlight exhaustion points and potential mean-reversion trades.
2 Inputs
RSI / Divergence
RSI length – default 14.
High-OI level / Low-OI level – default 70 / 30.
Fractal period n – default 2 (swing width).
Fractals to compare – how many past swings to scan, default 3.
Max visible arrows – keeps last 50 BUY/SELL arrows for speed.
Funding Rate
mode – choose FR, Avg Premium, Premium Index, Avg Prem + PI or FR-candle.
Visual scale (×) – multiplies raw funding to fit 0-100 oscillator scale (default 10).
specify symbol – enable only if funding symbol differs from chart.
use lower tf – averages 1-min premiums for smoother intraday view.
show table – tiny two-row widget at chart edge.
Signal Filter
Use Funding filter – ON hides long signals when funding > Buy-threshold and short signals when funding < Sell-threshold.
BUY threshold (%) – default 0.00 (raw %).
SELL threshold (%) – default 0.00 (raw %).
(Enter funding thresholds as raw percentages, e.g. 0.01 = +0.01 %).
3 Visual Outputs
Sub-pane
Aqua OI-RSI curve with 70 / 50 / 30 reference lines.
Funding visualised according to selected mode (green above 0, red below 0, or other).
BUY / SELL arrows at oscillator extremes.
Price chart
Identical BUY / SELL arrows plotted with force_overlay = true above/below candles that formed qualifying fractals.
Optional table
Shows current asset ticker and latest funding value of the chosen mode.
4 Signal Logic (Summary)
Load _OI series and compute RSI.
Retrieve Funding-Rate + Premium Index (optionally from lower TF).
Find fractal swings (n bars left & right).
Check divergence:
Bearish – price HH + OI-RSI LH.
Bullish – price LL + OI-RSI HL.
If Funding-filter enabled, require funding < Buy-thr (long) or > Sell-thr (short).
Plot arrows and trigger two built-in alerts (Bearish OI-RSI divergence, Bullish OI-RSI divergence).
Signals are fixed once the fractal bar closes; they do not repaint afterwards.
5 How to Use
Attach to a liquid perpetual-futures chart (BTC, ETH, major Binance contracts).
If _OI or funding series is missing you’ll see an error.
Choose timeframe:
15 m – 4 h for intraday;
1 D+ for swing trades.
Lower TFs → more signals; raise Fractals to compare or use Funding filter to trim noise.
Trade checklist
Funding positive and rising → longs overcrowded.
Price makes higher high; OI-RSI makes lower high; Funding above Sell-threshold → consider short.
Reverse logic for longs.
Combine with trend filter (EMA ribbon, SuperTrend, etc.) so you fade only when price is stretched.
Automation – set TradingView alerts on the two alertconditions and send to webhooks/bots.
Performance tips
Keep Max visible arrows ≤ 50.
Disable lower-TF premium aggregation if script feels heavy.
6 Limitations
Some symbols lack _OI or funding history → script stops with a console message.
Binance Premium Index begins mid-2020; older dates show na.
Divergences confirm only after n bars (no forward repaint).
7 Changelog
v1.0 – 10 Jun 2025
Initial public release.
Added price-chart arrows via force_overlay.
(Mustang Algo) Stochastic RSI + Triple EMAStochastic RSI + Triple EMA (StochTEMA)
Overview
The Stochastic RSI + Triple EMA indicator combines the Stochastic RSI oscillator with a Triple Exponential Moving Average (TEMA) overlay to generate clear buy and sell signals on the price chart. By measuring RSI overbought/oversold conditions and confirming trend direction with TEMA, this tool helps traders identify high-probability entries and exits while filtering out noise in choppy markets.
Key Features
Stochastic RSI Calculation
Computes a standard RSI over a user-defined period (default 50).
Applies a Stochastic oscillator to the RSI values over a second user-defined period (default 50).
Smooths the %K line by taking an SMA over a third input (default 3), and %D is an SMA of %K over another input (default 3).
Defines oversold when both %K and %D are below 20, and overbought when both are above 80.
Triple EMA (TEMA)
Calculates three successive EMAs on the closing price with the same length (default 9).
Combines them using TEMA = 3×(EMA1 – EMA2) + EMA3, producing a fast-reacting trend line.
Bullish trend is identified when price > TEMA and TEMA is rising; bearish trend when price < TEMA and TEMA is falling; neutral/flat when TEMA change is minimal.
Signal Logic
Strong Buy: Previous bar’s Stoch RSI was oversold (both %K and %D < 20), %K crosses above %D, and TEMA is in a bullish trend.
Medium Buy: %K crosses above %D (without requiring oversold), TEMA is bullish, and previous %K < 50.
Weak Buy: Previous bar’s %K and %D were oversold, %K crosses above %D, TEMA is flat or bullish (not bearish).
Strong Sell: Previous bar’s Stoch RSI was overbought (both %K and %D > 80), %K crosses below %D, and TEMA is bearish.
Medium Sell: %K crosses below %D (without requiring overbought), TEMA is bearish, and previous %K > 50.
Weak Sell: Previous bar’s %K and %D were overbought, %K crosses below %D, TEMA is flat or bearish (not bullish).
Visual Elements on Chart
TEMA Line: Plotted in cyan (#00BCD4) with a medium-thick line for clear trend visualization.
Buy/Sell Markers:
BUY STRONG: Lime label below the candle
BUY MEDIUM: Green triangle below the candle
BUY WEAK: Semi-transparent green circle below the candle
SELL STRONG: Red label above the candle
SELL MEDIUM: Orange triangle above the candle
SELL WEAK: Semi-transparent orange circle above the candle
Candle & Background Coloring: When a strong buy or sell signal occurs, the candle body is tinted (semi-transparent lime/red) and the chart background briefly flashes light green (buy) or light red (sell).
Dynamic Support/Resistance:
On a strong buy signal, a green dot is plotted under that bar’s low as a temporary support marker.
On a strong sell signal, a red dot is plotted above that bar’s high as a temporary resistance marker.
Alerts
Strong Buy Alert: Triggered when Stoch RSI is oversold, %K crosses above %D, and TEMA is bullish.
Strong Sell Alert: Triggered when Stoch RSI is overbought, %K crosses below %D, and TEMA is bearish.
General Buy Alert: Triggered on any bullish crossover (%K > %D) when TEMA is not bearish.
General Sell Alert: Triggered on any bearish crossover (%K < %D) when TEMA is not bullish.
Inputs
Stochastic RSI Settings (group “Stochastic RSI”):
K (smoothK): Period length for smoothing the %K line (default 3, minimum 1)
D (smoothD): Period length for smoothing the %D line (default 3, minimum 1)
RSI Length (lengthRSI): Number of bars used for the RSI calculation (default 50, minimum 1)
Stochastic Length (lengthStoch): Number of bars for the Stochastic oscillator applied to RSI (default 50, minimum 1)
RSI Source (src): Price source for the RSI (default = close)
TEMA Settings (group “Triple EMA”):
TEMA Length (lengthTEMA): Number of bars used for each of the three EMAs (default 9, minimum 1)
How to Use
Add the Script
Copy and paste the indicator code into TradingView’s Pine Editor (version 6).
Save the script and add it to your chart as “Stochastic RSI + Triple EMA (StochTEMA).”
Adjust Inputs
Choose shorter lengths for lower timeframes (e.g., intraday scalping) and longer lengths for higher timeframes (e.g., swing trading).
Fine-tune the Stochastic RSI parameters (K, D, RSI Length, Stochastic Length) to suit the volatility of the instrument.
Modify TEMA Length if you prefer a faster or slower moving average response.
Interpret Signals
Primary Entries/Exits: Focus on “BUY STRONG” and “SELL STRONG” signals, as they require both oversold/overbought conditions and a confirming TEMA trend.
Confirmation Signals: Use “BUY MEDIUM”/“BUY WEAK” to confirm or add to an existing position when the market is trending. Similarly, “SELL MEDIUM”/“SELL WEAK” can be used to scale out or confirm bearish momentum.
Support/Resistance Dots: These help identify recent swing lows (green dots) and swing highs (red dots) that were tagged by strong signals—useful to place stop-loss or profit-target orders.
Set Alerts
Open the Alerts menu (bell icon) in TradingView, choose this script, and select the desired alert condition (e.g., “BUY Signal Strong”).
Configure notifications (popup, email, webhook) according to your trading workflow.
Notes & Best Practices
Filtering False Signals: By combining Stoch RSI crossovers with TEMA trend confirmation, most false breakouts during choppy price action are filtered out.
Timeframe Selection: This indicator works on all timeframes, but shorter timeframes may generate frequent signals—consider higher-timeframe confirmation when trading lower timeframes.
Risk Management: Always use proper position sizing and stop-loss placement. An “oversold” or “overbought” reading can remain extended for some time in strong trends.
Backtesting/Optimization: Before live trading, backtest different parameter combinations on historical data to find the optimal balance between sensitivity and reliability for your chosen instrument.
No Guarantee of Profits: As with any technical indicator, past performance does not guarantee future results. Use in conjunction with other forms of analysis (volume, price patterns, fundamentals).
Author: Your Name or Username
Version: 1.0 (Pine Script v6)
Published: June 2025
Feel free to customize input values and visual preferences. If you find bugs or have suggestions for improvements, open an issue or leave a comment below. Trade responsibly!
DCA Investment Tracker Pro [tradeviZion]DCA Investment Tracker Pro: Educational DCA Analysis Tool
An educational indicator that helps analyze Dollar-Cost Averaging strategies by comparing actual performance with historical data calculations.
---
💡 Why I Created This Indicator
As someone who practices Dollar-Cost Averaging, I was frustrated with constantly switching between spreadsheets, calculators, and charts just to understand how my investments were really performing. I wanted to see everything in one place - my actual performance, what I should expect based on historical data, and most importantly, visualize where my strategy could take me over the long term .
What really motivated me was watching friends and family underestimate the incredible power of consistent investing. When Napoleon Bonaparte first learned about compound interest, he reportedly exclaimed "I wonder it has not swallowed the world" - and he was right! Yet most people can't visualize how their $500 monthly contributions today could become substantial wealth decades later.
Traditional DCA tracking tools exist, but they share similar limitations:
Require manual data entry and complex spreadsheets
Use fixed assumptions that don't reflect real market behavior
Can't show future projections overlaid on actual price charts
Lose the visual context of what's happening in the market
Make compound growth feel abstract rather than tangible
I wanted to create something different - a tool that automatically analyzes real market history, detects volatility periods, and shows you both current performance AND educational projections based on historical patterns right on your TradingView charts. As Warren Buffett said: "Someone's sitting in the shade today because someone planted a tree a long time ago." This tool helps you visualize your financial tree growing over time.
This isn't just another calculator - it's a visualization tool that makes the magic of compound growth impossible to ignore.
---
🎯 What This Indicator Does
This educational indicator provides DCA analysis tools. Users can input investment scenarios to study:
Theoretical Performance: Educational calculations based on historical return data
Comparative Analysis: Study differences between actual and theoretical scenarios
Historical Projections: Theoretical projections for educational analysis (not predictions)
Performance Metrics: CAGR, ROI, and other analytical metrics for study
Historical Analysis: Calculates historical return data for reference purposes
---
🚀 Key Features
Volatility-Adjusted Historical Return Calculation
Analyzes 3-20 years of actual price data for any symbol
Automatically detects high-volatility stocks (meme stocks, growth stocks)
Uses median returns for volatile stocks, standard CAGR for stable stocks
Provides conservative estimates when extreme outlier years are detected
Smart fallback to manual percentages when data insufficient
Customizable Performance Dashboard
Educational DCA performance analysis with compound growth calculations
Customizable table sizing (Tiny to Huge text options)
9 positioning options (Top/Middle/Bottom + Left/Center/Right)
Theme-adaptive colors (automatically adjusts to dark/light mode)
Multiple display layout options
Future Projection System
Visual future growth projections
Timeframe-aware calculations (Daily/Weekly/Monthly charts)
1-30 year projection options
Shows projected portfolio value and total investment amounts
Investment Insights
Performance vs benchmark comparison
ROI from initial investment tracking
Monthly average return analysis
Investment milestone alerts (25%, 50%, 100% gains)
Contribution tracking and next milestone indicators
---
📊 Step-by-Step Setup Guide
1. Investment Settings 💰
Initial Investment: Enter your starting lump sum (e.g., $60,000)
Monthly Contribution: Set your regular DCA amount (e.g., $500/month)
Return Calculation: Choose "Auto (Stock History)" for real data or "Manual" for fixed %
Historical Period: Select 3-20 years for auto calculations (default: 10 years)
Start Year: When you began investing (e.g., 2020)
Current Portfolio Value: Your actual portfolio worth today (e.g., $150,000)
2. Display Settings 📊
Table Sizes: Choose from Tiny, Small, Normal, Large, or Huge
Table Positions: 9 options - Top/Middle/Bottom + Left/Center/Right
Visibility Toggles: Show/hide Main Table and Stats Table independently
3. Future Projection 🔮
Enable Projections: Toggle on to see future growth visualization
Projection Years: Set 1-30 years ahead for analysis
Live Example - NASDAQ:META Analysis:
Settings shown: $60K initial + $500/month + Auto calculation + 10-year history + 2020 start + $150K current value
---
🔬 Pine Script Code Examples
Core DCA Calculations:
// Calculate total invested over time
months_elapsed = (year - start_year) * 12 + month - 1
total_invested = initial_investment + (monthly_contribution * months_elapsed)
// Compound growth formula for initial investment
theoretical_initial_growth = initial_investment * math.pow(1 + annual_return, years_elapsed)
// Future Value of Annuity for monthly contributions
monthly_rate = annual_return / 12
fv_contributions = monthly_contribution * ((math.pow(1 + monthly_rate, months_elapsed) - 1) / monthly_rate)
// Total expected value
theoretical_total = theoretical_initial_growth + fv_contributions
Volatility Detection Logic:
// Detect extreme years for volatility adjustment
extreme_years = 0
for i = 1 to historical_years
yearly_return = ((price_current / price_i_years_ago) - 1) * 100
if yearly_return > 100 or yearly_return < -50
extreme_years += 1
// Use median approach for high volatility stocks
high_volatility = (extreme_years / historical_years) > 0.2
calculated_return = high_volatility ? median_of_returns : standard_cagr
Performance Metrics:
// Calculate key performance indicators
absolute_gain = actual_value - total_invested
total_return_pct = (absolute_gain / total_invested) * 100
roi_initial = ((actual_value - initial_investment) / initial_investment) * 100
cagr = (math.pow(actual_value / initial_investment, 1 / years_elapsed) - 1) * 100
---
📊 Real-World Examples
See the indicator in action across different investment types:
Stable Index Investments:
AMEX:SPY (SPDR S&P 500) - Shows steady compound growth with standard CAGR calculations
Classic DCA success story: $60K initial + $500/month starting 2020. The indicator shows SPY's historical 10%+ returns, demonstrating how consistent broad market investing builds wealth over time. Notice the smooth theoretical growth line vs actual performance tracking.
MIL:VUAA (Vanguard S&P 500 UCITS) - Shows both data limitation and solution approaches
Data limitation example: VUAA shows "Manual (Auto Failed)" and "No Data" when default 10-year historical setting exceeds available data. The indicator gracefully falls back to manual percentage input while maintaining all DCA calculations and projections.
MIL:VUAA (Vanguard S&P 500 UCITS) - European ETF with successful 5-year auto calculation
Solution demonstration: By adjusting historical period to 5 years (matching available data), VUAA auto calculation works perfectly. Shows how users can optimize settings for newer assets. European market exposure with EUR denomination, demonstrating DCA effectiveness across different markets and currencies.
NYSE:BRK.B (Berkshire Hathaway) - Quality value investment with Warren Buffett's proven track record
Value investing approach: Berkshire Hathaway's legendary performance through DCA lens. The indicator demonstrates how quality companies compound wealth over decades. Lower volatility than tech stocks = standard CAGR calculations used.
High-Volatility Growth Stocks:
NASDAQ:NVDA (NVIDIA Corporation) - Demonstrates volatility-adjusted calculations for extreme price swings
High-volatility example: NVIDIA's explosive AI boom creates extreme years that trigger volatility detection. The indicator automatically switches to "Median (High Vol): 50%" calculations for conservative projections, protecting against unrealistic future estimates based on outlier performance periods.
NASDAQ:TSLA (Tesla) - Shows how 10-year analysis can stabilize volatile tech stocks
Stable long-term growth: Despite Tesla's reputation for volatility, the 10-year historical analysis (34.8% CAGR) shows consistent enough performance that volatility detection doesn't trigger. Demonstrates how longer timeframes can smooth out extreme periods for more reliable projections.
NASDAQ:META (Meta Platforms) - Shows stable tech stock analysis using standard CAGR calculations
Tech stock with stable growth: Despite being a tech stock and experiencing the 2022 crash, META's 10-year history shows consistent enough performance (23.98% CAGR) that volatility detection doesn't trigger. The indicator uses standard CAGR calculations, demonstrating how not all tech stocks require conservative median adjustments.
Notice how the indicator automatically detects high-volatility periods and switches to median-based calculations for more conservative projections, while stable investments use standard CAGR methods.
---
📈 Performance Metrics Explained
Current Portfolio Value: Your actual investment worth today
Expected Value: What you should have based on historical returns (Auto) or your target return (Manual)
Total Invested: Your actual money invested (initial + all monthly contributions)
Total Gains/Loss: Absolute dollar difference between current value and total invested
Total Return %: Percentage gain/loss on your total invested amount
ROI from Initial Investment: How your starting lump sum has performed
CAGR: Compound Annual Growth Rate of your initial investment (Note: This shows initial investment performance, not full DCA strategy)
vs Benchmark: How you're performing compared to the expected returns
---
⚠️ Important Notes & Limitations
Data Requirements: Auto mode requires sufficient historical data (minimum 3 years recommended)
CAGR Limitation: CAGR calculation is based on initial investment growth only, not the complete DCA strategy
Projection Accuracy: Future projections are theoretical and based on historical returns - actual results may vary
Timeframe Support: Works ONLY on Daily (1D), Weekly (1W), and Monthly (1M) charts - no other timeframes supported
Update Frequency: Update "Current Portfolio Value" regularly for accurate tracking
---
📚 Educational Use & Disclaimer
This analysis tool can be applied to various stock and ETF charts for educational study of DCA mathematical concepts and historical performance patterns.
Study Examples: Can be used with symbols like AMEX:SPY , NASDAQ:QQQ , AMEX:VTI , NASDAQ:AAPL , NASDAQ:MSFT , NASDAQ:GOOGL , NASDAQ:AMZN , NASDAQ:TSLA , NASDAQ:NVDA for learning purposes.
EDUCATIONAL DISCLAIMER: This indicator is a study tool for analyzing Dollar-Cost Averaging strategies. It does not provide investment advice, trading signals, or guarantees. All calculations are theoretical examples for educational purposes only. Past performance does not predict future results. Users should conduct their own research and consult qualified financial professionals before making any investment decisions.
---
© 2025 TradeVizion. All rights reserved.
Kaufman Trend Strategy# ✅ Kaufman Trend Strategy – Full Description (Script Publishing Version)
**Kaufman Trend Strategy** is a dynamic trend-following strategy based on Kaufman Filter theory.
It detects real-time trend momentum, reduces noise, and aims to enhance entry accuracy while optimizing risk.
⚠️ _For educational and research purposes only. Past performance does not guarantee future results._
---
## 🎯 Strategy Objective
- Smooth price noise using Kaufman Filter smoothing
- Detect the strength and direction of trends with a normalized oscillator
- Manage profits using multi-stage take-profits and adaptive ATR stop-loss logic
---
## ✨ Key Features
- **Kaufman Filter Trend Detection**
Extracts directional signal using a state space model.
- **Multi-Stage Profit-Taking**
Automatically takes partial profits based on color changes and zero-cross events.
- **ATR-Based Volatility Stops**
Stops adjust based on swing highs/lows and current market volatility.
---
## 📊 Entry & Exit Logic
**Long Entry**
- `trend_strength ≥ 60`
- Green trend signal
- Price above the Kaufman average
**Short Entry**
- `trend_strength ≤ -60`
- Red trend signal
- Price below the Kaufman average
**Exit (Long/Short)**
- Blue trend color → TP1 (50%)
- Oscillator crosses 0 → TP2 (25%)
- Trend weakens → Final exit (25%)
- ATR + swing-based stop loss
---
## 💰 Risk Management
- Initial capital: `$3,000`
- Order size: `$100` per trade (realistic, low-risk sizing)
- Commission: `0.002%`
- Slippage: `2 ticks`
- Pyramiding: `1` max position
- Estimated risk/trade: `~0.1–0.5%` of equity
> ⚠️ _No trade risks more than 5% of equity. This strategy follows TradingView script publishing rules._
---
## ⚙️ Default Parameters
- **1st Take Profit**: 50%
- **2nd Take Profit**: 25%
- **Final Exit**: 25%
- **ATR Period**: 14
- **Swing Lookback**: 10
- **Entry Threshold**: ±60
- **Exit Threshold**: ±40
---
## 📅 Backtest Summary
- **Symbol**: USD/JPY
- **Timeframe**: 1H
- **Date Range**: Jan 3, 2022 – Jun 4, 2025
- **Trades**: 924
- **Win Rate**: 41.67%
- **Profit Factor**: 1.108
- **Net Profit**: +$1,659.29 (+54.56%)
- **Max Drawdown**: -$1,419.73 (-31.87%)
---
## ✅ Summary
This strategy uses Kaufman filtering to detect market direction with reduced lag and increased smoothness.
It’s built with visual clarity and strong trade management, making it practical for both beginners and advanced users.
---
## 📌 Disclaimer
This script is for educational and informational purposes only and should not be considered financial advice.
Use with proper risk controls and always test in a demo environment before live trading.
HARSI PRO v2 - Advanced Adaptive Heikin-Ashi RSI OscillatorThis script is a fully re-engineered and enhanced version of the original Heikin-Ashi RSI Oscillator created by JayRogers. While it preserves the foundational concept and visual structure of the original indicatorusing Heikin-Ashi-style candles to represent RSI movementit introduces a range of institutional-grade engines and real-time analytics modules.
The core idea behind HARSI is to visualize the internal structure of RSI behavior using candle representations. This gives traders a clearer sense of trend continuity, exhaustion, and momentum inflection. In this upgraded version, the system is extended far beyond basic visualization into a comprehensive diagnostic and context-tracking tool.
Core Enhancements and Features
1. Heikin-Ashi RSI Candles
The base HARSI logic transforms RSI values into open, high, low, and close components, which are plotted as Heikin-Ashi-style candles. The open values are smoothed with a user-controlled bias setting, and the high/low are calculated from zero-centered RSI values.
2. Smoothed RSI Histogram and Plot
A secondary RSI plot and histogram are available for traditional RSI interpretation, optionally smoothed using a custom midpoint EMA process.
3. Dynamic Stochastic RSI Ribbon
The indicator optionally includes a smoothed Stochastic RSI ribbon with directional fill to highlight acceleration and reversal zones.
4. Real-Time Meta-State Engine
This engine determines the current market environmentneutral, breakout, or reversalbased on multiple adaptive conditions including volatility compression, momentum thrust, volume behavior, and composite reversal scoring.
5. Adaptive Overbought/Oversold Zone Engine
Instead of using fixed RSI thresholds, this engine dynamically adjusts OB/OS boundaries based on recent RSI range and normalized price volatility. This makes the OB/OS levels context-sensitive and more accurate across different instruments and regimes.
6. Composite Reversal Score Engine
A real-time score between 0 and 5 is generated using four components:
* OB/OS proximity (zone score)
* RSI slope behavior
* Volume state (burst or exhaustion)
* Trend continuation penalty based on position versus trend bias
This score allows for objective filtering of reversal zones and breakout traps.
7. Kalman Velocity Filter
A Kalman-style adaptive smoothing filter is applied to RSI for calculating velocity and acceleration. This allows for real-time detection of stalls and thrusts in RSI behavior.
8. Predictive Breakout Estimator
Uses ATR compression and RSI thrusting conditions to detect likely breakout environments. This logic contributes to the Meta-State Engine and the Breakout Risk dashboard metric.
9. Volume Acceleration Model
Real-time detection of volume bursts and fades based on VWMA baselines. Volume exhaustion warnings are used to qualify or disqualify reversals and breakouts.
10. Trend Bias and Regime Detection
Uses RSI slope, HARSI body impulse, and normalized ATR to classify the current trend state and directional bias. This forms the basis for filtering false reversals during strong trends.
11. Dashboard with Tooltips
A clean, table displays six key metrics in real time:
* Meta State
* Reversal Score
* Trend Bias
* Volume State
* Volatility Regime
* Breakout Risk
Each cell includes a descriptive tooltip explaining why the value is being shown based on internal state calculations.
How It Works Internally
* The system calculates a zero-centered RSI and builds candle structures using high, low, and smoothed open/close values.
* Volatility normalization is used throughout the script, including ATR-based thresholds and dynamic scaling of OB/OS zones.
* Momentum is filtered through smoothed slope calculations and HARSI body size measurements.
* Volume activity is compared against VWMA using configurable multipliers to detect institutional-level activity or exhaustion.
* Each regime detection module contributes to a centralized metaState classifier that determines whether the environment is conducive to reversal, breakout, or neutral action.
* All major signal and context values are continuously updated in a dashboard table with logic-driven color coding and tooltips.
Based On and Credits
This script is based on the original Heikin-Ashi RSI Oscillator by JayRogers . All visual elements from the original version, including candle plotting and color configurations, have been retained and extended. Significant backend enhancements were added by AresIQ for the 2025 release. The script remains open-source under the original attribution license. Credit to JayRogers is preserved and required for any derivative versions.