Dynamic Sine Wave The Dynamic Sine Wave is designed to calculate a sine wave that reflects the oscillations between the highest high and lowest low points over a specified period, providing traders with a unique perspective on market trends.
Why a Sine Wave is Relevant:
A sine wave is relevant in this context because it is a mathematical function that represents periodic oscillations, making it suitable for capturing the cyclic nature of price movements in financial markets.
By using a sine wave, this indicator highlights the repetitive patterns of price highs and lows over a specified period, which can assist traders in identifying potential trend reversals or continuations.
The sine wave's amplitude and frequency are adjusted based on the highest high and lowest low points, ensuring that it adapts to market volatility and provides a dynamic representation of price action.
Overall, the "Dynamic Sine Wave" indicator offers a unique perspective on market dynamics, helping traders make informed decisions by visualizing the ebb and flow of prices.
在腳本中搜尋"国泰黄金ETF联接C相关行业指数的最新政策"
Multiperiod Volume Pressure Indicator
Description:
The Volume Pressure Indicator is a powerful tool designed to assess market sentiment based on a combination of price and volume data. By analyzing buy and sell pressure within specific lookback periods, this indicator provides valuable insights into the intensity of market buying and selling activities. Traders can use this information to make informed decisions, especially during periods of price consolidation or trend reversal.
Key Features:
- **Multi-Period Analysis:** Utilizes multiple lookback periods (1, 2, and 4) to calculate buy and sell pressures, offering a nuanced view of market dynamics over different timeframes.
- **Pressure Calculation:** Computes buy and sell pressures based on price range and closing values, providing a comprehensive understanding of market participant behavior.
- **Color-Coded Bars:** Visualizes market sentiment by coloring bars according to the number of positive (buy pressure > sell pressure) periods observed within the specified lookback periods.
How to Use:
- **Color Coding:** Green bars represent periods where buy pressure dominates, indicating potential buying interest. Yellow bars suggest a balance between buy and sell pressures. Red bars signal periods dominated by sell pressure, indicating potential selling interest.
- **Lookback Periods:** Shorter lookback periods (e.g., 1) offer insights into immediate market sentiment, while longer periods (e.g., 4) provide a broader perspective. Analyzing multiple periods can help traders confirm trends and anticipate reversals.
Customization:
- **Lookback Periods:** Adjust the length of the lookback periods (1, 2, and 4) to match your trading style and timeframe preferences.
Disclaimer:
Trading involves risk, and past performance is not indicative of future results. Always conduct thorough analysis and apply proper risk management techniques before making trading decisions.
Usage Scenarios:
- **Trend Confirmation:** Use the indicator to confirm the strength of an ongoing trend. Consistent green bars can validate a bullish trend, while red bars may confirm a bearish trend.
- **Reversal Signals:** Look for transitions in bar colors to identify potential trend reversals. A shift from green to yellow/red or vice versa can indicate changing market sentiment.
- **Divergence Analysis:** Compare price movements with the indicator's bar colors. Divergence between price trends and bar colors may signal upcoming price movements.
DMI Based Overbought/Oversold SignalsDescription:
The Directional Movement Index (DMI) with Bollinger Bands and Moving Averages is a comprehensive technical analysis tool designed to assist traders in identifying potential market trends and reversal points. This indicator combines the power of DMI, Bollinger Bands, and Moving Averages to offer insights into market strength, volatility, and potential entry/exit points.
Key Features:
- **DMI Analysis:** Utilizes the DMI to evaluate the strength of bullish and bearish trends, aiding in trend identification and momentum assessment.
- **Bollinger Bands:** Implements Bollinger Bands on both +DI and -DI, enabling traders to gauge price volatility and potential overbought/oversold conditions.
- **Moving Averages Confirmation:** Utilizes Moving Averages for both +DI and -DI, confirming trend signals and providing additional context for trade decisions.
- **Color-Coded Signals:** Displays red boxes for potential bearish signals and green boxes for potential bullish signals, enhancing visual clarity.
How to Use:
- **DMI Signals:** Red boxes indicate potential bearish signals, suggesting caution or potential short opportunities. Green boxes suggest potential bullish signals, indicating possible long opportunities.
- **Volatility Assessment:** Bollinger Bands expansion (price moving away from the center line) can indicate increased volatility, potentially signaling significant price movements.
- **Trend Confirmation:** Moving Averages confirm the strength of the trend. When +DI or -DI is above its respective upper Bollinger Band and the Moving Average is also above, the trend is considered strong.
Customization:
- **DI Length:** Adjust the length of the Directional Index (DI) to fine-tune the sensitivity of trend signals.
- **Bollinger Bands Length:** Modify the length of Bollinger Bands to control the indicator's responsiveness to price volatility.
- **Bollinger Bands Multiplier:** Adjust the multiplier to widen or narrow the Bollinger Bands, affecting the sensitivity of overbought/oversold signals.
- **Moving Average Length:** Define the length of Moving Averages for additional confirmation of trend signals.
Disclaimer:
Trading involves risk, and past performance is not indicative of future results. Always conduct thorough analysis and apply proper risk management techniques before making trading decisions.
DMI Based Consolidation InidcatorDescription:
The Consolidation Indicator (DMI + MA) combines the power of the Directional Movement Index (DMI) and Moving Averages (MA) to help traders identify both trends and consolidation phases in the market. This versatile indicator provides valuable insights into the market's behavior, making it an essential tool for traders seeking to optimize their strategies.
Key Features:
- **Directional Movement Analysis:** Utilizes the DMI to assess the strength of bullish and bearish trends, helping traders identify trend direction and momentum.
- **Moving Average Confirmation:** Integrates Moving Averages to confirm trend signals, enhancing the reliability of trend identification.
- **Trend and Consolidation Recognition:** Displays +DI and -DI trends with color-coded boxes, allowing traders to distinguish between bullish, bearish trends, and consolidation phases.
How to Use:
- **Trend Identification:** +DI Trend box (green) indicates a bullish trend, suggesting potential buying opportunities. -DI Trend box (red) signifies a bearish trend, indicating potential selling opportunities.
- **Consolidation Phase:** When both boxes are white, the market is in a consolidation phase. During consolidation, prices often move within a range. Traders may consider range-bound strategies or wait for a clear trend signal.
Customization:
- **ADX Smoothing:** Adjust the ADX smoothing factor (lensig) to fine-tune the sensitivity of trend signals.
- **DI Length:** Set the length of the Directional Index (DI) to control the responsiveness of the indicator to price changes.
- **Moving Average Length:** Define the length of the Moving Averages for additional confirmation of trend signals.
- **Moving Average Type:** Choose from SMA, EMA, WMA, or VWMA to customize the Moving Averages based on your trading preferences.
Disclaimer:
Trading involves risk, and past performance is not indicative of future results. Always perform your analysis and consider risk management strategies before making trading decisions.
Support Resistance with Touch HighlightDescription:
Support Resistance with Touch Highlight is a powerful technical analysis tool designed to help traders identify key support and resistance levels in the market. Unlike traditional support and resistance indicators, this indicator utilizes a unique approach by considering multiple periods simultaneously, enhancing its accuracy and reliability.
Key Features:
- **Multi-Period Analysis:** The indicator analyzes multiple user-defined periods, allowing for a comprehensive view of support and resistance levels.
- **Average Calculation:** It calculates the average of the highest and lowest prices within the specified periods, providing a balanced representation of support and resistance zones.
- **Dynamic Highlighting:** Bars touching the support or resistance lines are highlighted, aiding traders in spotting potential reversal points.
- **Alert System:** Set custom alerts to be notified when the price touches the support or resistance lines, enabling timely decision-making.
Why It's Superior:
1. **Accuracy Through Multiple Periods:** By considering multiple periods, the indicator provides a more accurate depiction of support and resistance levels, minimizing false signals.
2. **Dynamic Highlighting:** The indicator dynamically highlights relevant bars, making it easy for traders to identify significant price interactions with support and resistance zones.
3. **Customizable Alerts:** Tailor alerts to your trading strategy, ensuring you never miss crucial market movements.
How to Use:
- **Support Zones:** Prices often bounce off the support line. Look for buying opportunities when the price touches or approaches the green support line.
- **Resistance Zones:** Prices tend to reverse near the resistance line. Consider selling or tightening stops when the price touches or nears the red resistance line.
Disclaimer:
Trading involves risk, and past performance is not indicative of future results. Always perform your analysis and consider risk management strategies before making trading decisions.
Breakout mode patterns [yohtza]This indicator detects three kinds of price action patterns:
ii - consecutive inside bars ( high and low inside of the previous bar), triangle on a lower timeframe
oo - consecutive outside bars ( high above the high of the previous bar and the low below the low of the previous bar), expanding triangle on a lower timeframe
ioi - inside outside inside, diamond pattern on a lower timeframe
Traders that trade these patterns are entering on breakouts above/below .When they appear in a trending market, they are good setups for both continuation and reversal swing trades. When they appear in ranging market, they are not nearly as powerful since most breakouts fail in this context. To achieve the highest probability, it is best to trade in the direction of the trend on the last bar in the pattern with a stop loss on the other side and going for a reward that is at least twice the risk.
Seasonality and Presidential cycleAn incredibly useful indicator that shows seasonality and presidential cycles by indices, stocks and industries. Just type in a ticker and trade according to seasonal patterns
Blue line - seasonality excluding presidential cycles
Green line - seasonality taking into account presidential cycles
*Seasonal patterns over the last 10 years
This indicator uses the request.seed() function.
Requests data from a GitHub repository maintained by our team and returns it as a series.
Pine Seeds is a service to import custom data and access it via TradingView.
Use TradingView as frontend and use a GitHub repository as backend.
github.com
...
Rus: Невероятно полезный индикатор, который показывает сезонность и президентские циклы по индексам, акциям и отраслям. Просто вбейте тикер и торгуйте согласно сезонным паттернам
Синяя линия - сезонность без учета президентских циклов
Зеленая линия - сезонность с учетом президентских циклов
*Сезонные паттерны за последние 10 лет
MTF ATR Reversal Levels (Open Source)
This is an open source version of the original I posted a couple of years ago.... Multitple TimeFrame Swingarm system borrowing from the Blackflag FTS indicator.
This throws up 5 resolutions of ATR thresholds, only showing the current bar level using a horizontal line across the full chart. I don't like the historical information charted, just need to know the current level for my trading purposes.
It will also give Sell/Buy alerts when the closing price exceeds one of those thresholds... essentially confirmation of a trend reversal.
On the primary resolution (defaulted to the current timeframe of the chart) it can show the fibonacci reversal levels using the ATR levels for that time resolution. This is if for the current trend.
I find it useful, so I thought I would share. Like all indicators, it'll work as long as you stick with a system, and let it work. :)
Market Internals (TICK, ADD, VOLD, TRIN, VIX)OVERVIEW
This script allows you to perform data transformations on Market Internals, across exchanges, and specify signal parameters, to more easily identify sentiment extremes.
Notable transformations include:
1. Cumulative session values
2. Directional bull-bear Ratios and Percent Differences
3. Data Normalization
4. Noise Reduction
This kind of data interaction is very useful for understanding the relationship between two mutually exclusive metrics, which is the essence of Market Internals: Up vs. Down. Even so, they are not possible with symbol expressions alone. And the kind of symbol expression needed to produce baseline data that can be reliably transformed is opaque to most traders, made worse by the fact that prerequisite symbol expressions themselves are not uniform across symbols. It's very nuanced, and if this last bit was confusing … exactly.
All this to say, rather than forcing that burden onto you, I've baked the baseline symbol expressions into the indicator so: 1) the transform functions consistently ingest the baseline data in the correct format and 2) you don't have to spend time trying to figure it all out. Trading is hard. There's no need to make it harder.
INPUTS
Indicator
Allows you to specify the base Market Internal and Exchange data to use. The list of Market Internals is simplified to their fundamental representation (TICK, ADD, VOLD, TRIN, VIX, ABVD, TKCD), and the list of Exchange data is limited to the most common (NYSE, NASDAQ, All US Stocks). There are also options for basic exchange combinations (Sum or Average of NYSE & NASDAQ).
Mode
Short for "Plot Mode", this is where you specify the bars style (Candles, Bars, Line, Circles, Columns) and the source value (used for single value plots and plot color changes).
Scale
This is the first and second data transformation grouped together. The default is to show the origin data as it might appear on a chart. You can then specify if each bar should retain it's unique value (Bar Value) or be added to a running total (Cumulative). You can also specify if you would like the data to remain unaltered (Raw) or converted to a directional ratio (Ratio) or a percentage (Percent Diff). These options determine the scale of the plot.
Both Ratio and Percent Diff. convert a given symbol into a positive or negative number, where positive numbers are bullish and negative numbers are bearish.
Ratio will divide Bull values by Bear values, then further divide -1 by the quotient if it is less than 1. For example, if "0.5" was the quotient, the Ratio would be "-2".
Percent Diff. subtracts Bear values from Bull values, then divides that difference by the sum of Bull and Bear values multiplied by 100. If a Bull value was "3" and Bear value was "7", the difference would be "-4", the sum would be "10", and the Percent Diff. would be "-40", as the difference is both bearish and 40% of total.
Ratio Norm. Threshold
This is the third data transformation . While quotients can be less than 1, directional ratios are never less than 1. This can lead to barcode-like artifacts as plots transition between positive and negative values, visually suggesting the change is much larger than it actually is. Normalizing the data can resolve this artifact, but undermines the utility of ratios. If, however, only some of the data is normalized, the artifact can be resolved without jeopardizing its contextual usefulness.
The utility of ratios is how quickly they communicate proportional differences. For example, if one side is twice as big as the other, "2" communicates this efficiently. This necessarily means the numerical value of ratios is worth preserving. Also, below a certain threshold, the utility of ratios is diminished. For example, an equal distribution being represented as 0, 1, 1:1, 50/50, etc. are all equally useful. Thus, there is a threshold, above which we want values to be exact, and below which the utility of linear visual continuity is more important. This setting accounts for that threshold.
When this setting is enabled, a ratio will be normalized to 0 when 1:1, scaled linearly toward the specified threshold when greater than 1:1, and then retain its exact value when the threshold is crossed. For example, with a threshold of "2", 1:1 = 0, 1.5:1 = 1, 2:1 = 2, 3:1 = 3, etc.
With all this in mind, most traders will want to set the ratios threshold at a level where accuracy becomes more important than visual continuity. If this level is unknown, "2" is a good baseline.
Reset cumulative total with each new session
Cumulative totals can be retained indefinitely or be reset each session. When enabled, each session has its own cumulative total. When disabled, the cumulative total is maintained indefinitely.
Show Signal Ranges
Because everything in this script is designed to make identifying sentiment extremes easier, an obvious inclusion would be to not only display ranges that are considered extreme for each Market Internal, but to also change the color of the plot when it is within, or beyond, that range. That is exactly what this setting does.
Override Max & Min
While the min-max signal levels have reasonable defaults for each symbol and transformation type, the Override Max and Override Min options allow you to … (wait for it) … override the max … and min … signal levels. This may be useful should you find a different level to be more suitable for your exact configuration.
Reduce Noise
This is the fourth data transformation . While the previous Ratio Norm. Threshold linearly stretches values between a threshold and 0, this setting will exponentially squash values closer to 0 if below the lower signal level.
The purpose of this is to compress data below the signal range, then amplify it as it approaches the signal level. If we are trying to identify extremes (the signal), minimizing values that are not extreme (the noise) can help us visually focus on what matters.
Always keep both signal zones visible
Some traders like to zoom in close to the bars. Others prefer to keep a wider focus. For those that like to zoom in, if both signals were always visible, the bar values can appear squashed and difficult to discern. For those that keep a wider focus, if both signals were not always visible, it's possible to lose context if a signal zone is vertically beyond the pane. This setting allows you to decide which scenario is best for you.
Plot Colors
These define the default color, within signal color, and beyond signal color for Bullish and Bearish directions.
Plot colors should be relative to zero
When enabled, the plot will inherit Bullish colors when above zero and Bearish colors when below zero. When disabled and Directional Colors are enabled (below), the plot will inherit the default Bullish color when rising, and the default Bearish color when falling. Otherwise, the plot will use the default Bullish color for all directions.
Directional colors
When the plot colors should be relative to zero (above), this changes the opacity of a bars color if moving toward zero, where "100" percent is the full value of the original color and "0" is transparent. When the plot colors are NOT relative to zero, the plot will inherit Bullish colors when rising and Bearish colors when falling.
Differentiate RTH from ETH
Market Internal data is typically only available during regular trading hours. When this setting is enabled, the background color of the indicator will change as a reminder that data is not available outside regular trading hours (RTH), if the chart is showing electronic trading hours (ETH).
Show zero line
Similar to always keeping signal zones visible (further up), some traders prefer zooming in while others prefer a wider context. This setting allows you to specify the visibility of the zero line to best suit your trading style.
Linear Regression
Polynomial regressions are great for capturing non-linear patterns in data. TradingView offers a "linear regression curve", which this script is using as a substitute. If you're unfamiliar with either term, think of this like a better moving average.
Symbol
While the Market Internal symbol will display in the status line of the indicator, the status line can be small and require more than a quick glance to read properly. Enabling this setting allows you to specify if / where / how the symbol should display on the indicator to make distinguishing between Market Internals more efficient.
Speaking of symbols, this indicator is designed for, and limited to, the following …
TICK - The TICK subtracts the total number of stocks making a downtick from the total number of stocks making an uptick.
ADD - The Advance Decline Difference subtracts the total number of stocks below yesterdays close from the total number of stocks above yesterdays close.
VOLD - The Volume Difference subtracts the total declining volume from the total advancing volume.
TRIN - The Arms Index (aka. Trading Index) divides the ratio of Advancing Stocks / Volume by the ratio of Declining Stocks / Volume. Given the inverse correlation of this index to market movement, when transforming it to a Ratio or Percent Diff., its values are inverted to preserve the bull-bear sentiment of the transformations.
VIX - The CBOE Volatility Index is derived from SPX index option prices, generating a 30-day forward projection of volatility. Given the inverse correlation of this index to market movement, when transforming it to a Ratio or Percent Diff., its values are inverted and normalized to the sessions first bar to preserve the bull-bear sentiment of the transformations. Note: If you do not have a Cboe CGIF subscription , VIX data will be delayed and plot unexpectedly.
ABVD - The Above VWAP Difference is an unofficial index measuring all stocks above VWAP as a percent difference. For the purposes of this indicator (and brevity), TradingViews PCTABOVEVWAP has has been shortened to simply be ABVD.
TKCD - The Tick Cumulative Difference is an unofficial index that subtracts the total number of market downticks from the total number of market upticks. Where "the TICK" (further up) is a measurement of stocks ticking up and down, TKCD is a measurement of the ticks themselves. For the purposes of this indicator (and brevity), TradingViews UPTKS and DNTKS symbols have been shorted to simply be TKCD.
INSPIRATION
I recently made an indicator automatically identifying / drawing daily percentage levels , based on 4 assumptions. One of these assumptions is about trend days. While trend days do not represent the majority of days, they can have big moves worth understanding, for both capitalization and risk mitigation.
To this end, I discovered:
• Article by Linda Bradford Raschke about Capturing Trend Days.
• Video of Garrett Drinon about Trend Day Trading.
• Videos of Ryan Trost about How To Use ADD and TICK.
• Article by Jason Ruchel about Overview of Key Market Internals.
• Including links to resources outside of TradingView violates the House Rules, but they're not hard to find, if interested.
These discoveries inspired me adopt the underlying symbols in my own trading. I also found myself wanting to make using them easier, the net result being this script.
While coding everything, I also discovered a few symbols I believe warrant serious consideration. Specifically the Percent Above VWAP symbols and the Up Ticks / Down Ticks symbols (referenced as ABVD and TKCD in this indicator, for brevity). I found transforming ABVD or TKCD into a Ratio or Percent Diff. to be an incredibly useful and worthy inclusion.
ABVD is a Market Breadth cousin to Brian Shannon's work, and TKCD is like the 3rd dimension of the TICKs geometry. Enjoy.
MTF Breakout/RetestIntroducing the MTF (Multi Timeframe) Breakout and Retest Indicator:
This indicator is designed to enhance your trading strategy by providing a clear view of support and resistance levels across multiple timeframes. What this simply means is that you can input your levels, and be on a lower timeframe such as the 1 minute timeframe, and are able to see when your support or resistance level has a breakout
📈 Short Trade Breakout Condition:
- Definition: A short breakout occurs when a candle closes below your specified support level on any chosen timeframe.
- Confirmation: It confirms as a valid short signal when a second candle closes below the support level without retesting.
- Visual Clarity: The indicator highlights the timeframe in which this breakout has occurred.
(Long conditions are same but reversed, and will be displayed in color green)
📊 Multi-Timeframe Insights:
- Scope: You can analyze support and resistance levels across various timeframes, including 5, 15, 30, and 60 minutes, while trading on a lower timeframe like 1 minute.
🎨 Dynamic Color-Coding:
- Visual Signaling: The indicator employs color-coding to visually signal breakout events. When a short breakout occurs on any timeframe the timeframe color will highlight red, and vice versa for long will highlight green. The physical line will change color based on the current timeframe you are viewing
- Real-Time Tracking: Colors reset when a level is retested, helping you track market sentiment in real-time.
🪙 Need Your Help
- I am still very much new to coding, and this code is clearly not optimized well. This code was mainly the based idea, and over the next coming months I will be working to enhance the code but I need tradingview help. If you are a coder and see a way to optimize this code please please let me know :)
Better RSIThis script is an enhancement of the original RSI (Relative Strength Index) indicator for TradingView. While the core RSI functionality remains intact, several powerful features have been added to make it a "Better RSI" tool for traders and investors.
Key Features:
1. Divergence Detection: The script now includes both Bullish and Hidden Divergence detection. Bullish Divergence helps identify potential trend reversals when the price makes lower lows, but the RSI makes higher lows. Conversely, Hidden Divergence highlights instances where the RSI and price move in opposite directions, signaling potential trend continuation or reversal.
2. Bollinger Band Breakout Highlight: Users have the option to select "Bollinger Bands" as the Moving Average (MA) type in the settings. When enabled, this feature highlights RSI-Bollinger Band breakouts. It's a valuable tool for traders looking to capitalize on RSI movements in conjunction with Bollinger Bands.
3. Customizable Settings: The script provides a range of customizable settings, allowing you to adjust parameters like RSI length, MA type, Bollinger Bands standard deviation, and more to suit your trading strategy.
4. Clear Visuals: The script offers clear visual cues, with colored backgrounds indicating RSI overbought and oversold levels, as well as extreme breakouts. Bullish and bearish divergence points are also marked with distinct crosses, making it easy to spot potential trading opportunities.
Whether you're a seasoned trader or just starting, the "Better RSI" script empowers you with advanced tools to make more informed trading decisions. Use it to identify potential trend reversals, continuation patterns, and RSI-Bollinger Band breakouts in the market.
Adaptive SMI Ergodic StrategyThe Adaptive SMI Ergodic Strategy aims to capture the momentum and direction of a financial asset by leveraging the Stochastic Momentum Index Indicator (SMI) in an ergodic form. The strategy uses two lengths for the SMI, a shorter and a longer one, and an Exponential Moving Average (EMA) to serve as the signal line. Additionally, the strategy incorporates customizable overbought and oversold thresholds to improve the probability of successful trade execution.
How It Works:
Long Entry: A long position is taken when the ergodic SMI crosses over the EMA signal line, and both the SMI and EMA are below the oversold threshold.
Short Entry: A short position is initiated when the ergodic SMI crosses under the EMA signal line, and both the SMI and EMA are above the overbought threshold.
The strategy plots the SMI in yellow and the EMA signal line in purple. Horizontal lines indicate the overbought and oversold thresholds, and a colored background helps in visually identifying these zones.
Parameters:
Long Length: The length of the long EMA in SMI calculation.
Short Length: The length of the short EMA in SMI calculation.
Signal Line Length: The length for the EMA serving as the signal line.
Oversold: Customizable threshold for the oversold condition.
Overbought: Customizable threshold for the overbought condition.
Historical Context: The SMI Indicator
The Stochastic Momentum Index (SMI) was developed by William Blau in the early 1990s as an enhancement to traditional stochastic oscillators. The SMI provides a range of values like a traditional stochastic, but it differs in that it calculates the distance of the current close relative to the median of the high/low range, as opposed to the close relative to the low. As a result, the SMI is less erratic and more responsive, offering a clearer picture of market trends.
In recent years, the SMI has been adapted into ergodic forms to facilitate smoother data analysis, reduce lag, and improve trading accuracy. The Adaptive SMI Ergodic Strategy leverages these modern enhancements to offer a more robust, customizable trading strategy that aligns with various market conditions.
Correlational cyclesCorrelation is a statistical measure that expresses the extent to which two variables are linearly related (meaning they change together at a constant rate). It's a common tool for describing simple relationships without making a statement about cause and effect.
This script allows the user to input a multiplier to reverse the symbol input. This enables the user to look at a correlation measure between VIX and QQQ and the same time.. And get a better of understanding of what is not alligning and what is. the peaks in correlations usually signal a coming volatile period.
Keltner Channel Strategy with Golden CrossOnly trade with the trend.
This Keltner Channel-based strategy that will only enter into a trade if the signal of the Keltner Channel agrees with a moving average crossover as defined by the user.
Long Position Entries
2 Conditions must be present
1. There must be a Golden Cross (lower period moving average is above higher period moving average). ex 50 period MA > 200 period MA.
2. Price must cross above the Keltner Channel ATR defined by the user.
Short Position Entries
2 Conditions must be present
1. There must be a Death Cross (lower period moving average is below higher period moving average). ex 50 period MA < 200 period MA.
2. Price must cross below the Keltner Channel ATR defined by the user
Closing Trades:
The strategy closes trades as follows:
1. Price crossing the Keltner Channel's Take Profit ATR (defined by User)
2. Price crossing the Keltner Channel's Stop Loss ATR (defined by User)
SMA Table with Alerts and Intersections🌟 **Presenting the Dynamic SMA Intersection Alert Indicator!** 🌟
### **Overview:**
The Dynamic SMA Intersection Alert Indicator is a sophisticated tool developed for traders seeking simplicity and effectiveness. It integrates multiple Simple Moving Averages (SMA) to deliver real-time alerts and visual cues, enabling traders to identify potential market entry points with ease.
### **Features:**
1. **Multi-SMA Visualization:**
- Incorporates four SMAs: 8, 20, 50, 200 periods.
- Displays a customizable table showing the current value of each SMA.
2. **Alerts in Real-Time:**
- Provides instant notifications for price crossings over any of the SMAs.
- Offers customizable alert messages.
3. **Visualization of Intersection Points:**
- Displays green triangles for bullish crosses and red for bearish, directly on the chart.
- Allows for the identification of precise intersection points between shorter-term and longer-term SMAs.
### **Benefits:**
- **Informed Decision-Making:** Enables quick discernment of market trends.
- **Efficiency:** Automates the tracking of SMA intersections.
- **User-Friendly:** Applicable for both novice and experienced traders.
### **How It Operates:**
- The indicator computes four different SMAs and presents their current values systematically.
- It triggers a real-time alert when the price crosses any SMA, instantly notifying the trader.
- Visual cues are plotted on the chart when any two SMAs intersect, indicating the type of cross.
### **Enhance Your Trading Experience!**
The Dynamic SMA Intersection Alert Indicator is designed to refine your trading experience and assist in making informed and timely trading decisions. Leverage this tool to stay abreast of market trends and enhance your market understanding!
sᴛᴀɢᴇ ᴀɴᴀʏʟsɪsStage analysis is a technical analysis approach that involves categorizing a stock's price movements into different stages to help traders and investors make more informed decisions. It was popularized by Stan Weinstein in his book, "Secrets for Profiting in Bull and Bear Markets." The stages are used to identify the overall trend and to time entries and exits in the market. Here's an explanation of the typical stages in stage analysis:
1. **Stage 1: Accumulation Phase**
- In this stage, the stock is in a downtrend or has been trading sideways for an extended period.
- Volume is relatively low, indicating that institutions and smart money may be quietly accumulating shares.
- The stock may test and hold support levels, showing signs of stability.
- The goal for traders in this stage is to identify the potential for a trend reversal.
2. **Stage 2: Markup (Bull Market) Phase**
- This is the stage where the stock starts a significant uptrend.
- Volume increases as institutional and retail investors become more interested in the stock.
- Technical indicators like moving averages and trendlines confirm the uptrend.
- Traders and investors look for buying opportunities during pullbacks or consolidations within the uptrend.
3. **Stage 3: Distribution Phase**
- In this stage, the stock's price begins to show signs of weakness.
- Volume might decrease as institutions and smart money start selling their positions.
- The stock may start forming a trading range or exhibit bearish chart patterns.
- Traders should consider taking profits or reducing exposure to the stock as it may enter a downtrend.
4. **Stage 4: Markdown (Bear Market) Phase**
- This is the stage where the stock enters a significant downtrend.
- Volume may remain elevated as selling pressure dominates.
- Technical indicators confirm the downtrend.
- Traders and investors should avoid buying the stock and may consider short-selling or staying on the sidelines.
Stage analysis helps traders and investors make decisions based on the current stage of a stock's price movement. The goal is to enter during the accumulation phase or early in the markup phase and exit during the distribution phase or before the markdown phase to maximize profits and minimize losses.
=============================================================
try to just show the Stage number in a table, but always double check for yourself
Seasonal Trend by LogReturnSeasonal trend in terms of stocks refers to typical and recurring patterns in stock prices that happen at a specific time of the year. There are many theories and beliefs regarding seasonal trends in the financial markets, and some traders use these patterns to guide their investment decisions.
This indicator calculates the trend by "Daily" logarithmic returns of the past years.
So, you should use this indicator with a "Daily" mainchart.
Note: If you select more years in the past than data is available, the line turns red.
Statistical Package for the Trading Sciences [SS]
This is SPTS.
It stands for Statistical Package for the Trading Sciences.
Its a play on SPSS (Statistical Package for the Social Sciences) by IBM (software that, prior to Pinescript, I would use on a daily basis for trading).
Let's preface this indicator first:
This isn't so much an indicator as it is a project. A passion project really.
This has been in the works for months and I still feel like its incomplete. But the plan here is to continue to add functionality to it and actually have the Pinecoding and Tradingview community contribute to it.
As a math based trader, I relied on Excel, SPSS and R constantly to plan my trades. Since learning a functional amount of Pinescript and coding a lot of what I do and what I relied on SPSS, Excel and R for, I use it perhaps maybe a few times a week.
This indicator, or package, has some of the key things I used Excel and SPSS for on a daily and weekly basis. This also adds a lot of, I would say, fairly complex math functionality to Pinescript. Because this is adding functionality not necessarily native to Pinescript, I have placed most, if not all, of the functionality into actual exportable functions. I have also set it up as a kind of library, with explanations and tips on how other coders can take these functions and implement them into other scripts.
The hope here is that other coders will take it, build upon it, improve it and hopefully share additional functionality that can be added into this package. Hence why I call it a project. Okay, let's get into an overview:
Current Functions of SPTS:
SPTS currently has the following functionality (further explanations will be offered below):
Ability to Perform a One-Tailed, Two-Tailed and Paired Sample T-Test, with corresponding P value.
Standard Pearson Correlation (with functionality to be able to calculate the Pearson Correlation between 2 arrays).
Quadratic (or Curvlinear) correlation assessments.
R squared Assessments.
Standard Linear Regression.
Multiple Regression of 2 independent variables.
Tests of Normality (with Kurtosis and Skewness) and recognition of up to 7 Different Distributions.
ARIMA Modeller (Sort of, more details below)
Okay, so let's go over each of them!
T-Tests
So traditionally, most correlation assessments on Pinescript are done with a generic Pearson Correlation using the "ta.correlation" argument. However, this is not always the best test to be used for correlations and determine effects. One approach to correlation assessments used frequently in economics is the T-Test assessment.
The t-test is a statistical hypothesis test used to determine if there is a significant difference between the means of two groups. It assesses whether the sample means are likely to have come from populations with the same mean. The test produces a t-statistic, which is then compared to a critical value from the t-distribution to determine statistical significance. Lower p-values indicate stronger evidence against the null hypothesis of equal means.
A significant t-test result, indicating the rejection of the null hypothesis, suggests that there is statistical evidence to support that there is a significant difference between the means of the two groups being compared. In practical terms, it means that the observed difference in sample means is unlikely to have occurred by random chance alone. Researchers typically interpret this as evidence that there is a real, meaningful difference between the groups being studied.
Some uses of the T-Test in finance include:
Risk Assessment: The t-test can be used to compare the risk profiles of different financial assets or portfolios. It helps investors assess whether the differences in returns or volatility are statistically significant.
Pairs Trading: Traders often apply the t-test when engaging in pairs trading, a strategy that involves trading two correlated securities. It helps determine when the price spread between the two assets is statistically significant and may revert to the mean.
Volatility Analysis: Traders and risk managers use t-tests to compare the volatility of different assets or portfolios, assessing whether one is significantly more or less volatile than another.
Market Efficiency Tests: Financial researchers use t-tests to test the Efficient Market Hypothesis by assessing whether stock price movements follow a random walk or if there are statistically significant deviations from it.
Value at Risk (VaR) Calculation: Risk managers use t-tests to calculate VaR, a measure of potential losses in a portfolio. It helps assess whether a portfolio's value is likely to fall below a certain threshold.
There are many other applications, but these are a few of the highlights. SPTS permits 3 different types of T-Test analyses, these being the One Tailed T-Test (if you want to test a single direction), two tailed T-Test (if you are unsure of which direction is significant) and a paired sample t-test.
Which T is the Right T?
Generally, a one-tailed t-test is used to determine if a sample mean is significantly greater than or less than a specified population mean, whereas a two-tailed t-test assesses if the sample mean is significantly different (either greater or less) from the population mean. In contrast, a paired sample t-test compares two sets of paired observations (e.g., before and after treatment) to assess if there's a significant difference in their means, typically used when the data points in each pair are related or dependent.
So which do you use? Well, it depends on what you want to know. As a general rule a one tailed t-test is sufficient and will help you pinpoint directionality of the relationship (that one ticker or economic indicator has a significant affect on another in a linear way).
A two tailed is more broad and looks for significance in either direction.
A paired sample t-test usually looks at identical groups to see if one group has a statistically different outcome. This is usually used in clinical trials to compare treatment interventions in identical groups. It's use in finance is somewhat limited, but it is invaluable when you want to compare equities that track the same thing (for example SPX vs SPY vs ES1!) or you want to test a hypothesis about an index and a leveraged share (for example, the relationship between FNGU and, say, MSFT or NVDA).
Statistical Significance
In general, with a t-test you would need to reference a T-Table to determine the statistical significance of the degree of Freedom and the T-Statistic.
However, because I wanted Pinescript to full fledge replace SPSS and Excel, I went ahead and threw the T-Table into an array, so that Pinescript can make the determination itself of the actual P value for a t-test, no cross referencing required :-).
Left tail (Significant):
Both tails (Significant):
Distributed throughout (insignificant):
As you can see in the images above, the t-test will also display a bell-curve analysis of where the significance falls (left tail, both tails or insignificant, distributed throughout).
That said, I have not included this function for the paired sample t-test because that is a bit more nuanced. But for the one and two tailed assessments, the indicator will provide you the P value.
Pearson Correlation Assessment
I don't think I need to go into too much detail on this one.
I have put in functionality to quickly calculate the Pearson Correlation of two array's, which is not currently possible with the "ta.correlation" function.
Quadratic (Curvlinear) Correlation
Not everything in life is linear, sometimes things are curved!
The Pearson Correlation is great for linear assessments, but tends to under-estimate the degree of the relationship in curved relationships. There currently is no native function to t-test for quadratic/curvlinear relationships, so I went ahead and created one.
You can see an example of how Quadratic and Pearson Correlations vary when you look at CME_MINI:ES1! against AMEX:DIA for the past 10 ish months:
Pearson Correlation:
Quadratic Correlation:
One or the other is not always the best, so it is important to check both!
R-Squared Assessments:
The R-squared value, or the square of the Pearson correlation coefficient (r), is used to measure the proportion of variance in one variable that can be explained by the linear relationship with another variable. It represents the goodness-of-fit of a linear regression model with a single predictor variable.
R-Squared is offered in 3 separate forms within this indicator. First, there is the generic R squared which is taking the square root of a Pearson Correlation assessment to assess the variance.
The next is the R-Squared which is calculated from an actual linear regression model done within the indicator.
The first is the R-Squared which is calculated from a multiple regression model done within the indicator.
Regardless of which R-Squared value you are using, the meaning is the same. R-Square assesses the variance between the variables under assessment and can offer an insight into the goodness of fit and the ability of the model to account for the degree of variance.
Here is the R Squared assessment of the SPX against the US Money Supply:
Standard Linear Regression
The indicator contains the ability to do a standard linear regression model. You can convert one ticker or economic indicator into a stock, ticker or other economic indicator. The indicator will provide you with all of the expected information from a linear regression model, including the coefficients, intercept, error assessments, correlation and R2 value.
Here is AAPL and MSFT as an example:
Multiple Regression
Oh man, this was something I really wanted in Pinescript, and now we have it!
I have created a function for multiple regression, which, if you export the function, will permit you to perform multiple regression on any variables available in Pinescript!
Using this functionality in the indicator, you will need to select 2, dependent variables and a single independent variable.
Here is an example of multiple regression for NASDAQ:AAPL using NASDAQ:MSFT and NASDAQ:NVDA :
And an example of SPX using the US Money Supply (M2) and AMEX:GLD :
Tests of Normality:
Many indicators perform a lot of functions on the assumption of normality, yet there are no indicators that actually test that assumption!
So, I have inputted a function to assess for normality. It uses the Kurtosis and Skewness to determine up to 7 different distribution types and it will explain the implication of the distribution. Here is an example of SP:SPX on the Monthly Perspective since 2010:
And NYSE:BA since the 60s:
And NVDA since 2015:
ARIMA Modeller
Okay, so let me disclose, this isn't a full fledge ARIMA modeller. I took some shortcuts.
True ARIMA modelling would involve decomposing the seasonality from the trend. I omitted this step for simplicity sake. Instead, you can select between using an EMA or SMA based approach, and it will perform an autogressive type analysis on the EMA or SMA.
I have tested it on lookback with results provided by SPSS and this actually works better than SPSS' ARIMA function. So I am actually kind of impressed.
You will need to input your parameters for the ARIMA model, I usually would do a 14, 21 and 50 day EMA of the close price, and it will forecast out that range over the length of the EMA.
So for example, if you select the EMA 50 on the daily, it will plot out the forecast for the next 50 days based on an autoregressive model created on the EMA 50. Here is how it looks on AMEX:SPY :
You can also elect to plot the upper and lower confidence bands:
Closing Remarks
So that is the indicator/package.
I do hope to continue expanding its functionality, but as of now, it does already have quite a lot of functionality.
I really hope you enjoy it and find it helpful. This. Has. Taken. AGES! No joke. Between referencing my old statistics textbooks, trying to remember how to calculate some of these things, and wanting to throw my computer against the wall because of errors in the code, this was a task, that's for sure. So I really hope you find some usefulness in it all and enjoy the ability to be able to do functions that previously could really only be done in external software.
As always, leave your comments, suggestions and feedback below!
Take care!
Improved EMA & CDC Trailing Stop StrategyImproved EMA & CDC Trailing Stop Strategy
Objective: This strategy seeks to exploit potential trend reversals or continuations using Exponential Moving Averages (EMAs) and a trailing stop based on the Chande Dynamic Convergence Divergence (CDC) ATR method.
Components:
Exponential Moving Averages (EMAs):
60-period EMA (Blue Line): Faster-moving average that reacts more quickly to price changes.
90-period EMA (Red Line): Slower-moving average that provides a smoother indication of long-term price direction.
MACD Indicator:
Utilized to confirm the trend direction. When the MACD line is above its signal line, it may indicate a bullish trend. Conversely, when the MACD line is below its signal line, it may indicate a bearish trend.
CDC Trailing Stop ATR:
Used to set dynamic stop-loss levels that adjust with market volatility. This stop is based on the Average True Range (ATR) with a user-defined multiplier, providing the strategy with a flexible way to protect against adverse price movements.
Profit Targets:
Based on a multiple of the ATR, this sets an objective level at which to take profits, ensuring gains are captured while potentially still leaving room for further profitable movement.
Trading Rules:
Entry:
Long (Buy) Entry Conditions:
Price is above the 60-period EMA.
The 60-period EMA is above the 90-period EMA.
The MACD line is above its signal line.
Price is above the calculated CDC Trailing Stop ATR level.
Short (Sell) Entry Conditions:
Price is below the 60-period EMA.
The 60-period EMA is below the 90-period EMA.
The MACD line is below its signal line.
Price is below the calculated CDC Trailing Stop ATR level.
Exit:
Long (Buy) Exit Conditions:
Price reaches the predetermined profit target based on the ATR.
Price drops below the CDC Trailing Stop ATR level.
Short (Sell) Exit Conditions:
Price reaches the predetermined profit target based on the ATR.
Price rises above the CDC Trailing Stop ATR level.
Visualization:
The strategy displays the 60-period and 90-period EMAs on the chart.
The CDC Trailing Stop ATR levels for both long and short trades are also plotted for clarity.
The MACD Histogram is shown to visualize the difference between the MACD line and its signal line.
Recommendations: Before deploying this strategy, traders should backtest it across various historical data sets and market conditions. Regularly reviewing and potentially adjusting the strategy is recommended as market dynamics evolve.
Rule of 16 - LowerThe "Rule of 16" is a simple guideline used by traders and investors to estimate the expected annualized volatility of the S&P 500 Index (SPX) based on the level of the CBOE Volatility Index (VIX). The VIX, often referred to as the "fear gauge" or "fear index," measures the market's expectations for future volatility. It is calculated using the implied volatility of a specific set of S&P 500 options.
The Rule of 16 provides a rough approximation of the expected annualized percentage change in the S&P 500 based on the VIX level. Here's how it works:
Find the VIX level: Look up the current value of the VIX. Let's say it's currently at 20.
Apply the Rule of 16: Divide the VIX level by 16. In this example, 20 divided by 16 equals 1.25.
Result: The result of this calculation represents the expected annualized percentage change in the S&P 500. In this case, 1.25% is the estimated annualized volatility.
So, according to the Rule of 16, a VIX level of 20 suggests an expected annualized volatility of approximately 1.25% in the S&P 500.
Here's how you can use the Rule of 16:
Market Sentiment: The VIX is often used as an indicator of market sentiment. When the VIX is high (above its historical average), it suggests that investors expect higher market volatility, indicating potential uncertainty or fear in the markets. Conversely, when the VIX is low, it suggests lower expected volatility and potentially more confidence in the markets.
Risk Management: Traders and investors can use the Rule of 16 to estimate the potential risk associated with their portfolios. For example, if you have a portfolio of S&P 500 stocks and the VIX is at 20, you can use the Rule of 16 to estimate that the annualized volatility of your portfolio may be around 1.25%. This information can help you make decisions about position sizing and risk management.
Option Pricing: Options traders may use the Rule of 16 to get a quick estimate of the implied annualized volatility priced into S&P 500 options. It can help them assess whether options are relatively expensive or cheap based on the VIX level.
It's important to note that the Rule of 16 is a simplification and provides only a rough estimate of expected volatility. Market conditions and the relationship between the VIX and the S&P 500 can change over time. Therefore, it should be used as a guideline rather than a precise forecasting tool. Traders and investors should consider other factors and use additional analysis to make informed decisions.
[Excalibur] Ehlers AutoCorrelation Periodogram ModifiedKeep your coins folks, I don't need them, don't want them. If you wish be generous, I do hope that charitable peoples worldwide with surplus food stocks may consider stocking local food banks before stuffing monetary bank vaults, for the crusade of remedying the needs of less than fortunate children, parents, elderly, homeless veterans, and everyone else who deserves nutritional sustenance for the soul.
DEDICATION:
This script is dedicated to the memory of Nikolai Dmitriyevich Kondratiev (Никола́й Дми́триевич Кондра́тьев) as tribute for being a pioneering economist and statistician, paving the way for modern econometrics by advocation of rigorous and empirical methodologies. One of his most substantial contributions to the study of business cycle theory include a revolutionary hypothesis recognizing the existence of dynamic cycle-like phenomenon inherent to economies that are characterized by distinct phases of expansion, stagnation, recession and recovery, what we now know as "Kondratiev Waves" (K-waves). Kondratiev was one of the first economists to recognize the vital significance of applying quantitative analysis on empirical data to evaluate economic dynamics by means of statistical methods. His understanding was that conceptual models alone were insufficient to adequately interpret real-world economic conditions, and that sophisticated analysis was necessary to better comprehend the nature of trending/cycling economic behaviors. Additionally, he recognized prosperous economic cycles were predominantly driven by a combination of technological innovations and infrastructure investments that resulted in profound implications for economic growth and development.
I will mention this... nation's economies MUST be supported and defended to continuously evolve incrementally in order to flourish in perpetuity OR suffer through eras with lasting ramifications of societal stagnation and implosion.
Analogous to the realm of economics, aperiodic cycles/frequencies, both enduring and ephemeral, do exist in all facets of life, every second of every day. To name a few that any blind man can naturally see are: heartbeat (cardiac cycles), respiration rates, circadian rhythms of sleep, powerful magnetic solar cycles, seasonal cycles, lunar cycles, weather patterns, vegetative growth cycles, and ocean waves. Do not pretend for one second that these basic aforementioned examples do not affect business cycle fluctuations in minuscule and monumental ways hour to hour, day to day, season to season, year to year, and decade to decade in every nation on the planet. Kondratiev's original seminal theories in macroeconomics from nearly a century ago have proven remarkably prescient with many of his antiquated elementary observations/notions/hypotheses in macroeconomics being scholastically studied and topically researched further. Therefore, I am compelled to honor and recognize his statistical insight and foresight.
If only.. Kondratiev could hold a pocket sized computer in the cup of both hands bearing the TradingView logo and platform services, I truly believe he would be amazed in marvelous delight with a GARGANTUAN smile on his face.
INTRODUCTION:
Firstly, this is NOT technically speaking an indicator like most others. I would describe it as an advanced cycle period detector to obtain market data spectral estimates with low latency and moderate frequency resolution. Developers can take advantage of this detector by creating scripts that utilize a "Dominant Cycle Source" input to adaptively govern algorithms. Be forewarned, I would only recommend this for advanced developers, not novice code dabbling. Although, there is some Pine wizardry introduced here for novice Pine enthusiasts to witness and learn from. AI did describe the code into one super-crunched sentence as, "a rare feat of exceptionally formatted code masterfully balancing visual clarity, precision, and complexity to provide immense educational value for both programming newcomers and expert Pine coders alike."
Understand all of the above aforementioned? Buckle up and proceed for a lengthy read of verbose complexity...
This is my enhanced and heavily modified version of autocorrelation periodogram (ACP) for Pine Script v5.0. It was originally devised by the mathemagician John Ehlers for detecting dominant cycles (frequencies) in an asset's price action. I have been sitting on code similar to this for a long time, but I decided to unleash the advanced code with my fashion. Originally Ehlers released this with multiple versions, one in a 2016 TASC article and the other in his last published 2013 book "Cycle Analytics for Traders", chapter 8. He wasn't joking about "concepts of advanced technical trading" and ACP is nowhere near to his most intimidating and ingenious calculations in code. I will say the book goes into many finer details about the original periodogram, so if you wish to delve into even more elaborate info regarding Ehlers' original ACP form AND how you may adapt algorithms, you'll have to obtain one. Note to reader, comparing Ehlers' original code to my chimeric code embracing the "Power of Pine", you will notice they have little resemblance.
What you see is a new species of autocorrelation periodogram combining Ehlers' innovation with my fascinations of what ACP could be in a Pine package. One other intention of this script's code is to pay homage to Ehlers' lifelong works. Like Kondratiev, Ehlers is also a hardcore cycle enthusiast. I intend to carry on the fire Ehlers envisioned and I believe that is literally displayed here as a pleasant "fiery" example endowed with Pine. With that said, I tried to make the code as computationally efficient as possible, without going into dozens of more crazy lines of code to speed things up even more. There's also a few creative modifications I made by making alterations to the originating formulas that I felt were improvements, one of them being lag reduction. By recently questioning every single thing I thought I knew about ACP, combined with the accumulation of my current knowledge base, this is the innovative revision I came up with. I could have improved it more but decided not to mind thrash too many TV members, maybe later...
I am now confident Pine should have adequate overhead left over to attach various indicators to the dominant cycle via input.source(). TV, I apologize in advance if in the future a server cluster combusts into a raging inferno... Coders, be fully prepared to build entire algorithms from pure raw code, because not all of the built-in Pine functions fully support dynamic periods (e.g. length=ANYTHING). Many of them do, as this was requested and granted a while ago, but some functions are just inherently finicky due to implementation combinations and MUST be emulated via raw code. I would imagine some comprehensive library or numerous authored scripts have portions of raw code for Pine built-ins some where on TV if you look diligently enough.
Notice: Unfortunately, I will not provide any integration support into member's projects at all. I have my own projects that require way too much of my day already. While I was refactoring my life (forgoing many other "important" endeavors) in the early half of 2023, I primarily focused on this code over and over in my surplus time. During that same time I was working on other innovations that are far above and beyond what this code is. I hope you understand.
The best way programmatically may be to incorporate this code into your private Pine project directly, after brutal testing of course, but that may be too challenging for many in early development. Being able to see the periodogram is also beneficial, so input sourcing may be the "better" avenue to tether portions of the dominant cycle to algorithms. Unique indication being able to utilize the dominantCycle may be advantageous when tethering this script to those algorithms. The easiest way is to manually set your indicators to what ACP recognizes as the dominant cycle, but that's actually not considered dynamic real time adaption of an indicator. Different indicators may need a proportion of the dominantCycle, say half it's value, while others may need the full value of it. That's up to you to figure that out in practice. Sourcing one or more custom indicators dynamically to one detector's dominantCycle may require code like this: `int sourceDC = int(math.max(6, math.min(49, input.source(close, "Dominant Cycle Source"))))`. Keep in mind, some algos can use a float, while algos with a for loop require an integer.
I have witnessed a few attempts by talented TV members for a Pine based autocorrelation periodogram, but not in this caliber. Trust me, coding ACP is no ordinary task to accomplish in Pine and modifying it blessed with applicable improvements is even more challenging. For over 4 years, I have been slowly improving this code here and there randomly. It is beautiful just like a real flame, but... this one can still burn you! My mind was fried to charcoal black a few times wrestling with it in the distant past. My very first attempt at translating ACP was a month long endeavor because PSv3 simply didn't have arrays back then. Anyways, this is ACP with a newer engine, I hope you enjoy it. Any TV subscriber can utilize this code as they please. If you are capable of sufficiently using it properly, please use it wisely with intended good will. That is all I beg of you.
Lastly, you now see how I have rasterized my Pine with Ehlers' swami-like tech. Yep, this whole time I have been using hline() since PSv3, not plot(). Evidently, plot() still has a deficiency limited to only 32 plots when it comes to creating intense eye candy indicators, the last I checked. The use of hline() is the optimal choice for rasterizing Ehlers styled heatmaps. This does only contain two color schemes of the many I have formerly created, but that's all that is essentially needed for this gizmo. Anything else is generally for a spectacle or seeing how brutal Pine can be color treated. The real hurdle is being able to manipulate colors dynamically with Merlin like capabilities from multiple algo results. That's the true challenging part of these heatmap contraptions to obtain multi-colored "predator vision" level indication. You now have basic hline() food for thought empowerment to wield as you can imaginatively dream in Pine projects.
PERIODOGRAM UTILITY IN REAL WORLD SCENARIOS:
This code is a testament to the abilities that have yet to be fully realized with indication advancements. Periodograms, spectrograms, and heatmaps are a powerful tool with real-world applications in various fields such as financial markets, electrical engineering, astronomy, seismology, and neuro/medical applications. For instance, among these diverse fields, it may help traders and investors identify market cycles/periodicities in financial markets, support engineers in optimizing electrical or acoustic systems, aid astronomers in understanding celestial object attributes, assist seismologists with predicting earthquake risks, help medical researchers with neurological disorder identification, and detection of asymptomatic cardiovascular clotting in the vaxxed via full body thermography. In either field of study, technologies in likeness to periodograms may very well provide us with a better sliver of analysis beyond what was ever formerly invented. Periodograms can identify dominant cycles and frequency components in data, which may provide valuable insights and possibly provide better-informed decisions. By utilizing periodograms within aspects of market analytics, individuals and organizations can potentially refrain from making blinded decisions and leverage data-driven insights instead.
PERIODOGRAM INTERPRETATION:
The periodogram renders the power spectrum of a signal, with the y-axis representing the periodicity (frequencies/wavelengths) and the x-axis representing time. The y-axis is divided into periods, with each elevation representing a period. In this periodogram, the y-axis ranges from 6 at the very bottom to 49 at the top, with intermediate values in between, all indicating the power of the corresponding frequency component by color. The higher the position occurs on the y-axis, the longer the period or lower the frequency. The x-axis of the periodogram represents time and is divided into equal intervals, with each vertical column on the axis corresponding to the time interval when the signal was measured. The most recent values/colors are on the right side.
The intensity of the colors on the periodogram indicate the power level of the corresponding frequency or period. The fire color scheme is distinctly like the heat intensity from any casual flame witnessed in a small fire from a lighter, match, or camp fire. The most intense power would be indicated by the brightest of yellow, while the lowest power would be indicated by the darkest shade of red or just black. By analyzing the pattern of colors across different periods, one may gain insights into the dominant frequency components of the signal and visually identify recurring cycles/patterns of periodicity.
SETTINGS CONFIGURATIONS BRIEFLY EXPLAINED:
Source Options: These settings allow you to choose the data source for the analysis. Using the `Source` selection, you may tether to additional data streams (e.g. close, hlcc4, hl2), which also may include samples from any other indicator. For example, this could be my "Chirped Sine Wave Generator" script found in my member profile. By using the `SineWave` selection, you may analyze a theoretical sinusoidal wave with a user-defined period, something already incorporated into the code. The `SineWave` will be displayed over top of the periodogram.
Roofing Filter Options: These inputs control the range of the passband for ACP to analyze. Ehlers had two versions of his highpass filters for his releases, so I included an option for you to see the obvious difference when performing a comparison of both. You may choose between 1st and 2nd order high-pass filters.
Spectral Controls: These settings control the core functionality of the spectral analysis results. You can adjust the autocorrelation lag, adjust the level of smoothing for Fourier coefficients, and control the contrast/behavior of the heatmap displaying the power spectra. I provided two color schemes by checking or unchecking a checkbox.
Dominant Cycle Options: These settings allow you to customize the various types of dominant cycle values. You can choose between floating-point and integer values, and select the rounding method used to derive the final dominantCycle values. Also, you may control the level of smoothing applied to the dominant cycle values.
DOMINANT CYCLE VALUE SELECTIONS:
External to the acs() function, the code takes a dominant cycle value returned from acs() and changes its numeric form based on a specified type and form chosen within the indicator settings. The dominant cycle value can be represented as an integer or a decimal number, depending on the attached algorithm's requirements. For example, FIR filters will require an integer while many IIR filters can use a float. The float forms can be either rounded, smoothed, or floored. If the resulting value is desired to be an integer, it can be rounded up/down or just be in an integer form, depending on how your algorithm may utilize it.
AUTOCORRELATION SPECTRUM FUNCTION BASICALLY EXPLAINED:
In the beginning of the acs() code, the population of caches for precalculated angular frequency factors and smoothing coefficients occur. By precalculating these factors/coefs only once and then storing them in an array, the indicator can save time and computational resources when performing subsequent calculations that require them later.
In the following code block, the "Calculate AutoCorrelations" is calculated for each period within the passband width. The calculation involves numerous summations of values extracted from the roofing filter. Finally, a correlation values array is populated with the resulting values, which are normalized correlation coefficients.
Moving on to the next block of code, labeled "Decompose Fourier Components", Fourier decomposition is performed on the autocorrelation coefficients. It iterates this time through the applicable period range of 6 to 49, calculating the real and imaginary parts of the Fourier components. Frequencies 6 to 49 are the primary focus of interest for this periodogram. Using the precalculated angular frequency factors, the resulting real and imaginary parts are then utilized to calculate the spectral Fourier components, which are stored in an array for later use.
The next section of code smooths the noise ridden Fourier components between the periods of 6 and 49 with a selected filter. This species also employs numerous SuperSmoothers to condition noisy Fourier components. One of the big differences is Ehlers' versions used basic EMAs in this section of code. I decided to add SuperSmoothers.
The final sections of the acs() code determines the peak power component for normalization and then computes the dominant cycle period from the smoothed Fourier components. It first identifies a single spectral component with the highest power value and then assigns it as the peak power. Next, it normalizes the spectral components using the peak power value as a denominator. It then calculates the average dominant cycle period from the normalized spectral components using Ehlers' "Center of Gravity" calculation. Finally, the function returns the dominant cycle period along with the normalized spectral components for later external use to plot the periodogram.
POST SCRIPT:
Concluding, I have to acknowledge a newly found analyst for assistance that I couldn't receive from anywhere else. For one, Claude doesn't know much about Pine, is unfortunately color blind, and can't even see the Pine reference, but it was able to intuitively shred my code with laser precise realizations. Not only that, formulating and reformulating my description needed crucial finesse applied to it, and I couldn't have provided what you have read here without that artificial insight. Finding the right order of words to convey the complexity of ACP and the elaborate accompanying content was a daunting task. No code in my life has ever absorbed so much time and hard fricking work, than what you witness here, an ACP gem cut pristinely. I'm unveiling my version of ACP for an empowering cause, in the hopes a future global army of code wielders will tether it to highly functional computational contraptions they might possess. Here is ACP fully blessed poetically with the "Power of Pine" in sublime code. ENJOY!
Contrast Color LibraryThis lightweight library provides a utility method that analyzes any provided background color and automatically chooses the optimal black or white foreground color to ensure maximum visual contrast and readability.
🟠 Algorithm
The library utilizes the HSP Color Model to calculate the brightness of the background color. The formula for this calculation is as follows:
brightness = sqrt(0.299 * R^2 + 0.587 * G^2 + 0.114 * B^2 )
The library chooses black as the foreground color if the brightness exceeds the threshold (default 0.5), and white otherwise.
MarketSmith Stochasticversion=5
This version of the stochastic produces the identical stochastic as used in MarketSmith
The three primary differences from a classic stochastic are as follows:
1. Close values only
2. 5-day ema instead of 3-day simple moving averages for smoothing the fast and slow lines
3. Slow and fast lines are truncated to integer values
by Mike Scott
2023-09-11