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!
Cari dalam skrip untuk "港股央企红利etf"
Improved EMA & CDC Trailing Stop StrategyImproved EMA & CDC Trailing Stop Strategy
Objective: This strategy seeks to exploit potential trend reversals or continuations using Exponential Moving Averages (EMAs) and a trailing stop based on the Chande Dynamic Convergence Divergence (CDC) ATR method.
Components:
Exponential Moving Averages (EMAs):
60-period EMA (Blue Line): Faster-moving average that reacts more quickly to price changes.
90-period EMA (Red Line): Slower-moving average that provides a smoother indication of long-term price direction.
MACD Indicator:
Utilized to confirm the trend direction. When the MACD line is above its signal line, it may indicate a bullish trend. Conversely, when the MACD line is below its signal line, it may indicate a bearish trend.
CDC Trailing Stop ATR:
Used to set dynamic stop-loss levels that adjust with market volatility. This stop is based on the Average True Range (ATR) with a user-defined multiplier, providing the strategy with a flexible way to protect against adverse price movements.
Profit Targets:
Based on a multiple of the ATR, this sets an objective level at which to take profits, ensuring gains are captured while potentially still leaving room for further profitable movement.
Trading Rules:
Entry:
Long (Buy) Entry Conditions:
Price is above the 60-period EMA.
The 60-period EMA is above the 90-period EMA.
The MACD line is above its signal line.
Price is above the calculated CDC Trailing Stop ATR level.
Short (Sell) Entry Conditions:
Price is below the 60-period EMA.
The 60-period EMA is below the 90-period EMA.
The MACD line is below its signal line.
Price is below the calculated CDC Trailing Stop ATR level.
Exit:
Long (Buy) Exit Conditions:
Price reaches the predetermined profit target based on the ATR.
Price drops below the CDC Trailing Stop ATR level.
Short (Sell) Exit Conditions:
Price reaches the predetermined profit target based on the ATR.
Price rises above the CDC Trailing Stop ATR level.
Visualization:
The strategy displays the 60-period and 90-period EMAs on the chart.
The CDC Trailing Stop ATR levels for both long and short trades are also plotted for clarity.
The MACD Histogram is shown to visualize the difference between the MACD line and its signal line.
Recommendations: Before deploying this strategy, traders should backtest it across various historical data sets and market conditions. Regularly reviewing and potentially adjusting the strategy is recommended as market dynamics evolve.
Rule of 16 - LowerThe "Rule of 16" is a simple guideline used by traders and investors to estimate the expected annualized volatility of the S&P 500 Index (SPX) based on the level of the CBOE Volatility Index (VIX). The VIX, often referred to as the "fear gauge" or "fear index," measures the market's expectations for future volatility. It is calculated using the implied volatility of a specific set of S&P 500 options.
The Rule of 16 provides a rough approximation of the expected annualized percentage change in the S&P 500 based on the VIX level. Here's how it works:
Find the VIX level: Look up the current value of the VIX. Let's say it's currently at 20.
Apply the Rule of 16: Divide the VIX level by 16. In this example, 20 divided by 16 equals 1.25.
Result: The result of this calculation represents the expected annualized percentage change in the S&P 500. In this case, 1.25% is the estimated annualized volatility.
So, according to the Rule of 16, a VIX level of 20 suggests an expected annualized volatility of approximately 1.25% in the S&P 500.
Here's how you can use the Rule of 16:
Market Sentiment: The VIX is often used as an indicator of market sentiment. When the VIX is high (above its historical average), it suggests that investors expect higher market volatility, indicating potential uncertainty or fear in the markets. Conversely, when the VIX is low, it suggests lower expected volatility and potentially more confidence in the markets.
Risk Management: Traders and investors can use the Rule of 16 to estimate the potential risk associated with their portfolios. For example, if you have a portfolio of S&P 500 stocks and the VIX is at 20, you can use the Rule of 16 to estimate that the annualized volatility of your portfolio may be around 1.25%. This information can help you make decisions about position sizing and risk management.
Option Pricing: Options traders may use the Rule of 16 to get a quick estimate of the implied annualized volatility priced into S&P 500 options. It can help them assess whether options are relatively expensive or cheap based on the VIX level.
It's important to note that the Rule of 16 is a simplification and provides only a rough estimate of expected volatility. Market conditions and the relationship between the VIX and the S&P 500 can change over time. Therefore, it should be used as a guideline rather than a precise forecasting tool. Traders and investors should consider other factors and use additional analysis to make informed decisions.
[Excalibur] Ehlers AutoCorrelation Periodogram ModifiedKeep your coins folks, I don't need them, don't want them. If you wish be generous, I do hope that charitable peoples worldwide with surplus food stocks may consider stocking local food banks before stuffing monetary bank vaults, for the crusade of remedying the needs of less than fortunate children, parents, elderly, homeless veterans, and everyone else who deserves nutritional sustenance for the soul.
DEDICATION:
This script is dedicated to the memory of Nikolai Dmitriyevich Kondratiev (Никола́й Дми́триевич Кондра́тьев) as tribute for being a pioneering economist and statistician, paving the way for modern econometrics by advocation of rigorous and empirical methodologies. One of his most substantial contributions to the study of business cycle theory include a revolutionary hypothesis recognizing the existence of dynamic cycle-like phenomenon inherent to economies that are characterized by distinct phases of expansion, stagnation, recession and recovery, what we now know as "Kondratiev Waves" (K-waves). Kondratiev was one of the first economists to recognize the vital significance of applying quantitative analysis on empirical data to evaluate economic dynamics by means of statistical methods. His understanding was that conceptual models alone were insufficient to adequately interpret real-world economic conditions, and that sophisticated analysis was necessary to better comprehend the nature of trending/cycling economic behaviors. Additionally, he recognized prosperous economic cycles were predominantly driven by a combination of technological innovations and infrastructure investments that resulted in profound implications for economic growth and development.
I will mention this... nation's economies MUST be supported and defended to continuously evolve incrementally in order to flourish in perpetuity OR suffer through eras with lasting ramifications of societal stagnation and implosion.
Analogous to the realm of economics, aperiodic cycles/frequencies, both enduring and ephemeral, do exist in all facets of life, every second of every day. To name a few that any blind man can naturally see are: heartbeat (cardiac cycles), respiration rates, circadian rhythms of sleep, powerful magnetic solar cycles, seasonal cycles, lunar cycles, weather patterns, vegetative growth cycles, and ocean waves. Do not pretend for one second that these basic aforementioned examples do not affect business cycle fluctuations in minuscule and monumental ways hour to hour, day to day, season to season, year to year, and decade to decade in every nation on the planet. Kondratiev's original seminal theories in macroeconomics from nearly a century ago have proven remarkably prescient with many of his antiquated elementary observations/notions/hypotheses in macroeconomics being scholastically studied and topically researched further. Therefore, I am compelled to honor and recognize his statistical insight and foresight.
If only.. Kondratiev could hold a pocket sized computer in the cup of both hands bearing the TradingView logo and platform services, I truly believe he would be amazed in marvelous delight with a GARGANTUAN smile on his face.
INTRODUCTION:
Firstly, this is NOT technically speaking an indicator like most others. I would describe it as an advanced cycle period detector to obtain market data spectral estimates with low latency and moderate frequency resolution. Developers can take advantage of this detector by creating scripts that utilize a "Dominant Cycle Source" input to adaptively govern algorithms. Be forewarned, I would only recommend this for advanced developers, not novice code dabbling. Although, there is some Pine wizardry introduced here for novice Pine enthusiasts to witness and learn from. AI did describe the code into one super-crunched sentence as, "a rare feat of exceptionally formatted code masterfully balancing visual clarity, precision, and complexity to provide immense educational value for both programming newcomers and expert Pine coders alike."
Understand all of the above aforementioned? Buckle up and proceed for a lengthy read of verbose complexity...
This is my enhanced and heavily modified version of autocorrelation periodogram (ACP) for Pine Script v5.0. It was originally devised by the mathemagician John Ehlers for detecting dominant cycles (frequencies) in an asset's price action. I have been sitting on code similar to this for a long time, but I decided to unleash the advanced code with my fashion. Originally Ehlers released this with multiple versions, one in a 2016 TASC article and the other in his last published 2013 book "Cycle Analytics for Traders", chapter 8. He wasn't joking about "concepts of advanced technical trading" and ACP is nowhere near to his most intimidating and ingenious calculations in code. I will say the book goes into many finer details about the original periodogram, so if you wish to delve into even more elaborate info regarding Ehlers' original ACP form AND how you may adapt algorithms, you'll have to obtain one. Note to reader, comparing Ehlers' original code to my chimeric code embracing the "Power of Pine", you will notice they have little resemblance.
What you see is a new species of autocorrelation periodogram combining Ehlers' innovation with my fascinations of what ACP could be in a Pine package. One other intention of this script's code is to pay homage to Ehlers' lifelong works. Like Kondratiev, Ehlers is also a hardcore cycle enthusiast. I intend to carry on the fire Ehlers envisioned and I believe that is literally displayed here as a pleasant "fiery" example endowed with Pine. With that said, I tried to make the code as computationally efficient as possible, without going into dozens of more crazy lines of code to speed things up even more. There's also a few creative modifications I made by making alterations to the originating formulas that I felt were improvements, one of them being lag reduction. By recently questioning every single thing I thought I knew about ACP, combined with the accumulation of my current knowledge base, this is the innovative revision I came up with. I could have improved it more but decided not to mind thrash too many TV members, maybe later...
I am now confident Pine should have adequate overhead left over to attach various indicators to the dominant cycle via input.source(). TV, I apologize in advance if in the future a server cluster combusts into a raging inferno... Coders, be fully prepared to build entire algorithms from pure raw code, because not all of the built-in Pine functions fully support dynamic periods (e.g. length=ANYTHING). Many of them do, as this was requested and granted a while ago, but some functions are just inherently finicky due to implementation combinations and MUST be emulated via raw code. I would imagine some comprehensive library or numerous authored scripts have portions of raw code for Pine built-ins some where on TV if you look diligently enough.
Notice: Unfortunately, I will not provide any integration support into member's projects at all. I have my own projects that require way too much of my day already. While I was refactoring my life (forgoing many other "important" endeavors) in the early half of 2023, I primarily focused on this code over and over in my surplus time. During that same time I was working on other innovations that are far above and beyond what this code is. I hope you understand.
The best way programmatically may be to incorporate this code into your private Pine project directly, after brutal testing of course, but that may be too challenging for many in early development. Being able to see the periodogram is also beneficial, so input sourcing may be the "better" avenue to tether portions of the dominant cycle to algorithms. Unique indication being able to utilize the dominantCycle may be advantageous when tethering this script to those algorithms. The easiest way is to manually set your indicators to what ACP recognizes as the dominant cycle, but that's actually not considered dynamic real time adaption of an indicator. Different indicators may need a proportion of the dominantCycle, say half it's value, while others may need the full value of it. That's up to you to figure that out in practice. Sourcing one or more custom indicators dynamically to one detector's dominantCycle may require code like this: `int sourceDC = int(math.max(6, math.min(49, input.source(close, "Dominant Cycle Source"))))`. Keep in mind, some algos can use a float, while algos with a for loop require an integer.
I have witnessed a few attempts by talented TV members for a Pine based autocorrelation periodogram, but not in this caliber. Trust me, coding ACP is no ordinary task to accomplish in Pine and modifying it blessed with applicable improvements is even more challenging. For over 4 years, I have been slowly improving this code here and there randomly. It is beautiful just like a real flame, but... this one can still burn you! My mind was fried to charcoal black a few times wrestling with it in the distant past. My very first attempt at translating ACP was a month long endeavor because PSv3 simply didn't have arrays back then. Anyways, this is ACP with a newer engine, I hope you enjoy it. Any TV subscriber can utilize this code as they please. If you are capable of sufficiently using it properly, please use it wisely with intended good will. That is all I beg of you.
Lastly, you now see how I have rasterized my Pine with Ehlers' swami-like tech. Yep, this whole time I have been using hline() since PSv3, not plot(). Evidently, plot() still has a deficiency limited to only 32 plots when it comes to creating intense eye candy indicators, the last I checked. The use of hline() is the optimal choice for rasterizing Ehlers styled heatmaps. This does only contain two color schemes of the many I have formerly created, but that's all that is essentially needed for this gizmo. Anything else is generally for a spectacle or seeing how brutal Pine can be color treated. The real hurdle is being able to manipulate colors dynamically with Merlin like capabilities from multiple algo results. That's the true challenging part of these heatmap contraptions to obtain multi-colored "predator vision" level indication. You now have basic hline() food for thought empowerment to wield as you can imaginatively dream in Pine projects.
PERIODOGRAM UTILITY IN REAL WORLD SCENARIOS:
This code is a testament to the abilities that have yet to be fully realized with indication advancements. Periodograms, spectrograms, and heatmaps are a powerful tool with real-world applications in various fields such as financial markets, electrical engineering, astronomy, seismology, and neuro/medical applications. For instance, among these diverse fields, it may help traders and investors identify market cycles/periodicities in financial markets, support engineers in optimizing electrical or acoustic systems, aid astronomers in understanding celestial object attributes, assist seismologists with predicting earthquake risks, help medical researchers with neurological disorder identification, and detection of asymptomatic cardiovascular clotting in the vaxxed via full body thermography. In either field of study, technologies in likeness to periodograms may very well provide us with a better sliver of analysis beyond what was ever formerly invented. Periodograms can identify dominant cycles and frequency components in data, which may provide valuable insights and possibly provide better-informed decisions. By utilizing periodograms within aspects of market analytics, individuals and organizations can potentially refrain from making blinded decisions and leverage data-driven insights instead.
PERIODOGRAM INTERPRETATION:
The periodogram renders the power spectrum of a signal, with the y-axis representing the periodicity (frequencies/wavelengths) and the x-axis representing time. The y-axis is divided into periods, with each elevation representing a period. In this periodogram, the y-axis ranges from 6 at the very bottom to 49 at the top, with intermediate values in between, all indicating the power of the corresponding frequency component by color. The higher the position occurs on the y-axis, the longer the period or lower the frequency. The x-axis of the periodogram represents time and is divided into equal intervals, with each vertical column on the axis corresponding to the time interval when the signal was measured. The most recent values/colors are on the right side.
The intensity of the colors on the periodogram indicate the power level of the corresponding frequency or period. The fire color scheme is distinctly like the heat intensity from any casual flame witnessed in a small fire from a lighter, match, or camp fire. The most intense power would be indicated by the brightest of yellow, while the lowest power would be indicated by the darkest shade of red or just black. By analyzing the pattern of colors across different periods, one may gain insights into the dominant frequency components of the signal and visually identify recurring cycles/patterns of periodicity.
SETTINGS CONFIGURATIONS BRIEFLY EXPLAINED:
Source Options: These settings allow you to choose the data source for the analysis. Using the `Source` selection, you may tether to additional data streams (e.g. close, hlcc4, hl2), which also may include samples from any other indicator. For example, this could be my "Chirped Sine Wave Generator" script found in my member profile. By using the `SineWave` selection, you may analyze a theoretical sinusoidal wave with a user-defined period, something already incorporated into the code. The `SineWave` will be displayed over top of the periodogram.
Roofing Filter Options: These inputs control the range of the passband for ACP to analyze. Ehlers had two versions of his highpass filters for his releases, so I included an option for you to see the obvious difference when performing a comparison of both. You may choose between 1st and 2nd order high-pass filters.
Spectral Controls: These settings control the core functionality of the spectral analysis results. You can adjust the autocorrelation lag, adjust the level of smoothing for Fourier coefficients, and control the contrast/behavior of the heatmap displaying the power spectra. I provided two color schemes by checking or unchecking a checkbox.
Dominant Cycle Options: These settings allow you to customize the various types of dominant cycle values. You can choose between floating-point and integer values, and select the rounding method used to derive the final dominantCycle values. Also, you may control the level of smoothing applied to the dominant cycle values.
DOMINANT CYCLE VALUE SELECTIONS:
External to the acs() function, the code takes a dominant cycle value returned from acs() and changes its numeric form based on a specified type and form chosen within the indicator settings. The dominant cycle value can be represented as an integer or a decimal number, depending on the attached algorithm's requirements. For example, FIR filters will require an integer while many IIR filters can use a float. The float forms can be either rounded, smoothed, or floored. If the resulting value is desired to be an integer, it can be rounded up/down or just be in an integer form, depending on how your algorithm may utilize it.
AUTOCORRELATION SPECTRUM FUNCTION BASICALLY EXPLAINED:
In the beginning of the acs() code, the population of caches for precalculated angular frequency factors and smoothing coefficients occur. By precalculating these factors/coefs only once and then storing them in an array, the indicator can save time and computational resources when performing subsequent calculations that require them later.
In the following code block, the "Calculate AutoCorrelations" is calculated for each period within the passband width. The calculation involves numerous summations of values extracted from the roofing filter. Finally, a correlation values array is populated with the resulting values, which are normalized correlation coefficients.
Moving on to the next block of code, labeled "Decompose Fourier Components", Fourier decomposition is performed on the autocorrelation coefficients. It iterates this time through the applicable period range of 6 to 49, calculating the real and imaginary parts of the Fourier components. Frequencies 6 to 49 are the primary focus of interest for this periodogram. Using the precalculated angular frequency factors, the resulting real and imaginary parts are then utilized to calculate the spectral Fourier components, which are stored in an array for later use.
The next section of code smooths the noise ridden Fourier components between the periods of 6 and 49 with a selected filter. This species also employs numerous SuperSmoothers to condition noisy Fourier components. One of the big differences is Ehlers' versions used basic EMAs in this section of code. I decided to add SuperSmoothers.
The final sections of the acs() code determines the peak power component for normalization and then computes the dominant cycle period from the smoothed Fourier components. It first identifies a single spectral component with the highest power value and then assigns it as the peak power. Next, it normalizes the spectral components using the peak power value as a denominator. It then calculates the average dominant cycle period from the normalized spectral components using Ehlers' "Center of Gravity" calculation. Finally, the function returns the dominant cycle period along with the normalized spectral components for later external use to plot the periodogram.
POST SCRIPT:
Concluding, I have to acknowledge a newly found analyst for assistance that I couldn't receive from anywhere else. For one, Claude doesn't know much about Pine, is unfortunately color blind, and can't even see the Pine reference, but it was able to intuitively shred my code with laser precise realizations. Not only that, formulating and reformulating my description needed crucial finesse applied to it, and I couldn't have provided what you have read here without that artificial insight. Finding the right order of words to convey the complexity of ACP and the elaborate accompanying content was a daunting task. No code in my life has ever absorbed so much time and hard fricking work, than what you witness here, an ACP gem cut pristinely. I'm unveiling my version of ACP for an empowering cause, in the hopes a future global army of code wielders will tether it to highly functional computational contraptions they might possess. Here is ACP fully blessed poetically with the "Power of Pine" in sublime code. ENJOY!
Contrast Color LibraryThis lightweight library provides a utility method that analyzes any provided background color and automatically chooses the optimal black or white foreground color to ensure maximum visual contrast and readability.
🟠 Algorithm
The library utilizes the HSP Color Model to calculate the brightness of the background color. The formula for this calculation is as follows:
brightness = sqrt(0.299 * R^2 + 0.587 * G^2 + 0.114 * B^2 )
The library chooses black as the foreground color if the brightness exceeds the threshold (default 0.5), and white otherwise.
MarketSmith Stochasticversion=5
This version of the stochastic produces the identical stochastic as used in MarketSmith
The three primary differences from a classic stochastic are as follows:
1. Close values only
2. 5-day ema instead of 3-day simple moving averages for smoothing the fast and slow lines
3. Slow and fast lines are truncated to integer values
by Mike Scott
2023-09-11
Tops & Bottoms by Volume [SS]Hey everyone,
Releasing this indicator that helps you time entries by alerting to potential tops and bottoms in the market.
Background to the indicator:
I was playing around with things that signalled reversals / tops and bottoms in SPSS and R using Pivot Points to mark tops and bottoms. Happened to come across a generally statistically significant relationship between sell to buy volume that was tracked over 10 to 50 candles back and pivot highs and pivot lows.
So I put it into a beta version of an indicator to see how it looked and was a bit surprised.
Since then, I have went back and narrowed down the details of what works/what doesn't work and this is the tentative result!
What it does / How to Use:
It tracks the cumulative buy vs sell volume. Buy volume is cumulated as close > open (or green candles) and sell is open > close (or red candles).
It then cumulates this over a user-defined period (defaulted to 14). It then looks back to see the highest vs lowest areas of sell and buy volume and makes determinations based on this relationship.
The relationship was determined by me using my own analysis and programmed into the indicators algorithm (using highest vs lowest function in pine).
It will plot areas of potential reversal to the upside as green on the histogram or red for a downside reversal. Once this becomes significant enough to signal an actual bottom or top, it will then change the SMA colour from white to green (for bottom) or red (for top).
Your entries generally should be once the SMA turns back to white. So from green to white, you would enter long or inverse for red to white (enter short).
Settings and Customizability:
Here are the key points to keep in mind if you are using this indicator:
Your lookback length should be between 10 to 50. I have left it open for you to modify it below and above this lookback period; however, this is the major periods deemed to be significant in identifying tops and bottoms. Thus, I advise against operating outside of those parameters.
You can toggle between smoothed look or historgram with SMA. The strength in this indicator comes from using the SMA and watching the SMA for signals of reversals, so if you want to filter out the background noise, you can simply look at the plotted SMA. If you want a more responsive indication of impending reversals, leave the smoothed option off and view the histogram in conjunction with the SMA.
The indicator will change the candle colour to red for bearish reversal and green to bullish reversal. This is based on the SMA. You can toggle this off and/or on as desired.
It is recommended to leave ETH (extended trading hours) turned off and RTH turned on.
Please read the instructions carefully.
If you require further assistance, I have posted a tutorial video.
Please be sure you are reading and/or watching carefully.
If you have questions, please feel free to post them below. But bear in mind I likely will not respond if it is already addressed in the description above (this happens often).
Also, feel free to leave your comments or suggestions below as well.
Thanks for checking this out. If you are interested in volume based trading, I suggest also checking out my Buyer to Seller volume indicator which cumulates total buying vs selling volume over a designated lookback period. Both of these used in conjunction are very powerful tools for volume based traders! ( Available here )
NOTE:
The boxes drawn in the chart are my own for demonstration purposes. I unfortunately cannot get the indicator to overlay the boxes on the chart in a separate viewing pane. That is why I opted to use the barcolor function to change the candle color instead :-).
Thanks again everyone and safe trades!
Number of Bars CheatSheetA regular trading day on the New York Stock Exchange (NYSE) consists of two main sessions: the Opening Auction and the Closing Auction, separated by a continuous trading session. Here's a breakdown of the trading day:
1. **Pre-Opening Session**: This session starts at 4:00 AM Eastern Time (ET) and lasts until 9:30 AM ET. During this time, there is limited trading activity, and orders can be entered and canceled. However, most of the trading activity doesn't occur until the regular trading session begins.
2. **Regular Trading Session**: The regular trading session on the NYSE starts at 9:30 AM ET and lasts until 4:00 PM ET. This is the primary trading session where the majority of price bars are formed.
3. **Closing Auction**: After the regular trading session ends at 4:00 PM ET, there is a closing auction period that typically lasts until 4:10 PM ET. During this time, there is a final price discovery process where orders are matched to determine the closing price for each security.
So, during the regular trading session, which is the main focus for most traders and investors, there are a total of 6.5 hours of trading. Trading occurs continuously during this time, with price bars being formed based on the time frame you're looking at. The most common time frames for price bars are one minute, five minutes, 15 minutes, 30 minutes, and one hour, among others. Therefore, the number of price bars in a regular trading day on the NYSE will depend on the time frame you are using for your analysis. For example, if you are using one-minute bars, there will be 6.5 x 60 = 390 price bars in a regular trading day.
VWAP Divergence | Flux ChartsThe VWAP Divergence indicator aims to find divergences between price action and the VWAP indicator. It uses filters to filter out many of the false divergences and alert high quality, accurate signals.
Red dots above the candle represent bearish divergences, while green dots below the candle represent bullish divergences.
The main filter for divergences focuses on ATR and the price movement in the past candles up to the lookback period. Divergences are determined when a price movement over the lookback period is sharp enough to be greater/less than the ATR multiplier multiplied by the ATR.
Settings
Under "Divergence Settings", both the lookback period and ATR multiplier can be adjusted.
Due to the nature of the calculations, the ATR multiplier and the lookback period should be set lower on higher time frames. As price movements become more averaged, for example on the 15 minute chart, sharp price movements happen less frequently and are often contained in fewer candles as they happen on lower time frames. Less volatile stocks such as KO, CL, or BAC should also use lower ATR multipliers and lower lookback periods.
Under "Visual Settings", you can change the color of the VWAP line, show alternating VWAP colors, adjust divergence signal size, and show the VWAP line.
Longonly. ema cross tester WithTolerenceJust a sample script to test ema cross strategy.
Tolerance is included to make the signal tunable.
Candle Size w/ SMAThis simple indicator calculates the absolute size of the candle by the open and close or high and low values and then plots it on a histogram. It also features a simple moving average with a customizable lookback to track the average candle size based on your lookback.
This indicator can be used to spot unusually large or small candles. And can also be used for testing other strategies or indicators related to candle sizes.
Gaussian RibbonThe Gaussian Ribbon utilizes two "Arnaud Legoux" moving averages with the same length to identify changes in trend direction. The plotted channel consists of two lines, one based on the default offset and sigma values, and the other with slightly adjusted customizable parameters.
ALMA is a type of moving average that is related to the Gaussian function through its mathematical formula and the concept of weighted averages.
The ALMA is designed to reduce lag in moving averages and provide more timely responses to price changes. It achieves this by applying a Gaussian distribution (bell-shaped curve) as a weighting function to the price data.
The Gaussian function is used to calculate the weights in the ALMA formula. These weights give more importance to recent price data while gradually reducing the influence of older data points. This results in a smoother and more responsive moving average.
In summary, the Gaussian Ribbon uses the offset and power of the second ALMA to create a lag that still calculates using the same length.
SADROCThe "Smoothed Accumulation/Distribution Rate of Change" (SADROC) indicator draws inspiration from the Chaikin Oscillator's use of accumulation and distribution, formatted in a manner just like the MACD (Moving Average Convergence Divergence) indicator. My goal was to create something with greater speed and accuracy than the classic MACD
Here's a breakdown of its key elements:
Inputs: Users can customize the indicator by specifying the fast length, slow length, and signal length to fit their preferences.
Calculations: The indicator calculates cumulative volume and then computes the Accumulation/Distribution (AD) value based on price and volume data. The SADROC is calculated as the Rate of Change of the exponential moving averages of the price. The difference between these two values is further smoothed to generate the final SADROC value.
Plotting: The indicator plots the SADROC line and a signal line on the chart. Additionally, it includes a histogram that visually represents the difference between SADROC and the signal line.
Market Health OscillatorDesigned to provide traders with a comprehensive view of the overall health of a market. By combining the rate of change of key indicators, the MHO offers insight into potential shifts in market sentiment.
Components:
Price Rate of Change: The MHO considers the rate of change of the price of an asset over a specified period. This element reflects the momentum of the asset's price movement, aiding in the assessment of potential trend shifts.
Volume Rate of Change: Tracking the rate of change of trading volume provides insights into market participation and interest. Changes in volume can signify shifts in market sentiment and potential trend reversals.
Volatility Rate of Change: The rate of change of volatility, often measured using the Average True Range (ATR), helps gauge the level of uncertainty in the market. An increase in volatility can indicate heightened market activity and potential reversals.
Advance-Decline Line: The MHO takes into account the Advance-Decline Line, which compares the number of advancing stocks to declining stocks. This component offers insights into market breadth and the underlying strength of the current trend.
Calculation and Interpretation:
The MHO aggregates the rate of change of these components and combines them to provide a single oscillator reading. This reading is then normalized to a range between -1 and 1. Positive values suggest bullish market health, while negative values indicate bearish conditions. The oscillator's extremes, coupled with divergence patterns, can signal potential market turning points.
Application:
Identify potential trend reversals or corrections by watching for extreme MHO readings.
Assess the overall health of a market by observing the general direction and amplitude of the oscillator.
Look for divergences between price and the MHO for insights into potential shifts in market sentiment.
This was inspired to offer a holistic perspective on market dynamics. By encompassing price, volume, volatility, and breadth factors, the MHO assists in a comprehensive assessment of market health.
The Next Pivot [Kioseff Trading]Hello!
This script "The Next Pivot" uses various similarity measures to compare historical price sequences to the current price sequence!
Features
Find the most similar price sequence up to 100 bars from the current bar
Forecast price path up to 250 bars
Forecast ZigZag up to 250 bars
Spearmen
Pearson
Absolute Difference
Cosine Similarity
Mean Squared Error
Kendall
Forecasted linear regression channel
The image above shows/explains some of the indicator's capabilities!
The image above highlights the projected zig zag (pivots) pattern!
Colors are customizable (:
Additionally, you can plot a forecasted LinReg channel.
Should load times permit it, the script can search all bar history for a correlating sequence. This won't always be possible, contingent on the forecast length, correlation length, and the number of bars on the chart.
Reasonable Assessment
The script uses various similarity measures to find the "most similar" price sequence to what's currently happening. Once found, the subsequent price move (to the most similar sequence) is recorded and projected forward.
So,
1: Script finds most similar price sequence
2: Script takes what happened after and projects forward
While this may be useful, the projection is simply the reaction to a possible one-off "similarity" to what's currently happening. Random fluctuations are likely and, if occurring, similarities between the current price sequence and the "most similar" sequence are plausibly coincidental.
That said, if you have any ideas on cool features to add please let me know!
Thank you (:
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!
ROC Based Buy/Sell SignalsIndicator Explanation:
The "Consolidation Identifier (ROC) with Buy/Sell Signals" indicator is designed to help traders identify potential consolidation zones in the market using the Rate of Change (ROC) indicator. It plots both the positive and negative ROC values, providing insights into price momentum changes. The indicator also includes buy and sell signals that are generated when the positive ROC crosses above the negative ROC (buy signal) or when the negative ROC crosses above the positive ROC (sell signal).
How It Works:
The indicator calculates the ROC of the closing price over a specified period. ROC measures the percentage change in price over a given period. Positive ROC values indicate price increases, while negative ROC values indicate price decreases.
The positive and negative ROC values are plotted on the chart using different colors. The key feature of this indicator is the buy and sell signals that occur when the positive ROC crosses above the negative ROC (buy signal) or when the negative ROC crosses above the positive ROC (sell signal). These signals can help traders identify potential shifts in momentum and potential consolidation zones.
Why It's Useful:
Consolidation Detection: The indicator helps identify periods of potential consolidation in the market. Consolidation zones often precede significant price movements, making them valuable for traders looking to anticipate trends.
Momentum Shifts: The ROC crossovers provide insights into momentum changes. Buy and sell signals can indicate shifts in the market sentiment, helping traders make more informed decisions.
Pairs Well With:
Volume Analysis: Combining this indicator with volume analysis can provide a more comprehensive view of market activity during consolidation zones.
Trend Confirmation Indicators: Pairing with trend-following indicators can help confirm the direction of potential breakout moves following consolidations.
Warnings:
False Signals: Like any technical indicator, false signals can occur, especially in choppy or low-volume markets. Always use additional indicators or analysis to confirm signals.
Market Conditions: The effectiveness of the indicator can vary based on market conditions. It may work better during ranging or consolidation periods rather than strong trending phases.
Parameter Optimization: Adjusting the indicator's parameters (ROC period, SMA period, ROC threshold) may be necessary to fine-tune its performance for specific assets or timeframes.
Swing Point Oscillator with Trend Filter [Quantigenics]The "Swing Point Oscillator with Trend Filter" is a sophisticated trading oscillator designed to enhance trading decisions by adapting to market conditions. Oscillators typically signal overbought/oversold market states, often yielding false signals in strong trends. This trend indicator addresses this by implementing a 'Trend Filter' which changes color in strong trends, alerting traders to avoid typical oscillator reversals. In strong trends (when the trend Filter is red), mid-high or mid-low levels can be used for pullback entries. In more neutral markets (when the trend Filter is close to blue), extreme high and low levels (top and bottom) can be used, as a true 'over bought / over sold' oscillator. The oscillator combines components of the Stochastic Oscillator and the CCI, then normalizes the result, providing a unique, adaptive signal. The color-coded lines and Trend Filter offer clear visual cues, making this a comprehensive tool for various market scenarios.
Caution: Always use the indicator in conjunction with other tools and analysis methods to confirm trading decisions. Avoid trading solely based on this indicator.
GOLD 4HR
CL1! 4HR
How to Use:
Swing Point Oscillator: Displays the momentum of the price relative to its recent high and low.
Trend Filter: Highlights the general direction of the market trend.
Zones: Visual representation to categorize oscillator values (Up Zone and Down Zone).
Interpretation:
Oscillator:
When the oscillator moves upward and approaches or enters the Up Zone, it indicates increasing bullish momentum.
When the oscillator moves downward and approaches or enters the Down Zone, it suggests increasing bearish momentum.
Values near the middle (around zero) often indicate indecision or consolidation in the market.
Trend Filter:
A trend filter line above the Mid-High or below the Mid-Low suggests a strong trend.
When the trend filter is between the Mid-High and Mid-Low, it might indicate a weaker or sideways trend.
Its color will change based on its position relative to the zones. For instance, it turns red when indicating a stronger trend.
Zones:
Up Zone: The area between the Top Line and the Mid-High. Indicates strong bullish momentum when the oscillator is within this zone.
Down Zone: The area between the Mid-Low and the Bottom Line. Indicates strong bearish momentum when the oscillator is in this zone.
Trading Tips:
Bullish Scenario: Consider long positions when the oscillator is rising, and the trend filter indicates a strong upward trend.
Bearish Scenario: Consider short positions when the oscillator is falling, and the trend filter indicates a strong downward trend.
Key Levels (Daily Percentages)OVERVIEW
This indicator automatically identifies and progressively draws daily percentage levels, normalized to the first market bar.
Percentages are one of the most common ways to measure price movement (outside price itself). Being able to visually reference these levels helps contextualize price action, in addition to giving us a glimpse into how algos might "see" the market.
This script is most useful on charts with smaller time frames (1 to 5 minutes). This is not ideal for medium or larger time frames (greater than 5 minutes).
INPUTS
You can configure:
• Line size, style, colors and maximum length
• Label colors and visibility
• Fractional and intra level visibility
• Bidirectional zone parameters (custom range and extended anomalies)
• Normalization source
• Price Proximity features
• Market Hours and Time Zone
INSPIRATION
Broad Assumptions:
• +/- 70% of days move 1%, 20% of days move 1-2%, and 10% of days have moves exceeding 2%.
• +/- 10-20% of days trend, with moves ≥ 1%.
• All trading strategies are effectively scalping, mean reversion, or trend.
• Humans program algos to capitalize on these assumptions, using percentages to mange / execute trades.
Papercuts Time Sampled Higher Timeframe EMA Without SecurityThis EMA uses a higher time sampled method instead of using security to gather higher timeframe data.
Its quite fast and worked well with the timeframes prescribed, up to 8hrs, after 8hrs, the formatting gets more complicated and i probably wouldn't use it anyway.
You can use this as a guide to avoid security and even f_security with this method.
NOTE: This includes the non repainting f_security call so that i woudl be able to check my results against what it does, thats not nessecary to keep at all.
There is some minor differences in data, but its so minor it doesnt bother me, though it would be interesting to know what the difference actually is. If anyone figures that out, leave a comment and let me know!
This is meant to be an example for others to build and learn and play with.. so enjoy!
Moving Average Continuity [QuantVue]"Moving Average Continuity," is designed to compare the position of two Moving Averages (MAs) across multiple timeframes.
The user can select three timeframes and determine the length and type of both a fast and slow moving average.
The indicator will display a small table in a user selected location.
This table helps traders quickly determine if, for their selected timeframes, the faster moving average is trending above or below the slower moving average.
The “Moving Average Continuity” indicator can also send you three types of alerts;
1. All moving averages are aligned bullish
2. All moving averages are aligned bearish
3. Moving averages are mixed
Key Features:
1. Timeframes: The user can select up to three distinct timeframes to compare the moving averages.
2. Moving Average Inputs: For each MA, users can determine:
• Length of the MA
• Type of the MA - Options include EMA (Exponential Moving Average), SMA (Simple Moving Average), HMA (Hull Moving Average), WMA (Weighted Moving Average), and VWMA (Volume Weighted Moving Average).
3. Positioning: Users have the ability to adjust the table's positioning (top, middle, or bottom) and horizontal alignment (right, center, or left) on the chart overlay.
4. Runtime Error Prevention: The indicator will throw an error if the chart's timeframe exceeds the maximum selected timeframe, ensuring that comparisons are done correctly.
Give this indicator a BOOST and COMMENT your thoughts!
We hope you enjoy.
Cheers.
MarketSmith Daily Market IndicatorsMarketSmith Daily Market Indicators is designed to mimic the Daily Market Indicators tab found in MarketSmith. This tab contains 4 different secondary indicators to help gauge the health of the overall market.
This indicator allows you to choose which of the 4 indicators to show, as well as which index to pull data from, Nasdaq or NYSE. There is also a snapshot table showing the following:
# of stock advancing and up volume
# of stocks declining and down volume
# of stock unchanged and unchanged volume
# of stocks making new highs and new lows
Now let's look at the 4 indicators and how they work.
Advance/Decline Line
Plots the number of advancing shares vs the number of declining shares. Heavily weighted index stocks can skew price action, this line helps reveal that and whether most stocks are aligned with the trend.
Short Term Overbought/Oversold Oscillator
A 10-day moving average of the number of stocks moving up in price less the number of stocks moving down in price.
10 Day Moving Average of Up & Down Volume
Two 10 day moving averages to represent the volume of all stocks. Blue line: total volume of all stocks moving up in price. Red line: the total volume of all stocks moving down in price.
10 Day Moving Average of New Highs & New Lows
Two 10-day moving average to represent stocks making new highs and new lows. Blue line: The number of stocks making new price highs. Red line: The number of stocks reaching new lows.
Note this indicator is designed to work on a daily time frame chart. Data typically updates 90 minutes after the close. Data may differ from Marketsmith due to different providers, however the general trends are the same.
Implied Range from Options [SS]I have been promising to post this for a while, but I just needed to make sure that a) there were no similar indicators already available and b) make it a bit more user friendly.
So here it is, a basic indicator that will display the implied range from options.
In addition to displaying the implied range from options, it will provide some secondary information to help add context to the implied range. Those are shown in the chart below:
The indicator will list various precents at each point to the upside and to the downside. This is the percent move required, based on the current close price, to obtain any point in the implied move range.
In addition, the indicator will display the average move from open to high and open to low over a user defined period (default to 14 candle period) as well as the previous open to high and open to low move from the previous day.
This is to give you context of:
a) How much of a % increase or decrease is required to reach the implied ranges; and
b) How does the implied range compare to the ticker's average moves.
An increased implied range that exceeds the ticker's average move can alert you that the market is pricing in an above average move. This can be helpful and alert you to potential news releases or other fundamental things that have the potential to move the market.
How to Use the indicator:
So unfortunately, this indicator requires a bit of manual input. I was going to do an auto IV calculcation using Black-Scholes Model but just to be more rigorous in accuracy, I decided to, for now, leave it at a manual input. So when you launch the settings menu, this is what you will see:
You can collect all of this required information from your broker. Inversely, you can collect it online for free from various services such as Barchart or COBE's exchange website. The easiest way is to just pull it from your broker though.
Make sure, if you are doing weekly options to see the weekly range, you set the timeframe to 1 week. The timeframe function will calculate the average move over the desired timeframe length. So if you are doing a 0 dte for the next day, you want to see the intra-day range and will select the 1 day timeframe. It will then present to you the range averages and information on the daily timeframe for you to compare to the implied options range.
Same for the weekly, monthly, yearly, etc.
Additional options:
The indicator provides the midline average and midway points, to add static targets if you are trading the implied range.
These can be toggled on or off in the settings menu:
As well, as you can see, you can also toggle off the range labels.
There is also an offset option. This allows you to extend the range into the future:
Simply select how many candles you would like to plot the range in advance.
Closing remarks
That is the indicator. Its very simple, but it is handy. I was never one to pay attention to option pricing data, but I have been plotting it out daily and weekly these past few weeks and it does add a bit of context in terms of what the market is thinking. So I do recommend actually adding it to your repertoire of analyses going into the weeks and months, and really just paying attention to how the average ranges compare to what the market is pricing in.
One quick suggestion, select the strike price that aligns with the closing price of the ticker. This gives you a better representation of the range.
Safe trades everyone and leave your comments, questions and suggestions below!