Bank Nifty Market Breadth (OsMA)This indicator is the market breadth for Bank Nifty (NSE:BANKNIFTY) index calculated on the histogram values of MACD indicator. Each row in this indicator is a representation of the histogram values of the individual stock that make up Bank Nifty. Components are listed in order of its weightage to Bank nifty index (Highest -> Lowest).
When you see Bank Nifty is on an uptrend on daily timeframe for the past 10 days, you can see what underlying stocks support that uptrend. The brighter the plot colour, the higher the momentum and vice versa. Looking at the individual rows that make up Bank Nifty, you can have an understanding if there is still enough momentum in the underlying stocks to go higher or are there many red plots showing up indicating a possible pullback or trend reversal.
The plot colours are shown as a percentage of the current histogram value taken from MACD from the highest histogram value of the previous 200 bars shown on the current timeframe. Look back value of 200 bars was chosen as it provided a better representation of the current value from its peak over the recent past(previous 200 bars), on all timeframes. Histogram value do grow/fall along with the underlying stock price, so choosing the chart's all-time high/low value as peak was not ideal. Labels on the right show the current histogram value.
Base Code taken from @fengyu05's S&P 500 Market Breadth indicator.
Cerca negli script per "摩根标普500指数基金的收益如何"
ATR Range Accumulation by Standard Deviation and Volume [SS]So, this is an indicator/premise I have been experimenting with, which mixes ATR with Z-Score and Volume metrics.
What does the indicator do?
The indicator, on the lower timeframes, uses an ATR approach to determine short-term ranges. It takes the average ATR range over a designated lookback period and plots out the levels like so:
It then calculates the Z-Score for these ATR targets (shown in the chart above) and calculates, over the designated lookback period, how often price accumulates at that standard deviation level.
The indicator is essentially a hybrid of my Z-Score Support and Resistance indicator and my frequency distribution indicator. It combines both concepts into one.
You also have the option of sorting by volume accumulation. This will display the accumulation of the ranges by volume accumulation, like so:
Larger Timeframes:
If you want to see the accumulation by volume or standard deviation on the larger timeframes, you can. Simply toggle on your preferred setting:
Show Total Accumulation Breakdown:
This will break down the levels, over the lookback period, by standard deviation. This is similar to the Z-Score support and resistance indicator. It will then show you how often price accumulates at these various standard deviation levels. Here is an example on the daily timeframe using the 1D chart settings:
Inversely, you can repeat this, with the Z-Score levels, but show accumulation by volume. This will print 5 boxes, which are between +3 Standard Deviations and -3 Standard Deviations, like so:
Here we can see that 61% of volume accumulation is between -1 and 1 standard deviation.
Using it to Trade:
For swing trading, I suggest using the larger timeframe information. However, for both swing and day traders, it is also helpful to use the ATR display. You can modify the ATR display to show the levels on any timeframe by selecting which timeframe you would like to see ATR ranges for. If you are trading on the 1 or 5-minute chart, I suggest leaving the levels at no shorter than a 60-minute timeframe.
You can also use these levels on the daily for the weekly levels, etc.
The accumulation being shown will be based on the current chart timeframe. This is a function of Pinescript, but in this case, it's actually advantageous because if you are trading on the shorter timeframe, and a level has 0% recent accumulation, it's unlikely we will see that level soon or overly quickly. Intraday retracements will generally happen to areas of high accumulation.
How this indicator is different:
The difference in this indicator comes from its focus on accumulation in relation to Standard Deviation. There is one thing that is consistent among retail traders, algorithms, market makers, and funds, and that is looking at the market in terms of standard deviation. Each person, market maker, and algorithm may be slightly nuanced in how it conceptualizes standard deviation (whether it be since the inception of the ticker (or IPO), or the previous 500 days, or the previous 100 days, etc.), but the premise remains consistent. Standard Deviation is a really important, if not the most important, metric to pay attention to. Another important metric is volume. Thus, the premise is that combining volume accumulation with standard deviation should, theoretically, be telling. We can see the extent of buying at various standard deviations and whether a stock is really a buy or not.
And that's the indicator! Hope you enjoy it. Leave your comments and questions below.
Safe trades!
Temporary imbalances 2.0 This indicator attempts to calculate potential points of imbalance and equilibrium based on VWAPs and modified moving averages. The idea is to determine if there has been a change in volume and perform the calculation from that point It uses the standard deviation to determine the significant imbalance threshold. Candles with bullish imbalances are highlighted in green, while candles with bearish imbalances are highlighted in red.
"It also features a set of VWAPs and modified moving averages that you can enable or disable."
When you activate the 'Show Anchor VWAP' option, it will add five modified VWAPs.
Practical Significance:
The Anchored VWAP is a volume-weighted average price that serves as a dynamic reference to assess the average price during specific moments of market imbalance.
During a bullish imbalance, the anchor_vwap reflects the VWAP at that moment, emphasizing price behavior during that specific period.
Similarly, in a bearish imbalance, the anchor_vwap provides the associated VWAP for that condition, highlighting price movements during the imbalance phase.
How to Use:
The anchor_vwap can be employed to contextualize the volume-weighted average price during critical moments associated with significant changes in market imbalance.
By analyzing price behavior during and after periods of imbalance, the Anchored VWAP can help better understand market dynamics and identify potential areas of support or resistance.
Show VWAP Percent Imbalance"
Definition: Represents the Volume Weighted Average Price (VWAP) adjusted by the volume-weighted average of the price multiplied by volume, with a focus on conditions where the percentage volume variation surpasses a predefined threshold.
Calculation: Utilizes the simple moving average weighted of the product of the volume-weighted average price and volume only when the percentage volume variation exceeds a specific threshold.
Interpretation: Provides insight into the volume-weighted price trend during conditions where the percentage volume variation exceeds a predefined limit.
The "showDeltaVWAP" is a toggleable setting that you can turn on or off. When activated, it displays special lines on the chart. Let's understand what these lines represent:
Delta Anchor VWAP:
A green line (Delta Anchor VWAP) represents a measure of market volume imbalance.
Delta2 Anchor VWAP:
A red line (Delta2 Anchor VWAP) shows another perspective of volume imbalance.
VWAP Delta Volume:
A light blue line (VWAP Delta Volume) displays a volume-weighted average of price.
VWAP Delta Volume2:
An orange line (VWAP Delta Volume2) shows another view of the volume-weighted average of price.
Delta3 Anchor VWAP:
A light blue line (Delta3 Anchor VWAP) represents a combination of the previous measures.
Delta4 Anchor VWAP:
A purple line (Delta4 Anchor VWAP) is another combination, providing an overall view.
These lines are based on different conditions and calculations related to trading volume. When you activate "showDeltaVWAP," these lines appear on the chart, aiding in better understanding market behavior.
"Show Faster Volatility" is an option that you can enable or disable. When activated (set to true), it displays special lines on the chart called "Faster Volatility VWAP," "Faster Volatility VWAP2," and "Faster Volatility VWAP3." Let's understand what these lines represent:
Faster Volatility VWAP:
A purple line (Faster Volatility VWAP) is a Volume Weighted Average Price (VWAP) that is calculated more quickly based on short-term price reversal patterns.
Faster Volatility VWAP2:
A light gray line (Faster Volatility VWAP2) is another Volume Weighted Average Price (VWAP) that is calculated even more quickly based on even shorter-term price reversal patterns.
Faster Volatility VWAP3:
A purple line (Faster Volatility VWAP3) is another Volume Weighted Average Price (VWAP) calculated rapidly based on even shorter-term price reversal patterns.
These lines are designed to indicate moments of possible exhaustion of volatility in the market, suggesting that there may be a subsequent increase in volatility. When you activate "Show Faster Volatility," these lines are displayed on the chart.
"Show Average VWAPs Imbalance" displays weighted averages of different Volume Weighted Average Prices (VWAPs) in relation to specific market conditions. Here's an explanation of each component:
Standard VWAP:
The blue line represents the standard VWAP, a volume-weighted average of asset prices over a specific period.
VWAP with Added Imbalance (avg_vwap2):
The pink line is a weighted average that adds an imbalance value to the standard VWAP. This component highlights periods of market imbalance.
VWAP with Balance (avg_vwap3):
The lilac line is a weighted average that adds balance based on the imbalance between uptrend and downtrend, reflecting changes in volume. This provides insights into supply and demand dynamics.
Overall Average of VWAPs (avg_vwaptl):
The violet line is a weighted average that incorporates both standard and adjusted VWAPs, offering an overview of market behavior under different considered conditions.
Visual Customization (Show Average VWAPs Imbalance):
Users have the option to show or hide these average lines on the chart, allowing for a clear visualization of market trends.
"Show Min Variation VWAP" is associated with the calculation and display of a smoothed version of the Volume Weighted Average Price (VWAP), taking into account the minimum price variation over a specific period.
"How Imbalance Anchor VWAP Calculated as the smoothed relationship between liquidity difference and maximum VWAP equilibrium" is associated with the calculation and display of a smoothed version of the Imbalance Anchor VWAP. Here is a detailed explanation:
Calculations and Smoothing:
The variable "smoothed_difference" represents the exponential moving average (EMA) of the difference between two variables related to liquidity.
"smoothed_difference2" is the division of "smoothed_difference" by the maximum variation of the VWAP Equilibrium.
"smoothed_difference3" involves additional manipulation of "smoothed_difference" and "vwap_delta3."
"smoothed_difference4" incorporates the previous results, adjusted by the value of the VWAP.
Visual Customization:
The user has the option to enable or disable the display on the chart.
The line is colored in a shade of green.
It provides a smoothed representation of the Imbalance Anchor VWAP.
The line is colored in a shade of blue, and the calculation involves the summation of moving averages (20, 50, 200). Afterward, there is division by 3. Additionally, there is the summation of moving averages (766, 866, 966), divided by 3. The final step is to add these results together and divide by 2. media name is Imbalance Value2
Show VWAP Equilibrium (Max Variation) Calculated as the difference between two VWAPs derived from the highest and lowest price changes
Show Equilibrium VWAP Calculated as the sum of VWAP and (sma200 - sma20)
calculate the difference between the media of 200 to 20
Show Equilibrium VWAP Calculated as the sum of VWAP and (766+866+966)/3 - (sma200 - sma20)
Show Equilibrium VWAP Standard Deviation Calculated as the Exponential Moving Average (EMA) of the Standard Deviation of SMA (sma200 + sma20 + sma8)/3
Show Equilibrium VWAP Delta Calculated as the ratio of the smoothed VWAP Delta Result componentes
Show Standard Deviation Equilibrium VWAP Delta: Calculated as the Standard Deviation between the Average of VWAP Delta Result Components and Their Smoothed Versions
This average attempts to calculate the equilibrium."
vwap_equilibrium:
Definition: Represents the Volume Weighted Average Price (VWAP) adjusted by the volume-weighted average of the price (hl2) multiplied by volume, focusing on periods of volume equilibrium.
Calculation: Utilizes the simple moving average weighted (sma) of the product of the volume-weighted average price and volume only when there is no volume imbalance.
Interpretation: This indicator provides a view of the volume-weighted price trend during moments when the market is in equilibrium, meaning there is no noticeable imbalance in volume conditions. The calculation of VWAP is adjusted to reflect market characteristics during periods of stability.
vwap_percent_condition:
Definition: Represents the Volume Weighted Average Price (VWAP) adjusted by the volume-weighted average of the price multiplied by volume, with a focus on conditions where the percentage volume variation surpasses a predefined threshold.
Calculation: Utilizes the simple moving average weighted of the product of the volume-weighted average price and volume only when the percentage volume variation exceeds a specific threshold.
Interpretation: Provides insight into the volume-weighted price trend during conditions where the percentage volume variation exceeds a predefined limit.
The objective of these two VWAPs is to calculate possible equilibrium points between buyers and sellers.
The indicator works for all timeframes This indicator can be adjusted according to the preferences and characteristics of the specific asset or market. It provides clear visual information and can be used as a complementary tool for technical analysis in trading strategies.
Interesting
Interesting
lookback period 7 , 12, 20,70,200, 500,766,866,966
imbalance threshold 2.4, 3.3 ,4.2
The objective of this indicator is to identify and highlight various points of imbalance and equilibrium.
KNN ATR Dual Range Predictions [SS]Excited to release this indicator!
I wanted to do a machine learning, ATR based indicator for a while, but I first had to learn about machine learning algos haha.
Now that I have created a KNN based regression methodology (shared in a previous indicator), I can finally do it!
So this is a Nearest Known Neighbor or KNN regression based indicator that uses ATR (average ranges) to predict future ranges.
It operates by calculating the move from High to Open and Open to Low and performing KNN regression to look for other, similar instances of similar movements and what followed those movements.
It provides for 2 methods of KNN regression, the traditional Cluster method (where it identifies a number of clusters within a tolerance range and averages them out), or the method of last instance (where it finds the most recent identical instance and plots the result from that).
You can toggle the parameters as you wish, including the:
a) Type of Regression
b) Number of Clusters
c) Tolerance for Clusters
Others functions:
The indicator provides for the ability to view 2 different timeframe targets. The default calculation is the current timeframe you are on. So if you are on the 1 minute, 5 minute or 1 hour, it will automatically default the primary range to this timeframe. This cannot be changed.
But it permits for a second prediction to be calculated for a timeframe you can specify. The example in the chart above is the 1 hour overlaid on the 5 minute chart.
You can see how the model is performing in the statistics table. The statistics table can be removed as well if you don't want it overlaid on your chart.
You can also toggle off and on the various ranges. IF you only want to visualize 1 hour levels on a 5 minute chart, you can toggle off the bands and just view the higher tf data. Inversely, if you only want the current timeframe data and not the higher tf data, you can toggle the higher tf data off as well.
General Use Tips:
Some general use tips include:
🎯The default settings are appropriate for most common tickers. Because this is performing an autoregression on itself, the parameters tend to be more tight vs. performing dual correlation between two separate tickers which are sizably different in scale (which would require a higher tolerance).
Here is an example of YM1!, which is a sizably larger ticker, however it is performing well with the current settings.
🎯 If you get not great results from your ranges or an error in the correlation table, something like this:
It means the parameters are too tight for what you want to do and it is having trouble identifying other, similar cases (in this case, the lookback length was significantly shortened). The first step is to:
a) Expand your lookback range (up to 500 is usually sufficient). This should resolve most issues in most cases. If not:
b) If you are using the Cluster method, try broadening your cluster tolerance by 0.5 increments.
Between those two implementations, you should get a functional model. And it actually honestly hasn't happened to me in general use, I had to force that example by significantly shortening the lookback period.
Concluding Remarks
And that's pretty much the indicator.
I hope you enjoy it! I was really excited to be finally able to do it, like I said I attempted to do this for a while but needed to research the whole KNN process and how its performed.
Enjoy and leave your comments and questions below!
Cumulative New Highs - New LowsIndicator that plots the cumulative number of 52-Week New Highs minus New Lows with an added moving average. Settings allow the choice between S&P 500, Nasdaq 100 or the Overall Market as Index. You can also customize the length of the moving average.
Monthly Performance Table by Dr. MauryaWhat is this ?
This Strategy script is not aim to produce strategy results but It aim to produce monthly PnL performance Calendar table which is useful for TradingView community to generate a monthly performance table for Own strategy.
So make sure to read the disclaimer below.
Why it is required to publish?:
I am not satisfied with the monthly performance available on TV community script. Sometimes it is very lengthy in code and sometimes it showing the wrong PNL for current month.
So I have decided to develop new Monthly performance or return in value as well as in percentage with highly flexible to adjust row automatically.
Features :
Accuracy increased for current month PnL.
There are 14 columns and automatically adjusted rows according to available trade years/month.
First Column reflect the YEAR, from second column to 13 column reflect the month and 14 column reflect the yearly PnL.
In tabulated data reflects the monthly PnL (value and (%)) in month column and Yearly PnL (value and (%)) in Yearly column.
Various color input also added to change the table look like background color, text color, heading text color, border color.
In tabulated data, background color turn green for profit and red for loss.
Copy from line 54 to last line as it is in your strategy script.
Credit: This code is modified and top up of the open-source code originally written by QuantNomad. Thanks for their contribution towards to give base and lead to other developers. I have changed the way of determining past PnL to array form and keep separated current month and year PnL from array. Which avoid the false pnl in current month.
Strategy description:
As in first line I said This strategy is aim to provide monthly performance table not focused on the strategy. But it is necessary to explain strategy which I have used here. Strategy is simply based on ADX available on TV community script. Long entry is based on when the difference between DIPlus and ADX is reached on certain value (Set value in Long difference in Input Tab) while Short entry is based on when the difference between DIMinus and ADX is reached on certain value (Set value in Short difference in Input Tab).
Default Strategy Properties used on chart(Important)
This script backtest is done on 1 hour timeframe of NSE:Reliance Inds Future cahrt, using the following backtesting properties:
Balance (default): 500 000 (default base currency)
Order Size: 1 contract
Comission: 20 INR per Order
Slippage: 5 tick
Default setting in Input tab
Len (ADX length) : 14
Th (ADX Threshhold): 20
Long Difference (DIPlus - ADX) = 5
Short Difference (DIMinus - ADX) = 5
We use these properties to ensure a realistic preview of the backtesting system, do note that default properties can be different for various reasons described below:
Order Size: 1 contract by default, this is to allow the strategy to run properly on most instruments such as futures.
Comission: Comission can vary depending on the market and instrument, there is no default value that might return realistic results.
We strongly recommend all users to ensure they adjust the Properties within the script settings to be in line with their accounts & trading platforms of choice to ensure results from the strategies built are realistic.
Disclaimer:
This script not provide indicative of any future results.
This script don’t provide any financial advice.
This strategy is only for the readymade snippet code for monthly PnL performance calender table for any own strategy.
KNN Regression [SS]Another indicator release, I know.
But note, this isn't intended to be a stand-alone indicator, this is just a functional addition for those who program Machine Learning algorithms in Pinescript! There isn't enough content here to merit creating a library for (it's only 1 function), but it's a really useful function for those who like machine learning and Nearest Known Neighbour Algos (or KNN).
About the indicator:
This indicator creates a function to perform KNN-based regression.
In contrast to traditional linear regression, KNN-based regression has the following advantages over linear regression:
Advantages of KNN Regression vs. Linear Regression:
🎯 Non-linearity: KNN is a non-parametric method, meaning it makes no assumptions about the underlying data distribution. This allows it to capture non-linear relationships between features and the target variable.
🎯Simple Implementation: KNN is conceptually simple and easy to understand. It doesn't require the estimation of parameters, making it straightforward to implement.
🎯Robust to Outliers: KNN is less sensitive to outliers compared to linear regression. Outliers can have a significant impact on linear regression models, but KNN tends to be less affected.
Disadvantages of KNN Regression vs. Linear Regression:
🎯 Resource Intensive for Computation: Because KNN operates on identifying the nearest neighbors in a dataset, each new instance has to be searched for and identified within the dataset, vs. linear regression which can create a coefficient-based model and draw from the coefficient for each new data point.
🎯Curse of Dimensionality: KNN performance can degrade with an increasing number of features, leading to a "curse of dimensionality." This is because, in high-dimensional spaces, the concept of proximity becomes less meaningful.
🎯Sensitive to Noise: KNN can be sensitive to noisy data, as it relies on the local neighborhood for predictions. Noisy or irrelevant features may affect its performance.
Which is better?
I am very biased, coming from a statistics background. I will always love linear regression and will always prefer it over KNN. But depending on what you want to accomplish, KNN makes sense. If you are using highly skewed data or data that you cannot identify linearity in, KNN is probably preferable.
However, if you require precise estimations of ranges and outliers, such as creating co-integration models, I would advise sticking with linear regression. However, out of curiosity, I exported the function into a separate dummy indicator and pulled in data from QQQ to predict SPY close, and the results are actually very admirable:
And plotted with showing the standard error variance:
Pretty impressive, I must say I was a little shocked, it's really giving linear regression a run for its money. In school I was taught LinReg is the gold standard for modeling, nothing else compares. So as with most things in trading, this is challenging some biases of mine ;).
Functionality of the function
I have permitted 3 types of KNN regression. Traditional KNN regression, as I understand it, revolves around clustering. ( Clustering refers to identifying a cluster, normally 3, of identical cases and averaging out the Dependent variable in each of those cases) . Clustering is great, but when you are working with a finite dataset, identifying exact matches for 2 or 3 clusters can be challenging when you are only looking back at 500 candles or 1000 candles, etc.
So to accommodate this, I have added a functionality to clustering called "Tolerance". And it allows you to set a tolerance level for your Euclidean distance parameters. As a default, I have tested this with a default of 0.5 and it has worked great and no need to change even when working with large numbers such as NQ and ES1!.
However, I have added 2 additional regression types that can be done with KNN.
#1 One is a regression by the last IDENTICAL instance, which will find the most recent instance of a similar Independent variable and pull the Dependent variable from that instance. Or
#2 Average from all IDENTICAL instances.
Using the function
The code has the instructions for integrating the function into your own code, the parameters, and such, so I won't exhaust you with the boring details about that here.
But essentially, it exports 3, float variables, the Result, the Correlation, and the simplified R2.
As this is KNN regression, there are no coefficients, slopes, or intercepts and you do not need to test for linearity before applying it.
Also, the output can be a bit choppy, so I tend to like to throw in a bit of smoothing using the ta.sma function at a deault of 14.
For example, here is SPY from QQQ smoothed as a 14 SMA:
And it is unsmoothed:
It seems relatively similar but it does make a bit of an aesthetic difference. And if you are doing it over 14, there is no data loss and it is still quite reactive to changes in data.
And that's it! Hopefully you enjoy and find some interesting uses for this function in your own scripts :-).
Safe trades everyone!
RS for VPAThis is a supporting Indicator for the Volume Price Analysis Script VPA 5.0.
Purpose
To indicate the performance of the stock compared to an Index or any other selected stock. It also provides an idea about the strength of the Reference Index as well.
Description
The indicator is an unbound oscillator moving around a zero line. If the stock is strong then the values are positive and if it is weak the values are negative. If the stock is performing better (Stronger) than the Index the indicator is positive and colored green. If the stock is weaker than the Index it is negative and is colored Red.
The background indicates the strength of the Reference Index/Stock. Bullishness/up trend of the Index/Stock is indicated by yellow colour. Short term uptrend, Mid term uptrend and Long term trends are indicated by different shades of yellow varying from light to Dark. The bearishness / down trend is indicated by blue back ground.
How it Works
The relative strength is calculated by using the formula
RS = Gain of the stock / (Gain of the Ref. Index -1)
= (Stock Price today / Stock Price (N period ago)) /
(Index Price today / Index price (N period ago)) – 1
The Index strength is calculated as below
Short term trend up = 5 ema > 22 ema
Mid Term trend up = 22 ema > 60 ema
Long term trend up = 60 ema > 130 ema
Trend down = 5 ema < 22 ema
How to use
Use this indicator to assist your Price Action Analysis using VPA 5.0. When the Price action and volume indicates Bullishness, you can check if the relative strength is also supporting (Positive and in green Territory). This adds credibility to the Price action. Also check if the index is also positive (the Back ground is yellow). This makes the Price action even stronger. Ideally both the stock and index should be strong. Many time you would find the that the stock is in green territory but the index is in blue territory. This calls for some caution in evaluating the Price Action.
When the price action is positive but the relative strength is negative then one should be cautious and wait for the relative strength to turn positive before any entry decision.
Option for the Indicator
One can select the following from the setting for the indicator
1. Index or reference stock – Default is CNX 500
2. Relative Strength Calculation period – Default is 22
3. The EMA periods for the Index/Reference stock strength calculation
Volume Profile PlusThis indicator provides a high-resolution and high-precision implementation of Volume Profile with flexible range settings. Its key features include:
1. Support for a high resolution of up to 2,500 rows.
2. Capability to examine lower timeframe bars (default 5,000 intra-bars) for enhanced precision.
3. Three range modes — "Visible Range", "Anchored Range", and "All Range".
4. Highlighting of Point of Control and Value Area.
5. Extensive customization options allowing users to configure dimensions, on-chart placements, and color schemes.
🔵 Settings
The settings screen, along with the explanations for each setting, is provided below:
🔵 High Resolution using Polyline
Inspired by @fikira, this indicator utilizes the newly introduced `polyline` type in PineScript to plot the volume profile. It employs a single polyline instance to represent the entire histogram. With each polyline instance supporting up to 10,000 points and each histogram row requiring 4 points, this indicator can accommodate 2500 rows, resulting in a significantly higher resolution compared to conventional volume profile indicators that use `line`s or `box`es to draw the histogram.
🔵 High Precision Data-binning using Lower Timeframe Data
Conventional volume profile indicators often face one or both of the following limitations:
1. They only consider volume within the chart's current timeframe.
2. They assign each bar's total volume to a single price bucket based on the bar's average price, rather than distributing volume across multiple price buckets.
As a result, when the number of bars in the chart is low, those indicators may provide imprecise results, making it difficult to accurately identify significant volume nodes and the point of control.
To address these limitations and enhance accuracy, this indicator examines data from lower timeframes and distributes the volume to fine-grained price buckets. It intelligently selects an appropriate lower timeframe to ensure precise output while complying with a maximum specified number of bars to maintain good performance.
🔵 Three Range Modes
This indicator offers users the flexibility to choose from three range modes:
1. Visible Range (Default Mode): In this mode, the volume profile calculation begins at the time of the left-most bar displayed in the current viewport. As the user scrolls through the viewport, the volume profile updates automatically.
2. Anchored Range: This mode allows the user to set the start time either by using the datetime input boxes or by dragging the anchor line on the chart.
3. All Range: In this mode, the volume profile calculation is based on all the historical bars available in the chart.
Heat profileA trader once told me that top wicks equals sell interest and bottom wicks equals buy interest. If that's true then this indicator tries to organize and visualize this idea.
It uses transparent boxes to give the impression of a heat map. Due to limitations of my own skill and possibly pinescript it is not possible to render it in a useful manner using different colors that depicts buy and sell interests respectively. This means it works more like a volume profile in that it mixes the buy and sell interest together in the heat map. This can still be helpful because it help traders focus their attention on areas other than the current price candle.
In my limited time of using it, it seems like on the large timeframes the highlighted areas is where the price wants to go, and on small time frames the darkest areas is where the price wants to go. But i will leave it up to any user to spot and use their own patterns with the indicator.
Last but not least, the indicator only uses the last 50 candles, which can be too little on a small timeframe. Unfortunately the way i have done it this limitation is hardcoded in the script due to how pinescript works, by editing the code you can increase it. (Put max_boxes_count = x after overlay = true. Maximum number is 500)
Hope you enjoy. Have a nice day.
TASC 2023.12 Growth and Value Switching System█ OVERVIEW
This script implements a rotation system for trading value and growth ETFs, as developed by Markos Katsanos and detailed in the article titled 'Growth Or Value?' in TASC's December 2023 edition of Traders' Tips . The purpose of this script is to demonstrate how short-term momentum can be employed to track market trends and provide clarity on when to switch between value and growth.
█ CONCEPTS
The central concept of the presented rotation strategy is based on the observation that the stock market undergoes cycles favoring either growth or value stocks. Consequently, the script introduces a momentum trading system that is designed to switch between value and growth equities based on prevailing market conditions. Specifically tailored for long-term index investors, the system focuses on trading Vanguard's value and growth ETFs ( VTV and VUG ) on a weekly timeframe.
To identify the ETF likely to outperform, the script uses a custom relative strength indicator applied to both VTV and VUG in comparison with an index ( SPY ). To minimize risk and drawdowns during bear markets, when both value and growth experience downtrends, the script employs the author's custom volume flow indicator (VFI) and blocks trades when its reading indicates money outflow . Positions are closed if the relative strength of the current open trade ETF falls below that of the other ETF for two consecutive weeks and is also below its moving average. Additionally, the script implements a stop-loss when the ETF is trading below its 40-week moving average, but only during bear markets.
The script plots the relative strengths of the value and growth equities along with the signals triggered by the aforementioned rules. Information about the current readings of the relative strength and volume flow indicators, along with the current open position, is displayed in a table.
█ CALCULATIONS
The script uses the request.security() function to gather price data for both equities and the reference index. Custom relative strength and volume flow indicators are calculated based on the formulas presented in the original article. By default, the script employs the same parameters for these indicators as proposed in the original article for VTV and VUG on a weekly timeframe.
COSTAR [SS]This idea came to me after I wrote the post about Co-Integration and pair trading. I wondered if you could use pair trading principles as a way to determine overbought and oversold conditions in a more neutral way than RSI or Stochastics.
The results were promising and this indicator resulted :-)!
About:
COSTAR provides another, more neutral way to determine whether an equity is overbought or oversold.
Instead of relying on the traditional oscillator based ways, such as using RSI, Stochastics and MFI, which can be somewhat biased and narrow sided, COSTAR attempts to take a neutral, unbiased approached to determine overbought and oversold conditions. It does this through using a co-integrated partner, or "pair" that is closely linked to the underlying equity and succeeds on both having a high correlation and a high t-statistic on the ADF test. It then references this underlying, co-integrated partner as the "benchmark" for the co-integration relationship.
How this succeeds as being "unbiased" and "neutral" is because it is responsive to underlying drivers. If there is a market catalyst or just general bullish or bearish momentum in the market, the indicator will be referencing the integrated relationship between the two pairs and referencing that as a baseline. If there is a sustained rally on the integrated partner of the underlying ticker that is holding, but the other ticker is lagging, it will indicate that the other ticker is likely to be under-valued and thus "oversold" because it is underperforming its benchmark partner.
This is in contrast to traditional approaches to determining overbought and oversold conditions, which rely completely on a single ticker, with no external reference to other tickers and no control over whether the move could potentially be a fundamental move based on an industry or sector, or whether it is a fluke or a squeeze.
The control for this giving "false" signals comes from its extent of modelling and assessment of the degree of integration of the relationship. The parameters are set by default to assess over a 1 year period, both the correlation and the integration. Anything that passes this degree of integration is likely to have a solid, co-integrated state and not likely to be a "fluke". Thus, the reliability of the assessment is augmented by the degree of statistical significance found within the relationship. The indicator is not going to prompt you to rely on a relationship that is statistically weak, and will warn you of such.
The indicator will show you all the information you require regarding the relationship and whether it is reliable or not, so you do not need to worry!
How to Use
The first step to use COSTAR is identifying which ticker has a strong relationship with the current ticker. In the main chart, you will see that SPY is overlaid with VIX. There is a strong, negative correlation between the VIX and SPY. When VIX is entered as the paired ticker, the indicator returns the data as stationary, indicating a compatible match.
Now you have 3 ways of viewing this relationship, 2 of which are going to be directly applicable to trading.
You can view them as
Price to Price Ratio (Not very useful for trading, but if you are curious)
Z-Score: Helpful for trading
Co-integration: Helpful for trading
Here is an example of all three:
Example of Z-Score Chart:
Example of Price Ratio:
Example of Co-Integration Pair:
Using for Trading
As stated above, the two best ways to use this for trading is to either use the Z-Score Chart or the Co-Integrated Pair chart.
The Z-Score chart is based off of the price ratio data and provides an assessment of both the independent and dependent data.
The co-integration shows the dependent (the ticker you are trading) in yellow and the independent (the ticker you are referencing) in teal. When teal is above yellow, you will see it is green. This means, based on your benchmark pair, there is still more up room and the ticker you are trading is actually lagging behind.
When the yellow crosses up, it will turn red. This means that your ticker is out-performing the benchmark pair and you likely will see pullback and a "regression to the mean" through re-integration.
The indicator is capable of plotting out entries and exits, which are guided by the z-score:
How Effective is it?
I created a basic strategy in Pinescript, and the back-test results vary. Trading ES1! using NQ1! as the co-integrated pair, results were around 78% effective.
With VIX, results were around 50% effective, but with a net profit.
Generally, the efficacy surpassed that of both stochastics and RSI.
I will be releasing the strategy version of this in the coming days, still just cleaning up that code and making it more "public use" friendly.
Other Applications
If you are a pair trader, you can technically use this for pair trading as well. That's essentially all this is doing :-).
Tips
If you are trading a ticker such as MSFT, AMD, KO etc., it's best to try to find an ETF or index that has that particular ticker as a large holding and use that as your benchmark. You will see on the indicator whether there is a high correlation and whether the data is indeed stationary.
If the indicator returns "Non-stationary", you can attempt to extend your regression range from 252 to 500. If this fixes the issue, ensure that the correlation is still >= 0.5 or <= -0.5. If this does not work still, you will need to find another pair, as its likely the result of incompatibility and an insignificant relationship.
To help you identify tickers with strong relationships, consider using a correlation heatmap indicator. I have one available and I think there are a couple of other similar ish ones out there. You want to make sure the relationship is stable over time (a correlation of >= 0.50 or <= -0.5 over the past 252 to 500 days).
IMPORTANT: The long and short exits delete the signal after one is signaled. Therefore, when you look back in the chart you will notice there are no signals to exit long or short. That is because they signal as they happen. This is to keep the chart clean.
'Tis all my friends!
Hope you enjoy and let me know your questions and suggestions below!
Side note:
COSTAR stands for Co-integration Statistical Analysis and Regression. ;)
The Ultimate Buy and Sell IndicatorThis indicator should be used in conjunction with a solid risk management strategy that does not over-leverage positions and uses stop-losses. You can not rely 100% on the signals provided by this indicator (or any other for that matter).
With that said, this indicator can provide some excellent signals.
It has been designed with a large number of customization options intended for advanced traders, but you do not HAVE to be an advanced user to simply use the indicator. I have tried to make it easy to understand, and this section will provide you with a better understanding of how to use it.
NOTE:
While NOT REQUIRED, I would recommend also finding my indicator called, "Ultimate RSI", which is designed to work together with this indicator (visually). They both contain the same settings and allow you to visualize changes made in this indicator that can not be displayed on the main chart.
This indicator creates it's own candles(bars), so you have to go into your main settings and turn off the "body, border and wick" color settings. Using a dark background is also recommended.
How does it work?
The indicator mainly relies on the RSI indicator with Bollinger Bands for signals. (Though not entirely)
First, there are something that I call "Watch Signals", which are various Bollinger Band crossing events. This could be the price crossing Bollinger Bands or the RSI crossing Bollinger Bands.
There are separate watch signals for buys and sells. Buy watch signals are colored orange to match the BUY signal candle color and Fuchsia (kind of a bright purple) to match SELL signal candles.
In order for most buy or sell signals to be created, there must first be a watch signal. There is a lookback period (or length) for watch signals to be used, and after that many candles (bars) have passed, they will be ignored. You can set a length to look back as well as a time to wait before creating any.
What this means is that if there has previously been (for instance) a sell signal. You can tell it to wait 10 bars before creating any buy watch signals. You can then also tell it that it should look back 10 bars from the current one in order to find any buy watch signals. This means that if you had it set up that way 10 to wait and 10 to validate, it would start allowing buy watch signals 11 bars after a sell, and then once you hit 20 bars, it will start leaving a gap (invisible to you) as the 10 bar lookback period starts moving forward with each new bar. This is useful in order to keep signals more spaced apart as some bad signals come quickly after another one.
Example: You may get a sell signal where the Bollinger bands are tight, then the price easily drops down into the lower band creating a buy watch signal, then you get a "fake" or short pump up and it says buy, but then drops dramatically afterwards. The wait period can ensure that the sell stays in effect longer before a buy is considered by blocking any buy watch signals for a period of time.
After you get a watch signal, the system then looks for various other things to happen to create buy or sell signals. This could be the RSI crossing the (slow) RSI Basis line (from its Bollinger bands), it could be the price crossing its basis line, it could be MACD crosses, it could even be RSI crossing certain levels. All of these are options. If you like the MACD strategy and want it to give you buy and sell signals from just MACD crosses, simply select that option for signals.
It is also able to use the first of any of the options that takes place.
I included an option to force alternating buy and sell signals, rather than showing groups of, or subsequent buy, buy, buy signals, for instance.
Moving on....
You can change the moving average that is used to calculate the RSI. The standard moving average for RSI is the RMA (aka SWMA). Changes to this can dramatically change your signals. You also have the option to change the moving average type used in the Bollinger bands calculation. You can change the length of these as well. The same goes for the Bollinger bands over the Price chart. I added an ATR option for the RSI Bollinger bands to play with, as well. You are able to adjust the standard deviation (multiplier) of the bands as well, which will of course affect the signals.
The ways you can play with signals are nearly infinite, so have fun figuring it out.
The indicator allows for moving averages to be shown as well, with a variety of types to choose from. The standard numbers are 5, 10, 20, 50, 100 and 200, with the addition of a custom moving average of your choice. You can also change the color of this one. You can choose to show them all or any of them you want to show, in any combination, although the TYPE of moving average (SMA, EMA, WMA, etc.) will apply to all of them.
You may also notice the Bollinger Bands over the Price are colored, and become more or less transparent.
The color is derived from the trend of the RSI or the RSI basis (your choice). It looks back at the value however many bars you want and compares the values and that's how it determines if it is trending up or down. Since RSI is a directional momentum indicator, this can be quite useful. If you see the bands are getting darker, this will explain why.
The indicator has a lookback period for determining the widest the bands (which measure volatility) have been over that period of time. This is the baseline. It then will make the bands disappear (by making them more transparent) if the volatility is low. This indicates that a change in volatility is coming and that price isn't really changing much compared to the past (default 500) bars. If they become bright, this is because price has started trending in a direction and volatility is increasing.
I should also note that the candles are colored based on RSI levels.
If you use the Ultimate Companion indicator, you will be able to see the RSI levels (zones) that the colors are based on. As RSI moves into a new range, the candle color will change.
I have created a yellow zone where the candles turn yellow. This is when RSI is between (default) 45 and 55, indicating there is basically no momentum and price is going sideways. This is a good place to get trapped in bad trades, and there is a Yellow RSI Filter to block signals in this area to keep you from entering bad trades.
Green candles indicate values over 55 (getting brighter as RSI rises) and red candles are RSI values under 45 (getting brighter as RSI values get lower). If you see white, this means RSI is either over 80 or under 20. A sharp reversal is almost always imminent at this stage.
When we talk about Buy and Sell Signals, they draw a green or red triangle and it literally says BUY or SELL. There is an option to color the background for added visibility. These signals do not "repaint", what this means is that they can be late. To account for this, I have included a background color that will flash as a warning that a buy or sell could be imminent, although it may fail to break through and set a buy or sell signal. This is simply an advanced warning. The reason is that sometimes a candle may be very large and you won't be told to buy or sell during the candle until the move is completely over and now you're getting in on the next one. That's not a great feeling, so I made it repaint the background color and not repaint the completed signal. You get the best of both worlds.
This indicator also uses complex logic to handle things.
When there is a buy signal, it enters into a state of having been bought, or a "bought state". The same for sells. If Force alternating signals is off, you could have more than one buy in a bought state, or more than one sell in a sell state. There is an option to color the background green during the full duration of a bought state, or red during the full duration of a sold state.
I have added divergence.
This shows that the lows or highs of RSI and PRICE are different. If RSI is making higher highs but the price is not, then the price is likely to follow this bullish divergence, if the opposite happens, it's bearish. It will draw a line on the chart connecting the highs and lows and call it bearish or bullish. You can adjust this as well.
I have an RSI High/Low filter. If the RSI basis (or average) is very high or low, you can block signal from this area since the price is likely to continue in that direction before actually reversing.
You can change the settings of the MACD if you choose to use it for signals, and if you want to see it, you'll have to run that indicator below the chart and match the settings to see what is going on, just like the RSI.
Going back to Watch Signals. You can also choose to require more than one watch signal if you choose. You can skip watch signals, so it will ignore the first or second one, whatever you want to do. You can color the background to show you where watch signals have been skipped.
Regarding the wait period for creating watch signals after a sell or after a buy, you can also color the background to see where these were blocked by the wait period.
Lastly you can choose which type of watch signals to use, or keep them from being shown on the chart. This allows you to study the history of how the asset you are trading behaves and customize the behavior of signals based on your study of it.
Everything in the settings area has tooltips, which will explain what that thing does to help you along this journey.
I hope this indicator (and perhaps Ultimate RSI alongside this) will help you take your trading to the next level.
Oscillator Volume Profile [Trendoscope®]The Oscillator Volume Profile indicator is designed to construct a volume profile based on predefined oscillator levels. It integrates volume data with oscillator readings to offer a unique perspective on market dynamics.
🎲 Selectable Oscillators:
Users can select from an array of oscillator options for the basis of the volume profile, including:
Relative Strength Index (RSI)
Chande Momentum Oscillator (CMO)
Center of Gravity (COG)
Money Flow Index (MFI)
Rate of Change (ROC)
Commodity Channel Index (CCI)
Stochastic Oscillator (Stoch)
True Strength Index (TSI)
Williams %R (WPR)
The length parameters - Length, Fast Length, Slow Length allows users to define the period over which the chosen oscillator is calculated, tailoring the sensitivity of the indicator to their trading strategy.
🎲 Dynamic Overbought/Oversold Ranges:
This indicator enhances traditional concepts by introducing dynamic overbought and oversold levels. These adaptable thresholds are calculated using various methods, including:
🎯 Highest/Lowest Range Method : This method establishes the range based on the highest and lowest values of the oscillator within the last N bars.
🎯 Moving Average Range Method : The range is derived from a moving average of the oscillator, providing a smoothed threshold that reflects more recent market conditions.
In addition to these methods, the indicator incorporates a unique 'Sticky Border' feature:
🎯 Sticky Border: With this option enabled, the dynamic ranges maintain their levels until the oscillator breaks out of the range. Once a breakout occurs, the levels are recalculated and updated. This mechanism ensures that the borders remain consistent and relevant, only adjusting to significant market movements that warrant a recalculation.
Users can select their preferred method for determining dynamic ranges, allowing for a customized approach that aligns with their analysis and trading strategy. The sticky border feature further refines this functionality, offering continuity until a decisive market move occurs.
🎲 Volume Profile Calculation Parameters:
🎯 Trend Filter: The indicator provides a versatile trend filter with four selectable options:
Uptrend: The volume profile is calculated when the oscillator indicates an uptrend.
Downtrend: The volume profile is calculated when the oscillator indicates a downtrend.
Any: The volume profile is calculated regardless of the trend.
External: Users can input values from an external indicator. The volume profile is then calculated only when the external indicator's value is non-zero, integrating external analysis into the volume profile construction.
🎯 Precision: Users have the option to define the precision for calculating the volume profile, which is crucial due to the varying scales of different oscillators (e.g., some oscillators range from 0 to 100, while others from -1 to 1). Selecting an appropriate precision ensures that the volume profile is accurately aligned with the minimal price range significant to the chosen oscillator. This setting requires user intervention for optimal configuration, as automatic calculation is not feasible due to the diverse nature of oscillator ranges.
🎯 Number of Bars: Users can select a specific number of bars for volume profile calculation, or opt to include all available historical bars for a comprehensive profile.
🎲 Selecting the right precision:
Users must select the right precision based on their choice of indicator. For example, RSI values range from 0-100. Hence, the default precision of 1 work fine on RSI as the volume profiles are plotted from 0 to 100 at the interval of 0.1
But, the default precision of 1 will not be ok on TSI because TSI values range from -1 to 1. Hence, using 1 as precision will result in very less volume profile lines as shown below.
Due to this, it is necessary to increase the precision for oscillators such as TSI where the range between highest and lowest value is far less. Once we set the precision to 2, we can see more appropriate volume profile division.
🎲 Note of thanks:
This publication uses polyline feature for drawing volume profiles. The advantage of using polyline is that we can overcome max 500 lines issue that we face by using the regular line objects. More details of polyline can be found in the tradingview blog post
Further, using polyline for display of volume profiles is inspired by the publications of fikira and KioseffTrading
Webby's Quick & Grateful Dead RSWebby's Quick & Grateful Dead RS combines a Relative Strength Line and Moving Averages to help traders hold a core position in a winning stock by identifying moments of strength and weakness in a stocks advance.
The Relative Strength (RS) line is something many investors are familiar with. It is used to measure a stocks performance versus the S&P 500 (default setting) and is typically calculated by dividing the closing price of the stock by the closing price of the S&P. This means if a stock moves up and the S&P moves down or the stock moves up more than the S&P the RS line will increase, if the stock moves down while the S&P moves up the line will decrease.
While the RS Line by itself is a powerful tool, adding moving averages to the RS line can help better understand trends. This work was done by Mike Webster (Webby) as he tried to reverse engineer how William O'Neil was able to hold some of his biggest winning positions.
This indicator plots the RS line along with two moving averages and clearly labels and alerts the 3 signals shared by Webby:
Quick Break - RS line crosses below the fast moving average
Quicksand - RS line moves lower than it was at the time of the Quick Break
Grateful Dead Break - RS line crosses below the slow moving average
To ensure your chart doesn't get skewed, please use the multiplier in the setting to adjust the vertical offset of the RS line and moving averages.
Polyline PlusThis library introduces the `PolylinePlus` type, which is an enhanced version of the built-in PineScript `polyline`. It enables two features that are absent from the built-in type:
1. Developers can now efficiently add or remove points from the polyline. In contrast, the built-in `polyline` type is immutable, requiring developers to create a new instance of the polyline to make changes, which is cumbersome and incurs a significant performance penalty.
2. Each `PolylinePlus` instance can theoretically hold up to ~1M points, surpassing the built-in `polyline` type's limit of 10K points, as long as it does not exceed the memory limit of the PineScript runtime.
Internally, each `PolylinePlus` instance utilizes an array of `line`s and an array of `polyline`s. The `line`s array serves as a buffer to store lines formed by recently added points. When the buffer reaches its capacity, it flushes the contents and converts the lines into polylines. These polylines are expected to undergo fewer updates. This approach is similiar to the concept of "Buffered I/O" in file and network systems. By connecting the underlying lines and polylines, this library achieves an enhanced polyline that is dynamic, efficient, and capable of surpassing the maximum number of points imposed by the built-in polyline.
🔵 API
Step 1: Import this library
import algotraderdev/polylineplus/1 as pp
// remember to check the latest version of this library and replace the 1 above.
Step 2: Initialize the `PolylinePlus` type.
var p = pp.PolylinePlus.new()
There are a few optional params that developers can specify in the constructor to modify the behavior and appearance of the polyline instance.
var p = pp.PolylinePlus.new(
// If true, the drawing will also connect the first point to the last point, resulting in a closed polyline.
closed = false,
// Determines the field of the chart.point objects that the polyline will use for its x coordinates. Either xloc.bar_index (default), or xloc.bar_time.
xloc = xloc.bar_index,
// Color of the polyline. Default is blue.
line_color = color.blue,
// Style of the polyline. Default is line.style_solid.
line_style = line.style_solid,
// Width of the polyline. Default is 1.
line_width = 1,
// The maximum number of points that each built-in `polyline` instance can contain.
// NOTE: this is not to be confused with the maximum of points that each `PolylinePlus` instance can contain.
max_points_per_builtin_polyline = 10000,
// The number of lines to keep in the buffer. If more points are to be added while the buffer is full, then all the lines in the buffer will be flushed into the poylines.
// The higher the number, the less frequent we'll need to // flush the buffer, and thus lead to better performance.
// NOTE: the maximum total number of lines per chart allowed by PineScript is 500. But given there might be other places where the indicator or strategy are drawing lines outside this polyline context, the default value is 50 to be safe.
lines_bffer_size = 50)
Step 3: Push / Pop Points
// Push a single point
p.push_point(chart.point.now())
// Push multiple points
chart.point points = array.from(p1, p2, p3) // Where p1, p2, p3 are all chart.point type.
p.push_points(points)
// Pop point
p.pop_point()
// Resets all the points in the polyline.
p.set_points(points)
// Deletes the polyline.
p.delete()
🔵 Benchmark
Below is a simple benchmark comparing the performance between `PolylinePlus` and the native `polyline` type for incrementally adding 10K points to a polyline.
import algotraderdev/polylineplus/2 as pp
var t1 = 0
var t2 = 0
if bar_index < 10000
int start = timenow
var p = pp.PolylinePlus.new(xloc = xloc.bar_time, closed = true)
p.push_point(chart.point.now())
t1 += timenow - start
start := timenow
var polyline pl = na
var points = array.new()
points.push(chart.point.now())
if not na(pl)
pl.delete()
pl := polyline.new(points)
t2 += timenow - start
if barstate.islast
log.info('{0} {1}', t1, t2)
For this benchmark, `PolylinePlus` took ~300ms, whereas the native `polyline` type took ~6000ms.
We can also fine-tune the parameters for `PolylinePlus` to have a larger buffer size for `line`s and a smaller buffer for `polyline`s.
var p = pp.PolylinePlus.new(xloc = xloc.bar_time, closed = true, lines_buffer_size = 500, max_points_per_builtin_polyline = 1000)
With the above optimization, it only took `PolylinePlus` ~80ms to process the same 10K points, which is ~75x the performance compared to the native `polyline`.
Leading Economic Indicator (LEI)The Leading Economic Indicator (LEI) is a groundbreaking technical indicator designed to serve as a comprehensive measure of the prevailing direction of economic trends in the United States. This unique index combines two key economic indicators: the Composite Leading Indicator (CLI) from the Organization for Economic Co-operation and Development (OECD) and the Purchasing Managers' Index (PMI) from the Institute for Supply Management (ISM).
The OECD Composite Leading Indicator (CLI) is a globally recognized indicator that assesses the future direction of economic trends by analyzing various leading economic factors. The ISM PMI, on the other hand, provides insights into the business activities of both the manufacturing and services sectors. LEI merges these critical indicators into a single, holistic indicator that empowers traders and investors to grasp the broader economic outlook and the performance of essential economic sectors simultaneously.
By taking into account the CLI and PMI, LEI offers a distinctive perspective, enabling a more accurate assessment of the potential direction of US financial markets.
Usage:
To utilize LEI effectively, it is recommended to apply it on a monthly timeframe (TF Monthly). This extended timeframe is particularly beneficial for investors with a medium to long-term horizon. By focusing on longer-term trends and market stability, LEI becomes an invaluable tool in your investment strategy.
One of the primary applications of LEI is to gauge the risk of market corrections in US financial markets, including the S&P 500, Nasdaq, and Dow Jones indices. Analysts often observe the crossing of the 5-period Simple Moving Average (SMA) with the 10-period SMA. When the 5-period SMA falls below the 10-period SMA, it serves as a potential warning signal for an impending market correction. This feature provides traders with an opportunity to exercise caution and make well-informed investment decisions.
LEI, with its unique blend of the OECD CLI and ISM PMI, provides a reliable tool for assessing the US economic climate, identifying trends, and making informed decisions in the financial markets. It stands as a reference indicator, capturing the essence of economic trends and providing valuable insights to traders and investors.
Sources:
- OECD Composite Leading Indicator (CLI): www.data.oecd.org
- Purchasing Managers' Index: ISM Report on Business (PMI) www.ismworld.org
US Composite Leading Indicator (CLI)The US Composite Leading Indicator (CLI), normalized for the United States, closely mirrors the Conference Board "Leading Economic Index" (LEI). It offers unique insights into economic and financial dynamics.
The Composite Leading Indicator (CLI) is an economic tool designed to anticipate economic developments. It is created by aggregating and normalizing a wide range of economic and financial data from various sources.
The normalized data is then aggregated, and a composite indicator is calculated by taking a weighted average of individual indicators.
The CLI is used to provide early insights into the state of the economy and to anticipate future economic trends. It is particularly valuable for predicting economic downturns, including recessions.
The CLI is an essential tool for economists, governments, businesses, and investors seeking to understand economic trends and make informed decisions.
Key Features:
1. Early Warning: Just like its counterpart, the CLI indicator excels at offering early warnings about significant economic events, particularly economic crises. This makes it an indispensable asset for analysts and investors.
2. Recession Indicators: The moving average serves as an early warning system for potential economic recessions. When it crosses the indicator line from the bottom to the top while surpassing a predefined threshold (e.g., 101), it signals a potential crisis.
3. Market Impact: The CLI indicator provides valuable insights into the performance of financial markets, offering cues about indices such as the S&P 500, Nasdaq, Dow Jones, and more.
Why It Matters:
Understanding the US Composite Leading Indicator (CLI) indicator, normalized for the United States, is crucial for anticipating economic shifts and preparing for changes in financial markets. By analyzing a diverse array of economic factors, it provides a holistic view of economic well-being. Whether you're an investor or economist, this indicator can be an invaluable resource for staying informed about market trends and major economic developments.
Source:
www.data.oecd.org
50 Point Stop & Take Profit**50 Point Stop & Take Profit**
This custom TradingView indicator is designed for instruments like US30 or any asset following a point system. It assists traders in setting precise stop-loss and take-profit levels based on different risk-reward ratios. It calculates and plots horizontal lines at various price levels above and below your specified entry price, with a 50-point difference between each ratio.
**How It Benefits Your Strategy:**
- Each risk-reward ratio, whether it's 1:1, 2:1, 3:1, and so on, is separated by precisely 50 points. This deliberate spacing is tailored to provide you with clear and consistent reference points for managing trades in instruments using a point-based system.
- The 50-point increments make it easy to adjust your positions, ensuring that your risk and reward levels align with your trading strategy and objectives.
**Usage:**
1. Set your desired entry price using the "Entry Price" input.
2. The indicator is ideally suited for instruments like US30, where each point represents a distinct price movement. It will automatically calculate and plot multiple lines at the following levels, both for Long (L) and Short (S) positions:
- 1:1 Risk-Reward Ratio (±50 points)
- 2:1 Risk-Reward Ratio (±100 points)
- 3:1 Risk-Reward Ratio (±150 points)
- 4:1 Risk-Reward Ratio (±200 points)
- 5:1 Risk-Reward Ratio (±250 points)
- 6:1 Risk-Reward Ratio (±300 points)
- 7:1 Risk-Reward Ratio (±350 points)
- 8:1 Risk-Reward Ratio (±400 points)
- 9:1 Risk-Reward Ratio (±450 points)
- 10:1 Risk-Reward Ratio (±500 points)
**Customization Options:**
- **Alerts:** You can set alerts for each level to receive notifications when the price reaches a specific risk-reward ratio.
- **Color Customization:** Customize the colors of the plotted lines to suit your chart preferences.
- **Toggle Ratios:** Easily toggle on/off different risk-reward ratios to focus on specific levels that align with your trading strategy.
**How to Use:**
- Use the plotted lines as reference points for setting stop-loss and take-profit orders at your preferred risk-reward ratios.
- The blue horizontal line represents your specified entry price.
This indicator simplifies your trading strategy by providing clear visual cues for managing risk and reward levels, with each level thoughtfully spaced 50 points apart to cater to your strategy's precision.
*Note: Always use risk management and proper trade sizing in your trading strategy.*
**Version:** Pine Script version 5
Divergences RefurbishedJust as "a butterfly can flap its wings over a flower in China and cause a hurricane in the Caribbean" (Edward Lorenz), small divergences in markets can signal big trading opportunities.
█Introduction
This is a script forked from LonesomeTheBlue's Divergence for Many Indicators v4.
It is a script that checks for divergence between price and many indicators.
In this version, I added more indicators and also added 40 symbols to check for divergences.
More info on the original script can be found here:
█ Improvements
The following improvements have been implemented over v4:
1. Added parameters to customize indicators.
2. Added new indicators:
- Stoch RSI
- Volume Oscillator
- PVT (Price Volume Trend)
- Ultimate Oscillator
- Fisher Transform
- Z-Score/T-Score
3. Now there is the possibility of using 2 external indicators.
4. New option to show tooltips inside labels.
This allows you to save space on the screen if you choose the option to only show the number of divergences or just the abbreviations.
5. New option to show additional text next to the indicator name.
This allows for grouping of indicators and symbols and better visualization, whether through emojis, for example.
6. Added 40 customizable symbols to check for divergences.
7. Option "show only the first letter" of the indicator replaced by: "show the abbreviation of the indicator".
Reason: the indicator abbreviation is more informative and easier to read.
8. Script converted to PineScript version 5.
█ CONCEPTS
Below I present a brief description of the available indicators.
1. Moving Average Convergence/Divergence (MACD):
Shows the difference between short-term and long-term exponential moving averages.
2. MACD Histogram:
Shows the difference between MACD and its signal line.
3. Relative Strength Index (RSI):
Measures the relative strength of recent price gains to recent price losses of an asset.
4. Stochastic Oscillator (Stoch):
Compares the current price of an asset to its price range over a specified time period.
5. Stoch RSI:
Stochastic of RSI.
6. Commodity Channel Index (CCI):
Measures the relationship between an asset's current price and its moving average.
7. Momentum: Shows the difference between the current price and the price a few periods ago.
Shows the difference between the current price and the price of a certain period in the past.
8. Chaikin Money Flow (CMF):
A variation of A/D that takes into account the daily price variation and weighs trading volume accordingly. Accumulation/Distribution (A/D) identifies buying and selling pressure by tracking the flow of money into and out of an asset based on volume patterns.
9. On-Balance Volume (OBV):
Identify divergences between trading volume and an asset's price.
Sum of trading volume when the price rises and subtracts volume when the price falls.
10. Money Flow Index (MFI):
Measures volume pressure in a range of 0 to 100.
Calculates the ratio of volume when the price goes up and when the price goes down.
11. Volume Oscillator (VO):
Identify divergences between trading volume and an asset's price. Ratio of change of volume, from a fast period in relation to a long period.
12. Price-Volume Trend (PVT):
Identify the strength of an asset's price trend based on its trading volume. Cumulative change in price with volume factor. The PVT calculation is similar to the OBV calculation, but it takes into account the percentage price change multiplied by the current volume, plus the previous PVT value.
13. Ultimate Oscillator (UO):
Combines three different time periods to help identify possible reversal points.
14. Fisher Transform (FT):
Normalize prices into a Gaussian normal distribution.
15. Z-Score/T-Score: Shows the difference between the current price and the price a few periods ago. I is a statistical measurement that indicates how many standard deviations a data point is from the mean of a data set.
When to use t-score instead of z-score? When the sample size is small (length < 30).
Here, the use of z-score or t-score is chosen automatically based on the length parameter.
█ What to look for
The operation is simple. The script checks for divergences between the price and the selected indicators.
Now with the possibility of using multiple symbols, it is possible to check divergences between different assets.
A well-described view on divergences can be found in this cheat sheet:
◈ Examples with SPY ETF versus indicators:
1. Regular bullish divergence with external indicator:
1. Regular bearish divergence with Fisher Transform:
1. Positive hidden divergence with Momentum indicator:
1. Negative hidden divergence with RSI:
◈ Examples with SPY ETF versus other symbols:
1. Regular bearish divergence with European Stoch Market:
2. Regular bearish divergence with DXY inverted:
3. Regular bullish divergence with Taiwan Dollar:
4. Regular bearish divergence with US10Y (10-Year US Treasury Note):
5. Regular bullish divergence with QQQ ETF (Nasdaq 100):
6. Regular bullish divergence with ARKK ETF (ARK Innovation):
7.Positive hidden divergence with RSP ETF (S&P 500 Equal Weight):
8. Negative hidden divergence with EWZ ETF (Brazil):
◈ Examples with BTCUSD versus other symbols:
1. Regular bearish divergence with BTCUSDLONGS from Bitfinex:
2. Regular bearish divergence with BLOK ETF (Amplify Transformational Data Sharing):
3. Negative hidden divergence with NATGAS (Natural Gas):
4. Positive hidden divergence with TOTALDEFI (Total DeFi Market Cap):
█ Conclusion
The symbols available to check divergences were chosen in such a way as to cover the main markets, in the most generic way possible.
You can adjust them according to your needs.
A trader in the American market, for example, could add more ETFs, American stocks, and sectoral indices, such as the XLF (Financial Select Sector SPDR Fund), the XLK (Technology Select Sector SPDR), etc.
On the other hand, a cryptocurrency trader could add more currency pairs and sector indicators, such as BTCUSDSHORTS (Bitfinex), USDT.D (Tether Dominance), etc.
If the chart becomes too cluttered, you can use the option to show only the number of divergences or only the indicator abbreviations.
Or even disable certain indicators and symbols, if they are not of interest to you.
I hope this script is useful.
Don't forget to support LonesomeTheBlue's work too.
[blackcat] L2 Votatility of Williams VixFix Risk AssessmentHey there! I previously wrote an article about the Larry Williams ViX Fix technical indicator. Soon after, friends from the TradingView community told me that this indicator could be combined with the Risk Assessment indicator I wrote about earlier to determine when to go long or short. At the time, I found it a bit cumbersome to use both indicators together, so I came up with a solution: to merge them. This way, we can use one technical indicator to visually see whether we should go long or short. Isn't that cool? The indicator has a very common name: ** L2 Votatility of Williams VixFix Risk Assessment, or VoWVRA for short.**
This TradingView Pine Script is a custom indicator based on the Larry Williams ViX Fix technical indicator, designed to help traders with risk assessment and trading decisions. The Larry Williams ViX Fix indicator is derived from the volatility of the S&P 500 index and is mainly used to display changes in current market sentiment. The indicator determines market volatility by calculating the distance between the highest price, the lowest price, and the closing price. The higher the value of the indicator, the more tense the market sentiment, and the higher the market volatility; conversely, the lower the value, the more stable the market sentiment and the lower the market volatility.
The VoWVRA indicator is based on the Larry Williams ViX Fix indicator, combined with technical indicators such as Bollinger Bands and EMA, to assess market risk. The indicator can be customized with input parameters to suit different markets and investor needs. Using the VoWVRA indicator can help traders make wiser choices in risk control and trading decisions.
In addition, this TradingView Pine Script also includes a risk assessment indicator. The indicator calculates a series of values and then applies the exponential moving average (EMA) to the percentage change between the closing price and the highest and lowest prices within a certain range to determine the safety level. The safety level is then compared to different thresholds to determine the market's risk level. The risk assessment indicator can be customized with input parameters such as risk length, safety length, and EMA length to suit different market conditions and investor preferences. Using the risk assessment indicator can help traders make wiser decisions in risk management and trading strategies.
By using the VoWVRA and risk assessment indicators, traders can more accurately assess market risk and make wiser choices in trading decisions.
Cycles: 4x dual inputs: Swing / Time Cycles projected forward//Purpose/Premise:
To project forward vertical 'cycle' lines based on user-input anchor points, and to search for confluence.
The idea being that if several well-anchored cycles agree (i.e. we see multiple bunched vertical line confluence in the future), then this may add support to an already existing trade idea, or may indicate an increased likelihood of a shift in direction.
//Usage & notes:
~In the above chart I've anchored to obvious swing lows and swing highs in Btc/Usd from 2020-2022. You could also use fixed time-based cycles from a favored start anchor point. Bars per cycle are printed at the top of each cycle box if your're interested in time cycles. I.e. for 1, 2, 3 month cycles: for BTC you could use 30, 60, 90 bars on daily; for S&P you could use 20, 40, 60 bars on daily.
~On first loading the indicator you will be asked select 'start date', and 'end date' for each of 4 sessions (8x clicks on chart). After this you can easily reset points by clicking the indicator display line three dots>> reset points. Or you can simply drag the vertical box edges (purple lines) to change your cycle anchor points.
~Be sure the start anchor point is before the end anchor point or box/lines won't appear.
~When you drop down to low timeframes you might get bar_index error due to history available: you need then to click the three dots on indicator display line >> reset points >> 8x clicks on the chart.
~Vertical projected lines will match the color of the cycle box they origninate from.
~Lines will project into the future as far as is allowed by tradingview (500 bars max)
//Inputs:
~Time start and end dates for each cycle (change these as described above, or input manually)
~Show/hide each cycle (default is show all 4)
~Formatting options: color of forward projected lines, line width, line style, line / box / text color.
~Box transparancy: Set to 100 to make boxes invisible & declutter the chart. Set to 0 for maximum opacity. Default is 80.
thanks to @Sathyamurthie for his ideas on cycle confluence which caused me to write this.
Paytience DistributionPaytience Distribution Indicator User Guide
Overview:
The Paytience Distribution indicator is designed to visualize the distribution of any chosen data source. By default, it visualizes the distribution of a built-in Relative Strength Index (RSI). This guide provides details on its functionality and settings.
Distribution Explanation:
A distribution in statistics and data analysis represents the way values or a set of data are spread out or distributed over a range. The distribution can show where values are concentrated, values are absent or infrequent, or any other patterns. Visualizing distributions helps users understand underlying patterns and tendencies in the data.
Settings and Parameters:
Main Settings:
Window Size
- Description: This dictates the amount of data used to calculate the distribution.
- Options: A whole number (integer).
- Tooltip: A window size of 0 means it uses all the available data.
Scale
- Description: Adjusts the height of the distribution visualization.
- Options: Any integer between 20 and 499.
Round Source
- Description: Rounds the chosen data source to a specified number of decimal places.
- Options: Any whole number (integer).
Minimum Value
- Description: Specifies the minimum value you wish to account for in the distribution.
- Options: Any integer from 0 to 100.
- Tooltip: 0 being the lowest and 100 being the highest.
Smoothing
- Description: Applies a smoothing function to the distribution visualization to simplify its appearance.
- Options: Any integer between 1 and 20.
Include 0
- Description: Dictates whether zero should be included in the distribution visualization.
- Options: True (include) or False (exclude).
Standard Deviation
- Description: Enables the visualization of standard deviation, which measures the amount of variation or dispersion in the chosen data set.
- Tooltip: This is best suited for a source that has a vaguely Gaussian (bell-curved) distribution.
- Options: True (enable) or False (disable).
Color Options
- High Color and Low Color: Specifies colors for high and low data points.
- Standard Deviation Color: Designates a color for the standard deviation lines.
Example Settings:
Example Usage RSI
- Description: Enables the use of RSI as the data source.
- Options: True (enable) or False (disable).
RSI Length
- Description: Determines the period over which the RSI is calculated.
- Options: Any integer greater than 1.
Using an External Source:
To visualize the distribution of an external source:
Select the "Move to" option in the dropdown menu for the Paytience Distribution indicator on your chart.
Set it to the existing panel where your external data source is placed.
Navigate to "Pin to Scale" and pin the indicator to the same scale as your external source.
Indicator Logic and Functions:
Sinc Function: Used in signal processing, the sinc function ensures the elimination of aliasing effects.
Sinc Filter: A filtering mechanism which uses sinc function to provide estimates on the data.
Weighted Mean & Standard Deviation: These are statistical measures used to capture the central tendency and variability in the data, respectively.
Output and Visualization:
The indicator visualizes the distribution as a series of colored boxes, with the intensity of the color indicating the frequency of the data points in that range. Additionally, lines representing the standard deviation from the mean can be displayed if the "Standard Deviation" setting is enabled.
The example RSI, if enabled, is plotted along with its common threshold lines at 70 (upper) and 30 (lower).
Understanding the Paytience Distribution Indicator
1. What is a Distribution?
A distribution represents the spread of data points across different values, showing how frequently each value occurs. For instance, if you're looking at a stock's closing prices over a month, you may find that the stock closed most frequently around $100, occasionally around $105, and rarely around $110. Graphically visualizing this distribution can help you see the central tendencies, variability, and shape of your data distribution. This visualization can be essential in determining key trading points, understanding volatility, and getting an overview of the market sentiment.
2. The Rounding Mechanism
Every asset and dataset is unique. Some assets, especially cryptocurrencies or forex pairs, might have values that go up to many decimal places. Rounding these values is essential to generate a more readable and manageable distribution.
Why is Rounding Needed? If every unique value from a high-precision dataset was treated distinctly, the resulting distribution would be sparse and less informative. By rounding off, the values are grouped, making the distribution more consolidated and understandable.
Adjusting Rounding: The `Round Source` input allows users to determine the number of decimal places they'd like to consider. If you're working with an asset with many decimal places, adjust this setting to get a meaningful distribution. If the rounding is set too low for high precision assets, the distribution could lose its utility.
3. Standard Deviation and Oscillators
Standard deviation is a measure of the amount of variation or dispersion of a set of values. In the context of this indicator:
Use with Oscillators: When using oscillators like RSI, the standard deviation can provide insights into the oscillator's range. This means you can determine how much the oscillator typically deviates from its average value.
Setting Bounds: By understanding this deviation, traders can better set reasonable upper and lower bounds, identifying overbought or oversold conditions in relation to the oscillator's historical behavior.
4. Resampling
Resampling is the process of adjusting the time frame or value buckets of your data. In the context of this indicator, resampling ensures that the distribution is manageable and visually informative.
Resample Size vs. Window Size: The `Resample Resolution` dictates the number of bins or buckets the distribution will be divided into. On the other hand, the `Window Size` determines how much of the recent data will be considered. It's crucial to ensure that the resample size is smaller than the window size, or else the distribution will not accurately reflect the data's behavior.
Why Use Resampling? Especially for price-based sources, setting the window size around 500 (instead of 0) ensures that the distribution doesn't become too overloaded with data. When set to 0, the window size uses all available data, which may not always provide an actionable insight.
5. Uneven Sample Bins and Gaps
You might notice that the width of sample bins in the distribution is not uniform, and there can be gaps.
Reason for Uneven Widths: This happens because the indicator uses a 'resampled' distribution. The width represents the range of values in each bin, which might not be constant across bins. Some value ranges might have more data points, while others might have fewer.
Gaps in Distribution: Sometimes, there might be no data points in certain value ranges, leading to gaps in the distribution. These gaps are not flaws but indicate ranges where no values were observed.
In conclusion, the Paytience Distribution indicator offers a robust mechanism to visualize the distribution of data from various sources. By understanding its intricacies, users can make better-informed trading decisions based on the distribution and behavior of their chosen data source.