Larry Williams Valuation Index [tradeviZion]Larry Williams Valuation Index
Welcome to the Larry Williams Valuation Index by tradeviZion! This script is an interpretation of Larry Williams' famous WillVal (Valuation) Index, originally developed in 1990 to help traders determine whether a market or asset is overvalued or undervalued. We've extended it to support multiple securities and offer alerts for different valuation levels, helping you make more informed trading decisions.
What is the Valuation Index?
The Valuation Index measures how a security's current price compares to its historical price action. It helps identify whether the security is overvalued (priced too high), undervalued (priced too low), or in a normal range.
This version supports multiple securities and uses valuation parameters to help you assess the relative valuation of three securities simultaneously. It can help you determine the best times to enter (buy) or exit (sell) the market.
Key Features
Multi-Security Analysis: Analyze up to three securities simultaneously to get a broader view of market conditions.
Valuation Levels: Automatically calculate overvaluation and undervaluation levels or set manual levels for consistent analysis.
Custom Alerts: Create custom alerts when securities move between overvalued, undervalued, or normal ranges.
Customizable Table Display: Display a table with valuation values and their status on the chart.
Getting Started
Step 1: Adding the Script to Your Chart
First, add the Larry Williams Valuation Index script to your chart on TradingView. The script is designed to work with any timeframe, but for best results, use weekly or daily timeframes for a longer-term perspective.
Step 2: Configuring Securities
The script allows you to analyze up to three different securities :
Security 1 (Default: DXY)
Security 2 (Default: GC1!)
Security 3 (Default: ZB1!)
You can enable or disable each security individually.
Custom Timeframe Option: You have the option to select a custom timeframe for analysis. This allows you to see whether the security is overvalued or undervalued in lower or higher timeframes. Note that this feature is experimental and has not been extensively tested. Larry Williams originally used the weekly timeframe to determine if a stock was overvalued or undervalued. By default, the indicator compares the current price with the security based on the selected timeframe, except if you choose to use a custom timeframe.
Pro Tip : New users can start with the default securities to understand the concept before using other assets.
Step 3: Valuation Index Settings
Short EMA Length : This is the short-term average used for calculations. A lower value makes it more responsive to recent price changes.
Long EMA Length : This is the long-term average, used to smooth the valuation over time.
Valuation Length (Default: 156) : Represents approximately three years of daily bars (as recommended by Larry Williams).
How is the Valuation Index Calculated?
The valuation calculation is done using a method called WVI (WillVal Index), which compares the current price of a security to the price of another correlated security. Here’s a step-by-step explanation:
1. Data Collection: The script takes the closing price of the security you are analyzing and the closing price of the correlated security.
2. Ratio Calculation : The ratio of the two prices is calculated:
Price Ratio = (Price of your security) / (Price of correlated security) * 100.
This ratio helps determine how expensive or cheap your security is compared to the correlated one.
3. Exponential Moving Averages (EMAs) : The price ratio is used to calculate short-term and long-term EMAs (Exponential Moving Averages). EMAs are used to create smooth lines that represent the average price of a security over a specific period of time, with more weight given to recent data. By calculating both short-term and long-term EMAs, we can identify the trend direction and how the security is performing compared to its historical averages.
4. Valuation Index Calculation:
The Valuation Index is calculated as the difference between the short-term EMA and the long-term EMA. This difference helps to determine if the security is currently overvalued or undervalued:
A positive value indicates that the price is above its longer-term trend, suggesting potential overvaluation.
A negative value indicates that the price is below its longer-term trend, suggesting potential undervaluation.
5. Normalization:
To make the valuation easier to interpret, the calculated valuation index is then normalized using the highest and lowest values over the selected valuation length (e.g., 156 bars).
This normalization process converts the index into a percentage between 0 and 100, where higher values indicate overvaluation and lower values indicate undervaluation.
Step 4: Understanding Valuation Levels
The valuation levels indicate whether a security is currently undervalued, overvalued, or in a normal range.
Manual Levels : You can manually set the overvaluation and undervaluation thresholds (default is 85 for overvalued and 15 for undervalued).
Auto Levels : The script can automatically calculate these levels based on recent price action, allowing you to adapt to changing market conditions.
Auto Levels Calculation Explained:
The Auto Levels are calculated by taking the average of the valuation indices for all three securities (e.g., index1, index2, and index3).
The script then looks at the highest and lowest values of this average over a selected number of recent bars (e.g., 50 bars).
The overvaluation level is determined by taking the highest value and multiplying it by a multiplier (e.g., 5). Similarly, the undervaluation level is calculated using the lowest value and the multiplier.
These dynamic levels adjust according to recent price action, providing an adaptive approach to identifying overvalued and undervalued conditions.
Step 5: How to Use the Script to Make Trading Decisions
For new users, here's a step-by-step trading strategy you can use with the Valuation Index:
1. Identify Undervalued Opportunities
When two or more securities are in the undervalued range (below 15 for manual or below automatically calculated undervalue levels), wait for at least two of these securities to turn from undervalued to normal .
This transition indicates a potential buy opportunity .
2. Buying Signal
When at least two securities transition from undervalued to normal, you can consider buying the asset.
This indicates that the market may be recovering from undervalued conditions and could be moving into a growth phase.
3. Selling Signal
Exit when the price high closes below the EMA 21 (21-day exponential moving average).
Alternatively, if the valuation index reaches overvalued levels (above 85 manually or auto-calculated), wait for it to drop back to normal . This can be another point to exit the trade .
You can also use any other sell condition based on your r isk management strategy .
Alerts for Valuation Levels
The script includes alerts to notify you of changing market conditions:
To activate these alerts, follow these steps, referring to the provided screenshot with detailed steps:
1. Enable Alerts : Click on the settings gear icon on the script title in your chart. In the settings menu, scroll to the section labeled Alerts Settings .
Enable Alerts by checking the Enable Alerts box.
Set the Required Securities for Alert (default is 2 securities).
Choose the Alert Frequency : Selecting Once Per Bar Close will trigger alerts only at the close of each bar, ensuring you receive confirmed signals rather than potentially noisy intermediate signals.
2. Select Alert Type : Choose the type of alert you want to activate, such as Alert on Overvalued, Alert on Undervalued, Alert on Over to Normal , or Alert on Under to Normal .
3. Save Settings : Click OK to save your alert settings.
4. Add Alert on Indicator : Click the "..." (More button) next to the indicator name on the chart and select " Add alert on tradeviZion - WillVal ".
5. Create Alert : In the Create Alert window:
Set Condition to tradeviZion - WillVal .
Ensure Any alert() function call is selected.
Set the Alert Name and select your Expiration preferences.
6. Set Notification Preferences : Go to the Notifications tab and select how you want to receive notifications, such as via app notification, toast notification, email , or sound alert . Adjust these preferences to best suit your needs.
7. Click Create : Finally, click Create to activate the alert.
These alerts will help you stay informed about key market conditions and take action accordingly, ensuring you do not miss critical trading opportunities.
Understanding the Table Display
The script includes an interactive table on the chart to show the valuation status of each security:
Security : The name of the security being analyzed.
Value : The current valuation index value.
Status : Indicates whether the security is overvalued, undervalued , or in a normal range.
Color: Displays a color code for easy identification of status:
Red for overvalued.
Green for undervalued.
Other colors represent normal valuation levels.
Empowering Messages : Motivational messages are displayed to encourage disciplined trading. These messages will change periodically, helping keep a positive trading mindset.
Acknowledgment
This tool builds upon the foundational work of Larry Williams, who developed the WillVal (Valuation) Index concept. It also incorporates enhancements to extend multi-security analysis, valuation normalization, and advanced alerting features, providing a more versatile and powerful indicator. The Larry Williams Valuation Index [ tradeviZion ] helps traders make informed decisions by assessing overvalued and undervalued conditions for multiple securities simultaneously.
Note : Always practice proper risk management and thoroughly test the indicator to ensure it aligns with your trading strategy. Past performance is not indicative of future results.
Trade smarter with TradeVizion—unlock your trading potential today!
Trend Analizi
Price Action Analyst [OmegaTools]Price Action Analyst (PAA) is an advanced trading tool designed to assist traders in identifying key price action structures such as order blocks, market structure shifts, liquidity grabs, and imbalances. With its fully customizable settings, the script offers both novice and experienced traders insights into potential market movements by visually highlighting premium/discount zones, breakout signals, and significant price levels.
This script utilizes complex logic to determine significant price action patterns and provides dynamic tools to spot strong market trends, liquidity pools, and imbalances across different timeframes. It also integrates an internal backtesting function to evaluate win rates based on price interactions with supply and demand zones.
The script combines multiple analysis techniques, including market structure shifts, order block detection, fair value gaps (FVG), and ICT bias detection, to provide a comprehensive and holistic market view.
Key Features:
Order Block Detection: Automatically detects order blocks based on price action and strength analysis, highlighting potential support/resistance zones.
Market Structure Analysis: Tracks internal and external market structure changes with gradient color-coded visuals.
Liquidity Grabs & Breakouts: Detects potential liquidity grab and breakout areas with volume confirmation.
Fair Value Gaps (FVG): Identifies bullish and bearish FVGs based on historical price action and threshold calculations.
ICT Bias: Integrates ICT bias analysis, dynamically adjusting based on higher-timeframe analysis.
Supply and Demand Zones: Highlights supply and demand zones using customizable colors and thresholds, adjusting dynamically based on market conditions.
Trend Lines: Automatically draws trend lines based on significant price pivots, extending them dynamically over time.
Backtesting: Internal backtesting engine to calculate the win rate of signals generated within supply and demand zones.
Percentile-Based Pricing: Plots key percentile price levels to visualize premium, fair, and discount pricing zones.
High Customizability: Offers extensive user input options for adjusting zone detection, color schemes, and structure analysis.
User Guide:
Order Blocks: Order blocks are significant support or resistance zones where strong buyers or sellers previously entered the market. These zones are detected based on pivot points and engulfing price action. The strength of each block is determined by momentum, volume, and liquidity confirmations.
Demand Zones: Displayed in shades of blue based on their strength. The darker the color, the stronger the zone.
Supply Zones: Displayed in shades of red based on their strength. These zones highlight potential resistance areas.
The zones will dynamically extend as long as they remain valid. Users can set a maximum number of order blocks to be displayed.
Market Structure: Market structure is classified into internal and external shifts. A bullish or bearish market structure break (MSB) occurs when the price moves past a previous high or low. This script tracks these breaks and plots them using a gradient color scheme:
Internal Structure: Short-term market structure, highlighting smaller movements.
External Structure: Long-term market shifts, typically more significant.
Users can choose how they want the structure to be visualized through the "Market Structure" setting, choosing from different visual methods.
Liquidity Grabs: The script identifies liquidity grabs (false breakouts designed to trap traders) by monitoring price action around highs and lows of previous bars. These are represented by diamond shapes:
Liquidity Buy: Displayed below bars when a liquidity grab occurs near a low.
Liquidity Sell: Displayed above bars when a liquidity grab occurs near a high.
Breakouts: Breakouts are detected based on strong price momentum beyond key levels:
Breakout Buy: Triggered when the price closes above the highest point of the past 20 bars with confirmation from volume and range expansion.
Breakout Sell: Triggered when the price closes below the lowest point of the past 20 bars, again with volume and range confirmation.
Fair Value Gaps (FVG): Fair value gaps (FVGs) are periods where the price moves too quickly, leaving an unbalanced market condition. The script identifies these gaps:
Bullish FVG: When there is a gap between the low of two previous bars and the high of a recent bar.
Bearish FVG: When a gap occurs between the high of two previous bars and the low of the recent bar.
FVGs are color-coded and can be filtered by their size to focus on more significant gaps.
ICT Bias: The script integrates the ICT methodology by offering an auto-calculated higher-timeframe bias:
Long Bias: Suggests the market is in an uptrend based on higher timeframe analysis.
Short Bias: Indicates a downtrend.
Neutral Bias: Suggests no clear directional bias.
Trend Lines: Automatic trend lines are drawn based on significant pivot highs and lows. These lines will dynamically adjust based on price movement. Users can control the number of trend lines displayed and extend them over time to track developing trends.
Percentile Pricing: The script also plots the 25th percentile (discount zone), 75th percentile (premium zone), and a fair value price. This helps identify whether the current price is overbought (premium) or oversold (discount).
Customization:
Zone Strength Filter: Users can set a minimum strength threshold for order blocks to be displayed.
Color Customization: Users can choose colors for demand and supply zones, market structure, breakouts, and FVGs.
Dynamic Zone Management: The script allows zones to be deleted after a certain number of bars or dynamically adjusts zones based on recent price action.
Max Zone Count: Limits the number of supply and demand zones shown on the chart to maintain clarity.
Backtesting & Win Rate: The script includes a backtesting engine to calculate the percentage of respect on the interaction between price and demand/supply zones. Results are displayed in a table at the bottom of the chart, showing the percentage rating for both long and short zones. Please note that this is not a win rate of a simulated strategy, it simply is a measure to understand if the current assets tends to respect more supply or demand zones.
How to Use:
Load the script onto your chart. The default settings are optimized for identifying key price action zones and structure on intraday charts of liquid assets.
Customize the settings according to your strategy. For example, adjust the "Max Orderblocks" and "Strength Filter" to focus on more significant price action areas.
Monitor the liquidity grabs, breakouts, and FVGs for potential trade opportunities.
Use the bias and market structure analysis to align your trades with the prevailing market trend.
Refer to the backtesting win rates to evaluate the effectiveness of the zones in your trading.
Terms & Conditions:
By using this script, you agree to the following terms:
Educational Purposes Only: This script is provided for informational and educational purposes and does not constitute financial advice. Use at your own risk.
No Warranty: The script is provided "as-is" without any guarantees or warranties regarding its accuracy or completeness. The creator is not responsible for any losses incurred from the use of this tool.
Open-Source License: This script is open-source and may be modified or redistributed in accordance with the TradingView open-source license. Proper credit to the original creator, OmegaTools, must be maintained in any derivative works.
Cubic Bezier Curve RSI [CBCR]Overview :
Introducing the Cubic Bézier Curve RSI – an innovative approach to smoothing the traditional RSI using cubic Bézier curves. This indicator provides traders with a smoother, adaptive version of the RSI that can help filter out noise and better highlight market trends.
Key Features:
Bézier Curve : the script uses cubic Bézier curves to create a smoothed version of the RSI, offering a more visually appealing and potentially more insightful representation of market momentum.
Customizable Settings: Users can adjust the Bézier Curve Length, Impact Factor, and color modes, allowing full customization of the smoothing effect and visualization.
Color-coded Trend Indicator: The smoothed RSI is displayed with colors that indicate potential bullish or bearish trends, helping traders quickly assess market conditions.
Overbought/Oversold Lines: Option to display overbought and oversold levels for better identification of market extremes.
Parameters:
RSI Length: Set the length for the traditional RSI calculation (default is 14).
Bézier Curve Length: Adjust the length of the Bézier curve used to smooth the RSI (default is 20).
Impact Factor: Control the influence of the Bézier smoothed values versus the original RSI values (default is 0.5, ranging from 0.0 to 1.0).
Overbought/Oversold Lines: Option to show overbought (default: 70) and oversold (default: 30) lines for easier identification of extreme conditions.
Color Mode: Choose between "Trend Following" and "Overbought/Oversold" modes for line color indication.
Display Settings: Color customization for bullish and bearish phases allows better visual differentiation.
How It Works:
The CBCR uses four control points derived from historical RSI values over a user-defined length. It then applies the cubic Bezier formula to generate a sequence of points representing a smoothed version of the RSI over this range.
The Bezier curve is recalculated each time a specific number of bars (as defined by the Bezier Curve Length) have passed, helping reduce noise while retaining key trend information.
The result is a smoothed RSI that combines the adaptability of cubic Bezier curves with the familiar oscillation of the RSI, making it potentially more robust for identifying shifts in market sentiment.
Visuals:
Smoothed RSI Line: Plotted on the indicator pane, the line changes color depending on the chosen color mode:
Trend Following Mode: Color changes based on whether the smoothed RSI is above or below the 50-level.
Overbought/Oversold Mode: Color changes based on whether the smoothed RSI is above the overbought level or below the oversold level.
Bullish Color: Configurable (default: cyan).
Bearish Color: Configurable (default: red).
Overbought/Oversold Lines: Horizontal lines at user-defined levels (default: 70 for overbought, 30 for oversold) for easy identification of market extremes.
Usage:
The CBCR can be used like a traditional RSI but with a smoother output that may help traders avoid false signals generated by sudden price spikes. For instance:
Look for crossovers around the 50 level as a signal for changing momentum.
Use the overbought and oversold levels to identify potential reversal zones.
Observe the color change of the line for an immediate visual cue on current sentiment.
CRT candles Multi-Timeframe Intrabar(open Source ) # CRT candles Multi-Timeframe Intrabar Indicator( open source )
This advanced indicator visualizes Candle Range Theory (CRT) across multiple timeframes, providing traders with a comprehensive view of market structure and potential high-probability setups.
## Key Features:
- Supports 7 timeframes: 30 minutes, 1 hour, 2 hours, 4 hours, daily, weekly, and monthly
- Customizable color schemes for each timeframe
- Options to display mid-level (50%) lines for each range
- Bullish and bearish touch detection with customizable label display
- End-of-line labels for easy identification of CRT levels
- Flexible alert system for touch detections on each timeframe
- Adjustable minimum and maximum bar count for range validity
- Options for wick touch and body touch detection
## How It Works:
The indicator plots CRT ranges for each selected timeframe, identifying potential accumulation, manipulation, and distribution phases. It detects when price touches these levels, providing visual cues and optional alerts for potential trade setups.
snapshot
## Customization:
Users can fine-tune the indicator's appearance and functionality through various input options, including:
- Toggling timeframes on/off
snapshot
- Adjusting colors for range lines and mid-levels
- Controlling label display and count
- Setting alert preferences
- Adjusting line widths and label offsets
## Usage:
This indicator is designed for traders familiar with Candle Range Theory and multi-timeframe analysis. It can be used to identify potential entry and exit points, confirm trends, and spot potential reversals across different timeframes.
## Note:
This indicator is for educational and informational purposes only. Always combine with other forms of analysis and proper risk management when making trading decisions.
## Credits:
Inspired by Romeo's Candle Range Theory and developed to provide a comprehensive multi-timeframe analysis tool.
[MAD] Fibonacci Bands with SmoothingHi, this is just an easy script, nothing special, it was a request from a community member and was finished in just 40 minutes :D
This indicator offers a approach to tracking market price movements by utilizing Fibonacci-based levels combined with customizable smoothing options for both the bands and the high/low values.
Key Features:
Customizable Moving Averages: Choose from a variety of smoothing methods, including SMA, EMA, WMA, HMA, VWMA, and advanced Ehlers-based methods.
This allows for flexible adaptation to different assets.
Multiple Fibonacci Band Multipliers: The user can define six different multipliers for both the upper and lower Fibonacci bands, allowing for granular customization of the indicator. The middle line serves as the central reference, and the multipliers extend the bands outward based on price range dynamics.
High/Low Smoothing: In addition to smoothing the Fibonacci bands, users can apply smoothing to the high and low prices that form the basis for calculating the Fibonacci bands. This ensures that the indicator responds smoothly to market movements, reducing noise while capturing key trends.
Forward Shift Option: Allows for projecting the bands into the future by shifting the calculated levels forward by a user-specified number of periods. This feature is particularly useful for those interested in anticipating price actions and future trends.
Visual Enhancements: The indicator features filled regions between bands to clearly visualize the zones of price movement. The fills between the bands offer insight into potential support and resistance zones, based on price levels defined by the Fibonacci ratios.
How It Works:
The indicator uses the highest and lowest closing prices over a specified lookback period to establish a price range. Based on this range, it calculates the middle line (0.5 level) and applies user-defined Fibonacci multipliers to generate both upper and lower bands. Users have control over the smoothing method for both the high/low prices and the bands themselves, allowing for an adaptive experience that can be tailored to different timeframes or market conditions.
For visualization, areas between the upper and lower bands are filled with distinct colors, providing an intuitive view of the potential price zones where the market might react or consolidate.
These fills highlight the zones created by the Fibonacci bands, helping users identify critical market levels with ease.
have fun
p.s.: @frankchef hope that suits your needs & expectations ;-)
Trend Following Regression CloudTrend Following Regression Cloud Indicator
The Trend Following Regression Cloud is a versatile trading tool designed to help you effortlessly identify the market's prevailing trend. By analyzing price movements over multiple time frames, it provides a clear visual representation of whether the market is trending upwards or downwards.
How It Works:
- Adaptive Analysis: The indicator calculates linear regression lines over various periods ranging from short-term to long-term (e.g., 10, 20, 50, up to 500 periods). This means it adapts quickly to recent market changes, capturing new trends as they develop.
- Noise Reduction: By comparing and weighting the slopes of these regression lines, it filters out insignificant price fluctuations (market noise). This ensures that the signals you receive are more reliable and less prone to false alarms.
- Cloud Calculation: The cloud is generated by first calculating the slopes of multiple linear regression lines over different lengths. The differences between the slopes of shorter-term and longer-term regressions are then computed and weighted by their respective lengths. By summing up these weighted differences, the indicator produces a "total distance" value. This value is applied to a baseline (such as a 100-period simple moving average) to create the cloud line. The area between the baseline and the cloud line is filled, and its color changes based on whether the total distance is positive or negative, providing a visual cue of the market's trend direction.
- Visual Representation: The indicator plots two lines—a base line and a cloud line—creating a shaded area (the "cloud") between them. The color of this cloud changes based on market conditions:
- Green Cloud: Indicates that short-term trends are stronger than long-term trends, suggesting an upward market movement. This could be a good time to consider buying.
- Red Cloud: Signifies that the market may be trending downwards, as long-term trends overpower short-term ones. This could be an opportune moment to consider selling.
Session Range Breakouts With Targets [AlgoAlpha]⛓️💥Session Range Breakouts With Targets 🚀
Introducing the "Session Range Breakouts With Targets" indicator by AlgoAlpha, a powerful tool for traders to capitalize on session-based range breakouts and identify precise target zones using ATR-based calculations! Whether you trade the Asian, American, European, or Oceanic sessions, this script highlights key breakout levels and targets that adapt to market volatility, ensuring you're always prepared for those crucial price movements. 🕒📊
Session-based Trading : The indicator highlights session-specific ranges, offering clear breakouts for Asian, American, European, Oceanic, and even custom sessions 🌍.
Adaptive Volatility Zones : Uses ATR to determine dynamic zone widths, filtering out fakeouts and adjusting to market conditions ⚡.
Precise Take-Profit Targets : Set multiple levels of take-profits based on ATR multipliers, ensuring you can manage both aggressive and conservative trades 🎯.
Customizable Appearance : Tailor the look with customizable colors for session highlights and breakout zones to fit your chart style 🎨.
Alerts on Key Events : Built-in alert conditions for breakouts and take-profit hits, so you never miss a trading opportunity 🔔.
🚀 Quick Guide to Using the Indicator
🛠 Add the Indicator : Add the indicator to favorites by pressing the star icon. Choose your session (Asia, America, Europe, Oceana, or Custom) and adjust the ATR length, zone width multiplier, and target multipliers to suit your strategy.
📊 Analyze Breakouts : Watch for the indicator to plot upper and lower range boxes based on session highs and lows. Price breaking through these boxes will signal a potential entry.
📈 Monitor Targets : Track bullish and bearish targets as price moves, with up to three take-profit levels based on ATR multipliers.
🔔 Set Alerts : Enable alerts for session breakouts or when price hits your designated take-profit targets.
🔍 How It Works
This script operates by identifying session-specific ranges based on highs and lows from the beginning of the selected session (Asia, America, Europe, or others). After a user-defined wait period (default: 120 bars), it calculates the highest and lowest points and creates upper and lower zones using the Average True Range (ATR) to adapt to market volatility. If the price breaks above or below these zones, it is identified as a breakout, and the script dynamically calculates up to three take-profit targets for both bullish and bearish scenarios using an ATR multiplier. The indicator also includes alerts for breakouts and take-profit hits, providing real-time trading signals.
Unlock the Power of Seasonality: Monthly Performance StrategyThe Monthly Performance Strategy leverages the power of seasonality—those cyclical patterns that emerge in financial markets at specific times of the year. From tax deadlines to industry-specific events and global holidays, historical data shows that certain months can offer strong opportunities for trading. This strategy was designed to help traders capture those opportunities and take advantage of recurring market patterns through an automated and highly customizable approach.
The Inspiration Behind the Strategy:
This strategy began with the idea that market performance is often influenced by seasonal factors. Historically, certain months outperform others due to a variety of reasons, like earnings reports, holiday shopping, or fiscal year-end events. By identifying these periods, traders can better time their market entries and exits, giving them an advantage over those who solely rely on technical indicators or news events.
The Monthly Performance Strategy was built to take this concept and automate it. Instead of manually analyzing market data for each month, this strategy enables you to select which months you want to focus on and then executes trades based on predefined rules, saving you time and optimizing the performance of your trades.
Key Features:
Customizable Month Selection: The strategy allows traders to choose specific months to test or trade on. You can select any combination of months—for example, January, July, and December—to focus on based on historical trends. Whether you’re targeting the historically strong months like December (often driven by the 'Santa Rally') or analyzing quieter months for low volatility trades, this strategy gives you full control.
Automated Monthly Entries and Exits: The strategy automatically enters a long position on the first day of your selected month(s) and exits the trade at the beginning of the next month. This makes it perfect for traders who want to benefit from seasonal patterns without manually monitoring the market. It ensures precision in entering and exiting trades based on pre-set timeframes.
Re-entry on Stop Loss or Take Profit: One of the standout features of this strategy is its ability to re-enter a trade if a position hits the stop loss (SL) or take profit (TP) level during the selected month. If your trade reaches either a SL or TP before the month ends, the strategy will automatically re-enter a new trade the next trading day. This feature ensures that you capture multiple trading opportunities within the same month, instead of exiting entirely after a successful or unsuccessful trade. Essentially, it keeps your capital working for you throughout the entire month, not just when conditions align perfectly at the beginning.
Built-in Risk Management: Risk management is a vital part of this strategy. It incorporates an Average True Range (ATR)-based stop loss and take profit system. The ATR helps set dynamic levels based on the market’s volatility, ensuring that your stops and targets adjust to changing market conditions. This not only helps limit potential losses but also maximizes profit potential by adapting to market behavior.
Historical Performance Testing: You can backtest this strategy on any period by setting the start year. This allows traders to analyze past market data and optimize their strategy based on historical performance. You can fine-tune which months to trade based on years of data, helping you identify trends and patterns that provide the best trading results.
Versatility Across Asset Classes: While this strategy can be particularly effective for stock market indices and sector rotation, it’s versatile enough to apply to other asset classes like forex, commodities, and even cryptocurrencies. Each asset class may exhibit different seasonal behaviors, allowing you to explore opportunities across various markets with this strategy.
How It Works:
The trader selects which months to test or trade, for example, January, April, and October.
The strategy will automatically open a long position on the first trading day of each selected month.
If the trade hits either the take profit or stop loss within the month, the strategy will close the current position and re-enter a new trade on the next trading day, provided the month has not yet ended. This ensures that the strategy continues to capture any potential gains throughout the month, rather than stopping after one successful trade.
At the start of the next month, the position is closed, and if the next month is also selected, a new trade is initiated following the same process.
Risk Management and Dynamic Adjustments:
Incorporating risk management with this strategy is as easy as turning on the ATR-based system. The strategy will automatically calculate stop loss and take profit levels based on the market’s current volatility, adjusting dynamically to the conditions. This ensures that the risk is controlled while allowing for flexibility in capturing profits during both high and low volatility periods.
Maximizing the Seasonal Edge:
By automating entries and exits based on specific months and combining that with dynamic risk management, the Ultimate Monthly Performance Strategy takes advantage of seasonal patterns without requiring constant monitoring. The added re-entry feature after hitting a stop loss or take profit ensures that you are always in the game, maximizing your chances to capture profitable trades during favorable seasonal periods.
Who Can Benefit from This Strategy?
This strategy is perfect for traders who:
Want to exploit the predictable, recurring patterns that occur during specific months of the year.
Prefer a hands-off, automated trading approach that allows them to focus on other aspects of their portfolio or life.
Seek to manage risk effectively with ATR-based stop losses and take profits that adjust to market conditions.
Appreciate the ability to re-enter trades when a take profit or stop loss is hit within the month, ensuring that they don't miss out on multiple opportunities during a favorable period.
In summary, the Ultimate Monthly Performance Strategy provides traders with a comprehensive tool to capitalize on seasonal trends, optimize their trading opportunities throughout the year, and manage risk effectively. The built-in re-entry system ensures you continue to benefit from the market even after hitting targets within the same month, making it a robust strategy for traders looking to maximize their edge in any market.
Risk Disclaimer:
Trading financial markets involves significant risk and may not be suitable for all investors. The Monthly Performance Strategy is designed to help traders identify seasonal trends, but past performance does not guarantee future results. It is important to carefully consider your risk tolerance, financial situation, and trading goals before using any strategy. Always use appropriate risk management and consult with a professional financial advisor if necessary. The use of this strategy does not eliminate the risk of losses, and traders should be prepared for the possibility of losing their entire investment. Be sure to test the strategy on a demo account before applying it in live markets.
Gann Square of 9Understanding the Gann Square of 9
Delve into the fascinating realm of W.D. Gann’s Square of 9, a tool that has intrigued traders for generations. As we explore the insights behind this unique structure, we’ll show you how our Gann Square of 9 Indicator can become a valuable asset in your trading toolkit.
The History of the Gann Square of 9
The story behind the Gann Square of 9 is as fascinating as the man who created it. W.D. Gann, a pioneering trader from the early 20th century, introduced a method that highlighted the connection between time and price. Rooted in ancient mathematics and geometry, Gann’s theory suggests that financial markets follow cyclical patterns, which are captured in the design of the Square of 9.
Core Principles of the Gann Square of 9
At its heart, the Gann Square of 9 is based on a numerical system that spirals outward from a central point. This unique arrangement allows traders to identify potential support and resistance levels in the market. Each number represents a possible pivot point, indicating shifts in market direction, aligned with Gann’s time-price equilibrium theory.
Applying the Gann Square in Market Analysis
The strength of the Gann Square of 9 lies in its ability to predict key moments in the market where significant price movements may occur. By utilizing our Gann Square of 9 Indicator, traders can easily pinpoint these crucial points, applying Gann’s principles to anticipate both market highs and lows. This section will guide you through practical applications of the Gann Square for making both short-term and long-term trading decisions.
Market Timing with the Gann Square of 9 Indicator
Unlock the potential of market timing and price prediction using our Gann Square of 9 Indicator. This versatile tool brings Gann’s trading insights into the modern world of finance. Here, you’ll find a detailed walkthrough on how to use the indicator to enhance your trading strategies.
Step-by-Step Guide
Input the Source Price: Open, High, Low, Close on specific Timeframe.
Set the Pip Value: Adjust the pip value according to the scale of your trades. The pip value helps define the precision of the price levels the calculator will generate.
Analyze Results: The generated grid displays a central value (your input price) surrounded by numbers representing possible support and resistance levels.
Use the Support and Resistance Levels: Below the grid, you’ll find specific support and resistance points. These are key price levels that can help you plan your trading strategy, such as entry or exit points.
Apply Gann's Trading Entries: At the bottom, suggested long and short trade entries, with targets and stop-loss levels, giving you essential tools for managing risk effectively.
By following these steps, you can effectively incorporate Gann’s time-tested techniques into modern market analysis. Our Gann Square of 9 Indicator simplifies complex calculations while offering powerful insights, helping you make informed trading decisions rooted in one of market analysis’s most influential theories.
Whether you’re new to Gann’s approach or a seasoned trader, this indicator is designed to provide valuable insights aligned with Gann’s original concepts while delivering a seamless user experience for today’s traders. With just a few clicks, you can transform market data into a geometric pattern of time and price, setting the stage for strategic trading based on the cyclical nature of financial markets.
Linear Regression ChannelLinear Regression Channel Indicator
Overview:
The Linear Regression Channel Indicator is a versatile tool designed for TradingView to help traders visualize price trends and potential reversal points. By calculating and plotting linear regression channels, bands, and future projections, this indicator provides comprehensive insights into market dynamics. It can highlight overbought and oversold conditions, identify trend direction, and offer visual cues for future price movements.
Key Features:
Linear Regression Bands:
Input: Plot Linear Regression Bands
Description: Draws bands based on linear regression calculations, representing overbought and oversold levels.
Customizable Parameters:
Length: Defines the look-back period for the regression calculation.
Deviation: Determines the width of the bands based on standard deviations.
Linear Regression Channel:
Input: Plot Linear Regression Channel
Description: Plots a channel using linear regression to visualize the main trend.
Customizable Parameters:
Channel Length: Defines the look-back period for the channel calculation.
Deviation: Determines the channel's width.
Future Projection Channel:
Input: Plot Future Projection of Linear Regression
Description: Projects a linear regression channel into the future, aiding in forecasting potential price movements.
Customizable Parameters:
Length: Defines the look-back period for the projection calculation.
Deviation: Determines the width of the projected channel.
Arrow Direction Indicator:
Input: Plot Arrow Direction
Description: Displays directional arrows based on future projection, indicating expected price movement direction.
Color-Coded Price Bars:
Description: Colors the price bars based on their position within the regression bands or channel, providing a heatmap-like visualization.
Dynamic Visualization:
Colors: Uses a gradient color scheme to highlight different conditions, such as uptrend, downtrend, and mid-levels.
Labels and Markers: Plots visual markers for significant price levels and conditions, enhancing interpretability.
Usage Notes
Setting the Length:
Adjust the look-back period (Length) to suit the timeframe you are analyzing. Shorter lengths are responsive to recent price changes, while longer lengths provide a broader view of the trend.
Interpreting Bands and Channels:
The bands and channels help identify overbought and oversold conditions. Price moving above the upper band or channel suggests overbought conditions, while moving below the lower band or channel indicates oversold conditions.
Using the Future Projection:
Enable the future projection channel to anticipate potential price movements. This can be particularly useful for setting target prices or stop-loss levels based on expected trends.
Arrow Direction Indicator:
Use the arrow direction indicator to quickly grasp the expected price movement direction. An upward arrow indicates a potential uptrend, while a downward arrow suggests a potential downtrend.
Color-Coded Price Bars:
The color of the price bars changes based on their relative position within the regression bands or channel. This heatmap visualization helps quickly identify bullish, bearish, and neutral conditions.
Dynamic Adjustments:
The indicator dynamically adjusts its visual elements based on user settings and market conditions, ensuring that the most relevant information is always displayed.
Visual Alerts:
Pay attention to the labels and markers on the chart indicating significant events, such as crossovers and breakouts. These visual alerts help in making informed trading decisions.
The Linear Regression Channel Indicator is a powerful tool for traders looking to enhance their technical analysis. By offering multiple regression-based visualizations and customizable parameters, it helps identify key market conditions, trends, and potential reversal points. Whether you are a day trader or a long-term investor, this indicator can provide valuable insights to improve your trading strategy.
Premium & Discount Delta Volume [BigBeluga]Premium & Discount Delta Volume is an advanced volume-based tool that helps traders identify zones of market imbalances by using the concepts of premium and discount pricing, commonly taught by ICT trader. It calculates and highlights periods where the market is trading at a premium (selling pressure is stronger) or a discount (buying pressure is stronger) and dynamically plots these zones over time. The indicator also calculates delta volume between buying and selling within these zones, showing shifts in market sentiment and potential areas for reversals or continuations.
🔵 IDEA
The Premium & Discount Delta Volume indicator is rooted in the ICT (Inner Circle Trader) concept of premium and discount zones. This concept divides the price action into two key zones:
Premium Zone : This area is where the market is trading at a level where sellers dominate, leading to more selling pressure. The idea is that the price is overvalued, and a potential drop could occur as the market reverts to a balanced state.
Discount Zone : This area is where the market is undervalued, with buyers dominating and applying upward pressure. Prices in this area often indicate opportunities to buy into strength as the market moves back to equilibrium.
At the core of the indicator is the delta volume, which measures the difference between buying and selling pressure within the premium and discount zones. When the delta volume is negative, it signals a downtrend with more selling pressure, while a positive delta volume signals an uptrend with more buying pressure. These zones and their associated delta values update dynamically, providing traders with real-time insights into market strength and potential price reversals.
The equilibrium in the middle of the premium and discount zones represents the balance point between buyers and sellers. When price moves away from equilibrium, it either enters the premium zone (potentially overbought) or the discount zone (potentially oversold), helping traders make more informed decisions based on volume and price structure.
🔵 KEY FEATURES & USAGE
Premium & Discount Zones:
The indicator automatically identifies and plots premium and discount zones on the chart. Premium zones count only negative (selling) volume, while discount zones count only positive (buying) volume. These zones are key areas of interest for identifying potential price reversals or continuations based on volume pressure.
Dynamic Delta Volume Calculation:
The indicator calculates delta volume between the premium and discount zones, showing the imbalance between buyers and sellers. A positive delta volume inside the discount zone suggests strong buying pressure, while a negative delta inside the premium zone suggests strong selling pressure. This helps traders quickly identify trends or market exhaustion.
Up Trend:
Down Trend:
Real-time Updates & Equilibrium Line:
The zones update dynamically every 100 bars or after price crosses them, ensuring that traders always have the most relevant market data. The equilibrium line in the middle of the zones helps traders gauge whether the market is balanced or moving into overbought (premium) or oversold (discount) territory.
Macro and Local Period Calculations:
The indicator allows traders to customize two different periods for analysis: a smaller lookback period (e.g., 50 bars) for short-term price action and a macro period (e.g., 200 bars) for larger trends. Each period has its own premium and discount zones, allowing for a multi-timeframe view of market strength.
Macro:
Both:
Color-coded background for Volume Pressure:
The background color of the smaller period premium and discount box changes based on delta volume. A positive delta turns the background blue, indicating higher buy pressure, while a negative delta turns the background red, signaling higher sell pressure.
🔵 CUSTOMIZATION
Toggle Premium & Discount: Traders can choose to display support and resistance levels based on the high and low points of the premium and discount zones.
Premium & Discount Lookback Period: Traders can adjust the lookback period to define the length of price action to be analyzed for premium and discount zones. A shorter period focuses on more recent market activity, while a longer period provides a broader view of trends.
Macro Highs/Lows Period: The indicator also offers a macro lookback period for identifying larger market trends and key levels of buying or selling volume.
Toggle Macro Levels: Macro levels help identify long-term price extremes, and traders can toggle this feature on or off as needed.
Standard Deviation-Based Fibonacci Band by zdmre This indicator is designed to better understand market dynamics by focusing on standard deviation and the Fibonacci sequence. This indicator includes the following components to assist investors in analyzing price movements:
Weighted Moving Average (WMA) : The indicator creates a central band by utilizing the weighted moving average of standard deviation. WMA provides a more current and accurate representation by giving greater weight to recent prices. This central band offers insights into the general trend of the market, helping to identify potential buying and selling opportunities.
Fibonacci Bands : The Fibonacci bands located above and below the central band illustrate potential support and resistance levels for prices. These bands enable investors to pinpoint areas where the price may exhibit indecisiveness. When prices move within these bands, it may be challenging for investors to discern the market's preferred direction.
Indecisiveness Representation : When prices fluctuate between the Fibonacci bands, they may reflect a state of indecisiveness. This condition is critical for identifying potential reversal points and trend changes. Investors can evaluate these periods of indecisiveness to develop suitable buying and selling strategies.
This indicator is designed to assist investors in better analyzing market trends and supporting their decision-making processes. The integration of standard deviation and the Fibonacci sequence offers a new perspective on understanding market movements.
#DYOR
The Bar Counter Trend Reversal Strategy [TradeDots]Overview
The Bar Counter Trend Reversal Strategy is designed to identify potential counter-trend reversal points in the market after a series of consecutive rising or falling bars.
By analyzing price movements in conjunction with optional volume confirmation and channel bands (Bollinger Bands or Keltner Channels), this strategy aims to detect overbought or oversold conditions where a trend reversal may occur.
🔹How it Works
Consecutive Price Movements
Rising Bars: The strategy detects when there are a specified number of consecutive rising bars (No. of Rises).
Falling Bars: Similarly, it identifies a specified number of consecutive falling bars (No. of Falls).
Volume Confirmation (Optional)
When enabled, the strategy checks for increasing volume during the consecutive price movements, adding an extra layer of confirmation to the potential reversal signal.
Channel Confirmation (Optional)
Channel Type: Choose between Bollinger Bands ("BB") or Keltner Channels ("KC").
Channel Interaction: The strategy checks if the price interacts with the upper or lower channel lines: For short signals, it looks for price moving above the upper channel line. For long signals, it looks for price moving below the lower channel line.
Customization:
No. of Rises/Falls: Set the number of consecutive bars required to trigger a signal.
Volume Confirmation: Enable or disable volume as a confirmation factor.
Channel Confirmation: Enable or disable channel bands as a confirmation factor.
Channel Settings: Adjust the length and multiplier for the Bollinger Bands or Keltner Channels.
Visual Indicators:
Entry Signals: Triangles plotted on the chart indicate potential entry points:
Green upward triangle for long entries.
Red downward triangle for short entries.
Channel Bands: The upper and lower bands are plotted for visual reference.
Strategy Parameters:
Initial Capital: $10,000.
Position Sizing: 80% of equity per trade.
Commission: 0.01% per trade to simulate realistic trading costs.
🔹Usage
Set up the number of Rises/Falls and choose whether if you want to use channel indicators and volume as the confirmation.
Monitor the chart for triangles indicating potential entry points.
Consider the context of the overall market trend and other technical factors.
Backtesting and Optimization:
Use TradingView's Strategy Tester to evaluate performance.
Adjust parameters to optimize results for different market conditions.
🔹 Considerations and Recommendations
Risk Management:
The strategy does not include built-in stop-loss or take-profit levels. It's recommended to implement your own risk management techniques.
Market Conditions:
Performance may vary in different market environments. Testing and adjustments are advised when applying the strategy to new instruments or timeframes.
No Guarantee of Future Results:
Past performance is not indicative of future results. Always perform due diligence and consider the risks involved in trading.
Universal Ratio Trend Matrix [InvestorUnknown]The Universal Ratio Trend Matrix is designed for trend analysis on asset/asset ratios, supporting up to 40 different assets. Its primary purpose is to help identify which assets are outperforming others within a selection, providing a broad overview of market trends through a matrix of ratios. The indicator automatically expands the matrix based on the number of assets chosen, simplifying the process of comparing multiple assets in terms of performance.
Key features include the ability to choose from a narrow selection of indicators to perform the ratio trend analysis, allowing users to apply well-defined metrics to their comparison.
Drawback: Due to the computational intensity involved in calculating ratios across many assets, the indicator has a limitation related to loading speed. TradingView has time limits for calculations, and for users on the basic (free) plan, this could result in frequent errors due to exceeded time limits. To use the indicator effectively, users with any paid plans should run it on timeframes higher than 8h (the lowest timeframe on which it managed to load with 40 assets), as lower timeframes may not reliably load.
Indicators:
RSI_raw: Simple function to calculate the Relative Strength Index (RSI) of a source (asset price).
RSI_sma: Calculates RSI followed by a Simple Moving Average (SMA).
RSI_ema: Calculates RSI followed by an Exponential Moving Average (EMA).
CCI: Calculates the Commodity Channel Index (CCI).
Fisher: Implements the Fisher Transform to normalize prices.
Utility Functions:
f_remove_exchange_name: Strips the exchange name from asset tickers (e.g., "INDEX:BTCUSD" to "BTCUSD").
f_remove_exchange_name(simple string name) =>
string parts = str.split(name, ":")
string result = array.size(parts) > 1 ? array.get(parts, 1) : name
result
f_get_price: Retrieves the closing price of a given asset ticker using request.security().
f_constant_src: Checks if the source data is constant by comparing multiple consecutive values.
Inputs:
General settings allow users to select the number of tickers for analysis (used_assets) and choose the trend indicator (RSI, CCI, Fisher, etc.).
Table settings customize how trend scores are displayed in terms of text size, header visibility, highlighting options, and top-performing asset identification.
The script includes inputs for up to 40 assets, allowing the user to select various cryptocurrencies (e.g., BTCUSD, ETHUSD, SOLUSD) or other assets for trend analysis.
Price Arrays:
Price values for each asset are stored in variables (price_a1 to price_a40) initialized as na. These prices are updated only for the number of assets specified by the user (used_assets).
Trend scores for each asset are stored in separate arrays
// declare price variables as "na"
var float price_a1 = na, var float price_a2 = na, var float price_a3 = na, var float price_a4 = na, var float price_a5 = na
var float price_a6 = na, var float price_a7 = na, var float price_a8 = na, var float price_a9 = na, var float price_a10 = na
var float price_a11 = na, var float price_a12 = na, var float price_a13 = na, var float price_a14 = na, var float price_a15 = na
var float price_a16 = na, var float price_a17 = na, var float price_a18 = na, var float price_a19 = na, var float price_a20 = na
var float price_a21 = na, var float price_a22 = na, var float price_a23 = na, var float price_a24 = na, var float price_a25 = na
var float price_a26 = na, var float price_a27 = na, var float price_a28 = na, var float price_a29 = na, var float price_a30 = na
var float price_a31 = na, var float price_a32 = na, var float price_a33 = na, var float price_a34 = na, var float price_a35 = na
var float price_a36 = na, var float price_a37 = na, var float price_a38 = na, var float price_a39 = na, var float price_a40 = na
// create "empty" arrays to store trend scores
var a1_array = array.new_int(40, 0), var a2_array = array.new_int(40, 0), var a3_array = array.new_int(40, 0), var a4_array = array.new_int(40, 0)
var a5_array = array.new_int(40, 0), var a6_array = array.new_int(40, 0), var a7_array = array.new_int(40, 0), var a8_array = array.new_int(40, 0)
var a9_array = array.new_int(40, 0), var a10_array = array.new_int(40, 0), var a11_array = array.new_int(40, 0), var a12_array = array.new_int(40, 0)
var a13_array = array.new_int(40, 0), var a14_array = array.new_int(40, 0), var a15_array = array.new_int(40, 0), var a16_array = array.new_int(40, 0)
var a17_array = array.new_int(40, 0), var a18_array = array.new_int(40, 0), var a19_array = array.new_int(40, 0), var a20_array = array.new_int(40, 0)
var a21_array = array.new_int(40, 0), var a22_array = array.new_int(40, 0), var a23_array = array.new_int(40, 0), var a24_array = array.new_int(40, 0)
var a25_array = array.new_int(40, 0), var a26_array = array.new_int(40, 0), var a27_array = array.new_int(40, 0), var a28_array = array.new_int(40, 0)
var a29_array = array.new_int(40, 0), var a30_array = array.new_int(40, 0), var a31_array = array.new_int(40, 0), var a32_array = array.new_int(40, 0)
var a33_array = array.new_int(40, 0), var a34_array = array.new_int(40, 0), var a35_array = array.new_int(40, 0), var a36_array = array.new_int(40, 0)
var a37_array = array.new_int(40, 0), var a38_array = array.new_int(40, 0), var a39_array = array.new_int(40, 0), var a40_array = array.new_int(40, 0)
f_get_price(simple string ticker) =>
request.security(ticker, "", close)
// Prices for each USED asset
f_get_asset_price(asset_number, ticker) =>
if (used_assets >= asset_number)
f_get_price(ticker)
else
na
// overwrite empty variables with the prices if "used_assets" is greater or equal to the asset number
if barstate.isconfirmed // use barstate.isconfirmed to avoid "na prices" and calculation errors that result in empty cells in the table
price_a1 := f_get_asset_price(1, asset1), price_a2 := f_get_asset_price(2, asset2), price_a3 := f_get_asset_price(3, asset3), price_a4 := f_get_asset_price(4, asset4)
price_a5 := f_get_asset_price(5, asset5), price_a6 := f_get_asset_price(6, asset6), price_a7 := f_get_asset_price(7, asset7), price_a8 := f_get_asset_price(8, asset8)
price_a9 := f_get_asset_price(9, asset9), price_a10 := f_get_asset_price(10, asset10), price_a11 := f_get_asset_price(11, asset11), price_a12 := f_get_asset_price(12, asset12)
price_a13 := f_get_asset_price(13, asset13), price_a14 := f_get_asset_price(14, asset14), price_a15 := f_get_asset_price(15, asset15), price_a16 := f_get_asset_price(16, asset16)
price_a17 := f_get_asset_price(17, asset17), price_a18 := f_get_asset_price(18, asset18), price_a19 := f_get_asset_price(19, asset19), price_a20 := f_get_asset_price(20, asset20)
price_a21 := f_get_asset_price(21, asset21), price_a22 := f_get_asset_price(22, asset22), price_a23 := f_get_asset_price(23, asset23), price_a24 := f_get_asset_price(24, asset24)
price_a25 := f_get_asset_price(25, asset25), price_a26 := f_get_asset_price(26, asset26), price_a27 := f_get_asset_price(27, asset27), price_a28 := f_get_asset_price(28, asset28)
price_a29 := f_get_asset_price(29, asset29), price_a30 := f_get_asset_price(30, asset30), price_a31 := f_get_asset_price(31, asset31), price_a32 := f_get_asset_price(32, asset32)
price_a33 := f_get_asset_price(33, asset33), price_a34 := f_get_asset_price(34, asset34), price_a35 := f_get_asset_price(35, asset35), price_a36 := f_get_asset_price(36, asset36)
price_a37 := f_get_asset_price(37, asset37), price_a38 := f_get_asset_price(38, asset38), price_a39 := f_get_asset_price(39, asset39), price_a40 := f_get_asset_price(40, asset40)
Universal Indicator Calculation (f_calc_score):
This function allows switching between different trend indicators (RSI, CCI, Fisher) for flexibility.
It uses a switch-case structure to calculate the indicator score, where a positive trend is denoted by 1 and a negative trend by 0. Each indicator has its own logic to determine whether the asset is trending up or down.
// use switch to allow "universality" in indicator selection
f_calc_score(source, trend_indicator, int_1, int_2) =>
int score = na
if (not f_constant_src(source)) and source > 0.0 // Skip if you are using the same assets for ratio (for example BTC/BTC)
x = switch trend_indicator
"RSI (Raw)" => RSI_raw(source, int_1)
"RSI (SMA)" => RSI_sma(source, int_1, int_2)
"RSI (EMA)" => RSI_ema(source, int_1, int_2)
"CCI" => CCI(source, int_1)
"Fisher" => Fisher(source, int_1)
y = switch trend_indicator
"RSI (Raw)" => x > 50 ? 1 : 0
"RSI (SMA)" => x > 50 ? 1 : 0
"RSI (EMA)" => x > 50 ? 1 : 0
"CCI" => x > 0 ? 1 : 0
"Fisher" => x > x ? 1 : 0
score := y
else
score := 0
score
Array Setting Function (f_array_set):
This function populates an array with scores calculated for each asset based on a base price (p_base) divided by the prices of the individual assets.
It processes multiple assets (up to 40), calling the f_calc_score function for each.
// function to set values into the arrays
f_array_set(a_array, p_base) =>
array.set(a_array, 0, f_calc_score(p_base / price_a1, trend_indicator, int_1, int_2))
array.set(a_array, 1, f_calc_score(p_base / price_a2, trend_indicator, int_1, int_2))
array.set(a_array, 2, f_calc_score(p_base / price_a3, trend_indicator, int_1, int_2))
array.set(a_array, 3, f_calc_score(p_base / price_a4, trend_indicator, int_1, int_2))
array.set(a_array, 4, f_calc_score(p_base / price_a5, trend_indicator, int_1, int_2))
array.set(a_array, 5, f_calc_score(p_base / price_a6, trend_indicator, int_1, int_2))
array.set(a_array, 6, f_calc_score(p_base / price_a7, trend_indicator, int_1, int_2))
array.set(a_array, 7, f_calc_score(p_base / price_a8, trend_indicator, int_1, int_2))
array.set(a_array, 8, f_calc_score(p_base / price_a9, trend_indicator, int_1, int_2))
array.set(a_array, 9, f_calc_score(p_base / price_a10, trend_indicator, int_1, int_2))
array.set(a_array, 10, f_calc_score(p_base / price_a11, trend_indicator, int_1, int_2))
array.set(a_array, 11, f_calc_score(p_base / price_a12, trend_indicator, int_1, int_2))
array.set(a_array, 12, f_calc_score(p_base / price_a13, trend_indicator, int_1, int_2))
array.set(a_array, 13, f_calc_score(p_base / price_a14, trend_indicator, int_1, int_2))
array.set(a_array, 14, f_calc_score(p_base / price_a15, trend_indicator, int_1, int_2))
array.set(a_array, 15, f_calc_score(p_base / price_a16, trend_indicator, int_1, int_2))
array.set(a_array, 16, f_calc_score(p_base / price_a17, trend_indicator, int_1, int_2))
array.set(a_array, 17, f_calc_score(p_base / price_a18, trend_indicator, int_1, int_2))
array.set(a_array, 18, f_calc_score(p_base / price_a19, trend_indicator, int_1, int_2))
array.set(a_array, 19, f_calc_score(p_base / price_a20, trend_indicator, int_1, int_2))
array.set(a_array, 20, f_calc_score(p_base / price_a21, trend_indicator, int_1, int_2))
array.set(a_array, 21, f_calc_score(p_base / price_a22, trend_indicator, int_1, int_2))
array.set(a_array, 22, f_calc_score(p_base / price_a23, trend_indicator, int_1, int_2))
array.set(a_array, 23, f_calc_score(p_base / price_a24, trend_indicator, int_1, int_2))
array.set(a_array, 24, f_calc_score(p_base / price_a25, trend_indicator, int_1, int_2))
array.set(a_array, 25, f_calc_score(p_base / price_a26, trend_indicator, int_1, int_2))
array.set(a_array, 26, f_calc_score(p_base / price_a27, trend_indicator, int_1, int_2))
array.set(a_array, 27, f_calc_score(p_base / price_a28, trend_indicator, int_1, int_2))
array.set(a_array, 28, f_calc_score(p_base / price_a29, trend_indicator, int_1, int_2))
array.set(a_array, 29, f_calc_score(p_base / price_a30, trend_indicator, int_1, int_2))
array.set(a_array, 30, f_calc_score(p_base / price_a31, trend_indicator, int_1, int_2))
array.set(a_array, 31, f_calc_score(p_base / price_a32, trend_indicator, int_1, int_2))
array.set(a_array, 32, f_calc_score(p_base / price_a33, trend_indicator, int_1, int_2))
array.set(a_array, 33, f_calc_score(p_base / price_a34, trend_indicator, int_1, int_2))
array.set(a_array, 34, f_calc_score(p_base / price_a35, trend_indicator, int_1, int_2))
array.set(a_array, 35, f_calc_score(p_base / price_a36, trend_indicator, int_1, int_2))
array.set(a_array, 36, f_calc_score(p_base / price_a37, trend_indicator, int_1, int_2))
array.set(a_array, 37, f_calc_score(p_base / price_a38, trend_indicator, int_1, int_2))
array.set(a_array, 38, f_calc_score(p_base / price_a39, trend_indicator, int_1, int_2))
array.set(a_array, 39, f_calc_score(p_base / price_a40, trend_indicator, int_1, int_2))
a_array
Conditional Array Setting (f_arrayset):
This function checks if the number of used assets is greater than or equal to a specified number before populating the arrays.
// only set values into arrays for USED assets
f_arrayset(asset_number, a_array, p_base) =>
if (used_assets >= asset_number)
f_array_set(a_array, p_base)
else
na
Main Logic
The main logic initializes arrays to store scores for each asset. Each array corresponds to one asset's performance score.
Setting Trend Values: The code calls f_arrayset for each asset, populating the respective arrays with calculated scores based on the asset prices.
Combining Arrays: A combined_array is created to hold all the scores from individual asset arrays. This array facilitates further analysis, allowing for an overview of the performance scores of all assets at once.
// create a combined array (work-around since pinescript doesn't support having array of arrays)
var combined_array = array.new_int(40 * 40, 0)
if barstate.islast
for i = 0 to 39
array.set(combined_array, i, array.get(a1_array, i))
array.set(combined_array, i + (40 * 1), array.get(a2_array, i))
array.set(combined_array, i + (40 * 2), array.get(a3_array, i))
array.set(combined_array, i + (40 * 3), array.get(a4_array, i))
array.set(combined_array, i + (40 * 4), array.get(a5_array, i))
array.set(combined_array, i + (40 * 5), array.get(a6_array, i))
array.set(combined_array, i + (40 * 6), array.get(a7_array, i))
array.set(combined_array, i + (40 * 7), array.get(a8_array, i))
array.set(combined_array, i + (40 * 8), array.get(a9_array, i))
array.set(combined_array, i + (40 * 9), array.get(a10_array, i))
array.set(combined_array, i + (40 * 10), array.get(a11_array, i))
array.set(combined_array, i + (40 * 11), array.get(a12_array, i))
array.set(combined_array, i + (40 * 12), array.get(a13_array, i))
array.set(combined_array, i + (40 * 13), array.get(a14_array, i))
array.set(combined_array, i + (40 * 14), array.get(a15_array, i))
array.set(combined_array, i + (40 * 15), array.get(a16_array, i))
array.set(combined_array, i + (40 * 16), array.get(a17_array, i))
array.set(combined_array, i + (40 * 17), array.get(a18_array, i))
array.set(combined_array, i + (40 * 18), array.get(a19_array, i))
array.set(combined_array, i + (40 * 19), array.get(a20_array, i))
array.set(combined_array, i + (40 * 20), array.get(a21_array, i))
array.set(combined_array, i + (40 * 21), array.get(a22_array, i))
array.set(combined_array, i + (40 * 22), array.get(a23_array, i))
array.set(combined_array, i + (40 * 23), array.get(a24_array, i))
array.set(combined_array, i + (40 * 24), array.get(a25_array, i))
array.set(combined_array, i + (40 * 25), array.get(a26_array, i))
array.set(combined_array, i + (40 * 26), array.get(a27_array, i))
array.set(combined_array, i + (40 * 27), array.get(a28_array, i))
array.set(combined_array, i + (40 * 28), array.get(a29_array, i))
array.set(combined_array, i + (40 * 29), array.get(a30_array, i))
array.set(combined_array, i + (40 * 30), array.get(a31_array, i))
array.set(combined_array, i + (40 * 31), array.get(a32_array, i))
array.set(combined_array, i + (40 * 32), array.get(a33_array, i))
array.set(combined_array, i + (40 * 33), array.get(a34_array, i))
array.set(combined_array, i + (40 * 34), array.get(a35_array, i))
array.set(combined_array, i + (40 * 35), array.get(a36_array, i))
array.set(combined_array, i + (40 * 36), array.get(a37_array, i))
array.set(combined_array, i + (40 * 37), array.get(a38_array, i))
array.set(combined_array, i + (40 * 38), array.get(a39_array, i))
array.set(combined_array, i + (40 * 39), array.get(a40_array, i))
Calculating Sums: A separate array_sums is created to store the total score for each asset by summing the values of their respective score arrays. This allows for easy comparison of overall performance.
Ranking Assets: The final part of the code ranks the assets based on their total scores stored in array_sums. It assigns a rank to each asset, where the asset with the highest score receives the highest rank.
// create array for asset RANK based on array.sum
var ranks = array.new_int(used_assets, 0)
// for loop that calculates the rank of each asset
if barstate.islast
for i = 0 to (used_assets - 1)
int rank = 1
for x = 0 to (used_assets - 1)
if i != x
if array.get(array_sums, i) < array.get(array_sums, x)
rank := rank + 1
array.set(ranks, i, rank)
Dynamic Table Creation
Initialization: The table is initialized with a base structure that includes headers for asset names, scores, and ranks. The headers are set to remain constant, ensuring clarity for users as they interpret the displayed data.
Data Population: As scores are calculated for each asset, the corresponding values are dynamically inserted into the table. This is achieved through a loop that iterates over the scores and ranks stored in the combined_array and array_sums, respectively.
Automatic Extending Mechanism
Variable Asset Count: The code checks the number of assets defined by the user. Instead of hardcoding the number of rows in the table, it uses a variable to determine the extent of the data that needs to be displayed. This allows the table to expand or contract based on the number of assets being analyzed.
Dynamic Row Generation: Within the loop that populates the table, the code appends new rows for each asset based on the current asset count. The structure of each row includes the asset name, its score, and its rank, ensuring that the table remains consistent regardless of how many assets are involved.
// Automatically extending table based on the number of used assets
var table table = table.new(position.bottom_center, 50, 50, color.new(color.black, 100), color.white, 3, color.white, 1)
if barstate.islast
if not hide_head
table.cell(table, 0, 0, "Universal Ratio Trend Matrix", text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.merge_cells(table, 0, 0, used_assets + 3, 0)
if not hide_inps
table.cell(table, 0, 1,
text = "Inputs: You are using " + str.tostring(trend_indicator) + ", which takes: " + str.tostring(f_get_input(trend_indicator)),
text_color = color.white, text_size = fontSize), table.merge_cells(table, 0, 1, used_assets + 3, 1)
table.cell(table, 0, 2, "Assets", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, 2, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.cell(table, 0, x + 3, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = f_asset_col(array.get(ranks, x)), text_size = fontSize)
for r = 0 to (used_assets - 1)
for c = 0 to (used_assets - 1)
table.cell(table, c + 1, r + 3, text = str.tostring(array.get(combined_array, c + (r * 40))),
text_color = hl_type == "Text" ? f_get_col(array.get(combined_array, c + (r * 40))) : color.white, text_size = fontSize,
bgcolor = hl_type == "Background" ? f_get_col(array.get(combined_array, c + (r * 40))) : na)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, x + 3, "", bgcolor = #010c3b)
table.cell(table, used_assets + 1, 2, "", bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 1, x + 3, "==>", text_color = color.white)
table.cell(table, used_assets + 2, 2, "SUM", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
table.cell(table, used_assets + 3, 2, "RANK", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 2, x + 3,
text = str.tostring(array.get(array_sums, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_sum(array.get(array_sums, x), array.get(ranks, x)))
table.cell(table, used_assets + 3, x + 3,
text = str.tostring(array.get(ranks, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_rank(array.get(ranks, x)))
Futures Daily Settlement PricesDaily settlement prices reflect the fair market value of the underlying commodity or financial instrument, as determined by buyers and sellers during the settlement period or “close”. The price quoted in the evening news for items like a bush of corn, a barrel of crude oil, or a 10-year U.S. Treasury note frequently use the settlement price for the corresponding futures product that day.
Settlement prices are used to mark traders’ positions to market daily, determining profits or losses. Daily settlement prices play a key role in facilitating price discovery, risk management, and market integrity.
This indicator plots up to 30 settlement prices as well as the date of settlement on your chart, on time frames under 1 hour.
Customizable line types, colors, and label colors.
DWMA & Normalized DWMA St. Dev.The Distance Weighted Moving Average With Standard Deviations enhanced by Normalizing it (DWMA & NDWMA) is an advanced technical indicator designed to identify trends, potential breakouts, and reversals while accounting for market volatility. By combining a weighted approach to moving averages with dynamic standard deviations and a normalized component, this tool offers a robust framework for both short-term traders and long-term investors. It brings together several layers of trend analysis to provide clearer signals and minimize market noise.
1. DWMA (Distance Weighted Moving Average)
At its core, the DWMA assigns more weight to price points that are closer in value to the current price. Unlike traditional moving averages that focus on time-based proximity, DWMA highlights price similarity, making it more adaptive to sudden changes in the market. This helps to smooth out erratic price movements while staying responsive to meaningful shifts.
2. DWMA SD (Standard Deviation)
The DWMA SD measures how much the DWMA fluctuates from its mean over a specified period. By analyzing these fluctuations, the DWMA SD provides a volatility assessment of the DWMA itself, offering insights into the stability or turbulence of the current trend. This is a critical aspect for traders who want to gauge whether a trend is steady or losing momentum.
3. DWMA WSD (Weighted Standard Deviations)
The DWMA WSD introduces a volatility-based channel around the DWMA by multiplying the standard deviation with user-defined weights. This creates dynamic upper and lower bands, allowing traders to identify potential overbought and oversold conditions. When the price crosses these bands, it signals possible trend reversals or breakout opportunities, helping traders make more informed decisions on entry and exit points.
4. NDWMA (Normalized DWMA)
The Normalized DWMA takes the DWMA one step further by adjusting it relative to the current price level. This normalization ensures that the DWMA remains comparable across different price ranges, whether the asset’s price is high or low. This component is particularly useful for analyzing assets with volatile or widely varying price levels, as it makes trends easier to spot and interpret.
5. NDWMA SD (Standard Deviation)
The NDWMA SD works similarly to the DWMA SD, but it focuses on the volatility of the normalized DWMA. It reflects how much the normalized DWMA fluctuates around its average, providing an additional perspective on market conditions. Traders can use this to detect shifts in the strength of the trend and to anticipate potential changes in direction.
6. Signals
The Signals generated by this indicator combine insights from both the DWMA and NDWMA:
Long Signals (L) occur when the price moves above the DWMA’s upper band and the NDWMA confirms a positive trend. This suggests that the market is gaining momentum, making it a potential buy signal.
Short Signals (S) are triggered when the price falls below the DWMA’s lower band, and the NDWMA shows weakness. This indicates a possible bearish trend, signaling traders to consider selling or shorting.
These signals are designed to filter out false signals and provide more reliable trend confirmations by leveraging the combined power of both moving averages and their volatility bands.
The DWMA & NDWMA indicator provides a sophisticated approach to trend analysis by merging price-weighted moving averages with volatility bands and normalization. Its multi-layered structure offers a detailed perspective on price movements and trends, helping traders identify potential opportunities with greater accuracy.
Dynamic Price Oscillator [CHE]Dynamic Price Oscillator
Overview:
Welcome to the Dynamic Price Oscillator ! This indicator is designed to help traders identify potential trend reversals and divergences by comparing short-term and long-term price movements in percentage terms. It’s a powerful tool to enhance your trading strategies by spotting bullish and bearish divergences effectively.
Key Features:
Dynamic Oscillator Calculation: The DPO calculates the percentage difference between two EMAs (Exponential Moving Averages), offering insight into the relative strength of price movements.
Bullish & Bearish Divergence Detection:
The indicator highlights divergences between price and the oscillator, allowing you to identify potential reversal points with ease.
Long-Term Divergence Option: Enable or disable long-term divergences to focus on either short-term trends or broader market movements.
High/Low Markers:
Visual markers for significant peaks and troughs in the DPO, helping you quickly spot potential trade setups.
Custom Alerts: Set up alerts for both bullish and bearish divergence signals, ensuring you never miss an important opportunity.
How to Use:
Bullish Divergence: A bullish divergence occurs when price is making lower lows, but the DPO shows higher lows. This can indicate a potential reversal to the upside.
Bearish Divergence: A bearish divergence happens when price is making higher highs, but the DPO shows lower highs. This can signal a potential downside reversal.
Customizable Settings: Adjust the fast and slow EMA periods, smoothing factor, and divergence lookback to fit your personal trading style.
Ideal For:
Swing traders and day traders looking for early signs of market reversals.
Those who want a clear, visual representation of divergence between price and momentum.
Traders who appreciate flexibility with customizable parameters and built-in alerts.
Why Use Dynamic Price Oscillator ?
This indicator gives you the edge by providing a reliable way to measure price momentum and detect divergences that are often missed by other indicators. With the option to enable long-term divergences, you can tailor the indicator to fit both short-term and long-term strategies.
Give it a try and see how the Dynamic Price Oscillator can enhance your trading performance!
Best regards Chervolino
Gaussian RSI For Loop [TrendX_]The Gaussian RSI For Loop indicator is a sophisticated tool designed for trend-following traders seeking to identify strong uptrends in the market. By integrating a Gaussian and Weighted-MA (GWMA) with the Relative Strength Index (RSI), this indicator employs a loop-based scoring system to provide clear signals for potential trading opportunities. The combination of Gaussian smoothing techniques and overbought/oversold filtering enhances the indicator's ability to capture significant price movements while reducing noise, making it an optimal choice for traders aiming to capitalize on robust upward trends.
💎 KEY FEATURES
Gaussian Weighted Moving Average (GWMA): Smooths price data to reduce noise and enhance responsiveness to significant price changes.
Filtered RSI: Applies the RSI to Gaussian-filtered data, allowing for more accurate momentum readings.
Wavetrend Analysis: Calculates the difference between the Filtered RSI and its short-term moving average, providing additional insights into momentum shifts.
Loop-Based Scoring System: Evaluates the strength and direction of uptrends through a systematic analysis of the Filtered RSI against defined thresholds.
⚙️ USAGES
Identifying Strong Uptrends: Traders can use this indicator to pinpoint periods of strong upward momentum, helping them make informed decisions about entering long positions and its exits.
Trend and Signal Confirmation: The Score confirms Long and Exit signals which traders can see through the Dots on the Gaussian RSI.
🔎 BREAKDOWN
Gaussian-Filtered Data:
The first component of the Gaussian RSI For Loop is the application of a GWMA to the sourced price data. This smoothing technique uses weighted averages based on a Gaussian distribution, which emphasizes more recent prices while diminishing the impact of older prices. This GWMA effectively reduces market noise, allowing traders to focus on significant price movements. By adjusting weights using sigma parameters, traders can fine-tune the sensitivity of the indicator, making it more responsive to genuine market trends while filtering out minor fluctuations that could lead to misleading signals.
Filtered RSI:
Next, the RSI is applied to the Gaussian-filtered data. The RSI measures the speed and change of price movements, providing insights into overbought or oversold conditions. By applying the RSI to smoothed price data, traders obtain a clearer view of momentum without the distortion caused by sudden price spikes or drops. This results in more reliable readings that help identify potential trend reversals or continuations.
Wavetrend Analysis:
The Wavetrend component calculates the difference between the Filtered RSI and its short-term moving average (MA). This difference serves as an additional momentum indicator. When the Filtered RSI is above its short-term MA, it suggests that upward momentum is strengthening; conversely, when it falls below, it indicates weakening momentum. This analysis helps traders confirm whether an uptrend is gaining strength or losing traction.
Loop-Based Scoring System:
Range Analysis: The system evaluates the Filtered RSI by comparing its current value against overbought (OB) and oversold (OS) thresholds over a defined range. This systematic approach ensures that each value within this range contributes to understanding overall trend strength.
Score Calculation: As the loop iterates through values within the defined range, it adjusts a score based on whether the current Filtered RSI and its previous values are higher or lower than established OB and OS levels. This scoring mechanism quantifies trend strength and direction.
Strong Uptrend Trigger: A strong uptrend signal is generated when the score exceeds a predefined Score Threshold (Long). This indicates that bullish momentum is robust enough to warrant entry into long positions.
None Trend: Conversely, if the score falls below the Score Threshold (Short), it suggests that upward momentum has weakened significantly, signaling potential exit points and it can be consolidated or downtrend.
DISCLAIMER
This indicator is not financial advice, it can only help traders make better decisions. There are many factors and uncertainties that can affect the outcome of any endeavor, and no one can guarantee or predict with certainty what will occur. Therefore, one should always exercise caution and judgment when making decisions based on past performance.
Trading Ranges + ZScoreOverview
The "Trading Ranges + ZScore" script is a versatile technical indicator developed for TradingView. This tool combines two powerful concepts—price ranges and Z-Score analysis—to help traders identify potential trend reversals, overbought/oversold conditions, and trend strength. The script dynamically calculates price ranges based on recent price action and utilizes Z-Score to detect deviations from a statistical norm, providing valuable insights for decision-making in both ranging and trending markets.
Features
Price Ranges: Calculates dynamic upper and lower price boundaries based on volatility and market structure.
Z-Score Oscillator: A statistical measure that highlights overbought/oversold conditions based on the deviation from a moving average.
Trend Detection: Identifies trend continuation or reversal points by comparing current price action against historical levels.
Customizable Alerts: Generates visual signals (diamonds and X crosses) for potential long/short entries and exits.
Visual Representation: Colors the bars based on Z-Score and trend direction, enhancing the chart’s readability and signal clarity.
Customizable Parameters: The script allows users to fine-tune perception length, analysis period, factor multiplier, and oscillator thresholds to fit different market conditions.
Key Input Parameters
Perception: The length used for calculating highest/lowest price points (default: 20).
Analysis: The length used for calculating the moving average and volatility (default: 100).
Factor: A multiplier to adjust the width of the price ranges (default: 2.0).
Oscillator Threshold: The overbought/oversold threshold for the Z-Score oscillator (default: 70).
Trend Filter: A boolean switch that filters signals based on trend direction.
Fill Zones: Option to color-fill between price levels when certain conditions are met.
Bullish/Bearish/Neutral Colors: Customizable colors for bullish, bearish, and neutral signals.
How It Works
Price Ranges Calculation:
The script calculates five levels: two upper boundaries, the average price level, and two lower boundaries. These levels are based on the highest/lowest prices over a user-defined period and adjusted by volatility (Average True Range).
When the price crosses either of these levels, it suggests a significant change in market direction, potentially indicating a trend reversal.
Z-Score Oscillator:
The Z-Score is a statistical measurement of a price's position relative to its moving average. The indicator calculates two variations:
Z-Score based on the absolute difference between the price and the moving average.
Z-Score based on standard deviation.
These oscillators help detect extreme conditions where the price is likely to revert (overbought/oversold zones).
Trend Detection and Signals:
The indicator generates potential buy/sell signals when the price crosses the predefined levels or based on the fast Z-Score crossing the overbought/oversold thresholds.
Weak long/short signals are shown when the faster Z-Score oscillator reaches extreme levels but trend filters are applied to avoid noise.
Bar Colors and Signal Shapes:
Bar colors change dynamically to reflect the trend direction and Z-Score conditions. Signals for potential trades are displayed using diamonds and X crosses, making it easy to spot opportunities visually.
Visuals and Plots
Bar Colors: Changes the bar color based on Z-Score and trend direction.
Z-Score Plot: Displays two Z-Score oscillators, the standard and a faster one for detecting quicker price deviations.
Overbought/Oversold Zones: Highlighted by upper and lower thresholds of the Z-Score.
Long/Short Signals: Uses diamond-shaped markers for strong long/short signals and X-shaped markers for weaker signals.
Dynamic Range Lines: Plots lines for key price levels (upper/lower boundaries, mid-range) based on the dynamic range calculations.
Usage Guide
Identify Overbought/Oversold Conditions: Look for the Z-Score reaching extreme positive or negative values. When combined with trend signals, these conditions often point to a potential reversal.
Follow the Trend: Use the trend filter option to focus only on trades in the direction of the prevailing trend, reducing false signals in ranging markets.
Watch for Range Breakouts: Pay attention to the upper and lower boundaries. Price crossing these levels often signals the start of a new trend or a major price movement.
Adjust Parameters: Tailor the perception length, analysis length, and multiplier to suit different asset classes or timeframes.
Customization
You can adjust the key parameters to adapt the indicator to different markets or personal trading preferences:
- Perception & Analysis Lengths: Control the sensitivity of the price range calculations.
- Factor Multiplier: Adjusts the width of the ranges, with higher values indicating larger zones.
- Oscillator Threshold: Modify the overbought/oversold levels to suit different market volatility.
- Trend Filter: Toggle on/off to focus on trend-following strategies or range-bound conditions.
- Visual Options: Customize colors for bullish, bearish, and neutral signals, as well as enable/disable the zone fills.
Bias TF TableThis indicator is a technical analysis tool designed to evaluate the price trend of an asset across multiple time frames (5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, daily, and weekly).
Main Functions:
Directional Bias: Displays whether the trend is bullish (Up) or bearish (Down) for each time frame, using the closing price in comparison to a 50-period exponential moving average (EMA).
Table Visualization: Presents the results in a table located in the bottom right corner of the chart, making it easy to read and compare trends across different time intervals.
This indicator provides a quick and effective way to assess market direction and make informed trading decisions based on the trend in various time frames.
Volumetric Volatility Breaker Blocks [UAlgo]The "Volumetric Volatility Breaker Blocks " indicator is designed for traders who want a comprehensive understanding of market volatility combined with volume analysis. This indicator provides a clear visualization of significant volatility areas (or blocks), characterized by price movements that exceed a specific volatility threshold, as calculated using the ATR (Average True Range). The concept is enhanced by integrating volume-based insights, offering a view of market activity that helps users to recognize when significant price changes are being supported by an appropriate level of market participation.
The indicator calculates breaker blocks for both bullish and bearish market conditions, providing distinct visual elements that identify periods of high volatility and substantial volume divergence. The focus on both volume and volatility makes this tool versatile, allowing traders to assess the strength of price movements as well as areas where price might break above or below previously established levels.
It supports adjustable parameters, such as volatility length, smoothness factor, and volume display, allowing traders to fine-tune the indicator according to their trading strategy and market environment. The highlighted breaker blocks assist in identifying zones of potential price reversal or continuation, which can be critical for making informed trading decisions.
🔶 Key Features
Volatility-Based Block Identification: The indicator uses the Average True Range (ATR) to determine the volatility of the market. When the ATR exceeds a specified threshold (smooth ATR multiplied by a user-defined multiplier), it highlights these areas as volatility blocks. The idea is to mark periods where price activity is significantly divergent from normal conditions, which often signals market opportunities.
Volume Integrated Analysis: In addition to tracking volatility, the indicator incorporates volume data, allowing traders to see the amount of activity that occurs during these high-volatility periods. This helps in identifying whether a price movement is likely sustainable or whether it lacks market support.
User Adjustable Parameters: The indicator offers customization options for the volatility length (using ATR), smooth length, and multiplier for sensitivity adjustment. These settings enable users to modify the indicator’s responsiveness to market conditions.
The option to display the last few volatility blocks allows traders to manage clutter on their charts and focus only on the most recent significant data.
Mitigation Method: Users can select between different mitigation methods ("Close" or "Wick") to determine how blocks are broken. This adds an extra layer of adaptability, allowing traders to modify the indicator's response based on different price action strategies.
Dynamic Visual Representation: The indicator dynamically draws boxes for volatility blocks and shades them according to market direction, with split areas showing the bullish and bearish strength contributions. It also provides percentage volume for each block, helping traders understand the relative market participation during these moves.
🔶 Interpreting the Indicator
Identifying High Volatility Areas: When a new volatility block appears, it signifies that the market is experiencing higher-than-usual volatility, driven by increased ATR values. Traders should pay attention to these blocks, as they often indicate that a significant price move is occurring. Bullish blocks suggest upward pressure, whereas bearish blocks indicate downward pressure.
Volume Insights: The volume associated with each volatility block provides an insight into how much market participation accompanies these moves. Higher volume within a block implies that the market is actively supporting the price change, which may be a sign of continuation. Low volume suggests that the movement may lack the strength to persist.
Bullish vs. Bearish Strength Analysis: Each block is split into bullish and bearish strength, giving a clearer picture of what’s happening within the volatility period. If the bullish portion dominates, it indicates strong upward sentiment during that period. Conversely, if the bearish side is more prominent, there is more selling pressure. This breakdown helps in understanding intra-block market dynamics.
Volume Percentage Display: The indicator also displays the volume percentage in each block, which provides context for the strength of the move relative to recent market activity. Higher percentages mean more market engagement, which could confirm the legitimacy of a trend or a significant breakout.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Volumatic Variable Index Dynamic Average [BigBeluga]The Volumatic VIDYA (Variable Index Dynamic Average) indicator is a trend-following tool that calculates and visualizes both the current trend and the corresponding buy and sell pressure within each trend phase. Using the Variable Index Dynamic Average as the core smoothing technique, this indicator also plots volume levels of lows and highs based on market structure pivot points, providing traders with key insights into price and volume dynamics.
Additionally, it generates delta volume values to help traders evaluate buy-sell pressure balance during each trend, making it a powerful tool for understanding market sentiment shifts.
BTC:
TSLA:
🔵 IDEA
The Volumatic VIDYA indicator's core idea is to provide a dynamic, adaptive smoothing tool that identifies trends while simultaneously calculating the volume pressure behind them. The VIDYA line, based on the Variable Index Dynamic Average, adjusts according to the strength of the price movements, offering a more adaptive response to the market compared to standard moving averages.
By calculating and displaying the buy and sell volume pressure throughout each trend, the indicator provides traders with key insights into market participation. The horizontal lines drawn from the highs and lows of market structure pivots give additional clarity on support and resistance levels, backed by average volume at these points. This dual analysis of trend and volume allows traders to evaluate the strength and potential of market movements more effectively.
🔵 KEY FEATURES & USAGE
VIDYA Calculation:
The Variable Index Dynamic Average (VIDYA) is a special type of moving average that adjusts dynamically to the market’s volatility and momentum. Unlike traditional moving averages that use fixed periods, VIDYA adjusts its smoothing factor based on the relative strength of the price movements, using the Chande Momentum Oscillator (CMO) to capture the magnitude of price changes. When momentum is strong, VIDYA adapts and smooths out price movements quicker, making it more responsive to rapid price changes. This makes VIDYA more adaptable to volatile markets compared to traditional moving averages such as the Simple Moving Average (SMA) or the Exponential Moving Average (EMA), which are less flexible.
// VIDYA (Variable Index Dynamic Average) function
vidya_calc(src, vidya_length, vidya_momentum) =>
float momentum = ta.change(src)
float sum_pos_momentum = math.sum((momentum >= 0) ? momentum : 0.0, vidya_momentum)
float sum_neg_momentum = math.sum((momentum >= 0) ? 0.0 : -momentum, vidya_momentum)
float abs_cmo = math.abs(100 * (sum_pos_momentum - sum_neg_momentum) / (sum_pos_momentum + sum_neg_momentum))
float alpha = 2 / (vidya_length + 1)
var float vidya_value = 0.0
vidya_value := alpha * abs_cmo / 100 * src + (1 - alpha * abs_cmo / 100) * nz(vidya_value )
ta.sma(vidya_value, 15)
When momentum is strong, VIDYA adapts and smooths out price movements quicker, making it more responsive to rapid price changes. This makes VIDYA more adaptable to volatile markets compared to traditional moving averages
Triangle Trend Shift Signals:
The indicator marks trend shifts with up and down triangles, signaling a potential change in direction. These signals appear when the price crosses above a VIDYA during an uptrend or crosses below during a downtrend.
Volume Pressure Calculation:
The Volumatic VIDYA tracks the buy and sell pressure during each trend, calculating the cumulative volume for up and down bars. Positive delta volume occurs during uptrends due to higher buy pressure, while negative delta volume reflects higher sell pressure during downtrends. The delta is displayed in real-time on the chart, offering a quick view of volume imbalances.
Market Structure Pivot Lines with Volume Labels:
The indicator draws horizontal lines based on market structure pivots, which are calculated using the highs and lows of price action. These lines are extended on the chart until price crosses them. The indicator also plots the average volume over a 6-bar range to provide a clearer understanding of volume dynamics at critical points.
🔵 CUSTOMIZATION
VIDYA Length & Momentum: Control the sensitivity of the VIDYA line by adjusting the length and momentum settings, allowing traders to customize the smoothing effect to match their trading style.
Volume Pivot Detection: Set the number of bars to consider for identifying pivots, which influences the calculation of the average volume at key levels.
Band Distance: Adjust the band distance multiplier for controlling how far the upper and lower bands extend from the VIDYA line, based on the ATR (Average True Range).
RSI Crossover Strategy with Compounding (Monthly)Explanation of the Code:
Initial Setup:
The strategy initializes with a capital of 100,000.
Variables track the capital and the amount invested in the current trade.
RSI Calculation:
The RSI and its SMA are calculated on the monthly timeframe using request.security().
Entry and Exit Conditions:
Entry: A long position is initiated when the RSI is above its SMA and there’s no existing position. The quantity is based on available capital.
Exit: The position is closed when the RSI falls below its SMA. The capital is updated based on the net profit from the trade.
Capital Management:
After closing a trade, the capital is updated with the net profit plus the initial investment.
Plotting:
The RSI and its SMA are plotted for visualization on the chart.
A label displays the current capital.
Notes:
Test the strategy on different instruments and historical data to see how it performs.
Adjust parameters as needed for your specific trading preferences.
This script is a basic framework, and you might want to enhance it with risk management, stop-loss, or take-profit features as per your trading strategy.
Feel free to modify it further based on your needs!