Daily MAs on Intraday ChartsThis is a very simple, yet powerful indicator, for intraday and swing traders.
The indicator plots price levels of key daily moving averages as horizontal lines onto intraday charts.
The key daily moving averages being:
5-day EMA
10-day EMA
21-day EMA
50-day SMA
100-day SMA
200-day SMA
The moving averages above can be toggled on and off to the users liking and different colours selected to show the locations of daily moving average price levels on intraday charts.
Below is a chart of the SPY on the 30-minute timeframe. The black line represents the price level of the SPY's 10-day EMA, and the blue line represents the price level of the SPY's 21-day EMA.
Key daily moving averages like those mentioned above can be areas of support or resistance for major indexes, ETFs, and individual stocks. Therefore, when using multiple timeframe analysis combining daily charts and intraday charts, it's useful to be aware of these key daily moving average levels for potential reversals.
This indicator clearly shows where the key daily moving average price levels are on intraday charts for the chosen ticker symbol, thus helping traders to identify potential points of interest for trading ideas - i.e., going long or pullbacks into key daily moving averages, or short on rallies into key daily moving averages subject to the trader's thoughts at the time.
By using the 'Daily MAs on Intraday Charts' the trader can now have a multi-chart layout and be easily aware of key price levels from daily moving averages when looking at various intraday timeframe charts such as the 1-minute, 5-minute, 15-minute, 30-minute, 1-hour etc. This can be essential information for opening long and short trading ideas.
Cari dalam skrip untuk "spy"
Trade Entry Detector, Wick to Body Ratio Trade Entry Detector: Wick-to-Body Ratio Strategy with Bollinger Bands
Overview
The Trade Entry Detector is a custom strategy for TradingView that leverages the Bollinger Bands and a unique wick-to-body ratio approach to capture precise entry opportunities. This indicator is designed for traders who want to pinpoint high-probability reversal points when price interacts with Bollinger Bands, all while offering flexible entry fill options.
The strategy performs primary analysis on the daily time frame, regardless of your current chart setting, allowing you to view daily Bollinger Band levels and entry signals even on lower time frames. This approach is suitable for swing traders and short-term traders looking to align intraday moves with higher time frame signals.
How the Strategy Works
1. Bollinger Band Analysis on the Daily Time Frame
Bollinger Bands are calculated using a 20-period simple moving average (SMA) and a standard deviation multiplier (default is 2). These bands dynamically expand and contract based on market volatility, making them ideal for identifying overbought and oversold conditions:
* Upper Band: Indicates potential overbought levels.
* Lower Band: Indicates potential oversold levels.
2. Wick-to-Body Ratio Condition
This strategy places significant emphasis on candle wicks relative to the candle body. Here’s why:
* A large upper wick relative to the body signals potential selling pressure after testing the upper Bollinger Band.
* A large lower wick relative to the body indicates buying support after testing the lower Bollinger Band.
* Ratio Threshold: You can set a minimum wick-to-body ratio (default is 1.0), meaning that the wick must be at least equal in size to the body. This ensures only candles with significant reversals are considered for entry.
3. Flexible Entry Timing
To adapt to various trading styles, the indicator allows you to choose the entry fill timing:
* Daily Close: Enter at the close of the daily candle.
* Daily Open: Enter at the open of the following daily candle.
* HOD (High of Day): Set entry at the daily high, for those who want confirmation of upward momentum.
* LOD (Low of Day): Set entry at the daily low, ideal for confirming downward movement.
4. Position Sizing and Risk Management
The strategy calculates position size based on a fixed risk percentage of your account balance (default is 1%). This approach dynamically adjusts position sizes based on stop-loss distance:
* Stop Loss: Placed at the nearest swing high (for shorts) or swing low (for longs).
* Take Profit: Exits are triggered when the price reaches the opposite Bollinger Band.
5. Order Expiration
Each pending order (long or short) expires after two days if unfilled, allowing for new setups on subsequent candles if conditions are met again.
Using the Trade Entry Detector
Step-by-Step Guide
1. Set the Primary Time Frame
The core calculations run on the daily time frame, but the strategy can be applied to intraday charts (e.g., 65-minute or 15-minute) for deeper insights.
2. Adjust Bollinger Band Settings
* Length: Default is 20, which determines the period for calculating the moving average.
* Standard Deviation Multiplier: Default is 2.0, which sets the width of the bands. Adjusting this can help you capture broader or tighter volatility ranges.
3. Define the Wick-to-Body Ratio
Set the minimum ratio between wick and body (default 1.0). Higher values filter out candles with less wick-to-body contrast, focusing on stronger rejection moves.
4. Choose Entry Fill Timing
Select your preferred fill condition:
* Daily Close: Confirms the trade at the end of the daily session.
* Daily Open: Executes the entry at the open of the next day.
* HOD/LOD: Uses the daily high or low as an additional confirmation for upward or downward moves.
5. Position Sizing and Risk Management
* Set your account balance and risk percentage. The strategy automatically calculates position sizes based on the stop distance to manage risk efficiently.
* Stop Loss and Take Profit points are automatically set based on swing highs/lows and opposing Bollinger Bands, respectively.
Practical Example
Let’s say SPY (S&P 500 ETF) tests the lower Bollinger Band on the daily time frame, with a lower wick that is twice the size of the body (meeting the 1.0 ratio threshold). Here’s how the strategy might proceed:
1. Signal: The lower wick on SPY suggests buying interest at the lower Bollinger Band.
2. Entry Fill Timing: If you’ve selected "Daily Open," the entry order will be placed at the next day's open price.
3. Stop Loss: Positioned at the nearest daily swing low to minimize risk.
4. Take Profit: If SPY price moves up and reaches the upper Bollinger Band, the position is automatically closed.
Indicator Features and Benefits
* Multi-Time Frame Compatibility: Perform daily analysis while tracking signals on any intraday chart.
* Automatic Position Sizing: Tailor risk per trade based on account balance and desired risk percentage.
* Flexible Entry Options: Choose from close, open, HOD, or LOD for optimal timing.
* Effective Trend Reversal Identification: Uses wick-to-body ratio and Bollinger Band interaction to pinpoint potential reversals.
* Dynamic Visualization: Bollinger Bands are displayed on your chosen time frame, allowing seamless intraday tracking.
Summary
The Trade Entry Detector provides a unique, data-driven way to spot reversal points with customizable entry options. By combining Bollinger Bands with wick-to-body ratio conditions, it identifies potential trade setups where price has tested extremes and shown reversal signals. With its flexible entry timing, risk management features, and multi-time frame compatibility, this indicator is ideal for traders looking to blend daily market context with shorter-term execution.
Tips for Usage:
* For swing trading, consider the Daily Open or Close entry options.
* For momentum entries, HOD or LOD may offer better alignment with the direction of the wick.
* Backtest on different assets to find optimal Bollinger Band and wick-to-body settings for your market.
Use this indicator to enhance your understanding of price behavior at key levels and improve the precision of your entry points. Happy trading!
Simultaneous INSIDE Bar Break IndicatorSimultaneous Inside Bar Break Indicator (SIBBI) for The Strat Community
Overview:
The Simultaneous Inside Bar Break Indicator (SIBBI) is designed to help traders using The Strat methodology identify one of the most powerful breakout patterns: the Simultaneous Inside Bar Break across multiple symbols. This indicator detects when all four user-selected symbols form inside bars on the previous candle and then break those inside bars in the same direction (either bullish or bearish) on the current candle.
Inside bars represent consolidation periods where price action does not break the high or low of the previous candle. When a simultaneous break occurs across multiple symbols, this often signals a strong move in the market, making this a key actionable signal in The Strat trading strategy.
Key Features:
Multi-Symbol Analysis: You can track up to four different symbols simultaneously. By default, the indicator comes with SPY, QQQ, IWM, and DIA, but you can modify these to track any other assets or symbols.
Inside Bar Detection: The indicator checks whether all four symbols have inside bars on the previous candle. It only triggers when all symbols meet this condition, making it a highly specific and reliable signal.
Simultaneous Break Detection: Once all symbols have inside bars, the indicator waits for a breakout in the same direction across all four symbols. A simultaneous bullish break (prices breaking above the previous candle’s high) triggers a green label, while a simultaneous bearish break (prices breaking below the previous candle’s low) triggers a red label.
Dynamic Label Timeframe: The indicator dynamically adjusts the timeframe in the label based on the user’s selected timeframe. This allows traders to know precisely which timeframe the break is occurring on. If the user selects "Chart Timeframe," the indicator will evolve with the current chart's timeframe, making it more versatile.
Timeframe Flexibility: The indicator can be set to analyze any timeframe—15-minute, 30-minute, 60-minute, daily, weekly, and so on. It only works for the specific timeframe you set it to in the settings. If set to "Chart Timeframe," the label will adapt dynamically based on the timeframe you are currently viewing.
Customizable Labels: The user can choose the size of the labels (tiny, small, or normal), ensuring that the visual output is tailored to individual preferences and chart layouts.
Best Use Case:
The Simultaneous Inside Bar Break Indicator is particularly powerful when applied to multiple timeframes. Here’s how to use it for maximum impact:
Multi-Timeframe Setup: Set the indicator on various timeframes (e.g., 15-minute, 30-minute, 60-minute, and daily) across multiple charts. This allows you to monitor different timeframes and identify when lower timeframe breaks trigger potential moves on higher timeframes.
Anticipating Strong Moves: When a simultaneous inside bar break occurs on one timeframe (e.g., 30-minute), keep an eye on the higher timeframes (e.g., 60-minute or daily) to see if those timeframes also break. This stacking of inside bar breaks can signal powerful market moves.
Higher Conviction Signals: The indicator is designed to provide high-conviction signals. Since it requires all four symbols to break in the same direction simultaneously, it reduces false signals and focuses on higher probability setups, which is crucial for traders using The Strat to time their trades effectively.
How the Indicator Works:
Inside Bar Formation: The indicator first checks that all four selected symbols had inside bars in the previous bar (i.e., the current high and low are contained within the previous bar’s high and low).
Simultaneous Break Detection: After detecting inside bars, the indicator checks if all four symbols break out in the same direction—bullish (breaking above the previous bar’s high) or bearish (breaking below the previous bar’s low).
Label Display: When a simultaneous inside bar break occurs, a label is plotted on the chart—either green for a bullish break (below the candle) or red for a bearish break (above the candle). The label will display the timeframe you set in the settings (e.g., "IBSB 60" for a 60-minute break).
Chart Timeframe Option: If you prefer, you can set the indicator to evolve with the chart’s current timeframe. In this mode, the label will not show a specific timeframe but will still display the simultaneous inside bar break when it occurs.
Recommendations for Usage:
Focus on Multiple Timeframes: The Strat methodology is all about understanding the relationship between different timeframes. Use this indicator on multiple timeframes to get a better picture of potential moves.
Pair with Other Strat Techniques: This indicator is most powerful when combined with other Strat tools, such as broadening formations, timeframe continuity, and actionable signals (e.g., 2-2 reversals). The simultaneous inside bar break can help confirm or invalidate other signals.
Customize Symbols and Timeframes: Although the default symbols are SPY, QQQ, IWM, and DIA, feel free to replace them with symbols more relevant to your trading. This indicator works well across equities, indices, futures, and forex pairs.
How to Set It Up:
Select Symbols: Choose four symbols that you want to track. These can be index ETFs (like SPY and QQQ), individual stocks, or any other tradable instruments.
Set Timeframe: In the indicator’s settings, choose a specific timeframe (e.g., 15-minute, 30-minute, daily). The label will reflect the selected timeframe, making it clear which time-based break you are seeing.
Optional - Chart Timeframe Mode: If you want the indicator to adapt to the chart’s current timeframe, select the "Chart Timeframe" option in the settings. The indicator will plot the breaks without showing a specific timeframe in the label.
Customize Label Size: Depending on your chart layout and personal preference, you can adjust the size of the labels (tiny, small, or normal) in the settings.
Conclusion:
The Simultaneous Inside Bar Break Indicator is a powerful tool for traders using The Strat methodology, offering a highly specific and reliable signal that can indicate potential large market moves. By monitoring multiple symbols and timeframes, you can gain deeper insight into the market's behavior and act with greater confidence. This indicator is ideal for traders looking to catch high-conviction moves and align their trades with broader market continuity.
Note: The indicator works best when paired with multi-timeframe analysis, allowing you to see how breaks on lower timeframes might influence larger trends. For traders who prefer simplicity, setting it to the "Chart Timeframe" mode offers flexibility while maintaining the core benefits of this indicator.
TASC 2024.06 REIT ETF Trading System█ OVERVIEW
This strategy script demonstrates the application of the Real Estate Investment Trust (REIT) ETF trading system presented in the article by Markos Katsanos titled "Is The Price REIT?" from TASC's June 2024 edition of Traders' Tips .
█ CONCEPTS
REIT stocks and ETFs offer a simplified, diversified approach to real estate investment. They exhibit sensitivity to interest rates, often moving inversely to interest rate and treasury yield changes. Markos Katsanos explores this relationship and the correlation of prices with the broader market to develop a trading strategy for REIT ETFs.
The script employs Bollinger Bands and Donchian channel indicators to identify oversold conditions and trends in REIT ETFs. It incorporates the 10-year treasury yield index (TNX) as a proxy for interest rates and the S&P 500 ETF (SPY) as a benchmark for the overall market. The system filters trade entries based on their behavior and correlation with the REIT ETF price.
█ CALCULATIONS
The strategy initiates long entries (buy signals) under two conditions:
1. Oversold condition
The weekly ETF low price dips below the 15-week Bollinger Band bottom, the closing price is above the value by at least 0.2 * ATR ( Average True Range ), and the price exceeds the week's median.
Either of the following:
– The TNX index is down over 15% from its 25-week high, and its correlation with the ETF price is less than 0.3.
– The yield is below 2%.
2. Uptrend
The weekly ETF price crosses above the previous week's 30-week Donchian channel high.
The SPY ETF is above its 20-week moving average.
Either of the following:
– Over ten weeks have passed since the TNX index was at its 30-week high.
– The correlation between the TNX value and the ETF price exceeds 0.3.
– The yield is below 2%.
The strategy also includes three exit (sell) rules:
1. Trailing (Chandelier) stop
The weekly close drops below the highest close over the last five weeks by over 1.5 * ATR.
The TNX value rises over the latest 25 weeks, with a yield exceeding 4%, or its value surges over 15% above the 25-week low.
2. Stop-loss
The ETF's price declines by at least 8% of the previous week's close and falls below the 30-week moving average.
The SPY price is down by at least 8%, or its correlation with the ETF's price is negative.
3. Overbought condition
The ETF's value rises above the 100-week low by over 50%.
The ETF's price falls over 1.5 * ATR below the 3-week high.
The ETF's 10-week Stochastic indicator exceeds 90 within the last three weeks.
█ DISCLAIMER
This strategy script educates users on the system outlined by the TASC article. However, note that its default properties might not fully represent real-world trading conditions for an individual. By default, it uses 10% of equity as the order size and a slippage amount of 5 ticks. Traders should adjust these settings and the commission amount when using this script. Additionally, since this strategy utilizes compound conditions on weekly data to trigger orders, it will generate significantly fewer trades than other, higher-frequency strategies.
Leveraged Share Decay Tracker [SS]Releasing this utility tool for leveraged share traders and investors.
It is very difficult to track the amount of decay and efficiency that is associated with leveraged shares and since not all leveraged shares are created equally, I developed this tool to help investors/traders ascertain:
1. The general risk, in $$, per share associated with investing in a particular leveraged ETF
2. The ability of a leveraged share to match what it purports to do (i.e. if it is a 3X Bull share, is it actually returning consistently 3X the underlying or is there a large variance?)
3. The general decay at various timepoints expressed in $$$
How to use:
You need to be opened on the chart of the underlying. In the example above, the chart is on DIA, the leveraged share being tracked is UDOW (3X bull share of the DOW).
Once you are on the chart of the underlying, you then put in the leveraged share of interest. The indicator will perform two major assessments:
1. An analysis of the standard error between the underlying and the leveraged share. This is accomplished through linear regression, but instead of creating a linreg equation, it simply uses the results to ascertain the degree of error associated at various time points (the time points are 10, 20, 30, 40, 50, 100, 252).
2. An analysis of the variance of returns. The indicator requires you to put in the leverage amount. So if the leverage amount is 3% (i.e. SPXL or UPRO is 3 X SPY), be sure that you are putting that factor in the settings. It will then modify the underlying to match the leverage amount, and perform an assessment of variance over 10, 20, 30, 40, 50, 100, 252 days to ensure stability. This will verify whether the leveraged ETF is actually consistently performing how it purports to perform.
Here are some examples, and some tales of caution so you can see, for yourself, how not all leveraged shares are created equal.
SPY and SPXL:
SPY and UPRO:
XBI and LABU (3 x bull share):
XBI and LABD (3 x bear share):
SOX and SOXL:
AAPL and AAPU:
It is VERY pivotal you remember to check and adjust the Leveraged % factor.
For example, AAPU is leveraged 1.5%. You can see above it tracks this well. However, if you accidently leave it at 3%, you will get an erroneous result:
You can also see how some can fail to track the quoted leveraged amount, but still produce relatively lower risk decay.
And, as a final example, let's take a look at the worst leveraged share of life, BOIL:
Trainwreck that one. Stay far away from it!
The chart:
The chart will show you the drift (money value over time) and the variance (% variance between the expected and actual returns) over time. From here, you can ascertain the general length you feel comfortable holding a leveraged share. In general, for most stable shares, <= 50 trading days tends to be the sweet spot, but always check the chart.
There are also options to plot the variances and the drifts so you can see them visually.
And that is the indicator! Kind of boring, but there are absolutely 0 resources out there for doing this job, so hopefully you see the use for it!
Safe trades everyone!
SMA Cross with a Price FilterA moving average strategy generates an entry (buy) signal when the price goes above the moving average, and an exit (sell) signal when the price goes below the moving average. But it gives lots of whipsaws and noise depends on the moving average we use. A fast moving average gives more whipsaws and a slow moving average gives less whipsaws. To reduce the noise/whipsaws, we can add a filter on a fast/slow moving average. It will improve entry/exit performance significantly specially for those who don't want to watch the market actively.
I created this indicator with a price filter. This means the price of an underlying asset must be at least a specific percentage above its moving average to generate a buy signal and a specific percentage below its moving average to generate a sell signal. This price filter can also be a confirmation after the price crosses above/below its SMA. I couldn't find any indicator yet based on this idea. So I wrote this indicator and publishing it so it helps those who are interested.
I use 200 SMA and 3% price filter as default and using SPY as an example. So,
ENTRY signal when the closing price of SPY is 3% above its 200 SMA.
EXIT signal when the closing price of SPY is 3% below its 200 SMA.
Enjoy and let me know if it works.
** This chart only generates entry (buy) and exit (sell) signals. Please, do your own diligence to make any investment or trading decisions.
Spot-Vol CorrelationSpot-Vol Correlation Script Guide
Purpose:
This TradingView script measures the correlation between percentage changes in the spot price (e.g., for SPY, an ETF that tracks the S&P 500 index) and the changes in volatility (e.g., as indicated by the VIX, the Volatility Index). Its primary objective is to discern whether the relationship between spot price and volatility behaves as expected ("normal" condition) or diverges from the expected pattern ("abnormal" condition).
Normal vs. Abnormal Correlation:
Normal Correlation: Historically, the VIX (or volatility) and the spot price of major indices like the S&P 500 have an inverse relationship. When the spot price of the index goes up, the VIX tends to go down, indicating lower volatility. Conversely, when the index drops, the VIX generally rises, signaling increased volatility.
Abnormal Correlation: There are instances when this inverse relationship doesn't hold, and both the spot price and the VIX move in the same direction. This is considered an "abnormal" condition and might indicate unusual market dynamics, potential uncertainty, or impending shifts in market sentiment.
Using the Script:
Inputs:
First Symbol: This is set by default to VIX, representing volatility. However, users can input any other volatility metric they prefer.
Second Symbol: This is set to SPY by default, representing the spot price of the S&P 500 index. Like the first symbol, users can substitute SPY with any other asset or index of their choice.
Length of Calculation Period: Users can define the lookback period for the correlation calculation. By default, it's set to 10 periods (e.g., days for a daily chart).
Upper & Lower Bounds of Normal Zone: These parameters define the range of correlation values that are considered "normal" or expected. By default, this is set between -0.60 and -1.00.
Visuals:
Correlation Line: The main line plot shows the correlation coefficient between the two input symbols. When this line is within the "normal zone", it indicates that the spot price and volatility are inversely correlated. If it's outside this zone, the correlation is considered "abnormal".
Green Color: Indicates a period when the spot price and VIX are behaving as traditionally expected (i.e., one rises while the other falls).
Red Color: Denotes a period when the spot price and VIX are both moving in the same direction, which is an abnormal condition.
Shaded Area (Normal Zone): The area between the user-defined upper and lower bounds is shaded in green, highlighting the range of "normal" correlation values.
Interpretation:
Monitor the color and position of the correlation line relative to the shaded area:
If the line is green and within the shaded area, the market dynamics are as traditionally expected.
If the line is red or outside the shaded area, users should exercise caution as this indicates a divergence from typical behavior, which can precede significant market moves or heightened uncertainty.
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!
EMA 9/21 with Target Price [SS]Hey everyone,
Coming back with my EMA 9/21 indicator.
My original one was removed a long time ago because I didn't really realize that there were already plenty of similar indicators (my bad!) but this one is my unique, Steversteves edition haha.
About the Indicator:
Essentially, it just combines the 2 only EMA's I ever really use (the 9 and 21) with an ATR based analysis to calculate the average range a ticker undergoes after an EMA 9 / 21 Cross-over and Cross-under.
You can see the major example being in the chart above. I use this for dramatic effect as SPY just happened to have topped at the second expected bull target on the daily. But obviously the intention for this indicator is to be used on the smaller timeframes. Let's take a look at some examples with various tickers.
TSLA:
So let's just use the previous day as example (which was Friday). If we look to the chart below:
TSLA did an EMA 9/21 crossover (bullish) in premarket. This put the immediate TP at 234.59. If we play out the chart:
We shot right to it at open.
We then did a cross under with a TP of 225.93, but that was not realized as the sentiment was too bullish. We then cross back over to the upside, putthing next TP at 238.88 which was realized:
NVDA:
On Friday, NVDA was a bit of a mess, lots of whipsaw off open. But once we finally had a cross under with 3 consecutive closes below the EMA9/21 on the 5 minute chart, it solidified the likelihood of a short:
And this was the result:
We came down to the first target, held it actually as support before finally crossing back over, setting the next TP at 475.05. We got 3 consecutive closes above the EMA 9/21, so let's see what happened:
Nothing really, we closed before we got there, but we did make progress towards it.
And last but not least SPY:
We opened the day with a bullish crossover and 3 consecutive closes above the EMA9/21, making our TP 441.38 (chart above). Let's see what happened:
We came just shy of it after the fed release volatility slammed it down, where we got a crossunder (bearish) to a TP of 436.21:
This ended up playing out, we did get a bullish crossover later in the day and so let's see what happened then:
So those are the real examples, most recent examples of trading using this. They are not all perfect, which is intentional because you need to use a bit of your own analysis, of course, when you are using this type of strategy or indicator. The EMA 9/21 is not sufficient generally on its own, but it is very helpful to gauge the immediate PA and whether the expected move aligns with your overall thesis on the day in terms of realistic target prices.
Customizability:
In terms of the customizability, this is a very basic indicator aside from the assessment of ranges. So there really is not a lot to customize.
You can toggle off and on the labels if you do not want them, you can also adjust the lookback length for the ATR assessment. The lookback length is defaulted to 500, I do really highly suggest you leave it at 500 because this has worked well for me and in back-testing, it has performed above my own expectations.
But, that said, you can take this and back-test as you wish with whatever parameters you feel are most appropriate. I haven't back-tested this on every stock known to man, my go to's are SPY, QQQ, sometimes MSFT and so it works well on those. But perhaps some others will have differing results.
Final Thoughts:
That is the indicator in a nutshell! It is really self explanatory and its likely a strategy most of you already know. This just helps to add realistic price targets and context to those cross-overs and cross-unders.
It also works fine on larger timeframes. We can see it on the 1 hour with MSFT:
On the 2 hour hour with QQQ:
And I am sure you can find other examples!
That's it everyone, safe trades!
Baseline Indicator [SS]Hello,
This is the Baseline Indicator. I modelled it after one of my favourite Tradingview chart types, the baseline type (shown in image below):
I really love this chart, but I wanted a way for it to:
a) Be static and not move with the chart; and
b) Auto calculate the baseline average for a specified period of time.
So I created this indicator which does essentially that.
What it does:
The indicator will calculate the average between the high and low of a user defined timeframe. The timeframe is customizable, but it defaults to daily. It will then plot the average (or baseline) of the high and low over that specified timeframe. The default plot is a candle plot. It will change the colours of the candles to green (for above the baseline) and red (for below the baseline). The chart below shows an example of the indicator with candles on SPY. The Baseline timeframe is set to 1 hour:
You can choose whether you want to plot the current baseline average or the previous.
The advantage to plotting the previous is that this provide a static reference point and can be helpful on the 30 and 60 minute timeframe. Here is an example:
In this example on SPY, the indicator is plotting the previous average. You can see SPY is using this as support and creating a "staircase" pattern. This is indicative of a trend.
The example above is using the previous day average on the daily timeframe during a sideways day. You can see that the price action accumulates and is consistently drawn to this point.
Inversely, you can manually select your own baseline price if you want a static, self-calculated baseline reference point.
Options and Settings:
Below is an outline of the menu as well as a brief explanation of the options and settings:
To view your chart as a baseline chart, make sure you select the "Line" input and then hide the candles on your chart using your chart settings (see image below):
The purple arrow shows how to hide the candles. You select the "Eye" Icon which should then become greyed out and you will be left with the baseline chart from the indicator.
Why use baseline average?
The average between the high and low of a designated timeframe is a very helpful value. In choppy markets, this acts as a key point of frequent return. In trendy markets, this acts as a reference point of trend direction and strength. I encourage you to play around with the indicator and review some historical charts using it, and you will see some patterns emerge!
Final thoughts:
I have also done a quick tutorial video on the indicator for your reference, you can check that out below:
Thanks for checking out the indicator and I hope you like it!
Capital Asset Pricing Model (CAPM) [Loxx]Capital Asset Pricing Model (CAPM) demonstrates how to calculate the Cost of Equity for an underlying asset using Pine Script. This script will only work on the monthly timeframe. While you can change the default inputs, you should study what CAPM is and how this works before doing so. This indicator pulls various types of data from SPY from various timeframes to calculate risk-free rates, market premiums, and log returns. Alpha and Beta are computed using the regression between underlying asset and SPY. This indicator only calculates on the most recent data. If you wish to change this, you'll have to save the script and make adjustments. A few examples where CAPM is used:
Used as the mu factor Geometric Brownian Motion models for options pricing and forecasting price ranges and decay
Calculating the Weighted Average Cost of Capital
Asset pricing
Efficient frontier
Risk and diversification
Security market line
Discounted Cashflow Analysis
Investment bankers use CAPM to value deals
Account firms use CAPM to verify asset prices and assumptions
Real estate firms use variations of CAPM to value properties
... and more
Details of the calculations used here
Rm is calculated using yearly simple returns data from SPY, typically this is just hard coded as 10%.
Rf is pulled from US 10 year bond yields
Beta and Alpha are pulled form monthly returns data of the asset and SPY
In the past, typically this data is purchased from investments banks whose research arms produce values for beta, alpha, risk free rate, and risk premiums. In 2022 ,you can find free estimates for each parameter but these values might not reflect the most current data or research.
History
The CAPM was introduced by Jack Treynor (1961, 1962), William F. Sharpe (1964), John Lintner (1965) and Jan Mossin (1966) independently, building on the earlier work of Harry Markowitz on diversification and modern portfolio theory. Sharpe, Markowitz and Merton Miller jointly received the 1990 Nobel Memorial Prize in Economics for this contribution to the field of financial economics. Fischer Black (1972) developed another version of CAPM, called Black CAPM or zero-beta CAPM, that does not assume the existence of a riskless asset. This version was more robust against empirical testing and was influential in the widespread adoption of the CAPM.
Usage
The CAPM is used to calculate the amount of return that investors need to realize to compensate for a particular level of risk. It subtracts the risk-free rate from the expected rate and weighs it with a factor – beta – to get the risk premium. It then adds the risk premium to the risk-free rate of return to get the rate of return an investor expects as compensation for the risk. The CAPM formula is expressed as follows:
r = Rf + beta (Rm – Rf) + Alpha
Therefore,
Alpha = R – Rf – beta (Rm-Rf)
Where:
R represents the portfolio return
Rf represents the risk-free rate of return
Beta represents the systematic risk of a portfolio
Rm represents the market return, per a benchmark
For example, assuming that the actual return of the fund is 30, the risk-free rate is 8%, beta is 1.1, and the benchmark index return is 20%, alpha is calculated as:
Alpha = (0.30-0.08) – 1.1 (0.20-0.08) = 0.088 or 8.8%
The result shows that the investment in this example outperformed the benchmark index by 8.8%.
The alpha of a portfolio is the excess return it produces compared to a benchmark index. Investors in mutual funds or ETFs often look for a fund with a high alpha in hopes of getting a superior return on investment (ROI).
The alpha ratio is often used along with the beta coefficient, which is a measure of the volatility of an investment. The two ratios are both used in the Capital Assets Pricing Model (CAPM) to analyze a portfolio of investments and assess its theoretical performance.
To see CAPM in action in terms of calculate WACC, see here for an example: finbox.com
Further reading
en.wikipedia.org
Portfolio Performance - Effects of RebalancingFunction:
- Can be used to evaluate the performance of a portfolio containing 2 assets over a set time interval
- Shows the % return of the portfolio over the time interval defined by the user
- Includes a threshold rebalancing algorithm to show the effects that rebalancing has on the portfolio over the long term
- Created to evaluate of the performance of portfolios containing different weightings of stocks and bonds over time assuming that the user would rebalance the portfolio when asset weights crossed a threshold
Instructions:
- To be used with dividends adjustments turned on
- Add this script to a symbol. e.g. AMEX:SPY
- Click the chart to define the entry time and the exit time. i.e. the time interval
- Define the initial investment of the portfolio. Default setting is $100,000
- Define the second asset to be included in the portfolio. e.g. BATS:AGG
- The strategy comes pre-populated with a portfolio that has a weight of 80% asset 1 and 20% asset 2. i.e. 80% AMEX:SPY and 20% BATS:AGG if the symbols mentioned above were chosen
- The 7 lines show the weighted % return of each portfolio over the time period defined by the user
- Each line (except the blue) is the return based on a different rebalancing threshold. The default settings are 1%, 2.5%, 5%, 10%, 15%, 20%, 30%
- The blue line is the % return of a portfolio that was made up of 100% asset 1 over the time interval. i.e. 100% AMEX:SPY
- Asset weights and rebalancing thresholds are adjustable via the settings
- Each plot can be turned on and turned off via a tick box in the settings
Zweig Market Breadth Thrust Indicator StrategyThe Breadth Thrust Indicator is a technical indicator which determines market momentum, signaling the start of a potential new bull market.
The Breadth Thrust Indicator was developed by Martin Zweig, an American stock investor, financial analyst, and investment adviser. According to Zweig, the concept is based on the principle that the sudden change of money in the investment markets elevates stocks and signals increased liquidity. In other words, this indicator is all about how quickly the NYSE's advancing and declining numbers go from poor to great in a compressed time period.
A "Thrust" indicates that the stock market has rapidly changed from an oversold condition to one of strength, but has not yet become overbought. This is very rare and has happened only a few times. Dr . Zweig also points out that most bull markets begin with a Breadth Thrust.
More info can be found at www.investopedia.com
I have inspired by indicator introduced in TradingView by LazyBear and adopted the logic from there. Thanks LazyBear !!!
Though indicator signals the new Bull market, but I have not found much information how to use it in daily market. So I had come up with a strategy, which would allow us to trade SPY, QQQ , AMEX and securities under these markets.
I have used MA setting as 65 (since Zweig indicator setting was 10 days , based on that I set 65 for Hourly chart ... 10d x 6.5 Hrs = 65 in my startegy). You have to change this setting if you change the timeframe. Also , note that this strategy is for Stock Market only.
Strategy Rule/Settings
===================
Select the market type based on your security symbol.
SPY => use NYSE
QQQ => use NASDAQ
any other security => check exchange it was listed and select the corresponding market.
if you dont know , use COMBINED option
BUY
====
when indicator cross 0.40 from below
Note:
1. see how well it picks the bottoms ... example : Nov 2020 ....
2. setting 0.45 is also produces good results , only thing is you get more signals.
EXIT
=====
Exit when indicator cross down from 0.60 . I have used RSI (5) for partial exits. These two are available in settings
Close the whole position when indicator crossing down 0.40
STOP LOSS
=========
defaulted to 5%
Please Note , I have tested SPY , QQQ on Horly chart with MA 65. You need to chnage the MA setting based on your time frame and check the results.
WARNING
========
For the use of educational purposes only
Waindrops [Makit0]█ OVERALL
Plot waindrops (custom volume profiles) on user defined periods, for each period you get high and low, it slices each period in half to get independent vwap, volume profile and the volume traded per price at each half.
It works on intraday charts only, up to 720m (12H). It can plot balanced or unbalanced waindrops, and volume profiles up to 24H sessions.
As example you can setup unbalanced periods to get independent volume profiles for the overnight and cash sessions on the futures market, or 24H periods to get the full session volume profile of EURUSD
The purpose of this indicator is twofold:
1 — from a Chartist point of view, to have an indicator which displays the volume in a more readable way
2 — from a Pine Coder point of view, to have an example of use for two very powerful tools on Pine Script:
• the recently updated drawing limit to 500 (from 50)
• the recently ability to use drawings arrays (lines and labels)
If you are new to Pine Script and you are learning how to code, I hope you read all the code and comments on this indicator, all is designed for you,
the variables and functions names, the sometimes too big explanations, the overall structure of the code, all is intended as an example on how to code
in Pine Script a specific indicator from a very good specification in form of white paper
If you wanna learn Pine Script form scratch just start HERE
In case you have any kind of problem with Pine Script please use some of the awesome resources at our disposal: USRMAN , REFMAN , AWESOMENESS , MAGIC
█ FEATURES
Waindrops are a different way of seeing the volume and price plotted in a chart, its a volume profile indicator where you can see the volume of each price level
plotted as a vertical histogram for each half of a custom period. By default the period is 60 so it plots an independent volume profile each 30m
You can think of each waindrop as an user defined candlestick or bar with four key values:
• high of the period
• low of the period
• left vwap (volume weighted average price of the first half period)
• right vwap (volume weighted average price of the second half period)
The waindrop can have 3 different colors (configurable by the user):
• GREEN: when the right vwap is higher than the left vwap (bullish sentiment )
• RED: when the right vwap is lower than the left vwap (bearish sentiment )
• BLUE: when the right vwap is equal than the left vwap ( neutral sentiment )
KEY FEATURES
• Help menu
• Custom periods
• Central bars
• Left/Right VWAPs
• Custom central bars and vwaps: color and pixels
• Highly configurable volume histogram: execution window, ticks, pixels, color, update frequency and fine tuning the neutral meaning
• Volume labels with custom size and color
• Tracking price dot to be able to see the current price when you hide your default candlesticks or bars
█ SETTINGS
Click here or set any impar period to see the HELP INFO : show the HELP INFO, if it is activated the indicator will not plot
PERIOD SIZE (max 2880 min) : waindrop size in minutes, default 60, max 2880 to allow the first half of a 48H period as a full session volume profile
BARS : show the central and vwap bars, default true
Central bars : show the central bars, default true
VWAP bars : show the left and right vwap bars, default true
Bars pixels : width of the bars in pixels, default 2
Bars color mode : bars color behavior
• BARS : gets the color from the 'Bars color' option on the settings panel
• HISTOGRAM : gets the color from the Bearish/Bullish/Neutral Histogram color options from the settings panel
Bars color : color for the central and vwap bars, default white
HISTOGRAM show the volume histogram, default true
Execution window (x24H) : last 24H periods where the volume funcionality will be plotted, default 5
Ticks per bar (max 50) : width in ticks of each histogram bar, default 2
Updates per period : number of times the histogram will update
• ONE : update at the last bar of the period
• TWO : update at the last bar of each half period
• FOUR : slice the period in 4 quarters and updates at the last bar of each of them
• EACH BAR : updates at the close of each bar
Pixels per bar : width in pixels of each histogram bar, default 4
Neutral Treshold (ticks) : delta in ticks between left and right vwaps to identify a waindrop as neutral, default 0
Bearish Histogram color : histogram color when right vwap is lower than left vwap, default red
Bullish Histogram color : histogram color when right vwap is higher than left vwap, default green
Neutral Histogram color : histogram color when the delta between right and left vwaps is equal or lower than the Neutral treshold, default blue
VOLUME LABELS : show volume labels
Volume labels color : color for the volume labels, default white
Volume Labels size : text size for the volume labels, choose between AUTO, TINY, SMALL, NORMAL or LARGE, default TINY
TRACK PRICE : show a yellow ball tracking the last price, default true
█ LIMITS
This indicator only works on intraday charts (minutes only) up to 12H (720m), the lower chart timeframe you can use is 1m
This indicator needs price, time and volume to work, it will not work on an index (there is no volume), the execution will not be allowed
The histogram (volume profile) can be plotted on 24H sessions as limit but you can plot several 24H sessions
█ ERRORS AND PERFORMANCE
Depending on the choosed settings, the script performance will be highly affected and it will experience errors
Two of the more common errors it can throw are:
• Calculation takes too long to execute
• Loop takes too long
The indicator performance is highly related to the underlying volatility (tick wise), the script takes each candlestick or bar and for each tick in it stores the price and volume, if the ticker in your chart has thousands and thousands of ticks per bar the indicator will throw an error for sure, it can not calculate in time such amount of ticks.
What all of that means? Simply put, this will throw error on the BITCOIN pair BTCUSD (high volatility with tick size 0.01) because it has too many ticks per bar, but lucky you it will work just fine on the futures contract BTC1! (tick size 5) because it has a lot less ticks per bar
There are some options you can fine tune to boost the script performance, the more demanding option in terms of resources consumption is Updates per period , by default is maxed out so lowering this setting will improve the performance in a high way.
If you wanna know more about how to improve the script performance, read the HELP INFO accessible from the settings panel
█ HOW-TO SETUP
The basic parameters to adjust are Period size , Ticks per bar and Pixels per bar
• Period size is the main setting, defines the waindrop size, to get a better looking histogram set bigger period and smaller chart timeframe
• Ticks per bar is the tricky one, adjust it differently for each underlying (ticker) volatility wise, for some you will need a low value, for others a high one.
To get a more accurate histogram set it as lower as you can (min value is 1)
• Pixels per bar allows you to adjust the width of each histogram bar, with it you can adjust the blank space between them or allow overlaping
You must play with these three parameters until you obtain the desired histogram: smoother, sharper, etc...
These are some of the different kind of charts you can setup thru the settings:
• Balanced Waindrops (default): charts with waindrops where the two halfs are of same size.
This is the default chart, just select a period (30m, 60m, 120m, 240m, pick your poison), adjust the histogram ticks and pixels and watch
• Unbalanced Waindrops: chart with waindrops where the two halfs are of different sizes.
Do you trade futures and want to plot a waindrop with the first half for the overnight session and the second half for the cash session? you got it;
just adjust the period to 1860 for any CME ticker (like ES1! for example) adjust the histogram ticks and pixels and watch
• Full Session Volume Profile: chart with waindrops where only the first half plots.
Do you use Volume profile to analize the market? Lucky you, now you can trick this one to plot it, just try a period of 780 on SPY, 2760 on ES1!, or 2880 on EURUSD
remember to adjust the histogram ticks and pixels for each underlying
• Only Bars: charts with only central and vwap bars plotted, simply deactivate the histogram and volume labels
• Only Histogram: charts with only the histogram plotted (volume profile charts), simply deactivate the bars and volume labels
• Only Volume: charts with only the raw volume numbers plotted, simply deactivate the bars and histogram
If you wanna know more about custom full session periods for different asset classes, read the HELP INFO accessible from the settings panel
EXAMPLES
Full Session Volume Profile on MES 5m chart:
Full Session Unbalanced Waindrop on MNQ 2m chart (left side Overnight session, right side Cash Session):
The following examples will have the exact same charts but on four different tickers representing a futures contract, a forex pair, an etf and a stock.
We are doing this to be able to see the different parameters we need for plotting the same kind of chart on different assets
The chart composition is as follows:
• Left side: Volume Labels chart (period 10)
• Upper Right side: Waindrops (period 60)
• Lower Right side: Full Session Volume Profile
The first example will specify the main parameters, the rest of the charts will have only the differences
MES :
• Left: Period size: 10, Bars: uncheck, Histogram: uncheck, Execution window: 1, Ticks per bar: 2, Updates per period: EACH BAR,
Pixels per bar: 4, Volume labels: check, Track price: check
• Upper Right: Period size: 60, Bars: check, Bars color mode: HISTOGRAM, Histogram: check, Execution window: 2, Ticks per bar: 2,
Updates per period: EACH BAR, Pixels per bar: 4, Volume labels: uncheck, Track price: check
• Lower Right: Period size: 2760, Bars: uncheck, Histogram: check, Execution window: 1, Ticks per bar: 1, Updates per period: EACH BAR,
Pixels per bar: 2, Volume labels: uncheck, Track price: check
EURUSD :
• Upper Right: Ticks per bar: 10
• Lower Right: Period size: 2880, Ticks per bar: 1, Pixels per bar: 1
SPY :
• Left: Ticks per bar: 3
• Upper Right: Ticks per bar: 5, Pixels per bar: 3
• Lower Right: Period size: 780, Ticks per bar: 2, Pixels per bar: 2
AAPL :
• Left: Ticks per bar: 2
• Upper Right: Ticks per bar: 6, Pixels per bar: 3
• Lower Right: Period size: 780, Ticks per bar: 1, Pixels per bar: 2
█ THANKS TO
PineCoders for all they do, all the tools and help they provide and their involvement in making a better community
scarf for the idea of coding a waindrops like indicator, I did not know something like that existed at all
All the Pine Coders, Pine Pros and Pine Wizards, people who share their work and knowledge for the sake of it and helping others, I'm very grateful indeed
I'm learning at each step of the way from you all, thanks for this awesome community;
Opensource and shared knowledge: this is the way! (said with canned voice from inside my helmet :D)
█ NOTE
This description was formatted following THIS guidelines
═════════════════════════════════════════════════════════════════════════
I sincerely hope you enjoy reading and using this work as much as I enjoyed developing it :D
GOOD LUCK AND HAPPY TRADING!
ADX_TSI_Bol Band Trend ChaserThe idea of this script is to be a low risk strategy on trending stocks (or any other trending market), aiming to achieve minimal draw down (e.g. at time of writing AAPL only had ~1.36% draw down, FB ~1.93% draw down and the SPY was 0.80% draw down and all remained profitable).
Testing proved it shouldn't be used in choppy stocks and best period was on daily charts. The back test filter goes back until 2010 so you can obtain 10 years of data.
The strategy utilizes the 200 Moving Average, a Custom Bollinger Band, a TSI with 52 period weighted moving average and ADX strength.
Although back test dates are set to 2010 - 2020, all other filters (moving average, ADX, TSI , Bollinger Band) are not locked so they can be user amended if desired. However the current settings have been tested with manual trading for quite some time to get this combination correct.
Buy signal is given when trading above the 200 moving average + 5 candles have closed above the upper custom Bollinger + the TSI is positive + ADX is above 20.
As back testing proved that this traded better only in tends then some Sell/Short conditions have been removed from the script and this only takes Long orders.
Only requires 2 additional lines of code to add shorting order and then remove the "buy" condition and this could be used for a downward trending stock instead.
Close for either long or short trades is signaled once the TSI crosses in the opposite direction indicating change in trend strength.
Further optimization could be achieved by adding a stop loss, which I may do in the future.
NOTE: This only shows the lower indicators however for visualization you can use my script "CUSTOM BOLLINGER WITH SMA", which is the upper indicators in this strategy.
This is my first attempt at coding a strategy so I'm happy to receive any feedback or hints on how this could be written better from any experienced coders!
NASDAQ:AAPL AMEX:SPY
Short in Bollinger Band Down trend (Weekly and Daily) // © PlanTradePlanMM
// 6/14/2020
// ---------------------------------------------------
// Name: Short in Bollinger Band Down trend (Weekly and Daily)
// ---------------------------------------------------
// Key Points in this study:
// 1. Short in BB Lower band, probability of price going down is more than 50%
// 2. Short at the top 1/4 of Lower band (EMA - Lower line), Stop is EMA, tartget is Lower line; it matches risk:/reward=1:3 naturally
//
// Draw Lines:
// BB Lower : is the Target (Black line)
// BB EMA : is the initial Stop (Black line)
// ShortLine : EMA - 1/4 of (Stop-target), which matches risk:/reward=1:3
// Prepare Zone : between EMA and ShortLine
// shortPrice : Blue dot line only showing when has Short position, Which shows entry price.
// StopPrice : Black dot line only showing when has Short position, Which shows updated stop price.
//
// Add SMA50 to filter the trend. Price <= SMA, allow to short
//
// What (Condition): in BB down trend band
// When (Price action): Price cross below ShortLine;
// How (Trading Plan): Short at ShortLine;
// Initial Stop is EMA;
// Initial Target is BB Lower Line;
// FollowUp: if price moves down first, and EMA is below Short Price. Move stop to EMA, At least "make even" in this trade;
// if Price touched Short Line again and goes down, new EMA will be the updated stop
//
// Exit: 1. Initial stop -- "Stop" when down first, Close above stop
// 2. Target reached -- "TR" when down quickly, Target reached
// 3. make even -- "ME" when small down and up, Exit at Entry Price
// 4. Small Winner -- "SM" when EMA below Entry price, Exit when Close above EMA
//
// --------------
// Because there are too many flags in up trend study already, I created this down trend script separately.
// Uptrend study is good for SPY, QQQ, and strong stocks.
// Downtrend Study is good for weak ETF, stock, and (-2x, -3x) ETFs, such as FAZ, UVXY, USO, XOP, AAL, CCL
// -----------------------------------------------------------------------------------------------------------------
// Back test Weekly and daily chart for SPY, QQQ, XOP, AAL, BA, MMM, FAZ, UVXY
// The best sample is FAZ Weekly chart.
// When SPY and QQQ are good in long term up trend, these (-2x, -3x) ETFs are always going down in long term.
// Some of them are not allowed to short. I used option Put/Put spread for the short entry.
//
Buy in Bollinger Band uptrend (Weekly and Daily) // © PlanTradePlanMM 6/14/2020
// ---------------------------------------------------
// Name: Buy in Bollinger Band uptrend (Weekly and Daily)
// ---------------------------------------------------
// Key Points in this study:
// 1. Long in BB Upper band, probability of price going up is more than 50%
// 2. Buy at the bottom 1/4 of upper band (Upper line - EMA), Stop is EMA, tartget is Upper line; it matches risk:reward=1:3;
//
// Draw Lines:
// BB Upper : is the Target (Black line)
// BB EMA : is the initial Stop (Black line)
// BuyLine : EMA20 + 1/4 of (Target-Stop), which matches risk:/reward=1:3 naturally
// Prepare Zone : between EMA and BuyLine
// buyPrice : Blue dot line only showing when has long position, Which shows entry price.
// StopPrice : Black dot line only showing when has long position, Which shows updated stop price.
//
// Add SMA(50) to filter the trend. Price >= SMA, allow to long
//
// What (Condition): in BB uptrend band
// When (Price action): Price cross over BuyLine;
// How (Trading Plan): Buy at BuyLine;
// Initial Stop is EMA;
// Initial Target is BB Upper Line;
//
// FollowUp: if price moves up first, and the EMA is higher than Entry point, Use EMA as new stop. At least "make even" in this trade;
//
// Exit: 1. Initial stop -- "Stop" when down first, close below stop price.
// 2. Target reached -- "TR" when up quickly, Target reached
// 3. make even -- "ME" when small up and down, Exit at entry Price
// 4. Small Winner -- "SM" when EMA above Entry price, Exit when close below EMA, and higher than entry Price
//
// --------------
// Because there are too many flags in up trend study already, I will create a down trend script separately.
// Uptrend study is good for SPY, QQQ, and strong stocks.
// Downtrend Study is good for weak ETF, stock, and (-2x, -3x) ETFs, such as FAZ, UVXY, USO, XOP, AAL, CCL
// -----------------------------------------------------------------------------------------------------------------
// Back test Weekly and daily chart for SPY, QQQ
// If it will be a big Gap down or a big down move, stop at close price could be a big loss; But this way could avoid may noise, to stay in a trending position longer.
// When buy in trending move, the position could be hold for a big range.
// The best samples are SPY and QQQ daily chart.
//
// Better to use another way to verify the long term up trend first.
// For single stock, it is better shows more relative strength than SPY.
Out of the Noise Intraday Strategy with VWAP [YuL]This is my (naive) implementation of "Beat the Market An Effective Intraday Momentum Strategy for S&P500 ETF (SPY)" paper by Carlo Zarattini, Andrew Aziz, Andrea Barbon, so the credit goes to them.
It is supposed to run on SPY on 30-minute timeframe, there may be issues on other timeframes.
I've used settings that were used by the authors in the original paper to keep it close to the publication, but I understand that they are very aggressive and probably shouldn't be used like that.
Results are good, but not as good as they are stated in the paper (unsurprisingly?): returns are smaller and Sharpe is very low (which is actually weird given the returns and drawdown ratio), there are also margin calls if you enable margin check (and you should).
I have my own ideas of improvements which I will probably implement separately to keep this clean.
Failed 2U/2D + 50% Retrace Scanner📈 Multi-Ticker Failed 2U/2D Scanner with Daily Retrace & Market Breadth Table
This TradingView indicator is a multi-symbol price action scanner designed to catch high-probability reversal signals using The Strat’s failed 2U/2D patterns and daily 50% retrace logic, while also displaying market breadth metrics ( USI:TICK and USI:ADD ) for context.
Monitored Symbols:
SPY, SPX, QQQ, IWM, NVDA, AMD, AAPL, META, MSTR
🔍 Detection Logic
1. Failed 2U / Failed 2D Setups
Failed 2U: Price breaks above the previous candle’s high but closes back below the open → Bearish reversal
Failed 2D: Price breaks below the previous candle’s low but closes back above the open → Bullish reversal
Timeframes Monitored:
🕐 1-Hour (1H)
⏰ 4-Hour (4H)
2. Daily 50% Candle Retrace
Checks if price has retraced 50% or more of the previous day’s candle body
Highlights potential trend exhaustion or reversal confluence
3. Market Breadth Metrics (Display Only)
USI:TICK : Measures real-time NYSE up vs. down ticks
USI:ADD : Advance-Decline Line (net advancing stocks)
Not used in signal logic — just displayed in the table for overall market context
🖼️ Visual Elements
✅ Chart Markers
🔺 Red/Green Arrows for 1H Failed 2U/2D
🟨 Yellow Squares for 4H Failed 2U/2D
Visual markers are plotted directly on the relevant candles
📊 Signal Table
Lists all 9 tickers in rows
Columns for:
1H Signal
4H Signal
Daily 50% Retrace
USI:TICK Value
USI:ADD Value
Color-Coded Cells:
🔴 Red = Failed 2U
🟢 Green = Failed 2D
⚠️ Highlight if 50% Daily Retrace condition is true
🟦 Neutral-colored cells for TICK/ADD numeric display
🔔 Alerts
Hardcoded alerts fire when:
A 1H or 4H Failed 2U/2D is detected
The Daily 50% retrace condition is met
Each alert is labeled clearly by symbol and timeframe:
"META 4H Failed 2D"
"AAPL Daily 50% Retrace"
🎯 Use Case
Built for:
Reversal traders using The Strat
Swing or intraday traders watching hourly setups
Traders wanting quick visual context on market breadth without relying on it for confirmation
Monitoring multiple tickers in one clean view
This is scan 2
Add scan 1 for spx, spy, iwm, qqq, aapl
This indicator is not financial advice. Use the alerts to check out chart and when tickers trigger.
Yelober - Intraday ETF Dashboard# How to Read the Yelober Intraday ETF Dashboard
The Intraday ETF Dashboard provides a powerful at-a-glance view of sector performance and trading opportunities. Here's how to interpret and use the information:
## Basic Dashboard Reading
### Color-Coding System
- **Green values**: Positive performance or bullish signals
- **Red values**: Negative performance or bearish signals
- **Symbol colors**: Green = buy signal, Red = sell signal, Gray = neutral
### Example 1: Identifying Strong Sectors
If you see XLF (Financials) with:
- Day % showing +2.65% (green background)
- Symbol in green color
- RSI of 58 (not overbought)
**Interpretation**: Financial sector is showing strength and momentum without being overextended. Consider long positions in top financial stocks like JPM or BAC.
### Example 2: Spotting Weakness
If you see XLK (Technology) with:
- Day % showing -1.20% (red background)
- Week % showing -3.50% (red background)
- Symbol in red color
- RSI of 35 (approaching oversold)
**Interpretation**: Technology sector is showing weakness across multiple timeframes. Consider avoiding tech stocks or taking short positions in names like MSFT or AAPL, but be cautious as the low RSI suggests a bounce may be coming.
## Advanced Interpretations
### Example 3: Sector Rotation Detection
If you observe:
- XLE (Energy) showing +2.10% while XLK (Technology) showing -1.50%
- Both sectors' Week % values showing the opposite trend
**Interpretation**: This suggests money is rotating out of technology into energy stocks. This rotation pattern is actionable - consider reducing tech exposure and increasing energy positions (look at XOM, CVX in the Top Stocks column).
### Example 4: RSI Divergences
If you see XLU (Utilities) with:
- Day % showing +0.50% (small positive)
- RSI showing 72 (overbought, red background)
**Interpretation**: Despite positive performance, the high RSI suggests the sector is overextended. This divergence between price and indicator suggests caution - the rally in utilities may be running out of steam.
### Example 5: Relative Strength in Weak Markets
If SPY shows -1.20% but XLP (Consumer Staples) shows +0.30%:
**Interpretation**: Consumer staples are showing defensive strength during market weakness. This is typical risk-off behavior. Consider defensive positions in stocks like PG, KO, or PEP for protection.
## Practical Application Scenarios
### Day Trading Setup
1. **Morning Market Assessment**:
- Check which sectors are green pre-market
- Focus on sectors with Day % > 1% and RSI between 40-70
- Identify 2-3 stocks from the Top Stocks column of the strongest sector
2. **Midday Reversal Hunting**:
- Look for sectors with symbol color changing from red to green
- Confirm with RSI moving away from extremes
- Trade stocks from that sector showing similar pattern changes
### Swing Trading Application
1. **Trend Following**:
- Identify sectors with positive Day % and Week %
- Look for RSI values in uptrend but not overbought (45-65)
- Enter positions in top stocks from these sectors, using daily charts for confirmation
2. **Contrarian Setups**:
- Find sectors with deeply negative Day % but RSI < 30
- Look for divergence (price making new lows but RSI rising)
- Consider counter-trend positions in the stronger stocks within these oversold sectors
## Reading Special Conditions
### Example 6: Risk-Off Environment
If you observe:
- XLP (Consumer Staples) and XLU (Utilities) both green
- XLK (Technology) and XLY (Consumer Disc) both red
- SPY slightly negative
**Interpretation**: Classic risk-off rotation. Investors are moving to safety. Consider defensive positioning and reducing exposure to growth sectors.
### Example 7: Market Breadth Analysis
Count the number of sectors in green vs. red:
- If 7+ sectors are green: Strong bullish breadth, consider aggressive long positioning
- If 7+ sectors are red: Weak market breadth, consider defensive positioning or shorts
- If evenly split: Market is indecisive, focus on specific sector strength instead of broad market exposure
Remember that this dashboard is most effective when combined with broader market analysis and appropriate risk management strategies.
Multifractal Forecast [ScorsoneEnterprises]Multifractal Forecast Indicator
The Multifractal Forecast is an indicator designed to model and forecast asset price movements using a multifractal framework. It uses concepts from fractal geometry and stochastic processes, specifically the Multifractal Model of Asset Returns (MMAR) and fractional Brownian motion (fBm), to generate price forecasts based on historical price data. The indicator visualizes potential future price paths as colored lines, providing traders with a probabilistic view of price trends over a specified trading time scale. Below is a detailed breakdown of the indicator’s functionality, inputs, calculations, and visualization.
Overview
Purpose: The indicator forecasts future price movements by simulating multiple price paths based on a multifractal model, which accounts for the complex, non-linear behavior of financial markets.
Key Concepts:
Multifractal Model of Asset Returns (MMAR): Models price movements as a multifractal process, capturing varying degrees of volatility and self-similarity across different time scales.
Fractional Brownian Motion (fBm): A generalization of Brownian motion that incorporates long-range dependence and self-similarity, controlled by the Hurst exponent.
Binomial Cascade: Used to model trading time, introducing heterogeneity in time scales to reflect market activity bursts.
Hurst Exponent: Measures the degree of long-term memory in the price series (persistence, randomness, or mean-reversion).
Rescaled Range (R/S) Analysis: Estimates the Hurst exponent to quantify the fractal nature of the price series.
Inputs
The indicator allows users to customize its behavior through several input parameters, each influencing the multifractal model and forecast generation:
Maximum Lag (max_lag):
Type: Integer
Default: 50
Minimum: 5
Purpose: Determines the maximum lag used in the rescaled range (R/S) analysis to calculate the Hurst exponent. A higher lag increases the sample size for Hurst estimation but may smooth out short-term dynamics.
2 to the n values in the Multifractal Model (n):
Type: Integer
Default: 4
Purpose: Defines the resolution of the multifractal model by setting the size of arrays used in calculations (N = 2^n). For example, n=4 results in N=16 data points. Larger n increases computational complexity and detail but may exceed Pine Script’s array size limits (capped at 100,000).
Multiplier for Binomial Cascade (m):
Type: Float
Default: 0.8
Purpose: Controls the asymmetry in the binomial cascade, which models trading time. The multiplier m (and its complement 2.0 - m) determines how mass is distributed across time scales. Values closer to 1 create more balanced cascades, while values further from 1 introduce more variability.
Length Scale for fBm (L):
Type: Float
Default: 100,000.0
Purpose: Scales the fractional Brownian motion output, affecting the amplitude of simulated price paths. Larger values increase the magnitude of forecasted price movements.
Cumulative Sum (cum):
Type: Integer (0 or 1)
Default: 1
Purpose: Toggles whether the fBm output is cumulatively summed (1=On, 0=Off). When enabled, the fBm series is accumulated to simulate a price path with memory, resembling a random walk with long-range dependence.
Trading Time Scale (T):
Type: Integer
Default: 5
Purpose: Defines the forecast horizon in bars (20 bars into the future). It also scales the binomial cascade’s output to align with the desired trading time frame.
Number of Simulations (num_simulations):
Type: Integer
Default: 5
Minimum: 1
Purpose: Specifies how many forecast paths are simulated and plotted. More simulations provide a broader range of possible price outcomes but increase computational load.
Core Calculations
The indicator combines several mathematical and statistical techniques to generate price forecasts. Below is a step-by-step explanation of its calculations:
Log Returns (lgr):
The indicator calculates log returns as math.log(close / close ) when both the current and previous close prices are positive. This measures the relative price change in a logarithmic scale, which is standard for financial time series analysis to stabilize variance.
Hurst Exponent Estimation (get_hurst_exponent):
Purpose: Estimates the Hurst exponent (H) to quantify the degree of long-term memory in the price series.
Method: Uses rescaled range (R/S) analysis:
For each lag from 2 to max_lag, the function calc_rescaled_range computes the rescaled range:
Calculate the mean of the log returns over the lag period.
Compute the cumulative deviation from the mean.
Find the range (max - min) of the cumulative deviation.
Divide the range by the standard deviation of the log returns to get the rescaled range.
The log of the rescaled range (log(R/S)) is regressed against the log of the lag (log(lag)) using the polyfit_slope function.
The slope of this regression is the Hurst exponent (H).
Interpretation:
H = 0.5: Random walk (no memory, like standard Brownian motion).
H > 0.5: Persistent behavior (trends tend to continue).
H < 0.5: Mean-reverting behavior (price tends to revert to the mean).
Fractional Brownian Motion (get_fbm):
Purpose: Generates a fractional Brownian motion series to model price movements with long-range dependence.
Inputs: n (array size 2^n), H (Hurst exponent), L (length scale), cum (cumulative sum toggle).
Method:
Computes covariance for fBm using the formula: 0.5 * (|i+1|^(2H) - 2 * |i|^(2H) + |i-1|^(2H)).
Uses Hosking’s method (referenced from Columbia University’s implementation) to generate fBm:
Initializes arrays for covariance (cov), intermediate calculations (phi, psi), and output.
Iteratively computes the fBm series by incorporating a random term scaled by the variance (v) and covariance structure.
Applies scaling based on L / N^H to adjust the amplitude.
Optionally applies cumulative summation if cum = 1 to produce a path with memory.
Output: An array of 2^n values representing the fBm series.
Binomial Cascade (get_binomial_cascade):
Purpose: Models trading time (theta) to account for non-uniform market activity (e.g., bursts of volatility).
Inputs: n (array size 2^n), m (multiplier), T (trading time scale).
Method:
Initializes an array of size 2^n with values of 1.0.
Iteratively applies a binomial cascade:
For each block (from 0 to n-1), splits the array into segments.
Randomly assigns a multiplier (m or 2.0 - m) to each segment, redistributing mass.
Normalizes the array by dividing by its sum and scales by T.
Checks for array size limits to prevent Pine Script errors.
Output: An array (theta) representing the trading time, which warps the fBm to reflect market activity.
Interpolation (interpolate_fbm):
Purpose: Maps the fBm series to the trading time scale to produce a forecast.
Method:
Computes the cumulative sum of theta and normalizes it to .
Interpolates the fBm series linearly based on the normalized trading time.
Ensures the output aligns with the trading time scale (T).
Output: An array of interpolated fBm values representing log returns over the forecast horizon.
Price Path Generation:
For each simulation (up to num_simulations):
Generates an fBm series using get_fbm.
Interpolates it with the trading time (theta) using interpolate_fbm.
Converts log returns to price levels:
Starts with the current close price.
For each step i in the forecast horizon (T), computes the price as prev_price * exp(log_return).
Output: An array of price levels for each simulation.
Visualization:
Trigger: Updates every T bars when the bar state is confirmed (barstate.isconfirmed).
Process:
Clears previous lines from line_array.
For each simulation, plots a line from the current bar’s close price to the forecasted price at bar_index + T.
Colors the line using a gradient (color.from_gradient) based on the final forecasted price relative to the minimum and maximum forecasted prices across all simulations (red for lower prices, teal for higher prices).
Output: Multiple colored lines on the chart, each representing a possible price path over the next T bars.
How It Works on the Chart
Initialization: On each bar, the indicator calculates the Hurst exponent (H) using historical log returns and prepares the trading time (theta) using the binomial cascade.
Forecast Generation: Every T bars, it generates num_simulations price paths:
Each path starts at the current close price.
Uses fBm to model log returns, warped by the trading time.
Converts log returns to price levels.
Plotting: Draws lines from the current bar to the forecasted price T bars ahead, with colors indicating relative price levels.
Dynamic Updates: The forecast updates every T bars, replacing old lines with new ones based on the latest price data and calculations.
Key Features
Multifractal Modeling: Captures complex market dynamics by combining fBm (long-range dependence) with a binomial cascade (non-uniform time).
Customizable Parameters: Allows users to adjust the forecast horizon, model resolution, scaling, and number of simulations.
Probabilistic Forecast: Multiple simulations provide a range of possible price outcomes, helping traders assess uncertainty.
Visual Clarity: Gradient-colored lines make it easy to distinguish bullish (teal) and bearish (red) forecasts.
Potential Use Cases
Trend Analysis: Identify potential price trends or reversals based on the direction and spread of forecast lines.
Risk Assessment: Evaluate the range of possible price outcomes to gauge market uncertainty.
Volatility Analysis: The Hurst exponent and binomial cascade provide insights into market persistence and volatility clustering.
Limitations
Computational Intensity: Large values of n or num_simulations may slow down execution or hit Pine Script’s array size limits.
Randomness: The binomial cascade and fBm rely on random terms (math.random), which may lead to variability between runs.
Assumptions: The model assumes log-normal price movements and fractal behavior, which may not always hold in extreme market conditions.
Adjusting Inputs:
Set max_lag based on the desired depth of historical analysis.
Adjust n for model resolution (start with 4–6 to avoid performance issues).
Tune m to control trading time variability (0.5–1.5 is typical).
Set L to scale the forecast amplitude (experiment with values like 10,000–1,000,000).
Choose T based on your trading horizon (20 for short-term, 50 for longer-term for example).
Select num_simulations for the number of forecast paths (5–10 is reasonable for visualization).
Interpret Output:
Teal lines suggest bullish scenarios, red lines suggest bearish scenarios.
A wide spread of lines indicates high uncertainty; convergence suggests a stronger trend.
Monitor Updates: Forecasts update every T bars, so check the chart periodically for new projections.
Chart Examples
This is a daily AMEX:SPY chart with default settings. We see the simulations being done every T bars and they provide a range for us to analyze with a few simulations still in the range.
On this intraday PEPPERSTONE:COCOA chart I modified the Length Scale for fBm, L, parameter to be 1000 from 100000. Adjusting the parameter as you switch between timeframes can give you more contextual simulations.
On BITSTAMP:ETHUSD I modified the L to be 1000000 to have a more contextual set of simulations with crypto's volatile nature.
With L at 100000 we see the range for NASDAQ:TLT is correctly simulated. The recent pop stays within the bounds of the highest simulation. Note this is a cherry picked example to show the power and potential of these simulations.
Technical Notes
Error Handling: The script includes checks for array size limits and division by zero (math.abs(denominator) > 1e-10, v := math.max(v, 1e-10)).
External Reference: The fBm implementation is based on Hosking’s method (www.columbia.edu), ensuring a robust algorithm.
Conclusion
The Multifractal Forecast is a powerful tool for traders seeking to model complex market dynamics using a multifractal framework. By combining fBm, binomial cascades, and Hurst exponent analysis, it generates probabilistic price forecasts that account for long-range dependence and non-uniform market activity. Its customizable inputs and clear visualizations make it suitable for both technical analysis and strategy development, though users should be mindful of its computational demands and parameter sensitivity. For optimal use, experiment with input settings and validate forecasts against other technical indicators or market conditions.
CDP - Counter-Directional-Pivot🎯 CDP - Counter-Directional-Pivot
📊 Overview
The Counter-Directional-Pivot (CDP) indicator calculates five critical price levels based on the previous day's OHLC data, specifically designed for multi-timeframe analysis. Unlike standard pivot points, CDP levels are calculated using a unique formula that identifies potential reversal zones where price action often changes direction.
⚡ What Makes This Script Original
This implementation solves several technical challenges that existing pivot indicators face:
🔄 Multi-Timeframe Consistency: Values remain identical across all timeframes (1m, 5m, 1h, daily) - a common problem with many pivot implementations
🔒 Intraday Stability: Uses advanced value-locking technology to prevent the "stepping" effect that occurs when pivot lines shift during the trading session
💪 Robust Data Handling: Optimized for both liquid and illiquid stocks with enhanced data synchronization
🧮 CDP Calculation Formula
The indicator calculates five key levels using the previous day's High (H), Low (L), and Close (C):
CDP = (H + L + C) ÷ 3 (Central Decision Point)
AH = 2×CDP + H – 2×L (Anchor High - Strong Resistance)
NH = 2×CDP – L (Near High - Moderate Resistance)
AL = 2×CDP – 2×H + L (Anchor Low - Strong Support)
NL = 2×CDP – H (Near Low - Moderate Support)
✨ Key Features
🎨 Visual Elements
📈 Five Distinct Price Levels: Each with customizable colors and line styles
🏷️ Smart Label System: Shows exact price values for each level
📋 Optional Value Table: Displays all levels in an organized table format
🎯 Clean Chart Display: Minimal visual clutter while maximizing information
⚙️ Technical Advantages
🔐 Session-Locked Values: Prices are locked at market open, preventing intraday shifts
🔄 Multi-Timeframe Sync: Perfect consistency between daily and intraday charts
✅ Data Validation: Built-in checks ensure reliable calculations
🚀 Performance Optimized: Efficient code structure for fast loading
💼 Trading Applications
🔄 Reversal Zones: AH and AL often act as strong turning points
💥 Breakout Confirmation: Price movement beyond these levels signals trend continuation
🛡️ Risk Management: Use levels for stop-loss and take-profit placement
🏗️ Market Structure: Understand daily ranges and potential price targets
📚 How to Use
🚀 Basic Setup
Add the indicator to your chart (works on any timeframe)
Customize colors for easy identification of support/resistance zones
Enable the value table for quick reference of exact price levels
📈 Trading Strategy Examples
🟢 Long Bias: Look for bounces at NL or AL levels
🔴 Short Bias: Watch for rejections at NH or AH levels
💥 Breakout Trading: Enter positions when price decisively breaks through anchor levels
↔️ Range Trading: Use CDP as the central reference point for range-bound markets
🎯 Advanced Strategy Combinations
RSI Integration for Enhanced Signals: 📊
📉 Oversold Bounces: Combine RSI below 30 with price touching AL/NL levels for high-probability long entries
📈 Overbought Rejections: Look for RSI above 70 with price rejecting AH/NH levels for short opportunities
🔍 Divergence Confirmation: When RSI shows bullish divergence at support levels (AL/NL) or bearish divergence at resistance levels (AH/NH), it often signals stronger reversal potential
⚡ Momentum Confluence: RSI crossing 50 while price breaks through CDP can confirm trend direction changes
⚙️ Configuration Options
🎨 Line Customization: Adjust width, style (solid/dashed/dotted), and colors
👁️ Display Preferences: Toggle individual levels, labels, and value table
📍 Table Position: Place the value table anywhere on your chart
🔔 Alert System: Get notifications when price crosses key levels
🔧 Technical Implementation Details
🎯 Data Reliability
The script uses request.security() with lookahead settings to ensure historical accuracy while maintaining real-time functionality. The value-locking mechanism prevents the common issue where pivot levels shift during the trading day.
🔄 Multi-Timeframe Logic
⏰ Intraday Charts: Display previous day's calculated levels as stable horizontal lines
📅 Daily Charts: Show current day's levels based on yesterday's OHLC
🔍 Consistency Check: All timeframes reference the same source data
🤔 Why CDP vs Standard Pivots?
Counter-Directional Pivots often provide more accurate reversal points than traditional pivot calculations because they incorporate the relationship between high/low ranges and closing prices more effectively. The formula creates levels that better reflect market psychology and institutional trading behaviors.
💡 Best Practices
💧 Use on liquid markets for most reliable results
📊 RSI Combination: Add RSI indicator for overbought/oversold confirmation and divergence analysis
📊 Combine with volume analysis for confirmation
🔍 Consider multiple timeframe analysis (daily levels on hourly charts)
📝 Test thoroughly in paper trading before live implementation
💪 Example Market Applications
NASDAQ:AAPL AAPL - Tech stock breakouts through AH levels
$NYSE:SPY SPY - Index trading with CDP range analysis
NASDAQ:TSLA TSLA - Volatile stock reversals at AL/NL levels
⚠️ This indicator is designed for educational and analytical purposes. Always combine with proper risk management and additional technical analysis tools.
Ergodic Market Divergence (EMD)Ergodic Market Divergence (EMD)
Bridging Statistical Physics and Market Dynamics Through Ensemble Analysis
The Revolutionary Concept: When Physics Meets Trading
After months of research into ergodic theory—a fundamental principle in statistical mechanics—I've developed a trading system that identifies when markets transition between predictable and unpredictable states. This indicator doesn't just follow price; it analyzes whether current market behavior will persist or revert, giving traders a scientific edge in timing entries and exits.
The Core Innovation: Ergodic Theory Applied to Markets
What Makes Markets Ergodic or Non-Ergodic?
In statistical physics, ergodicity determines whether a system's future resembles its past. Applied to trading:
Ergodic Markets (Mean-Reverting)
- Time averages equal ensemble averages
- Historical patterns repeat reliably
- Price oscillates around equilibrium
- Traditional indicators work well
Non-Ergodic Markets (Trending)
- Path dependency dominates
- History doesn't predict future
- Price creates new equilibrium levels
- Momentum strategies excel
The Mathematical Framework
The Ergodic Score combines three critical divergences:
Ergodic Score = (Price Divergence × Market Stress + Return Divergence × 1000 + Volatility Divergence × 50) / 3
Where:
Price Divergence: How far current price deviates from market consensus
Return Divergence: Momentum differential between instrument and market
Volatility Divergence: Volatility regime misalignment
Market Stress: Adaptive multiplier based on current conditions
The Ensemble Analysis Revolution
Beyond Single-Instrument Analysis
Traditional indicators analyze one chart in isolation. EMD monitors multiple correlated markets simultaneously (SPY, QQQ, IWM, DIA) to detect systemic regime changes. This ensemble approach:
Reveals Hidden Divergences: Individual stocks may diverge from market consensus before major moves
Filters False Signals: Requires broader market confirmation
Identifies Regime Shifts: Detects when entire market structure changes
Provides Context: Shows if moves are isolated or systemic
Dynamic Threshold Adaptation
Unlike fixed-threshold systems, EMD's boundaries evolve with market conditions:
Base Threshold = SMA(Ergodic Score, Lookback × 3)
Adaptive Component = StDev(Ergodic Score, Lookback × 2) × Sensitivity
Final Threshold = Smoothed(Base + Adaptive)
This creates context-aware signals that remain effective across different market environments.
The Confidence Engine: Know Your Signal Quality
Multi-Factor Confidence Scoring
Every signal receives a confidence score based on:
Signal Clarity (0-35%): How decisively the ergodic threshold is crossed
Momentum Strength (0-25%): Rate of ergodic change
Volatility Alignment (0-20%): Whether volatility supports the signal
Market Quality (0-20%): Price convergence and path dependency factors
Real-Time Confidence Updates
The Live Confidence metric continuously updates, showing:
- Current opportunity quality
- Market state clarity
- Historical performance influence
- Signal recency boost
- Visual Intelligence System
Adaptive Ergodic Field Bands
Dynamic bands that expand and contract based on market state:
Primary Color: Ergodic state (mean-reverting)
Danger Color: Non-ergodic state (trending)
Band Width: Expected price movement range
Squeeze Indicators: Volatility compression warnings
Quantum Wave Ribbons
Triple EMA system (8, 21, 55) revealing market flow:
Compressed Ribbons: Consolidation imminent
Expanding Ribbons: Directional move developing
Color Coding: Matches current ergodic state
Phase Transition Signals
Clear entry/exit markers at regime changes:
Bull Signals: Ergodic restoration (mean reversion opportunity)
Bear Signals: Ergodic break (trend following opportunity)
Confidence Labels: Percentage showing signal quality
Visual Intensity: Stronger signals = deeper colors
Professional Dashboard Suite
Main Analytics Panel (Top Right)
Market State Monitor
- Current regime (Ergodic/Non-Ergodic)
- Ergodic score with threshold
- Path dependency strength
- Quantum coherence percentage
Divergence Metrics
- Price divergence with severity
- Volatility regime classification
- Strategy mode recommendation
- Signal strength indicator
Live Intelligence
- Real-time confidence score
- Color-coded risk levels
- Dynamic strategy suggestions
Performance Tracking (Left Panel)
Signal Analytics
- Total historical signals
- Win rate with W/L breakdown
- Current streak tracking
- Closed trade counter
Regime Analysis
- Current market behavior
- Bars since last signal
- Recommended actions
- Average confidence trends
Strategy Command Center (Bottom Right)
Adaptive Recommendations
- Active strategy mode
- Primary approach (mean reversion/momentum)
- Suggested indicators ("weapons")
- Entry/exit methodology
- Risk management guidance
- Comprehensive Input Guide
Core Algorithm Parameters
Analysis Period (10-100 bars)
Scalping (10-15): Ultra-responsive, more signals, higher noise
Day Trading (20-30): Balanced sensitivity and stability
Swing Trading (40-100): Smooth signals, major moves only Default: 20 - optimal for most timeframes
Divergence Threshold (0.5-5.0)
Hair Trigger (0.5-1.0): Catches every wiggle, many false signals
Balanced (1.5-2.5): Good signal-to-noise ratio
Conservative (3.0-5.0): Only extreme divergences Default: 1.5 - best risk/reward balance
Path Memory (20-200 bars)
Short Memory (20-50): Recent behavior focus, quick adaptation
Medium Memory (50-100): Balanced historical context
Long Memory (100-200): Emphasizes established patterns Default: 50 - captures sufficient history without lag
Signal Spacing (5-50 bars)
Aggressive (5-10): Allows rapid-fire signals
Normal (15-25): Prevents clustering, maintains flow
Conservative (30-50): Major setups only Default: 15 - optimal trade frequency
Ensemble Configuration
Select markets for consensus analysis:
SPY: Broad market sentiment
QQQ: Technology leadership
IWM: Small-cap risk appetite
DIA: Blue-chip stability
More instruments = stronger consensus but potentially diluted signals
Visual Customization
Color Themes (6 professional options):
Quantum: Cyan/Pink - Modern trading aesthetic
Matrix: Green/Red - Classic terminal look
Heat: Blue/Red - Temperature metaphor
Neon: Cyan/Magenta - High contrast
Ocean: Turquoise/Coral - Calming palette
Sunset: Red-orange/Teal - Warm gradients
Display Controls:
- Toggle each visual component
- Adjust transparency levels
- Scale dashboard text
- Show/hide confidence scores
- Trading Strategies by Market State
- Ergodic State Strategy (Primary Color Bands)
Market Characteristics
- Price oscillates predictably
- Support/resistance hold
- Volume patterns repeat
- Mean reversion dominates
Optimal Approach
Entry: Fade moves at band extremes
Target: Middle band (equilibrium)
Stop: Just beyond outer bands
Size: Full confidence-based position
Recommended Tools
- RSI for oversold/overbought
- Bollinger Bands for extremes
- Volume profile for levels
- Non-Ergodic State Strategy (Danger Color Bands)
Market Characteristics
- Price trends persistently
- Levels break decisively
- Volume confirms direction
- Momentum accelerates
Optimal Approach
Entry: Breakout from bands
Target: Trail with expanding bands
Stop: Inside opposite band
Size: Scale in with trend
Recommended Tools
- Moving average alignment
- ADX for trend strength
- MACD for momentum
- Advanced Features Explained
Quantum Coherence Metric
Measures phase alignment between individual and ensemble behavior:
80-100%: Perfect sync - strong mean reversion setup
50-80%: Moderate alignment - mixed signals
0-50%: Decoherence - trending behavior likely
Path Dependency Analysis
Quantifies how much history influences current price:
Low (<30%): Technical patterns reliable
Medium (30-50%): Mixed influences
High (>50%): Fundamental shift occurring
Volatility Regime Classification
Contextualizes current volatility:
Normal: Standard strategies apply
Elevated: Widen stops, reduce size
Extreme: Defensive mode required
Signal Strength Indicator
Real-time opportunity quality:
- Distance from threshold
- Momentum acceleration
- Cross-validation factors
Risk Management Framework
Position Sizing by Confidence
90%+ confidence = 100% position size
70-90% confidence = 75% position size
50-70% confidence = 50% position size
<50% confidence = 25% or skip
Dynamic Stop Placement
Ergodic State: ATR × 1.0 from entry
Non-Ergodic State: ATR × 2.0 from entry
Volatility Adjustment: Multiply by current regime
Multi-Timeframe Alignment
- Check higher timeframe regime
- Confirm ensemble consensus
- Verify volume participation
- Align with major levels
What Makes EMD Unique
Original Contributions
First Ergodic Theory Trading Application: Transforms abstract physics into practical signals
Ensemble Market Analysis: Revolutionary multi-market divergence system
Adaptive Confidence Engine: Institutional-grade signal quality metrics
Quantum Coherence: Novel market alignment measurement
Smart Signal Management: Prevents clustering while maintaining responsiveness
Technical Innovations
Dynamic Threshold Adaptation: Self-adjusting sensitivity
Path Memory Integration: Historical dependency weighting
Stress-Adjusted Scoring: Market condition normalization
Real-Time Performance Tracking: Built-in strategy analytics
Optimization Guidelines
By Timeframe
Scalping (1-5 min)
Period: 10-15
Threshold: 0.5-1.0
Memory: 20-30
Spacing: 5-10
Day Trading (5-60 min)
Period: 20-30
Threshold: 1.5-2.5
Memory: 40-60
Spacing: 15-20
Swing Trading (1H-1D)
Period: 40-60
Threshold: 2.0-3.0
Memory: 80-120
Spacing: 25-35
Position Trading (1D-1W)
Period: 60-100
Threshold: 3.0-5.0
Memory: 100-200
Spacing: 40-50
By Market Condition
Trending Markets
- Increase threshold
- Extend memory
- Focus on breaks
Ranging Markets
- Decrease threshold
- Shorten memory
- Focus on restores
Volatile Markets
- Increase spacing
- Raise confidence requirement
- Reduce position size
- Integration with Other Analysis
- Complementary Indicators
For Ergodic States
- RSI divergences
- Bollinger Band squeezes
- Volume profile nodes
- Support/resistance levels
For Non-Ergodic States
- Moving average ribbons
- Trend strength indicators
- Momentum oscillators
- Breakout patterns
- Fundamental Alignment
- Check economic calendar
- Monitor sector rotation
- Consider market themes
- Evaluate risk sentiment
Troubleshooting Guide
Too Many Signals:
- Increase threshold
- Extend signal spacing
- Raise confidence minimum
Missing Opportunities
- Decrease threshold
- Reduce signal spacing
- Check ensemble settings
Poor Win Rate
- Verify timeframe alignment
- Confirm volume participation
- Review risk management
Disclaimer
This indicator is for educational and informational purposes only. It does not constitute financial advice. Trading involves substantial risk of loss and is not suitable for all investors. Past performance does not guarantee future results.
The ergodic framework provides unique market insights but cannot predict future price movements with certainty. Always use proper risk management, conduct your own analysis, and never risk more than you can afford to lose.
This tool should complement, not replace, comprehensive trading strategies and sound judgment. Markets remain inherently unpredictable despite advanced analysis techniques.
Transform market chaos into trading clarity with Ergodic Market Divergence.
Created with passion for the TradingView community
Trade with insight. Trade with anticipation.
— Dskyz , for DAFE Trading Systems