Futures Forward Price [NeoButane]In futures markets, the theoretical value of a futures contract can be derived from its underlying price and cost of carry. By baking in the costs and potential yields, the theoretical forward price then be used in basis against futures prices in place of the underlying spot price.
Usage
The script creates plots on the main chart and a separate window pane. Both are meant to be used to visualize dislocations in the market.
By using a futures vs. forward basis instead of futures vs. spot basis, discounts in the market are clearer.
Last month, the gold futures market GCZ2025 traded >1% above forward price when tariffs were announced and fell back in line once the tariffs were verbally retracted.
View roll spreads over a back-adjusted continuous chart. I guess. I don't think spread traders only look at one chart. This is as educational for me as it is you.
Configuration
The underlying reference needs to be changed to match the futures contract you are using.
The Risk-Free Rate defaults to FRED:SOFR. I found the contract month matched 3-Month SOFR Futures to be the closest for forward price.
Risk-Free Rate: The interest rate source for forward price.
Constant Risk-Free Rate: a static interest rate that can be used in advance of future changes in risk-free rate.
Underlying Reference: spot or index price. Some examples include TVC:SPX, TVC:GOLD, CRYPTO:BTCUSD, TVC:USOIL.
Forward Price Compounding: determines which formula to use. They're similar and become closer as the contract matures.
Alternative Contract: enable and select a futures contract to use it on a chart different than the main.
Storage Cost and Yield: for use with commodities. I haven't found a proper use for them yet but enabling is simple if you are able to.
The following are meant to be used with the continuous formula as they are compounded. However the rate sources don't differ much for the purpose of futures prices.
3-Month CME SOFR Futures
3-Month ICEEUR SONIA Futures
3-Month Osaka TONA Futures
The other rate sources are either meant for futures contracts shorter than quarterly such as monthly crypto futures or were meant to help myself understand how different rates would align with futures prices, like inflation.
What this script does
It uses the cost of carry formula to output the forward price (red line). The underlying reference (green line) is plotted alongside and a futures-derived reference (blue line) can be displayed to see how it looks next to the real reference price.
The data pane displays either the nominal difference or percentage difference between the real futures price and the calculated forward price.
Further reading
www.investopedia.com
www.cmegroup.com
www.oxfordenergy.org
www-2.rotman.utoronto.ca
www.cmegroup.com
3-month rate futures
www.cmegroup.com
www.ice.com
www.bankofengland.co.uk
www.jpx.co.jp
Wyszukaj w skryptach "technical"
Composite Sentiment Indicator (SPY/QQQ/SOXX + VixFix)# Multi-Index Composite Sentiment Indicator
A comprehensive sentiment indicator that works across SPY, QQQ, SOXX, and custom symbols. Combines volatility, options flow, macro factors, technicals, and seasonality into a single z-score composite.
## What It Does
Takes multiple market sentiment inputs (VIX, put/call ratios, breadth, yields, etc.) and smooshes them into one normalized line. When the composite is high = markets getting spooked. When it's low = markets getting complacent.
## Key Features
- **Multi-Index Support**: Automatically adapts for SPY (uses VIX), QQQ (uses VXN), SOXX (uses VixFix), or custom symbols
- **VixFix Integration**: Larry Williams' VixFix for indices without dedicated VIX measures
- **Signal MA**: Choose from SMA/EMA/WMA/HMA/TEMA/DEMA with color coding (red above MA = risk-on, green below = risk-off)
- **September Focus**: Built-in seasonality weighting for September weakness patterns
- **Comprehensive Components**: Volatility, options sentiment, macro factors, technicals, and sector-specific metrics
## How to Use
**Basic Setup:**
1. Pick your index (SPY/QQQ/SOXX)
2. Choose signal MA type and length (EMA 21 is a good start)
3. Watch for extreme readings and MA crossovers
**Color Signals:**
- Red composite = above signal MA = bearish sentiment
- Green composite = below signal MA = bullish sentiment
- Extreme high readings (red background) = potential tops
- Extreme low readings (green background) = potential bottoms
**For Different Indices:**
- **QQQ**: Uses NASDAQ VIX (VXN) when available, falls back to VixFix
- **SOXX**: Includes semiconductor cycle indicators, uses VixFix for volatility
- **Custom**: Adapts automatically, relies on VixFix and general market metrics
## Components Included
**Volatility**: VIX/VXN/VixFix, term structure, historical vol
**Options**: Put/call ratios, SKEW index
**Macro**: DXY, 10Y yields, yield curve, TIPS spreads
**Technical**: RSI deviation, momentum
**Seasonality**: September effects, quad witching, month-end patterns
**Breadth**: S&P 500 and NASDAQ breadth measures
## Pro Tips
- Works well on Daily Timeframe
- September gets extra weight automatically - watch for August setup signals
- Keltner envelope breaks often mark sentiment exhaustion points
- Use alerts for extreme readings and MA crossovers
Works best when you understand that sentiment extremes often mark turning points, not continuation signals. High readings don't mean "keep shorting" - they mean "start looking for reversal setups."
## Settings Worth Tweaking
- Signal MA type/length for your timeframe
- Component weights based on what matters for your index
- Envelope multipliers for your risk tolerance
- VixFix parameters if default doesn't fit your symbol's volatility
The table shows all current component readings so you can see what's driving the signal. Good for context and debugging weird readings.
Daily High/Low (15m) + EMA Pre-Market H/L + ORBStraightforward:
I built a swing-trading indicator with ChatGPT that plots 15-minute highs and lows, draws pre-market high/low lines, and adds a 15-minute opening-range breakout feature.
Technical:
Using ChatGPT, I developed a swing-trade indicator that calculates 15-minute highs/lows, overlays pre-market high and low levels, and includes a 15-minute Opening Range Breakout (ORB) module.
Promotional:
I created a ChatGPT-powered swing-trading indicator that maps 15-minute highs/lows, marks pre-market levels, and features a 15-minute Opening Range Breakout for clearer entries.
Parsifal.Swing.TrendScoreThe Parsifal.Swing.TrendScore indicator is a module within the Parsifal Swing Suite, which includes a set of swing indicators such as:
• Parsifal Swing TrendScore
• Parsifal Swing Composite
• Parsifal Swing RSI
• Parsifal Swing Flow
Each module serves as an indicator facilitating judgment of the current swing state in the underlying market.
________________________________________
Background
Market movements typically follow a time-varying trend channel within which prices oscillate. These oscillations—or swings—within the trend are inherently tradable.
They can be approached:
• One-sidedly, aligning with the trend (generally safer), or
• Two-sidedly, aiming to profit from mean reversions as well.
Note: Mean reversions in strong trends often manifest as sideways consolidations, making one-sided trades more stable.
________________________________________
The Parsifal Swing Suite
The modules aim to provide additional insights into the swing state within a trend and offer various trigger points to assist with entry decisions.
All modules in the suite act as weak oscillators, meaning they fluctuate within a range but are not bounded like true oscillators (e.g., RSI, which is constrained between 0% and 100%).
________________________________________
The Parsifal.Swing.TrendScore – Specifics
The Parsifal.Swing.TrendScore module combines short-term trend data with information about the current swing state, derived from raw price data and classical technical indicators. It provides an indication of how well the short-term trend aligns with the prevailing swing, based on recent market behavior.
________________________________________
How Swing.TrendScore Works
The Swing.TrendScore calculates a swing score by collecting data within a bin (i.e., a single candle or time bucket) that signals an upside or downside swing. These signals are then aggregated together with insights from classical swing indicators.
Additionally, it calculates a short-term trend score using core technical signals, including:
• The Z-score of the price's distance from various EMAs
• The slope of EMAs
• Other trend-strength signals from additional technical indicators
These two components—the swing score and the trend score—are then combined to form the Swing.TrendScore indicator, which evaluates the short-term trend in context with swing behavior.
________________________________________
How to Interpret Swing.TrendScore
The trend component enhances Swing.TrendScore’s ability to provide stronger signals when the short-term trend and swing state align.
It can also override the swing score; for example, even if a mean reversion appears to be forming, a dominant short-term trend may still control the market behavior.
This makes Swing.TrendScore particularly valuable for:
• Short-term trend-following strategies
• Medium-term swing trading
Unlike typical swing indicators, Swing.TrendScore is designed to respond more to medium-term swings rather than short-lived fluctuations.
________________________________________
Behavior and Chart Representation
The Swing.TrendScore indicator fluctuates within a range, as most of its components are range-bound (though Z-score components may technically extend beyond).
• Historically high or low values may suggest overbought or oversold conditions
• The chart displays:
o A fast curve (orange)
o A slow curve (white)
o A shaded background representing the market state
• Extreme values followed by curve reversals may signal a developing mean reversion
________________________________________
TrendScore Background Value
The Background Value reflects the combined state of the short-term trend and swing:
• > 0 (shaded green) → Bullish mode: swing and short-term trend both upward
• < 0 (shaded red) → Bearish mode: swing and short-term trend both downward
• The absolute value represents the confidence level in the market mode
Notably, the Background Value can remain positive during short downswings if the short-term trend remains bullish—and vice versa.
________________________________________
How to Use the Parsifal.Swing.TrendScore
Several change points can act as entry triggers or aids:
• Fast Trigger: change in slope of the fast signal curve
• Trigger: fast line crosses slow line or the slope of the slow signal changes
• Slow Trigger: change in sign of the Background Value
Examples of these trigger points are illustrated in the accompanying chart.
Additionally, market highs and lows aligning with the swing indicator values may serve as pivot points in the evolving price process.
________________________________________
As always, this indicator should be used in conjunction with other tools and market context in live trading.
While it provides valuable insight and potential entry points, it does not predict future price action.
Instead, it reflects recent tendencies and should be used judiciously.
________________________________________
Extensions
The aggregation of information—whether derived from bins or technical indicators—is currently performed via simple averaging. However, this can be modified using alternative weighting schemes, based on:
• Historical performance
• Relevance of the data
• Specific market conditions
Smoothing periods used in calculations are also modifiable. In general, the EMAs applied for smoothing can be extended to reflect expectations based on relevance-weighted probability measures.
Since EMAs inherently give more weight to recent data, this allows for adaptive smoothing.
Additionally, EMAs may be further extended to incorporate negative weights, akin to wavelet transform techniques.
Akshay - TheOne, TheMostWanted, TheUnbeatable, TheEnd➤ All-in-One Solution (❌ No repaint):
This Technical Chart contains, MA24 Condition, Supertrend Indicator, HalfTrend Signal, Ichimoku Cloud Status, Parabolic SAR (P_SAR), First 5-Minute Candle Analysis (ORB5min), Volume-Weighted Moving Average (VWMA), Price-Volume Trend (PVT), Oscillator Composite, RSI Condition, ADX & Trend Strength.
Technicals don't lie.
🚀 Overview and Key Features
Comprehensive Multi-Indicator Approach:
The script is built to be an all-in-one technical indicator on TradingView. It integrates several well-known indicators and overlays—including Supertrend, HalfTrend, Ichimoku Cloud, various moving averages (EMA, SMA, VWMA), oscillators (Klinger, Price Oscillator, Awesome Oscillator, Chaikin Oscillator, Ultimate Oscillator, SMI Ergodic Oscillator, Chande Momentum Oscillator, Detrended Price Oscillator, Money Flow Index), ADX, and Donchian Channels—to create a composite picture of market sentiment.
Signal Generation and Alerts:
It not only calculates these indicators but also aggregates their output into “Master Candle” signals. Vertical lines are drawn on the chart with corresponding alerts to indicate potential buy or sell opportunities based on robust, combined conditions.
Visual Layering:
Through the use of colored histograms, custom candle plots, trend lines, and background color changes, the script offers a multi-layered visual representation of data, providing clarity about both short-term signals and overall market trends.
⚙️ How It Works and Functionality
MA24 Condition:
Uses the 24-period moving average as a proxy; if the price is above it, the bar is colored green, and red if below, with neutrality when conditions aren’t met.
Supertrend Indicator:
Evaluates price relative to the Supertrend level (calculated via ATR), coloring green when price is above it and red when below.
HalfTrend Signal:
Determines trend shifts by comparing the current close to a calculated trend level; green indicates an upward trend, while red suggests a downtrend.
Ichimoku Cloud Status:
Analyzes the relationship between the Conversion and Base lines; a bullish (green) signal is given when price is above both or the Conversion line is higher than the Base line.
Parabolic SAR (P_SAR):
Colors the signal based on whether the current price is above (green) or below (red) the Parabolic SAR marker, indicating stop and reverse conditions.
First 5-Minute Candle Analysis (ORB5min):
Uses key levels from the first 5-minute candle; if price exceeds the candle’s low, VWAP, and MA, it’s bullish (green), otherwise bearish (red).
Volume-Weighted Moving Average (VWMA):
Compares the current price to volume-weighted averages; a price above these levels is shown in green, below in red.
Price-Volume Trend (PVT):
Determines bullish or bearish momentum by comparing PVT to its VWAP—green when above and red when below.
Oscillator Composite:
Aggregates signals from multiple oscillators; a majority of positive results turn it green, while negative dominance results in red.
RSI Condition:
Uses a simple RSI threshold of 50, with values above signifying bullish (green) momentum and below marking bearish (red) conditions.
ADX & Trend Strength:
Reflects overall trend strength through ADX and directional movements; a combination favoring bullish conditions colors it green, with red signaling bearish pressure.
Master Candle Overall Signal:
Combines multiple indicator outputs into one “Master” signal—green for a consensus bullish trend and red for a bearish outlook.
Scalp Signal Variation:
Focused on short-term price changes, this signal adjusts quickly; green indicates improving short-term conditions, while red signals a downturn.
📊 Visualizations and 🎨 User Experience (❌ no repaint)
Dynamic Histograms & Bar Plots:
Each indicator is represented as a colored bar (with added vertical offsets) to facilitate easy comparison of their respective bullish or bearish contributions.
Clear Color-Coding & Labels:
Green (e.g., GreenFluorescent) indicates bullish sentiment.
Red (e.g., RedFluorescent) indicates bearish sentiment.
Custom labels and descriptive text accompany each bar for clarity.
Interactive Charting:
The overall background color adapts based on the “Master Candle” condition, offering an instant read on market sentiment.
The current candlestick is overlaid with color cues to reinforce the indicator’s signal, enhancing the trading experience.
Real-Time Alerts:
Vertical lines appear on signal events (buy/sell triggers), complemented by alerts that help traders stay on top of actionable market moves.
Sharp lines:
The Sharp lines are plotted based upon the EMA5 cross over with the same market trend, marks this as good time to reentry.
🔧 Settings and Customization
Flexible Timeframe Input:
Users can select their preferred timeframe for analysis, making the indicator adaptable to intraday or longer-term trading styles.
Customizable Indicator Parameters:
➤ Supertrend: Adjust ATR length and multiplier factors.
➤ HalfTrend: Tweak amplitude and channel deviation settings.
➤ Ichimoku Cloud & Oscillators: Fine-tune the conversion/base lines and oscillator lengths to match individual trading strategies.
Visual Customization:
The script’s color schemes and plotting styles can be altered as needed, giving users the freedom to tailor the interface to their taste or existing chart setups.
🌟 Uniqueness of the Concept
Integrated Multi-Indicator Synergy:
Combines a diverse range of trend, momentum, and volume-based indicators into a single cohesive system for a holistic market view.
Master Candle Aggregation:
Consolidates numerous individual signals into a "Master Candle" that filters out noise and provides a clear, consensus-based trading signal.
Layered Visual Feedback:
Uses color-coded histograms, adaptive background cues, and dynamic overlays to deliver a visually intuitive guide to market sentiment at a glance.
Customization and Flexibility:
Offers adjustable parameters for each indicator, allowing users to tailor the system to fit diverse trading styles and market conditions.
✅ Conclusion:
Robust Trading Tool & Non-Repainting Reliability:
This versatile technical analysis tool computes an extensive range of indicators, aggregates them into a stable, non-repainting “Master Candle” signal, and maintains consistent, verifiable outputs on historical data.
Holistic Market Insight & Consistent Signal Generation:
By combining trend detection, momentum oscillators, and volume analysis, the indicator delivers a comprehensive snapshot of market conditions and generates dependable signals across varying timeframes.
User-Centric Design with Rich Visual Feedback:
Customizable settings, clear color-coded outputs, adaptive backgrounds, and real-time alerts work together to provide actionable, transparent feedback—enhancing the overall trading experience.
A Unique All-in-One Solution:
The integrated approach not only simplifies complex market dynamics into an easy-to-read visual guide but also empowers systematic traders with a powerful, adaptable asset for accurate decision-making.
❤️ Credits:
Pine Script™ User Manual
Supertrend
Ichimoku Cloud
Parabolic SAR
Price Volume Trend (PVT)
Average Directional Index (ADX)
Volume Oscillator
HalfTrend
Donchian Trend
TQ's Support & Resistance(My goal creating this indicator): Provide a way to categorize and label key structures on multiple different levels so I can create a plan based on those observable facts.
The Underlying Concept / What is Momentum?
Momentum indicates transaction pressure. If the algorithm detects price is going up, that would be considered positive momentum. If the algorithm detects price is going down negative momentum would be detected.
The Momentum shown is derived from a price action pattern. Unlike my previous Support & Resistance indicator that used Super Trend, this indicator uses a unique pattern I created. On the first bar bearish momentum is detected a resistance Level is made at the highest point of the previous bullish condition. On the first bar bullish momentum is detected a support Level is made at the lowest point of the previous bearish condition. This happens on 5 different Momentum Levels, (short-term to long-term). I currently use this pattern to trade so the source code is protected.
What is Severity?
Severity is How we differentiate the importance of different Highs and Lows. If Momentum is detected on a higher level the Supply or Demand Level is updated. The Color and Size representing that Level will be shown. Demand and Supply Levels made by higher levels are more SEVERE than a demand level made by a lower level.
Technical Inputs
- to ensure the correct calculation of Support and Resistance levels change BAR_INDEX. BAR_INDEX creates a buffer at the start of the chart. For example: If you set BAR_INDEX to 300. The script will wait for 300 bars to elapse on the current chart before running. This allows the script more time to gather data. Which is needed in order for our dynamic lookback length to never return an error (Dynamic lookback length can't be negative or zero). The lower the timeframe the greater the number of bars need. For Example, if I open up a 1min chart I would enter 5000 as my BAR_INDEX since that will provide enough data to ensure the correct calculation of Support and Resistance levels. If I was on a daily chart, I would enter a lower number such as 800. Don't be afraid to play around with this.
- Toggle options (Close) or (High & Low) creates Support and Resistance Levels using the Lowest close and Highest close or using the Lowest low and Highest high.
Level Inputs
- The indicator has 5 Different Levels indicating SEVEREITY of a Supply and Demand Levels. The higher the Level the more SEVERE the Level.
Display Inputs
- You have the option to customize the Length, Width, Line Style, and Colors of all 5 different
- This indicator includes a Trend Chart. To Easily verify the current trend of any displayed by this indicator toggle on Chart On/Off. You also get the option to change the Chart Position and the size of the Trend Chart
How Trend Is being Determined?
(Close > Current Supply Level) if this statement is true technically price made a HH, so the trend is bullish.
(Close < Current Demand Level) if this statement is true technically price made a LL, so the trend is bearish.
- Fully customize how you display Market Structure on different levels. Line Length, Line Width, Line Style, and Line color can all be customized.
How it can be used?
(Examples of Different ways you can use this indicator): Easily categorize the severity of each and every Supply or Demand Level in the market (The higher Level the stronger the level)
: Quickly Determine the trend of any Level.
: Get a consistent view of a market and how different Levels are behaving but just use one chart.
: Take the discretion from hand drawing support and resistance lines out of your trading.
: Find and categorize strong levels for potential breakouts.
: Trend Analysis, use Levels to create a narrative based on observable facts from these Levels.
: Different Targets to take money off the table.
: Use Severity to differentiate between different trend line setups.
: Find Great places to move your stop loss too.
MultiTime Stochastics ProMultiTime Stochastics Pro
This indicator is an enhanced version of the stochastic indicator, featuring two separate stochastics. This functionality allows you to adjust the settings and time frame for each stochastic individually, enabling a more precise analysis of market fluctuations.
The Double Stochastic indicator enables you to simultaneously analyze the market in different time frames with two separate stochastics. One of the standout features of this indicator is that when the chart's time frame changes, each stochastic is displayed according to the time set for it and does not change in other time frames. This feature provides greater flexibility and accuracy in market analysis.
How the Indicator Works
This indicator calculates two separate stochastics:
The first stochastic (K1 and D1) with its own specific time frame and settings.
The second stochastic (K2 and D2) with a different time frame and settings.
These two stochastics are displayed simultaneously on one chart, and overbought and oversold lines are also included.
How to Use
Parameter Adjustment : Adjust the parameters K1 Length, D1 Smoothing, and K1 Time Frame as desired. Do the same for the second stochastic.
Signal Analysis : Analyze buy and sell signals based on the stochastic values and the overbought and oversold lines.
Advantages
Greater Precision : With two separate stochastics, you can follow market fluctuations with greater accuracy.
Flexibility : The ability to individually set the time frame and parameters for each stochastic makes this indicator highly flexible.
Stronger Signals : The simultaneous display of two stochastics allows you to receive stronger buy and sell signals.
Multi-time frame Analysis : The ability to analyze the market in different time frames simultaneously.
This indicator is suitable for traders seeking more precise and flexible market analysis tools. I hope these explanations help you publish your indicator in the best possible way!
Uptrick: Market MoodsThe "Uptrick: Market Moods" indicator is an advanced technical analysis tool designed for the TradingView platform. It combines three powerful indicators—Relative Strength Index (RSI), Average True Range (ATR), and Bollinger Bands—into one cohesive framework, aimed at helping traders better understand and interpret market sentiment. By capturing shifts in the emotional climate of the market, it provides a holistic view of market conditions, which can range from calm to stressed or even highly excited. This multi-dimensional analysis tool stands apart from traditional single-indicator approaches by offering a more complete picture of market dynamics, making it a valuable resource for traders looking to anticipate and react to changes in market behavior.
The RSI in the "Uptrick: Market Moods" indicator is used to measure momentum. RSI is an essential component of many technical analysis strategies, and in this tool, it is used to identify potential market extremes. When RSI values are high, they indicate an overbought condition, meaning the market may be approaching a peak. Conversely, low RSI values suggest an oversold condition, signaling that the market could be nearing a bottom. These extremes provide crucial clues about shifts in market sentiment, helping traders gauge whether the current emotional state of the market is likely to result in a reversal. This understanding is pivotal in predicting whether the market is transitioning from calm to stressed or from excited to overbought.
The Average True Range adds another layer to this analysis by offering insights into market volatility. Volatility is a key factor in understanding the mood of the market, as periods of high volatility often reflect high levels of excitement or stress, while low volatility typically indicates a calm, steady market. ATR is calculated based on the range of price movements over a given period, and the higher the value, the more volatile the market is. The "Uptrick: Market Moods" indicator uses ATR to dynamically gauge volatility levels, helping traders understand whether the market is currently moving in a way that aligns with its emotional mood. For example, an increase in ATR accompanied by an RSI value that indicates overbought conditions could suggest that the market is in a highly excited state, with the potential for either strong momentum continuation or a sharp reversal.
Bollinger Bands complement these tools by providing visual cues about price volatility and the range within which the market is likely to move. Bollinger Bands plot two standard deviations away from a simple moving average of the price. This banding technique helps traders visualize how far the price is likely to deviate from its average over a certain period. The "Uptrick: Market Moods" indicator uses Bollinger Bands to establish price boundaries and identify breakout conditions. When prices break above the upper band or below the lower band, it often signals that the market is either highly stressed or excited. This breakout condition serves as a visual representation of the market mood, alerting traders to moments when prices are moving beyond typical ranges and when significant emotional shifts are occurring in the market.
Technically, the "Uptrick: Market Moods" indicator has been developed using TradingView’s Pine Script language, a highly efficient language for building custom indicators. It employs functions like ta.rsi, ta.atr, and ta.sma to perform the necessary calculations. The use of these built-in functions ensures that the calculations are both accurate and efficient, allowing the indicator to operate in real-time without lagging, even in volatile market conditions. The ta.rsi function is used to compute the Relative Strength Index, while ta.atr calculates the Average True Range, and ta.sma is used to smooth out price data for the Bollinger Bands. These functions are applied dynamically within the script, allowing the "Uptrick: Market Moods" indicator to respond to changes in market conditions in real time.
The user interface of the "Uptrick: Market Moods" indicator is designed to provide a visually intuitive experience. The market mood is color-coded on the chart, making it easy for traders to identify whether the market is calm, stressed, or excited at a glance. This feature is especially useful for traders who need to make quick decisions in fast-moving markets. Additionally, the indicator includes an interactive table that updates in real-time, showing the most recent mood state and its frequency. This provides valuable statistical insights into market behavior over specific time frames, helping traders track the dominant emotional state of the market. Whether the market is in a prolonged calm state or rapidly transitioning through moods, this real-time feedback offers actionable data that can help traders adjust their strategies accordingly.
The RSI component of the "Uptrick: Market Moods" indicator helps detect the speed and direction of price movements, offering insight into whether the market is approaching extreme conditions. By providing signals based on overbought and oversold levels, the RSI helps traders decide whether to enter or exit positions. The ATR element acts as a volatility gauge, dynamically adjusting traders’ expectations in response to changes in market volatility. Meanwhile, the Bollinger Bands help identify trends and potential breakout conditions, serving as an additional confirmation tool that highlights when the price has moved beyond normal boundaries, indicating heightened market excitement or stress.
Despite the robust capabilities of the "Uptrick: Market Moods" indicator, it does have limitations. In markets affected by sudden shifts, such as those driven by major news events or external economic factors, the indicator’s performance may not always be reliable. These external factors can cause rapid mood swings that are difficult for any technical analysis tool to fully anticipate. Additionally, the indicator’s complexity may pose a learning curve for novice traders, particularly those who are unfamiliar with the concepts of RSI, ATR, and Bollinger Bands. However, with practice, traders can become proficient in using the tool to its full potential, leveraging the insights it provides to better navigate market shifts.
For traders seeking a deeper understanding of market sentiment, the "Uptrick: Market Moods" indicator is an invaluable resource. It is recommended for those dealing with medium to high volatility instruments, where understanding emotional shifts can offer a strategic advantage. While it can be used on its own, integrating it with other forms of analysis, such as fundamental analysis and additional technical indicators, can enhance its effectiveness. By confirming signals with other tools, traders can reduce the likelihood of false signals and improve their overall trading strategy.
To further enhance the accuracy of the "Uptrick: Market Moods" indicator, it can be integrated with volume-based tools like Volume Profile or On-Balance Volume (OBV). This combination allows traders to confirm the moods identified by the indicator with volume data, providing additional confirmation of market sentiment. For example, when the market is in an excited mood, an increase in trading volume could reinforce the reliability of that signal. Conversely, if the market is stressed but volume remains low, traders may want to proceed with caution. Using multiple indicators together creates a more comprehensive trading approach, helping traders better manage risk and make informed decisions based on multiple data points.
In conclusion, the "Uptrick: Market Moods" indicator is a powerful and unique addition to the suite of technical analysis tools available on TradingView. It provides traders with a multi-dimensional view of market sentiment by combining the analytical strengths of RSI, ATR, and Bollinger Bands into a single tool. Its ability to capture and interpret the emotional mood of the market makes it an essential tool for traders seeking to gain an edge in understanding market behavior. While the indicator has certain limitations, particularly in rapidly shifting markets, its ability to provide real-time insights into market sentiment is a valuable asset for traders of all experience levels. Used in conjunction with other tools and sound trading practices, the "Uptrick: Market Moods" indicator offers a comprehensive solution for navigating the complexities of financial markets.
Momentum Probability Oscillator [SS]This is the momentum based probability indicator.
What it does?
This takes the average of MFI, Stochastics and RSI and plots it out as an independent oscillator.
It then tracks bullish vs bearish instances. Bullish is defined as a greater move from open to high than open to low and inverse for bearish.
It stores this data and these averages and plots these levels as a graph.
The graph depicts the max bullish values at the top, the min bearish values at the bottom and the averages in between:
It will plot the average "threshold" value in yellow:
The threshold value is key. A ticker trading above the threshold is generally bullish. Below is bearish.
The threshold value frequently acts as support and resistance levels (see below):
Resistance:
Support:
The indicator also shows you the amount of time a ticker has spent in each region, over a defined lookback period (defaulted to 500):
When you see that cumulatively, more time has been spent in a bullish range or a bearish range, it can help you ascertain the prevailing sentiment at that time.
The indicator will also calculate the average price range based on the underlying oscillator value. It does this through use of ATR based techniques, as its not usually possible to calculate a price from an oscillator:
This is intended as a general reference and not a precise target, as it is using ATR as opposed to the actual technical value itself.
As this is an oscillator, you can use it to look for divergences as well. The advantage to having it formulated in this way is:
a) You get the power of all 3 indicators (stochastics, MFI and RSI) in one and
b) You are adding context to the underlying technical reading. The indicator is plotting out the average, max and min ranges for the selected ticker and performing assessments based on these ranges that add context to the current PA.
You also have the ability to see the specific technical levels associated with each specific technical indicator. If you open up the settings menu and select "Show Table", this will appear:
This will show you the exact values of each of the technicals the indicator is using in its range assessment.
And that is basically the bulk of the indicator!
I use this predominately on the smaller timeframes, especially when there is a lot of chop, to ascertain the overall sentiment.
I also will reference it on the 1 hour to see what the prevailing sentiment is and whether the stock is at an area of technical resistance or support. For example, here is what I referenced on SPY today:
QUICK NOTE:
It works best with RTH (regular trading hours) turned on and ETH (extended trading hours) turned off!
That's it!
Hopefully you like it and leave your comments and suggestions below!
RDX Relative Directional IndexRDX Relative Directional Index, Strength + Direction + Trend. This indicator is the combination of RSI and DMI or ADX. RDX aims at providing Relative direction of the price along with strength of the trend. This acts as both RSI and Average Directional Index. as the strength grows the RSI line becomes wider and when there is high volatility and market fluctuation the line becomes thinner. Color decides the Direction. This indicator provides sideways detection of RSI signal.
RDX Width: This determines the strength of RSI and Strength of ADX, The strength grows RDX band grows wider, as strength decreases band shrinks and merge into the RSI line. for exact working simply disable RSI plot on the indicator. when there is no strength the RSI vanishes..
Technical:
RSI : with default 14 period
ADX : Default 14 period
RDX=RSI+(ADX-20)/5
Color Code:
Red: Down Direction
Green: Up Direction
Sideways:
A rectangular channel is plotted on RSI 50 Level
Oversold Overbought:
Oversold and Overbought Levels are plotted for normal RSI Oversold and Overbought detection.
Buy/Sell:
Buy sell signals from ADX crossover are plotted and its easy to determine
Strength + Direction + Trend in one go
Hope the community likes this...
Contibute for more ideas and indicators..
SuperTrend Support & Resistance(My goal creating this indicator) : Provide a way to categorize and label key structures on multiple time frames so I can create a plan based on those observable facts.
The Underlying Concept / What is Momentum?
The Momentum shown is derived from a Mathematical Formula, SUPERTREND. When price closes above Supertrend Its bullish Momentum when its below Supertrend its Bearish Momentum. On the first bar bearish momentum is detected a resistance Level is made at the highest point of the previous bullish condition. On the first bar bullish momentum is detected a support Level is made at the lowest point of the previous bearish condition. As I become a better analyst I will find better techniques and this source code may become open-source, but as of now it remains protected. This indicator scans for bullish & bearish Momentum on the Timeframes selected by the user and when there is a shift in momentum on any of those time frames (price closes below or above SUPERTREND ) it notifies the trader with a Supply or Demand level with a unique color and Size to signify the severity of said level.
What is Severity?
Severity is How we differentiate the importance of different Highs and Lows. If Momentum is detected on a higher timeframe the Supply or Demand Level is updated. The Color and Size representing that higher timeframe will be shown. Demand and Supply Levels made by higher Timeframes are more SEVERE then a demand level made by a lower Timeframe.
Technical Inputs
- If you want to optimize the rate of signals to better fit your trading plan you would change the Factor input and ATR Length input. Increase factor and ATR Length to decrease the frequency of signals and decrease the Factor and ATR Length to increase the frequency of signals.
- to ensure the correct calculation of Support and Resistance levels change BAR_INDEX. BAR_INDEX creates a buffer at the start of the chart. For example: If you set BAR_INDEX to 300. The script will wait for 300 bars to elapse on the current chart before running. This allows the script more time to gather data. Which is needed in order for our dynamic lookback length to never return an error(Dynamic lookback length cant be negative or zero). The lower the timeframe the greater the amount of bars need. For Example if I open up a 30 sec chart I would enter 5000 as my BAR_INDEX since that will provide enough data to ensure the correct calculation of Support and Resistance levels.
Time Frame Inputs
- The indicator has 3 Time Frame Displays where you can choose how SEVERE You want the Supply and Demand Levels. For Example: 1min, 3min, 5min, 15 min Levels, 60 min levels Weekly Levels, etc.....The higher the Timeframe Selected the more SEVERE the Level.
- Use the Amount of time Frames input to increase or limit the amount of time frames that will be displayed onto the chart.
Display Inputs
- The toggle (Trend or Basic) option Lets the trend determine the colors of the Support and Resistance Levels or Basic where the color is strictly based on if its a high or a low ( Trend = HH,HL,LL,LH)
- Toggle options (Close) and (High & Low) creates Support and Resistance Levels using the Lowest close and Highest close or using the Lowest low and Highest high.
Toggle on both or toggle off both in order to use both these values when determining the trend of your chart. For Example this would mean (Price has to close higher then the highest high. Not only make a higher high or a
higher close) and the inverse (Price has to close lower then the lowest low. Not only make a lower low or a lower close)
How Trend Is being Determined ?
(Previous Supply Level > Current Supply Level ) if this statement is true then its s LH so the trend is bearish if this statement is false then its a HH so the trend is bullish
(Previous Demand Level > Current Demand Level ) if this statement is true then its a LL so the trend is bearish if this statement is false then its a HL so the trend is bullish
(Close > Current Supply Level ) if this statement is true technically price made a HH so the trend is bullish
(Close < Current Demand Level ) if this statement is true technically price made a LL so the trend is bearish
- Fully customize how you display and label Market Structure in specific timeframes. Line Length, Line Width, Line Style, Label Distance, Label Size, Label Background Size, and Background Color can all be customized.
- Lastly Is the Trend Chart. To Easily verify the current trend of any timeframes displayed by this indicator toggle on Chart On/Off . You also get the option to change the Chart Position and the size of the Trend Chart
*****The Current charts timeframe has to lower then a month to ensure correct calculation of Supply and Demand Levels*****
How it can be used ?
(Examples of Different ways you can use this indicator) : Easily categorize the severity of each and every Supply or Demand Level in the market (The higher the time frame the stronger the level)
: Quickly Determine the trend of any Timeframe
: Get a consistent view of a market and how different time frames are behaving but just use one chart.
: Take the discretion from hand drawing support and resistance lines out of your trading
: Find and categorize strong levels for potential breakouts
: Trend Analysis, Use multiple time frames to create a narrative based on observable facts from these time frames
: Different Targets to take money off the table
: Use labels to differentiate between different trend line setups
: Find Great places to move your stop loss too.
Average Indicators Positionsby this script you can see the average level of macd, macd-asprey, rsi, stochastic, cci, momentum, obv, DI, volume weighted macd, cmf indicators within a period. It also calculates and creates the same graph for higher time frame, so you can see average levels for current and higher time frame. you can also check it for divergence/convergence. You can use it as you wish and add/remove indicators.
Swing Oracle Stock 2.0- Gradient Enhanced# 🌈 Swing Oracle Pro - Advanced Gradient Trading Indicator
**Transform your technical analysis with stunning gradient visualizations that make market trends instantly recognizable.**
## 🚀 **What Makes This Indicator Special?**
The **Swing Oracle Pro** revolutionizes traditional technical analysis by combining advanced NDOS (Normalized Distance from Origin of Source) calculations with a sophisticated gradient color system. This isn't just another indicator—it's a complete visual trading experience that adapts colors based on market strength, making trend identification effortless and intuitive.
## 🎨 **10 Professional Gradient Themes**
Choose from carefully crafted color schemes designed for optimal visual clarity:
- **🌅 Sunset** - Warm oranges and purples for classic elegance
- **🌊 Ocean** - Cool blues and teals for calm analysis
- **🌲 Forest** - Natural greens and browns for organic feel
- **✨ Aurora** - Ethereal greens and magentas for mystique
- **⚡ Neon** - Vibrant electric colors for high-energy trading
- **🌌 Galaxy** - Deep purples and cosmic hues for night sessions
- **🔥 Fire** - Intense reds and golds for volatile markets
- **❄️ Ice** - Cool whites and blues for clear-headed decisions
- **🌈 Rainbow** - Full spectrum for comprehensive analysis
- **⚫ Monochrome** - Professional grays for focused trading
## 📊 **Core Features**
### **Advanced NDOS System**
- Normalized Distance from Origin of Source calculation with 231-period length
- Smoothed with customizable EMA for reduced noise
- Multi-timeframe confirmation with H1 filter option
- Dynamic gradient coloring based on oscillator position
### **Intelligent Visual Feedback**
- **Primary Gradient Line** - Main NDOS plot with dynamic color transitions
- **Gradient Fill Zones** - Beautiful color-coded areas for bullish, neutral, and bearish regions
- **Smart Transparency** - Colors adjust intensity based on market volatility
- **Dynamic Backgrounds** - Subtle gradient backgrounds that respond to market conditions
### **Enhanced EMA Projection System**
- 75/760 period EMA normalization with 50-period lookback
- Gradient-colored projection line for trend forecasting
- Toggleable display with advanced gradient controls
- Price tracking for precise level identification
### **Multi-Timeframe Analysis Table**
- Real-time trend analysis across 6 timeframes (1m, 3m, 5m, 15m, 1H, 4H)
- Gradient-colored cells showing trend strength
- Customizable table size and position
- Professional emoji indicators (🚀 UP, 📉 DOWN, ➡️ FLAT)
### **Signal System**
- **Gradient Buy Signals** - Triangle up arrows with intensity-based coloring
- **Gradient Sell Signals** - Triangle down arrows with strength indicators
- **Alert Conditions** - Built-in alerts for all signal types
- **7-Day Cycle Tracking** - Tuesday-to-Tuesday weekly cycle visualization
## ⚙️ **Customization Controls**
### **🎨 Gradient Controls**
- **Gradient Intensity** - Adjust color vibrancy (0.1-1.0)
- **Gradient Smoothing** - Control color transition smoothness (1-10 periods)
- **Dynamic Background** - Toggle animated background gradients
- **Advanced Gradients** - Enable/disable EMA projection and enhanced features
### **🛠️ Custom Color System**
- **Bullish Colors** - Define custom start/end colors for bull markets
- **Bearish Colors** - Set personalized bear market gradients
- **Full Theme Override** - Create completely custom color schemes
- **Real-time Preview** - See changes instantly on your chart
## 📈 **How to Use**
1. **Choose Your Theme** - Select from 10 professional gradient themes
2. **Configure Levels** - Adjust high/low levels (default 60/40) for your timeframe
3. **Set Smoothing** - Fine-tune gradient smoothing for your trading style
4. **Enable Features** - Toggle background gradients, candlestick coloring, and advanced EMA projection
5. **Monitor Signals** - Watch for gradient buy/sell arrows and multi-timeframe confirmations
## 🎯 **Trading Applications**
- **Swing Trading** - Perfect for identifying medium-term trend changes
- **Scalping** - Multi-timeframe table provides quick trend confirmation
- **Position Sizing** - Gradient intensity shows signal strength for risk management
- **Market Analysis** - Beautiful visualizations make complex data instantly understandable
- **Education** - Ideal for learning market dynamics through visual feedback
## ⚡ **Performance Optimized**
- **Smart Rendering** - Colors update only on significant changes
- **Efficient Calculations** - Optimized algorithms for smooth performance
- **Memory Management** - Minimal resource usage even with complex gradients
- **Real-time Updates** - Responsive to market changes without lag
## 🚨 **Alert System**
Built-in alert conditions notify you when:
- NDOS crosses above high level (Buy Signal)
- NDOS crosses below low level (Sell Signal)
- Multi-timeframe confirmations align
- Customizable alert messages with emoji indicators
## 🔧 **Technical Specifications**
- **PineScript Version**: v6 (Latest)
- **Overlay**: True (plots on main chart)
- **Calculations**: NDOS, EMA normalization, volatility-based transparency
- **Timeframes**: Compatible with all timeframes
- **Markets**: Stocks, Forex, Crypto, Commodities, Indices
## 💡 **Why Choose Swing Oracle Pro?**
This isn't just another technical indicator—it's a complete visual transformation of your trading experience. The gradient system provides instant visual feedback that traditional indicators simply can't match. Whether you're a beginner learning to read market trends or an experienced trader seeking clearer signals, the Swing Oracle Pro delivers professional-grade analysis with unprecedented visual clarity.
**Experience the future of technical analysis. Your charts will never look the same.**
---
*⚠️ Disclaimer: This indicator is for educational and informational purposes only. Past performance does not guarantee future results. Always conduct your own research and consider risk management before making trading decisions.*
**🔔 Like this indicator? Please leave a comment and boost! Your feedback helps improve future updates.**
---
**📝 Tags:** #GradientTrading #SwingTrading #NDOS #MultiTimeframe #TechnicalAnalysis #VisualTrading #TrendAnalysis #ColorCoded #ProfessionalCharts #TradingToo
Hull Moving Average RibbonGradient Wave HMA - Multi-Ribbon Hull Moving Average System
Overview
The Gradient Wave HMA is an advanced technical indicator that transforms Alan Hull's Hull Moving Average (HMA) into a dynamic multi-layered ribbon system. Unlike traditional moving average ribbons that use simple or exponential calculations, this indicator applies Hull's innovative lag-reduction formula across 12 different timeframes simultaneously, creating a visually striking gradient effect that flows with market momentum.
Technical Foundation
This indicator is built upon the Hull Moving Average, developed by Alan Hull in 2005. The HMA uses a weighted moving average calculation designed to almost eliminate lag while maintaining curve smoothness:
HMA = WMA(2*WMA(n/2) − WMA(n), sqrt(n))
Credit: Alan Hull (www.alanhull.com)
Key Features
Multi-Period Ribbon Structure
12 individual HMA lines with customizable periods
Preset configurations for different trading styles:
Fast: 3-30 period range (scalping/intraday)
Swing: 8-55 period range (swing trading)
Position: 20-100 period range (position trading)
Custom: User-defined periods
2. Neon Gradient Visualization
Bullish Gradient: Transitions from blue-purple to hot purple
Bearish Gradient: Flows from hot pink to purple-pink
Each line has a unique color in the spectrum
Gradient fills between lines create depth and visual flow
3. Advanced Alert System
Trend Reversal Alerts: Notifies when ribbon changes direction
Price Breakout Alerts: Triggers when price crosses the ribbon
Compression Alerts: Signals potential breakouts during consolidation
Expansion Alerts: Confirms strong trending conditions
Momentum Surge Alerts: Catches explosive moves early
How It Works
The indicator calculates 12 Hull Moving Averages, each with a different period length. The trend direction is determined by the middle HMA (6th line), which triggers the color change across the entire ribbon. When trending up, the ribbon displays a purple gradient; when trending down, it shifts to a pink gradient.
Trading Applications
1. Trend Identification
Ribbon color indicates overall trend direction
All lines moving in sync confirms strong trend
Mixed signals suggest choppy or transitioning markets
2. Dynamic Support/Resistance
In uptrends, the ribbon acts as moving support
In downtrends, it provides resistance levels
Multiple layers offer various strength levels
3. Momentum Analysis
Expanding ribbon = Increasing momentum
Contracting ribbon = Decreasing momentum/consolidation
Ribbon angle indicates trend strength
4. Trading Example
Advantages Over Traditional MAs
Reduced Lag: Hull's formula provides faster response than SMA/EMA ribbons
Visual Clarity: Gradient effect makes trend changes immediately visible
Multiple Timeframes: 12 periods provide comprehensive market view
Flexibility: Presets adapt to different trading styles
Best Practices
Use higher timeframes (4H, Daily) for position trading
Combine with volume indicators for confirmation
Watch for ribbon compression before major moves
Consider overall market conditions when interpreting signals
Customization Options
Adjust individual HMA periods
Fine-tune transparency for different backgrounds
Choose between WMA and EMA base calculations
The Gradient Wave HMA combines Alan Hull's breakthrough moving average formula with modern visualization techniques to create a powerful trend-following tool that's both technically sophisticated and visually intuitive.
Why EMA Isn't What You Think It IsMany new traders adopt the Exponential Moving Average (EMA) believing it's simply a "better Simple Moving Average (SMA)". This common misconception leads to fundamental misunderstandings about how EMA works and when to use it.
EMA and SMA differ at their core. SMA use a window of finite number of data points, giving equal weight to each data point in the calculation period. This makes SMA a Finite Impulse Response (FIR) filter in signal processing terms. Remember that FIR means that "all that we need is the 'period' number of data points" to calculate the filter value. Anything beyond the given period is not relevant to FIR filters – much like how a security camera with 14-day storage automatically overwrites older footage, making last month's activity completely invisible regardless of how important it might have been.
EMA, however, is an Infinite Impulse Response (IIR) filter. It uses ALL historical data, with each past price having a diminishing - but never zero - influence on the calculated value. This creates an EMA response that extends infinitely into the past—not just for the last N periods. IIR filters cannot be precise if we give them only a 'period' number of data to work on - they will be off-target significantly due to lack of context, like trying to understand Game of Thrones by watching only the final season and wondering why everyone's so upset about that dragon lady going full pyromaniac.
If we only consider a number of data points equal to the EMA's period, we are capturing no more than 86.5% of the total weight of the EMA calculation. Relying on he period window alone (the warm-up period) will provide only 1 - (1 / e^2) weights, which is approximately 1−0.1353 = 0.8647 = 86.5%. That's like claiming you've read a book when you've skipped the first few chapters – technically, you got most of it, but you probably miss some crucial early context.
▶️ What is period in EMA used for?
What does a period parameter really mean for EMA? When we select a 15-period EMA, we're not selecting a window of 15 data points as with an SMA. Instead, we are using that number to calculate a decay factor (α) that determines how quickly older data loses influence in EMA result. Every trader knows EMA calculation: α = 1 / (1+period) – or at least every trader claims to know this while secretly checking the formula when they need it.
Thinking in terms of "period" seriously restricts EMA. The α parameter can be - should be! - any value between 0.0 and 1.0, offering infinite tuning possibilities of the indicator. When we limit ourselves to whole-number periods that we use in FIR indicators, we can only access a small subset of possible IIR calculations – it's like having access to the entire RGB color spectrum with 16.7 million possible colors but stubbornly sticking to the 8 basic crayons in a child's first art set because the coloring book only mentioned those by name.
For example:
Period 10 → alpha = 0.1818
Period 11 → alpha = 0.1667
What about wanting an alpha of 0.17, which might yield superior returns in your strategy that uses EMA? No whole-number period can provide this! Direct α parameterization offers more precision, much like how an analog tuner lets you find the perfect radio frequency while digital presets force you to choose only from predetermined stations, potentially missing the clearest signal sitting right between channels.
Sidenote: the choice of α = 1 / (1+period) is just a convention from 1970s, probably started by J. Welles Wilder, who popularized the use of the 14-day EMA. It was designed to create an approximate equivalence between EMA and SMA over the same number of periods, even thought SMA needs a period window (as it is FIR filter) and EMA doesn't. In reality, the decay factor α in EMA should be allowed any valye between 0.0 and 1.0, not just some discrete values derived from an integer-based period! Algorithmic systems should find the best α decay for EMA directly, allowing the system to fine-tune at will and not through conversion of integer period to float α decay – though this might put a few traditionalist traders into early retirement. Well, to prevent that, most traditionalist implementations of EMA only use period and no alpha at all. Heaven forbid we disturb people who print their charts on paper, draw trendlines with rulers, and insist the market "feels different" since computers do algotrading!
▶️ Calculating EMAs Efficiently
The standard textbook formula for EMA is:
EMA = CurrentPrice × alpha + PreviousEMA × (1 - alpha)
But did you know that a more efficient version exists, once you apply a tiny bit of high school algebra:
EMA = alpha × (CurrentPrice - PreviousEMA) + PreviousEMA
The first one requires three operations: 2 multiplications + 1 addition. The second one also requires three ops: 1 multiplication + 1 addition + 1 subtraction.
That's pathetic, you say? Not worth implementing? In most computational models, multiplications cost much more than additions/subtractions – much like how ordering dessert costs more than asking for a water refill at restaurants.
Relative CPU cost of float operations :
Addition/Subtraction: ~1 cycle
Multiplication: ~5 cycles (depending on precision and architecture)
Now you see the difference? 2 * 5 + 1 = 11 against 5 + 1 + 1 = 7. That is ≈ 36.36% efficiency gain just by swapping formulas around! And making your high school math teacher proud enough to finally put your test on the refrigerator.
▶️ The Warmup Problem: how to start the EMA sequence right
How do we calculate the first EMA value when there's no previous EMA available? Let's see some possible options used throughout the history:
Start with zero : EMA(0) = 0. This creates stupidly large distortion until enough bars pass for the horrible effect to diminish – like starting a trading account with zero balance but backdating a year of missed trades, then watching your balance struggle to climb out of a phantom debt for months.
Start with first price : EMA(0) = first price. This is better than starting with zero, but still causes initial distortion that will be extra-bad if the first price is an outlier – like forming your entire opinion of a stock based solely on its IPO day price, then wondering why your model is tanking for weeks afterward.
Use SMA for warmup : This is the tradition from the pencil-and-paper era of technical analysis – when calculators were luxury items and "algorithmic trading" meant your broker had neat handwriting. We first calculate an SMA over the initial period, then kickstart the EMA with this average value. It's widely used due to tradition, not merit, creating a mathematical Frankenstein that uses an FIR filter (SMA) during the initial period before abruptly switching to an IIR filter (EMA). This methodology is so aesthetically offensive (abrupt kink on the transition from SMA to EMA) that charting platforms hide these early values entirely, pretending EMA simply doesn't exist until the warmup period passes – the technical analysis equivalent of sweeping dust under the rug.
Use WMA for warmup : This one was never popular because it is harder to calculate with a pencil - compared to using simple SMA for warmup. Weighted Moving Average provides a much better approximation of a starting value as its linear descending profile is much closer to the EMA's decay profile.
These methods all share one problem: they produce inaccurate initial values that traders often hide or discard, much like how hedge funds conveniently report awesome performance "since strategy inception" only after their disastrous first quarter has been surgically removed from the track record.
▶️ A Better Way to start EMA: Decaying compensation
Think of it this way: An ideal EMA uses an infinite history of prices, but we only have data starting from a specific point. This creates a problem - our EMA starts with an incorrect assumption that all previous prices were all zero, all close, or all average – like trying to write someone's biography but only having information about their life since last Tuesday.
But there is a better way. It requires more than high school math comprehension and is more computationally intensive, but is mathematically correct and numerically stable. This approach involves compensating calculated EMA values for the "phantom data" that would have existed before our first price point.
Here's how phantom data compensation works:
We start our normal EMA calculation:
EMA_today = EMA_yesterday + α × (Price_today - EMA_yesterday)
But we add a correction factor that adjusts for the missing history:
Correction = 1 at the start
Correction = Correction × (1-α) after each calculation
We then apply this correction:
True_EMA = Raw_EMA / (1-Correction)
This correction factor starts at 1 (full compensation effect) and gets exponentially smaller with each new price bar. After enough data points, the correction becomes so small (i.e., below 0.0000000001) that we can stop applying it as it is no longer relevant.
Let's see how this works in practice:
For the first price bar:
Raw_EMA = 0
Correction = 1
True_EMA = Price (since 0 ÷ (1-1) is undefined, we use the first price)
For the second price bar:
Raw_EMA = α × (Price_2 - 0) + 0 = α × Price_2
Correction = 1 × (1-α) = (1-α)
True_EMA = α × Price_2 ÷ (1-(1-α)) = Price_2
For the third price bar:
Raw_EMA updates using the standard formula
Correction = (1-α) × (1-α) = (1-α)²
True_EMA = Raw_EMA ÷ (1-(1-α)²)
With each new price, the correction factor shrinks exponentially. After about -log₁₀(1e-10)/log₁₀(1-α) bars, the correction becomes negligible, and our EMA calculation matches what we would get if we had infinite historical data.
This approach provides accurate EMA values from the very first calculation. There's no need to use SMA for warmup or discard early values before output converges - EMA is mathematically correct from first value, ready to party without the awkward warmup phase.
Here is Pine Script 6 implementation of EMA that can take alpha parameter directly (or period if desired), returns valid values from the start, is resilient to dirty input values, uses decaying compensator instead of SMA, and uses the least amount of computational cycles possible.
// Enhanced EMA function with proper initialization and efficient calculation
ema(series float source, simple int period=0, simple float alpha=0)=>
// Input validation - one of alpha or period must be provided
if alpha<=0 and period<=0
runtime.error("Alpha or period must be provided")
// Calculate alpha from period if alpha not directly specified
float a = alpha > 0 ? alpha : 2.0 / math.max(period, 1)
// Initialize variables for EMA calculation
var float ema = na // Stores raw EMA value
var float result = na // Stores final corrected EMA
var float e = 1.0 // Decay compensation factor
var bool warmup = true // Flag for warmup phase
if not na(source)
if na(ema)
// First value case - initialize EMA to zero
// (we'll correct this immediately with the compensation)
ema := 0
result := source
else
// Standard EMA calculation (optimized formula)
ema := a * (source - ema) + ema
if warmup
// During warmup phase, apply decay compensation
e *= (1-a) // Update decay factor
float c = 1.0 / (1.0 - e) // Calculate correction multiplier
result := c * ema // Apply correction
// Stop warmup phase when correction becomes negligible
if e <= 1e-10
warmup := false
else
// After warmup, EMA operates without correction
result := ema
result // Return the properly compensated EMA value
▶️ CONCLUSION
EMA isn't just a "better SMA"—it is a fundamentally different tool, like how a submarine differs from a sailboat – both float, but the similarities end there. EMA responds to inputs differently, weighs historical data differently, and requires different initialization techniques.
By understanding these differences, traders can make more informed decisions about when and how to use EMA in trading strategies. And as EMA is embedded in so many other complex and compound indicators and strategies, if system uses tainted and inferior EMA calculatiomn, it is doing a disservice to all derivative indicators too – like building a skyscraper on a foundation of Jell-O.
The next time you add an EMA to your chart, remember: you're not just looking at a "faster moving average." You're using an INFINITE IMPULSE RESPONSE filter that carries the echo of all previous price actions, properly weighted to help make better trading decisions.
EMA done right might significantly improve the quality of all signals, strategies, and trades that rely on EMA somewhere deep in its algorithmic bowels – proving once again that math skills are indeed useful after high school, no matter what your guidance counselor told you.
Standard Deviation OscillatorStandard Deviation Oscillator (STDEV OSC) v1.1
Description
The Standard Deviation Oscillator transforms traditional volatility measurements into a dynamic oscillator that fluctuates between 0 and 100. This advanced technical analysis tool helps traders identify periods of extreme volatility and potential market turning points.
Features
Normalized volatility readings (0-100 scale)
Dynamic color changes based on volatility levels
Customizable overbought/oversold thresholds
Built-in alert conditions
Adaptive calculation using rolling windows
Clean, professional visualization
Indicator Parameters
Length: 20; Calculation period for standard deviation
Source: close; Price source for calculations
Overbought Level: 70; Upper threshold for high volatility
Oversold Level: 30; Lower threshold for low volatility
Visual Components
- Main Oscillator Line: Changes color based on current level
- Red: Above overbought level
- Green: Below oversold level
- Blue: Normal range
- Reference Lines:
- Overbought level (default: 70)
- Oversold level (default: 30)
- Middle line (50)
Alert Conditions
1. Volatility High Alert
- Triggers when oscillator crosses above the overbought level
- Useful for identifying potential market tops or breakout scenarios
2. Volatility Low Alert
- Triggers when oscillator crosses below the oversold level
- Helps identify potential market bottoms or consolidation periods
Risk Adjustment Tool
- Scale position sizes inversely to oscillator readings
- Reduce exposure during extremely high volatility periods
- Increase position sizes during normal volatility conditions
Best Practices
1. Timeframe Selection
- Best suited for 1H, 4H, and Daily charts
- Adjust length parameter based on timeframe
2. Confirmation
- Use in conjunction with trend indicators
- Confirm signals with price action patterns
- Consider overall market context
3. Parameter Optimization
- Backtest different length settings
- Adjust overbought/oversold levels based on asset
- Consider market conditions when setting alerts
Technical Notes
- Built in PineScript v5
- Optimized for TradingView platform
- Uses rolling window calculations for better adaptability
- Compatible with all trading instruments
- Minimal performance impact on charts
Version History
- v1.1: Added dynamic coloring, customizable levels, and alert conditions
- v1.0: Initial release with basic oscillator functionality
Disclaimer
This technical indicator is provided for educational and informational purposes only. Past performance is not indicative of future results. Always conduct thorough testing and use proper risk management techniques.
---
Tags: #TechnicalAnalysis #Volatility #Trading #Oscillator #TradingView #PineScript
MomentumSignal Kit RSI-MACD-ADX-CCI-CMF-TSI-EStoch// ----------------------------------------
// Description:
// ----------------------------------------
// MomentumKit RSI/MACD-ADX-CCI-CMF-TSI-EStoch Suite is a comprehensive momentum indicator suite designed to provide robust buy and sell signals through the consensus of multiple normalized momentum indicators. This suite integrates the following indicators:
// - **Relative Strength Index (RSI)**
// - **Stochastic RSI**
// - **Moving Average Convergence Divergence (MACD)** with enhanced logic
// - **True Strength Index (TSI)**
// - **Commodity Channel Index (CCI)**
// - **Chaikin Money Flow (CMF)**
// - **Average Directional Index (ADX)**
// - **Ehlers' Stochastic**
//
// **Key Features:**
// 1. **Normalization:** Each indicator is normalized to a consistent scale, facilitating easier comparison and interpretation across different momentum metrics. This uniform scaling allows traders to seamlessly analyze multiple indicators simultaneously without the confusion of differing value ranges.
//
// 2. **Consensus-Based Signals:** By combining multiple indicators, MomentumKit generates buy and sell signals based on the agreement among various momentum measurements. This multi-indicator consensus approach enhances signal reliability and reduces the likelihood of false positives.
//
// 3. **Overlap Analysis:** The normalization process aids in identifying overlapping signals, where multiple indicators point towards a potential change in price or momentum. Such overlaps are strong indicators of significant market movements, providing traders with timely and actionable insights.
//
// 4. **Enhanced Logic for MACD:** The MACD component within MomentumKit utilizes enhanced logic to improve its responsiveness and accuracy in detecting trend changes.
//
// 5. **Debugging Features:** MomentumKit includes advanced debugging tools that display individual buy and sell signals generated by each indicator. These features are intended for users with technical and programming skills, allowing them to:
// - **Visualize Signal Generation:** See real-time buy and sell signals for each integrated indicator directly on the chart.
// - **Adjust Signal Thresholds:** Modify the criteria for what constitutes a buy or sell signal for each indicator, enabling tailored analysis based on specific trading strategies.
// - **Filter and Manipulate Signals:** Enable or disable specific indicators' contributions to the overall buy and sell signals, providing flexibility in signal generation.
// - **Monitor Indicator Behavior:** Utilize debug plots and labels to understand how each indicator reacts to market movements, aiding in strategy optimization.
//
// **Work in Progress:**
// MomentumKit is continuously evolving, with ongoing enhancements to its algorithms and user interface. Current debugging features are designed to offer deep insights for technically adept users, allowing for extensive customization and fine-tuning. Future updates aim to introduce more user-friendly interfaces and automated optimization tools to cater to a broader audience.
//
// **Usage Instructions:**
// - **Visibility Controls:** Users can toggle the visibility of individual indicators to focus on specific momentum metrics as needed.
// - **Parameter Adjustments:** Each indicator comes with customizable parameters, allowing traders to fine-tune the suite according to their trading strategies and market conditions.
// - **Debugging Features:** Enable the debugging mode to visualize individual indicator signals and adjust their contribution to the overall buy/sell signals. This requires a basic understanding of the underlying indicators and their operational thresholds.
//
// **Benefits:**
// - **Simplified Analysis:** Normalization simplifies the process of analyzing multiple indicators, making it easier to identify consistent signals across different momentum measurements.
// - **Improved Decision-Making:** Consensus-based signals backed by multiple normalized indicators provide a higher level of confidence in trading decisions.
// - **Versatility:** Suitable for various trading styles and market conditions, MomentumKit offers a versatile toolset for both novice and experienced traders.
//
// **Technical Requirements:**
// - **Programming Knowledge:** To fully leverage the debugging and signal manipulation features, users should possess a foundational understanding of Pine Script and the mechanics of momentum indicators.
// - **Customization Skills:** Ability to adjust indicator parameters and debug filters to align with specific trading strategies.
//
// **Disclaimer:**
// This indicator suite is intended for educational and analytical purposes only and does not constitute financial advice. Trading involves significant risk, and past performance is not indicative of future results. Always conduct your own analysis or consult a qualified financial advisor before making trading decisions.
Any Oscillator Underlay [TTF]We are proud to release a new indicator that has been a while in the making - the Any Oscillator Underlay (AOU) !
Note: There is a lot to discuss regarding this indicator, including its intent and some of how it operates, so please be sure to read this entire description before using this indicator to help ensure you understand both the intent and some limitations with this tool.
Our intent for building this indicator was to accomplish the following:
Combine all of the oscillators that we like to use into a single indicator
Take up a bit less screen space for the underlay indicators for strategies that utilize multiple oscillators
Provide a tool for newer traders to be able to leverage multiple oscillators in a single indicator
Features:
Includes 8 separate, fully-functional indicators combined into one
Ability to easily enable/disable and configure each included indicator independently
Clearly named plots to support user customization of color and styling, as well as manual creation of alerts
Ability to customize sub-indicator title position and color
Ability to customize sub-indicator divider lines style and color
Indicators that are included in this initial release:
TSI
2x RSIs (dubbed the Twin RSI )
Stochastic RSI
Stochastic
Ultimate Oscillator
Awesome Oscillator
MACD
Outback RSI (Color-coding only)
Quick note on OB/OS:
Before we get into covering each included indicator, we first need to cover a core concept for how we're defining OB and OS levels. To help illustrate this, we will use the TSI as an example.
The TSI by default has a mid-point of 0 and a range of -100 to 100. As a result, a common practice is to place lines on the -30 and +30 levels to represent OS and OB zones, respectively. Most people tend to view these levels as distance from the edges/outer bounds or as absolute levels, but we feel a more way to frame the OB/OS concept is to instead define it as distance ("offset") from the mid-line. In keeping with the -30 and +30 levels in our example, the offset in this case would be "30".
Taking this a step further, let's say we decided we wanted an offset of 25. Since the mid-point is 0, we'd then calculate the OB level as 0 + 25 (+25), and the OS level as 0 - 25 (-25).
Now that we've covered the concept of how we approach defining OB and OS levels (based on offset/distance from the mid-line), and since we did apply some transformations, rescaling, and/or repositioning to all of the indicators noted above, we are going to discuss each component indicator to detail both how it was modified from the original to fit the stacked-indicator model, as well as the various major components that the indicator contains.
TSI:
This indicator contains the following major elements:
TSI and TSI Signal Line
Color-coded fill for the TSI/TSI Signal lines
Moving Average for the TSI
TSI Histogram
Mid-line and OB/OS lines
Default TSI fill color coding:
Green : TSI is above the signal line
Red : TSI is below the signal line
Note: The TSI traditionally has a range of -100 to +100 with a mid-point of 0 (range of 200). To fit into our stacking model, we first shrunk the range to 100 (-50 to +50 - cut it in half), then repositioned it to have a mid-point of 50. Since this is the "bottom" of our indicator-stack, no additional repositioning is necessary.
Twin RSI:
This indicator contains the following major elements:
Fast RSI (useful if you want to leverage 2x RSIs as it makes it easier to see the overlaps and crosses - can be disabled if desired)
Slow RSI (primary RSI)
Color-coded fill for the Fast/Slow RSI lines (if Fast RSI is enabled and configured)
Moving Average for the Slow RSI
Mid-line and OB/OS lines
Default Twin RSI fill color coding:
Dark Red : Fast RSI below Slow RSI and Slow RSI below Slow RSI MA
Light Red : Fast RSI below Slow RSI and Slow RSI above Slow RSI MA
Dark Green : Fast RSI above Slow RSI and Slow RSI below Slow RSI MA
Light Green : Fast RSI above Slow RSI and Slow RSI above Slow RSI MA
Note: The RSI naturally has a range of 0 to 100 with a mid-point of 50, so no rescaling or transformation is done on this indicator. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Stochastic and Stochastic RSI:
These indicators contain the following major elements:
Configurable lengths for the RSI (for the Stochastic RSI only), K, and D values
Configurable base price source
Mid-line and OB/OS lines
Note: The Stochastic and Stochastic RSI both have a normal range of 0 to 100 with a mid-point of 50, so no rescaling or transformations are done on either of these indicators. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Ultimate Oscillator (UO):
This indicator contains the following major elements:
Configurable lengths for the Fast, Middle, and Slow BP/TR components
Mid-line and OB/OS lines
Moving Average for the UO
Color-coded fill for the UO/UO MA lines (if UO MA is enabled and configured)
Default UO fill color coding:
Green : UO is above the moving average line
Red : UO is below the moving average line
Note: The UO naturally has a range of 0 to 100 with a mid-point of 50, so no rescaling or transformation is done on this indicator. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Awesome Oscillator (AO):
This indicator contains the following major elements:
Configurable lengths for the Fast and Slow moving averages used in the AO calculation
Configurable price source for the moving averages used in the AO calculation
Mid-line
Option to display the AO as a line or pseudo-histogram
Moving Average for the AO
Color-coded fill for the AO/AO MA lines (if AO MA is enabled and configured)
Default AO fill color coding (Note: Fill was disabled in the image above to improve clarity):
Green : AO is above the moving average line
Red : AO is below the moving average line
Note: The AO is technically has an infinite (unbound) range - -∞ to ∞ - and the effective range is bound to the underlying security price (e.g. BTC will have a wider range than SP500, and SP500 will have a wider range than EUR/USD). We employed some special techniques to rescale this indicator into our desired range of 100 (-50 to 50), and then repositioned it to have a midpoint of 50 (range of 0 to 100) to meet the constraints of our stacking model. We then do one final repositioning to place it in the correct position the indicator-stack based on which other indicators are also enabled. For more details on how we accomplished this, read our section "Binding Infinity" below.
MACD:
This indicator contains the following major elements:
Configurable lengths for the Fast and Slow moving averages used in the MACD calculation
Configurable price source for the moving averages used in the MACD calculation
Configurable length and calculation method for the MACD Signal Line calculation
Mid-line
Note: Like the AO, the MACD also technically has an infinite (unbound) range. We employed the same principles here as we did with the AO to rescale and reposition this indicator as well. For more details on how we accomplished this, read our section "Binding Infinity" below.
Outback RSI (ORSI):
This is a stripped-down version of the Outback RSI indicator (linked above) that only includes the color-coding background (suffice it to say that it was not technically feasible to attempt to rescale the other components in a way that could consistently be clearly seen on-chart). As this component is a bit of a niche/special-purpose sub-indicator, it is disabled by default, and we suggest it remain disabled unless you have some pre-defined strategy that leverages the color-coding element of the Outback RSI that you wish to use.
Binding Infinity - How We Incorporated the AO and MACD (Warning - Math Talk Ahead!)
Note: This applies only to the AO and MACD at time of original publication. If any other indicators are added in the future that also fall into the category of "binding an infinite-range oscillator", we will make that clear in the release notes when that new addition is published.
To help set the stage for this discussion, it's important to note that the broader challenge of "equalizing inputs" is nothing new. In fact, it's a key element in many of the most popular fields of data science, such as AI and Machine Learning. They need to take a diverse set of inputs with a wide variety of ranges and seemingly-random inputs (referred to as "features"), and build a mathematical or computational model in order to work. But, when the raw inputs can vary significantly from one another, there is an inherent need to do some pre-processing to those inputs so that one doesn't overwhelm another simply due to the difference in raw values between them. This is where feature scaling comes into play.
With this in mind, we implemented 2 of the most common methods of Feature Scaling - Min-Max Normalization (which we call "Normalization" in our settings), and Z-Score Normalization (which we call "Standardization" in our settings). Let's take a look at each of those methods as they have been implemented in this script.
Min-Max Normalization (Normalization)
This is one of the most common - and most basic - methods of feature scaling. The basic formula is: y = (x - min)/(max - min) - where x is the current data sample, min is the lowest value in the dataset, and max is the highest value in the dataset. In this transformation, the max would evaluate to 1, and the min would evaluate to 0, and any value in between the min and the max would evaluate somewhere between 0 and 1.
The key benefits of this method are:
It can be used to transform datasets of any range into a new dataset with a consistent and known range (0 to 1).
It has no dependency on the "shape" of the raw input dataset (i.e. does not assume the input dataset can be approximated to a normal distribution).
But there are a couple of "gotchas" with this technique...
First, it assumes the input dataset is complete, or an accurate representation of the population via random sampling. While in most situations this is a valid assumption, in trading indicators we don't really have that luxury as we're often limited in what sample data we can access (i.e. number of historical bars available).
Second, this method is highly sensitive to outliers. Since the crux of this transformation is based on the max-min to define the initial range, a single significant outlier can result in skewing the post-transformation dataset (i.e. major price movement as a reaction to a significant news event).
You can potentially mitigate those 2 "gotchas" by using a mechanism or technique to find and discard outliers (e.g. calculate the mean and standard deviation of the input dataset and discard any raw values more than 5 standard deviations from the mean), but if your most recent datapoint is an "outlier" as defined by that algorithm, processing it using the "scrubbed" dataset would result in that new datapoint being outside the intended range of 0 to 1 (e.g. if the new datapoint is greater than the "scrubbed" max, it's post-transformation value would be greater than 1). Even though this is a bit of an edge-case scenario, it is still sure to happen in live markets processing live data, so it's not an ideal solution in our opinion (which is why we chose not to attempt to discard outliers in this manner).
Z-Score Normalization (Standardization)
This method of rescaling is a bit more complex than the Min-Max Normalization method noted above, but it is also a widely used process. The basic formula is: y = (x – μ) / σ - where x is the current data sample, μ is the mean (average) of the input dataset, and σ is the standard deviation of the input dataset. While this transformation still results in a technically-infinite possible range, the output of this transformation has a 2 very significant properties - the mean (average) of the output dataset has a mean (μ) of 0 and a standard deviation (σ) of 1.
The key benefits of this method are:
As it's based on normalizing the mean and standard deviation of the input dataset instead of a linear range conversion, it is far less susceptible to outliers significantly affecting the result (and in fact has the effect of "squishing" outliers).
It can be used to accurately transform disparate sets of data into a similar range regardless of the original dataset's raw/actual range.
But there are a couple of "gotchas" with this technique as well...
First, it still technically does not do any form of range-binding, so it is still technically unbounded (range -∞ to ∞ with a mid-point of 0).
Second, it implicitly assumes that the raw input dataset to be transformed is normally distributed, which won't always be the case in financial markets.
The first "gotcha" is a bit of an annoyance, but isn't a huge issue as we can apply principles of normal distribution to conceptually limit the range by defining a fixed number of standard deviations from the mean. While this doesn't totally solve the "infinite range" problem (a strong enough sudden move can still break out of our "conceptual range" boundaries), the amount of movement needed to achieve that kind of impact will generally be pretty rare.
The bigger challenge is how to deal with the assumption of the input dataset being normally distributed. While most financial markets (and indicators) do tend towards a normal distribution, they are almost never going to match that distribution exactly. So let's dig a bit deeper into distributions are defined and how things like trending markets can affect them.
Skew (skewness): This is a measure of asymmetry of the bell curve, or put another way, how and in what way the bell curve is disfigured when comparing the 2 halves. The easiest way to visualize this is to draw an imaginary vertical line through the apex of the bell curve, then fold the curve in half along that line. If both halves are exactly the same, the skew is 0 (no skew/perfectly symmetrical) - which is what a normal distribution has (skew = 0). Most financial markets tend to have short, medium, and long-term trends, and these trends will cause the distribution curve to skew in one direction or another. Bullish markets tend to skew to the right (positive), and bearish markets to the left (negative).
Kurtosis: This is a measure of the "tail size" of the bell curve. Another way to state this could be how "flat" or "steep" the bell-shape is. If the bell is steep with a strong drop from the apex (like a steep cliff), it has low kurtosis. If the bell has a shallow, more sweeping drop from the apex (like a tall hill), is has high kurtosis. Translating this to financial markets, kurtosis is generally a metric of volatility as the bell shape is largely defined by the strength and frequency of outliers. This is effectively a measure of volatility - volatile markets tend to have a high level of kurtosis (>3), and stable/consolidating markets tend to have a low level of kurtosis (<3). A normal distribution (our reference), has a kurtosis value of 3.
So to try and bring all that back together, here's a quick recap of the Standardization rescaling method:
The Standardization method has an assumption of a normal distribution of input data by using the mean (average) and standard deviation to handle the transformation
Most financial markets do NOT have a normal distribution (as discussed above), and will have varying degrees of skew and kurtosis
Q: Why are we still favoring the Standardization method over the Normalization method, and how are we accounting for the innate skew and/or kurtosis inherent in most financial markets?
A: Well, since we're only trying to rescale oscillators that by-definition have a midpoint of 0, kurtosis isn't a major concern beyond the affect it has on the post-transformation scaling (specifically, the number of standard deviations from the mean we need to include in our "artificially-bound" range definition).
Q: So that answers the question about kurtosis, but what about skew?
A: So - for skew, the answer is in the formula - specifically the mean (average) element. The standard mean calculation assumes a complete dataset and therefore uses a standard (i.e. simple) average, but we're limited by the data history available to us. So we adapted the transformation formula to leverage a moving average that included a weighting element to it so that it favored recent datapoints more heavily than older ones. By making the average component more adaptive, we gained the effect of reducing the skew element by having the average itself be more responsive to recent movements, which significantly reduces the effect historical outliers have on the dataset as a whole. While this is certainly not a perfect solution, we've found that it serves the purpose of rescaling the MACD and AO to a far more well-defined range while still preserving the oscillator behavior and mid-line exceptionally well.
The most difficult parts to compensate for are periods where markets have low volatility for an extended period of time - to the point where the oscillators are hovering around the 0/midline (in the case of the AO), or when the oscillator and signal lines converge and remain close to each other (in the case of the MACD). It's during these periods where even our best attempt at ensuring accurate mirrored-behavior when compared to the original can still occasionally lead or lag by a candle.
Note: If this is a make-or-break situation for you or your strategy, then we recommend you do not use any of the included indicators that leverage this kind of bounding technique (the AO and MACD at time of publication) and instead use the Trandingview built-in versions!
We know this is a lot to read and digest, so please take your time and feel free to ask questions - we will do our best to answer! And as always, constructive feedback is always welcome!
Adaptive Fisherized KSTIntroduction
Heyo guys, here is a new adaptive fisherized indicator of me.
I applied Inverse Fisher Transform, Ehlers dominant cycle analysis,
smoothing and divergence analysis on the Know Sure Thing (KST) indicator.
Moreover, the indicator doesn't repaint.
Usage
I didn't backtest the indicator, but I recommend the 5–15 min timeframe.
It can be also used on other timeframs, but I have no experience with that.
The indicator has no special filter system, so you need to find an own combo in order to build a trading system.
A trend filter like KAMA or my Adaptive Fisherized Trend Intensity Index could fit well.
If you find a good combo, let me know it in the comments pls.
Signals
Zero Line
KST crossover 0 => Enter Long
KST crossunder 0 => Enter Short
Cross
KST crossover KST MA => Enter Long
KST crossunder KST MA => Enter Short
Cross Filtered
KST crossover KST MA and KST above 0 => Enter Long
KST crossunder KST MA and KST under 0 => Enter Short
KST crossunder 0 => Exit Long
KST crossover 0 => Exit Short
More to read: KST Explanation
Enjoy and let me know your opinion!
--
Credits to
- @tista
- @blackcat1402
- @DasanC
- @cheatcountry
[KA] Rate of ChangeRate of Change (ROC)
Given a source series, calculates a running Rate of Change -- simply the percentage difference between the current value of said source to the value N bars back.
One nicety here, compared to the stock tradingview indicator is allowance to force plot certain bounds. This allows more visibility on the relative movement of the series within the plotted bounds.
For example, you know the particular bounds for a timeframe, and can visibly see when those bounds are violated.
See:
StockCharts ROC Explanation
Inputs:
Source Series, anything indicator series on chart
N Bars, the reference no. of bars to compare change since.
Mandatory % Bounds, if value specified, this +value and -value, will be plotted
Stochastic Direction StrategyThis is a simple strategy based on the Stochastic Oscillator: stockcharts com/school/doku.php?id=chart_school:technical_indicators:stochastic_oscillator_fast_slow_and_full
Its purpose is to gradually build a position in a trending market (as of June 26th 2016 in most cryptocurrencies).
Inputs:
- direction (long/short)
- overbought/oversold
- close positions (yes/no to only increase positions)
Outputs:
- buy/sell/close signals plotted on a chart below
This script can easily be used as a TradingView study (for alerts) and a strategy (for backtesting). See the comments in the code.
I have added additional alert conditions to be used easily together with a trading bot reading the signals
Yet obviously you can also do manual trading on each alert.
Volume Profile Free MAX SLI (50 Levels Value Area VWAP) by RRBVolume Profile Free MAX SLI by RagingRocketBull 2019
Version 1.0
All available Volume Profile Free MAX SLI versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: style columns implementation
ver 2.0: style histogram implementation
ver 3.0: style line implementation
This indicator calculates Volume Profile for a given range and shows it as a histogram consisting of 50 horizontal bars.
It can also show Point of Control (POC), Developing POC, Value Area/VWAP StdDev High/Low as dynamically moving levels.
Free accounts can't access Standard TradingView Volume Profile, hence this indicator.
There are several versions: Free Pro, Free MAX SLI, Free History. This is the Free MAX SLI version. The Differences are listed below:
- Free Pro: 25 levels, +Developing POC, Value Area/VWAP High/Low Levels, Above/Below Area Dimming
- Free MAX SLI: 50 levels, packed to the limit, 2x SLI modes for Buy/Sell or even higher res 150 levels
- Free History: auto highest/lowest, historic poc/va levels for each session
Features:
- High-Res Volume Profile with up to 50 levels (3 implementations)
- 20-30x faster than the old Pro versions especially on lower tfs with long history
- 2x SLI modes for even higher res: 150 levels with 3x vertical SLI, 50 buy/sell levels with 2x horiz SLI
- Calculate Volume Profile on full history
- POC, Developing POC Levels
- Buy/Sell/Total volume modes
- Side Cover
- Value Area, VAH/VAL dynamic levels
- VWAP High/Low dynamic levels with Source, Length, StdDev as params
- Show/Hide all levels
- Dim Non Value Area Zones
- Custom Range with Highlighting
- 3 Anchor points for Volume Profile
- Flip Levels Horizontally
- Adjustable width, offset and spacing of levels
- Custom Color for POC/VA/VWAP levels and Transparency for buy/sell levels
Usage:
- specify max_level/min_level/spacing (required)
- select range (start_bar, range length), confirm with range highlighting
- select volume type: Buy/Sell/Total
- select mode Value Area/VWAP to show corresponding levels
- flip/select anchor point to position the buy/sell levels
- use Horiz SLI mode for 50 Buy/Sell or Vertical SLI for 150 levels if needed
- use POC/Developing POC/VA/VWAP High/Low as S/R levels. Usually daily values from 1-3 days back are used as levels for the current day.
SLI:
- use SLI modes to extend the functionality of the indicator:
- Horiz Buy/Sell 2x SLI lets you view 50 Buy/Sell Levels at the same time
- Vertical Max_Vol 3x SLI lets you increase the resolution to 150 levels
- you need at least 2 instances of the indicator attached to the same chart for SLI to work
1) Enable Horiz SLI:
- attach 2 indicator instances to the chart
- make sure all instances have the same min_level/max_level/range/spacing settings
- select volume type for each instance: you can have a buy/sell or buy/total or sell/total SLI. Make sure your buy volume instance is the last attached to be displayed on top of sell/total instances without overlapping.
- set buy_sell_sli_mode to true for indicator instances with volume_type = buy/sell, for type total this is optional.
- this basically tells the script to calculate % lengths based on total volume instead of individual buy/sell volumes and use ext offset for sell levels
- Sell Offset is calculated relative to Buy Offset to stack/extend sell after buy. Buy Offset = Zero - Buy Length. Sell Offset = Buy Offset - Sell Length = Zero - Buy Length - Sell Length
- there are no master/slave instances in this mode, all indicators are equal, poc/va levels are not affected and can work independently, i.e. one instance can show va levels, another - vwap.
2) Enable Vertical SLI:
- attach the first instance and evaluate the full range to roughly determine where is the highest max_vol/poc level i.e. 0..20000, poc is in the bottom half (third, middle etc) or
- add more instances and split the full vertical range between them, i.e. set min_level/max_level of each corresponding instance to 0..10000, 10000..20000 etc
- make sure all instances have the same range/spacing settings
- an instance with a subrange containing the poc level of the full range is now your master instance (bottom half). All other instances are slaves, their levels will be calculated based on the max_vol/poc of the master instance instead of local values
- set show_max_vol_sli to true for the master instance. for slave instances this is optional and can be used to check if master/slave max_vol values match and slave can read the master's value. This simply plots the max_vol value
- you can also attach all instances and set show_max_vol_sli to true in all of them - the instance with the largest max_vol should become the master
Auto/Manual Ext Max_Vol Modes:
- for auto vertical max_vol SLI mode set max_vol_sli_src in all slave instances to the max_vol of the master indicator: "VolumeProfileFree_MAX_RRB: Max Volume for Vertical SLI Mode". It can be tricky with 2+ instances
- in case auto SLI mode doesn't work - assign max_vol_sli_ext in all slave instances the max_vol value of the master indicator manually and repeat on each change
- manual override max_vol_sli_ext has higher priority than auto max_vol_sli_src when both values are assigned, when they are 0 and close respectively - SLI is disabled
- master/slave max_vol values must match on each bar at all times to maintain proper level scale, otherwise slave's levels will look larger than they should relative to the master's levels.
- Max_vol (red) is the last param in the long list of indicator outputs
- the only true max_vol/poc in this SLI mode is the master's max_vol/poc. All poc/va levels in slaves will be irrelevant and are disabled automatically. Slaves can only show VWAP levels.
- VA Levels of the master instance in this SLI mode are calculated based on the subrange, not the whole range. Cross check with the full range.
WARNING!
- auto mode max_vol_sli_src is experimental and may not work as expected
- you can only assign auto mode max_vol_sli_src = max_vol once due to some bug with unhandled exception/buffer overflow in Tradingview. Seems that you can clear the value only by removing the indicator instance
- sometimes you may see a "study in error state" error when attempting to set it back to close. Remove indicator/Reload chart and start from scratch
- volume profile may not finish to redraw and freeze in an ugly shape after an UI parameter change when max_vol_sli_src is assigned a max_vol value. Assign it to close - VP should redraw properly, but it may not clear the assigned max_vol value
- you can't seem to be able to assign a proper auto max_vol value to the 3rd slave instance
- 2x Vertical SLI works and tested in both auto/manual, 3x SLI - only manual seems to work
Notes:
- This code is 20x-30x faster (main for cycle is removed) especially on lower tfs with long history - only 2-3 sec load/redraw time vs 30-60 sec of the old Pro versions
- Instead of repeatedly calculating the total sum of volumes for the whole range on each bar, vol sums are now increased on each bar and passed to the next in the range making it a per range vs per bar calculation that reduces time dramatically
- hist_base for levels still results is ugly redraw
- if you don't see a volume profile check range settings: min_level/max_level and spacing, set spacing to 0 (or adjust accordingly based on the symbol's precision, i.e. 0.00001)
- you can view either of Buy/Sell/Total volumes, but you can't display Buy/Sell levels at the same time using a single instance (this would 2x reduce the number of levels). Use 2 indicator instances in horiz buy/sell sli mode for that.
- Volume Profile/Value Area are calculated for a given range and updated on each bar. Each level has a fixed length. Offsets control visible level parts. Side Cover hides the invisible parts.
- Custom Color for POC/VA/VWAP levels - UI Style color/transparency can only change shape's color and doesn't affect textcolor, hence this additional option
- Custom Width - UI Style supports only width <= 4, hence this additional option
- POC is visible in both modes. In VWAP mode Developing POC becomes VWAP, VA High and Low => VWAP High and Low correspondingly to minimize the number of plot outputs
- You can't change buy/sell level colors from input (only plot transparency) - this requires 2x plot outputs => 2x reduces the number of levels to fit the max 64 limit. That's why 2 additional plots are used to dim the non Value Area zones
- All buy/sell volume lengths are calculated as % of a fixed base width = 100 bars (100%). You can't set show_last from input to change it
- There's no such thing as buy/sell volume, there's just volume, but for the purposes of the Volume Profile method, assume: bull candle = buy volume, bear candle = sell volume
P.S. Gravitonium Levels Are Increasing. Unobtainium is nowhere to be found!
Links on Volume Profile and Value Area calculation and usage:
www.tradingview.com
stockcharts.com
onlinelibrary.wiley.com
Volume Profile Free Pro (25 Levels Value Area VWAP) by RRBVolume Profile Free Pro by RagingRocketBull 2019
Version 1.0
All available Volume Profile Free Pro versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: style columns implementation
ver 2.0: style histogram implementation
ver 3.0: style line implementation
This indicator calculates Volume Profile for a given range and shows it as a histogram consisting of 25 horizontal bars.
It can also show Point of Control (POC), Developing POC, Value Area/VWAP StdDev High/Low as dynamically moving levels.
Free accounts can't access Standard TradingView Volume Profile, hence this indicator.
There are 3 basic methods to calculate the Value Area for a session.
- original method developed by Steidlmayr (calculated around POC)
- classical method using StdDev (calculated around the mean VWAP)
- another method based on the mean absolute deviation (calculated around the median)
POC is a high volume node and can be used as support/resistance. But when far from the day's average price it may not be as good a trend filter as the other methods.
The 80% Rule: When the market opens above/below the Value Area and then returns/stays back inside for 2 consecutive 30min periods it has 80% chance of filling VA (like a gap).
There are several versions: Free, Free Pro, Free MAX. This is the Free Pro version. The Differences are listed below:
- Free: 30 levels, Buy/Sell/Total Volume Profile views, POC
- Free Pro: 25 levels, +Developing POC, Value Area/VWAP High/Low Levels, Above/Below Area Dimming
- Free MAX: 50 levels, packed to the limit
Features:
- Volume Profile with up to 25 levels (3 implementations)
- POC, Developing POC Levels
- Buy/Sell/Total/Side by Side View modes
- Side Cover
- Value Area, VAH/VAL dynamic levels
- VWAP High/Low dynamic levels with Source, Length, StdDev as params
- Show/Hide all levels
- Dim Non Value Area Zones
- Custom Range with Highlighting
- 3 Anchor points for Volume Profile
- Flip Levels Horizontally
- Adjustable width, offset and spacing of levels
- Custom Color for POC/VA/VWAP levels and Transparency for buy/sell levels
Usage:
- specify max_level/min_level for a range (required in ver 1.0/2.0, auto/optional in ver 3.0 = set to highest/lowest)
- select range (start_bar, range length), confirm with range highlighting
- select mode Value Area or VWAP to show corresponding levels.
- flip/select anchor point to position the buy/sell levels, adjust width and spacing as needed
- select Buy/Sell/Total/Side by Side view mode
- use POC/Developing POC/VA/VWAP High/Low as S/R levels. Usually daily values from 1-3 days back are used as levels for the current day.
- Green - buy volume of a specific price level in a range, Red - sell volume. Green + Red = Total volume of a price level in a range
There's no native support for vertical histograms in Pinescript (with price axis as base)
Basically, there are 4 ways to plot a series of horizontal bars stacked on top of each other:
1. plotshape style labeldown (ver 0 prototype discarded)
- you can have a set of fixed width/height text labels consisting of a series of underscores and moving dynamically as levels. Level offset controls visible length.
- you can move levels and scale the base width of the volume profile histogram dynamically
- you can calculate the highest/lowest range values automatically. max_level/min_level inputs are optional
- you can't fill the gaps between levels/adjust/extend width, height - this results in a half baked volume profile and looks ugly
- fixed text level height doesn't adjust and looks bad on a log scale
- fixed font width also doesn't scale and can't be properly aligned with bars when zooming
2. plot style columns + hist_base (ver 1.0)
- you can plot long horizontal bars using a series of small adjacent vertical columns with level offsets controlling visible length.
- you can't hide/move levels of the volume profile histogram dynamically on each bar, they must be plotted at all times regardless - you can't delete the history of a plot.
- you can't scale the base width of the volume profile histogram dynamically, can't set show_last from input, must use a preset fixed width for each level
- hist_base can only be a static const expression, can't be assigned highest/lowest range values automatically - you have to specify max_level/min_level manually from input
- you can't control spacing between columns - there's an equalizer bar effect when you zoom in, and solid bars when you zoom out
- using hist_base for levels results in ugly load/redraw times - give it 3-5 sec to finalize its shape after each UI param change
- level top can be properly aligned with another level's bottom producing a clean good looking histogram
- columns are properly aligned with bars automatically
3. plot style histogram + hist_base (ver 2.0)
- you can plot long horizontal bars using a series of small vertical bars (horizontal histogram) instead of columns.
- you can control the width of each histogram bar comprising a level (spacing/horiz density). Large enough width will cause bar overlapping and give level a "solid" look regardless of zoom
- you can only set width <= 4 in UI Style - custom textbox input is provided for larger values. You can set width and plot transparency from input
- this method still uses hist_base and inherits other limitations of ver 2.0
4. plot style lines (ver 3.0)
- you can also plot long horizontal bars using lines with level offsets controlling visible length.
- lines don't need hist_base - fast and smooth redraw times
- you can calculate the highest/lowest range values automatically. max_level/min_level inputs are optional
- level top can't be properly aligned with another level's bottom and have a proper spacing because line width uses its own units and doesn't scale
- fixed line width of a level (vertical thickness) doesn't scale and looks bad on log (level overlapping)
- you can only set width <= 4 in UI Style, a custom textbox input is provided for larger values. You can set width and plot transparency from input
Notes:
- hist_base for levels results in ugly load/redraw times - give it 3-5 sec to finalize its shape after each UI param change
- indicator is slow on TFs with long history 10000+ bars
- Volume Profile/Value Area are calculated for a given range and updated on each bar. Each level has a fixed width. Offsets control visible level parts. Side Cover hides the invisible parts.
- Custom Color for POC/VA/VWAP levels - UI Style color/transparency can only change shape's color and doesn't affect textcolor, hence this additional option
- Custom Widh for levels - UI Style supports only width <= 4, hence this additional option
- POC is visible in both modes. In VWAP mode Developing POC becomes VWAP, VA High and Low => VWAP High and Low correspondingly to minimize the number of plot outputs
- You can't change buy/sell level colors (only plot transparency) - this requires 2x plot outputs exceeding max 64 limit. That's why 2 additional plots are used to dim the non Value Area zones
- Use Side by Side view to compare buy and sell volumes between each other: base width = max(total_buy_vol, total_sell_vol)
- All buy/sell volume lengths are calculated as % of a fixed base width = 100 bars (100%). You can't set show_last from input
- Sell Offset is calculated relative to Buy Offset to stack/extend sell on top of buy. Buy Offset = Zero - Buy Length. Sell Offset = Buy Offset - Sell Length = Zero - Buy Length - Sell Length
- If you see "loop too long error" - change some values in UI and it will recalculate - no need to refresh the chart
- There's no such thing as buy/sell volume, there's just volume, but for the purposes of the Volume Profile method, assume: bull candle = buy volume, bear candle = sell volume
- Volume Profile Range is limited to 5000 bars for free accounts
P.S. Cantaloupia Will be Free!
Links on Volume Profile and Value Area calculation and usage:
www.tradingview.com
stockcharts.com
onlinelibrary.wiley.com