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!
ابحث في النصوص البرمجية عن "中央海岸水手vs墨尔本胜利"
SPDR TrackerMonitor all SPDR Index Funds in one location! The purpose of this indicator is to review which sectors are trend up vs down to better manage risk against SPY, other funds and/or individual stocks.
With this indicator it may become more apparent which sectors to begin investment in that are at lows compared to others, or use it to determine which stocks may be undervalued or overvalued against SPY.
There is a small table at the bottom where each fund symbol is presented along with it's mode value, last period change as well as last period volume - there's a tooltip that shows the description for each symbol for a quick reminder.
Review the configuration pane where:
Individual funds can have their visibility toggled
Change funds colors
Adjust display mode for each fund (SMA, EMA, VWMA, BBW, Change, ATR, VWAP - many more!)
Some presentation modes may look better on some timeframes vs others, adjust lengths and use anchor point for VWAP.
Future updates may bring about new features, I have some code organization and refactoring to do but wanted to share the idea anyways.
Feel free to drop any suggestions for feature enhancement and I hope it brings success to many, enjoy.
High/Low of week: Stats & Day of Week tendencies// Purpose:
-To show High of Week (HoW) day and Low of week (LoW) day frequencies/percentages for an asset.
-To further analyze Day of Week (DoW) tendencies based on averaged data from all various custom weeks. Giving a more reliable measure of DoW tendencies ('Meta Averages').
-To backtest day-of-week tendencies: across all asset history or across custom user input periods (i.e. consolidation vs trending periods).
-Education: to see how how data from a 'hard-defined-week' may be misleading when seeking statistical evidence of DoW tendencies.
// Notes & Tips:
-Only designed for use on DAILY timeframe.
-Verification table is to make sure HoW / LoW DAY (referencing previous finished week) is printing correctly and therefore the stats table is populating correctly.
-Generally, leaving Timezone input set to "America/New_York" is best, regardless of your asset or your chart timezone. But if misaligned by 1 day =>> tweak this timezone input to correct
-If you want to use manual backtesting period (e.g. for testing consolidation periods vs trending periods): toggle these settings on, then click the indicator display line three dots >> 'Reset Points' to quickly set start & end dates.
// On custom week start days:
-For assets like BTC which trade 7 days a week, this is quite simple. Pick custom start day, use verification table to check all is well. See the start week day & time in said verification table.
-For traditional assets like S&P which trade only 5 days a week and suffer from occasional Holidays, this is a bit more complicated. If the custom start day input is a bank holiday, its custom 'week' will be discounted from the data set. E.g.1: if you choose 'use custom start day' and set it to Monday, then bank holiday Monday weeks will be discounted from the data set. E.g.2: If you choose 'use custom start day' and set it to Thursday, then the Holiday Thursday custom week (e.g Thanksgiving Thursday >> following Weds) would be discounted from the data set.
// On 'Meta Averages':
-The idea is to try and mitigate out the 'continuation bias' that comes from having a fixed week start/end time: i.e. sometimes a market is trending through the week start/end time, so the start/end day stats are over-weighted if one is trying to tease out typical weekly profile tendencies or typical DoW tendencies. You'll notice this if you compare the stats with various custom start days ('bookend' start/end days are always more heavily weighted). I wanted to try to mitigate out this 'bias' by cycling through all the possible new week start/end days and taking an average of the results. i.e. on BTC/USD the 'meta average' for Tuesday would be the average of the Tuesday HoW frequencies from the set of all 7 possible custom weeks(Mon-Sun, Tues-Mon, Weds-Tues, etc etc).
// User Inputs:
~Week Start:
-use custom week start day (default toggled OFF); Choose custom week start day
-show Meta Averages (default toggled ON)
~Verification Table:
-show table, show new week lines, number of new week lines to show
-table formatting options (position, color, size)
-timezone (only for tweaking if printed DoW is misaligned by 1 day)
~Statistics Table:
-show table, table formatting options (position, color, size)
~Manual Backtesting:
-Use start date (default toggled OFF), choose start date, choose vline color
-Use end date (defautl toggled OFF), choose end date, choose vline color
// Demo charts:
NQ1! (Nasdaq), Full History, Traditional week (Mon>>Friday) stats. And Meta Averages. Annotations in purple:
NQ1! (Nasdaq), Full History, Custom week (custom start day = Wednesday). And Meta Averages. Annotations in purple:
Support and Resistance Backtester [SS]Hey everyone,
Excited to release this indicator I have been working on.
I conceptualized it as an idea a while ago and had to nail down the execution part of it. I think I got it to where I am happy with it, so let me tell you about it!
What it does?
This provides the user with the ability to quantify support and resistance levels. There are plenty of back-test strategies for RSI, stochastics, MFI, any type of technical based indicator. However, in terms of day traders and many swing traders, many of the day traders I know personally do not use or rely on things like RSI, stochastics or MFI. They actually just play the support and resistance levels without attention to anything else. However, there are no tools available to these people who want to, in a way, objectively test their identified support and resistance levels.
For me personally, I use support and resistance levels that are mathematically calculated and I am always curious to see which levels:
a) Have the most touches,
b) Have provided the most support,
c) Have provided the most resistance; and,
d) Are most effective as support/resistance.
And, well, this indicator answers all four of those questions for you! It also attempts to provide some way to support and resistance traders to quantify their levels and back-test the reliability and efficacy of those levels.
How to use:
So this indicator provides a lot of functionality and I think its important to break it down part by part. We can do this as we go over the explanation of how to use it. Here is the step by step guide of how to use it, which will also provide you an opportunity to see the options and functionality.
Step 1: Input your support and resistance levels:
When we open up the settings menu, we will see the section called "Support and Resistance Levels". Here, you have the ability to input up to 5 support and resistance levels. If you have less, no problem, simply leave the S/R level as 0 and the indicator will automatically omit this from the chart and data inclusion.
Step 2: Identify your threshold value:
The threshold parameter extends the range of your support and resistance level by a desired amount. The value you input here should be the value in which you would likely stop out of your position. So, if you are willing to let the stock travel $1 past your support and resistance level, input $1 into this variable. This will extend the range for the assessment and permit the stock to travel +/- your threshold amount before it counts it as a fail or pass.
Step 3: Select your source:
The source will tell the indicator what you want to assess. If you want to assess close, it will look at where the ticker closes in relation to your support and resistance levels. If you want to see how the highs and lows behave around the S/R levels, then change the source to High or Low.
It is recommended to leave at close for optimal results and reliability however.
Step 4: Determine your lookback length:
The lookback length will be the number of candles you want the indicator to lookback to assess the support and resistance level. This is key to get your backtest results.
The recommendation is on timeframes 1 hour or less, to look back 300 candles.
On the daily, 500 candles is recommended.
Step 5: Plot your levels
You will see you have various plot settings available to you. The default settings are to plot your support and resistance levels with labels. This will look as follows:
This will plot your basic support and resistance levels for you, so you do not have to manually plot them.
However, if you want to extend the plotted support and resistance level to visually match your threshold values, you can select the "Plot Threshold Limits" option. This will extend your support and resistance areas to match the designated threshold limits.
In this case on MSFT, I have the threshold limit set at $1. When I select "Plot Threshold Limits", this is the result:
Plotting Passes and Fails:
You will notice at the bottom of the settings menu is an option to plot passes and plot fails. This will identify, via a label overlaid on the chart, where the support and resistance failures and passes resulted. I recommend only selecting one at a time as the screen can get kind of crowded with both on. here is an example on the MSFT chart:
And on the larger timeframe:
The chart
The chart displays all of the results and counts of your support and resistance results. Some things to pay attention to use the chart are:
a) The general success rate as support vs resistance
Rationale: Support levels may act as resistance more often than they do support or vice versa. Let's take a look at MSFT as an example:
The chart above shows the 334.07 level has acted as very strong support. It has been successful as support almost 82% of the time. However, as resistance, it has only been successful 33% of the time. So we could say that 334 is a strong key support level and an area we would be comfortable longing at.
b) The number of touches:
Above you will see the number of touches pointed out by the blue arrow.
Rationale: The number of touches differs from support and resistance. It counts how many times and how frequently a ticker approaches your support and/or resistance area and the duration of time spent in that area. Whereas support and resistance is determined by a candle being either above or below a s/r area, then approaching that area and then either failing or bouncing up/down, the number of touches simply assesses the time spent (in candles) around a support or resistance level. This is key to help you identify if a level has frequent touches/consolidation vs other levels and can help you filter out s/r levels that may not have a lot of touches or are infrequently touched.
Closing comments:
So this is pretty much the indicator in a nutshell. Hopefully you find it helpful and useful and enjoy it.
As always let me know your questions/comments and suggestions below.
As always I appreciate all of you who check out, try out and read about my indicators and ideas. I wish you all the safest trades and good luck!
High of Day Low of Day hourly timings: Statistics. Time of day %High of Day (HoD) & Low of Day (LoD) hourly timings: Statistics. Time of day % likelihood for high and low.
//Purpose:
To collect stats on the hourly occurrences of HoD and LoD in an asset, to see which times of day price is more likely to form its highest and lowest prices.
//How it works:
Each day, HoD and LoD are calculated and placed in hourly 'buckets' from 0-23. Frequencies and Percentages are then calculated and printed/tabulated based on the full asset history available.
//User Inputs:
-Timezone (default is New York); important to make sure this matches your chart's timezone
-Day start time: (default is Tradingview's standard). Toggle Custom input box to input your own custom day start time.
-Show/hide day-start vertical lines; show/hide previous day's 'HoD hour' label (default toggled on). To be used as visual aid for setting up & verifying timezone settings are correct and table is populating correctly).
-Use historical start date (default toggled off): Use this along with bar-replay to backtest specific periods in price (i.e. consolidated vs trending, dull vs volatile).
-Standard formatting options (text color/size, table position, etc).
-Option to show ONLY on hourly chart (default toggled off): since this indicator is of most use by far on the hourly chart (most history, max precision).
// Notes & Tips:
-Make sure Timezone settings match (input setting & chart timezone).
-Play around with custom input day start time. Choose a 'dead' time (overnight) so as to ensure stats are their most meaningful (if you set a day start time when price is likely to be volatile or trending, you may get a biased / misleadingly high readout for the start-of-day/ end-of-day hour, due to price's tendency for continuation through that time.
-If you find a time of day with significantly higher % and it falls either side of your day start time. Try adjusting day start time to 'isolate' this reading and thereby filter out potential 'continuation bias' from the stats.
-Custom input start hour may not match to your chart at first, but this is not a concern: simply increment/decrement your input until you get the desired start time line on the chart; assuming your timezone settings for chart and indicator are matching, all will then work properly as designed.
-Use the the lines and labels along with bar-replay to verify HoD/LoD hours are printing correctly and table is populating correctly.
-Hour 'buckets' represent the start of said hour. i.e. hour 14 would be populated if HoD or LoD formed between 14:00 and 15:00.
-Combined % is simply the average of HoD % and LoD %. So it is the % likelihood of 'extreme of day' occurring in that hour.
-Best results from using this on Hourly charts (sub-hourly => less history; above hourly => less precision).
-Note that lower tier Tradingview subscriptions will get less data history. Premium acounts get 20k bars history => circa 900 days history on hourly chart for ES1!
-Works nicely on Btc/Usd too: any 24hr assets this will give meaningful data (whereas some commodities, such as Lean Hogs which only trade 5hrs in a day, will yield less meaningful data).
Example usage on S&P (ES1! 1hr chart): manual day start time of 11pm; New York timezone; Visual aid lines and labels toggled on. HoD LoD hour timings with 920 days history:
Directional Volume EStimate from Price Action (RedK D_VESPA)The "Directional Volume EStimate from Price Action (RedK D_VESPA)" is another weapon for the VPA (Volume Price Analysis) enthusiasts and traders who like to include volume-based insights & signals to their trading. The basic concept is to estimate the sell and buy split of the traded volume by extrapolating the price action represented by the shape of the associated price bar. We then create and plot an average of these "estimated buy & sell volumes" - the estimated average Net Volume is the balance between these 2 averages.
D_VESPA uses clear visualizations to represent the outcomes in a less distracting and more actionable way.
How does D_VESPA work?
-------------------------------------
The key assumption is that when price moves up, this is caused by "buy" volume (or increasing demand), and when the price moves down, this is due to "selling" volume (or increasing supply). Important to note that we are making our Buy/sell volume estimates here based on the shape of the price bar, and not looking into lower time frame volume data - This is a different approach and is still aligned to the key concepts of VPA.
Originally this work started as an improvement to my Supply/Demand Volume Viewer (V.Viewer) , I ended up re-writing the whole thing after some more research and work on VPA, to improve the estimation, visualization and usability / tradability.
Think of D_VESPA as the "Pro" version of V.Viewer -- and please go back and review the details of V.Viewer as the root concepts are the same so I won't repeat them here (as it comes to exploring Balance Zone and finding Price Convergence/Divergence)
Main Features of D_VESPA
--------------------------------------
- Update Supply/Demand calculation to include 2-bar gaps (improved algo)
- Add multiple options for the moving average (MA type) for the calculation - my preference is to use WMA
- Add option to show Net Volume as 3-color bars
- Visual simplification and improvements to be less distracting & more actionable
- added options to display/hide main visuals while maintaining the status line consistency (Avg Supply, Avg Demand, Avg Net)
- add alerts for NetVol moving into Buy (crosses 0 up) or Sell (crosses 0 down) modes - or swing from one mode to the other
(there are actually 2 sets of alerts, one set for the main NetVol plot, and the other for the secondary TF NetVol - give user more options on how to utilize D_VESPA)
Quick techie piece, how does the estimated buy/sell volume algo work ?
------------------------------------------------------------------------------------------
* per our assumption, buy volume is associated with price up-moves, sell volume is associated with price down-moves
* so each of the bulls and bears will get the equivalent of the top & bottom wicks,
* for up bars, bulls get the value of the "body", else the bears get the "body"
* open gaps are allocated to bulls or bears depending on the gap direction
The below sketch explains how D_VESPA estimates the Buy/Sell Volume split based on the bar shape (including gap) - the example shows a bullish bar with an opening gap up - but the concept is the same for a down-bar or a down-gap.
I kept both the "Volume Weighted" and "2-bar Gap Impact" as options in the indicator settings - these 2 options should be always kept selected. They are there for those who would like to experiment with the difference these changes have on the buy/sell estimation. The indicator will handle cases where there is no volume data for the selected symbol, and in that case, it will simply reflect Average Estimated Bull/Bear ratio of the price bar
The Secondary TF Est Average Net Volume:
---------------------------------------------------------
I added the ability to plot the Estimate Average Net Volume for a secondary timeframe - options 1W, 1D, 1H, or Same as Chart.
- this feature provides traders the confidence to trade the lower timeframes in the same direction as the prevailing "market mode"
- this also adds more MTF support beyond the existing TradingView's built-in MTF support capability - experiment with various settings between exposing the indicator's secondary TF plot, and changing the TF option in the indicator settings.
Note on the secondary TF NetVol plot:
- the secondary TF needs to be set to same as or higher TF than the chart's TF - if not, a warning sign would show and the plot will not be enabled. for example, a day trader may set the secondary TF to 1Hr or 1Day, while looking at 5min or 15min chart. A swing/trend trader who frequently uses the daily chart may set the secondary TF to weekly, and so on..
- the secondary TF NetVol plot is hidden by default and needs to be exposed thru the indicator settings.
the below chart shows D_VESPA on a the same (daily) chart, but with secondary TF plot for the weekly TF enabled
Final Thoughts
-------------------
* RedK D_VESPA is a volume indicator, that estimates buy/sell and net volume averages based on the price action reflected by the shape of the price bars - this can provide more insight on volume compared to the classic volume/VolAverage indicator and assist traders in exploring the market mode (buyers/sellers - bullish/bearish) and align trades to it.
* Because D_VESPA is a volume indicator, it can't be used alone to generate a trading signal - and needs to be combined with other indicators that analysis price value (range), momentum and trend. I recommend to at least combine D_VESPA with a variant of MACD and RSI to get a full view of the price action relative to the prevailing market and the broader trend.
* I found it very useful to take note and "read" how the Est Buy vs Est Sell lines move .. they sort of "tell a story" - experiment with this on your various chart and note the levels of estimate avg demand vs estimate avg supply that this indicator exposes for some very valuable insight about how the chart action is progressing. Please feel free to share feedback below.
Volume DashboardReleasing Volume Dashboard indicator.
What it does:
The volume dashboard indicator pulls volume from the current session. The current session is defaulted to NYSE trading hours (9:30 - 1600).
It cumulates buying and selling volume.
Buying volume is defined as volume associated with a green candle.
Selling volume is defined as volume associated with a red candle.
It also pulls Put to Call Ratio data from the Ticker PCC (Total equity put to call ratios).
With this data, the indicator displays the current Buy Volume and the Current Sell Volume.
It then uses this to calculate a "Buyer to Seller Ratio". The Buy to Sell ratio is calculated by Buy Volume divided by Sell Volume.
This gives a ratio value and this value will be discussed below.
The Indicator also displays the current Put to Call Ratio from PCC, as well as displays the SMA.
Buy to Sell Ratio:
The hallmark of this indicator is its calculation of the buy to sell ratio.
A buy to sell ratio of 1 or greater means that buyers are generally surpassing sellers.
However, a buy to sell ratio below 1 generally means that sellers are outpacing buyers (0 buyers to 0.xyx sellers).
The SMA is also displayed for buy to sell ratio. Generally speaking, a buy to sell SMA of greater than or equal to 1 means that there are consistent buyers showing up. Below this, means there is inconsistent buying.
Change Analysis:
The indicator also displays the current change of Volume and Put to Call.
Put to Call Change:
A negative change in Put to Call is considered positive, as puts are declining (i.e. sentiment is bullish).
A positive change in Put to Call is considered negative, as puts are increasing (i.e. sentiment is bearish).
The Put to Call change is also displayed in an SMA to see if the negative or positive change is consistent.
Volume Change :
A negative volume change is negative, as buyers are leaving (i.e. sentiment is bearish).
A positive volume change is positive, as buyers are coming in (i.e. sentiment is bullish).
The volume change is also displayed as an SMA to see if the negative or positive change is consistent.
Indicator breakdown:
The indicator displays the total cumulative Buy vs Sell volume at the top.
From there, it displays the Ratio and various other variables it tracks.
The colour scheme will change to signal bearish vs bullish variables. If a box is red, the indicator is assessing it as a bearish indicator.
If it is green, it is considered a bullish indicator.
The indicator will also plot a green up arrow when buying volume surpasses selling volume and a red down arrow when selling volume surpasses buying volume:
Customization:
The indicator is defaulted to regular market hours of the NYSE. If you are using this for trading Futures, or trading pre-market, you will need to manually adjust the session time to include these time periods.
The indicator is defaulted to read volume data on the 1 minute timeframe. My suggestion is to leave it as such, even if you are viewing this on the 5 minute timeframe.
The volume data is best accumulated over the 1 minute timeframe. This permits more reliable reading of volume data.
However, you do have the ability to manually modify this if you wish.
As well, the user can toggle on or off the SMA assessments. If you do not wish to view the SMAs, simply toggle off "Show SMAs" in the settings menu.
The user can also choose what time period the SMA is using. It is defaulted to a 14 candle lookback, but you can modify this to your liking, simply input the desired lookback time in the SMA lookback input box on the settings menu. Please note, the SMA Length setting will apply to ALL of the SMAs.
That is the bulk of the indicator!
As always, let me know your questions or feedback on the indicator below.
Thank you for taking the time to check it out and safe trades!
RSI and Stochastic Probability Based Price Target IndicatorHello,
Releasing this beta indicator. It is somewhat experimental but I have had some good success with it so I figured I would share it!
What is it?
This is an indicator that combines RSI and Stochastics with probability levels.
How it works?
This works by applying a regression based analysis on both Stochastics and RSI to attempt to predict a likely close price of the stock.
It also assess the normal distribution range the stock is trading in. With this information it does the following:
2 lines are plotted:
Yellow line: This is the stochastic line. This represents the smoothed version of the stochastic price prediction of the most likely close price.
White Line: This is the RSI line. It represents the smoothed version of the RSI price prediction of the most likely close price.
When the Yellow Line (Stochastic Line) crosses over the White Line (the RSI line), this is a bearish indication. It will signal a bearish cross (red arrow) to signal that some selling or pullback may follow.
IF this bearish cross happens while the stock is trading in a low probability upper zone (anything 13% or less), it will trigger a label to print with a pullback price. The pullback price is the "regression to the mean" assumption price. Its the current mean at the time of the bearish cross.
The inverse is true if it is a bullish cross. If the stock has a bullish cross and is trading in a low probability bearish range, it will print the price target for a regression back to the upward mean.
Additional information:
The indicator also provides a data table. This data table provides you with the current probability range (i.e. whether the stock is trading in the 68% probability zone or the outer 13, 2.1 or 0.1 probability zones), as well as the overall probability of a move up or down.
It also provides the next bull and bear targets. These are calculated based on the next probability zone located immediately above and below the current trading zone of the stock.
Smoothing vs Non-smoothed data:
For those who like to assess RSI and Stochastic for divergences, there is an option in the indicator to un-smooth the stochastic and RSI lines. Doing so looks like this:
Un-smoothing the RSI and stochastic will not affect the analysis or price targets. However it does add some noise to the chart and makes it slightly difficult to check for crosses. But whatever your preference is you can use.
Cross Indicators :
A bearish cross (stochastic crosses above RSI line) is signalled with a red arrow down shape.
A bullish cross (RSI crosses above stochastic line) is signalled with a green arrow up shape.
Labels vs Arrows:
The arrows are lax in their signalling. They will signal at any cross. Thus you are inclined to get false signals.
The labels are programmed to only trigger on high probability setups.
Please keep this in mind when using the indicator!
Warning and disclaimer:
As with all indicators, no indicator is 100% perfect.
This will not replace the need for solid analysis, risk management and planning.
This is also kind of beta in its approach. As such, there are no real rules on how it should be or can be applied rigorously. Thus, its important to exercise caution and not rely on this alone. Do your due diligence before using or applying this indicator to your trading regimen.
As it is kind of different, I am interested in hearing your feedback and experience using it. Let me know your feedback, experiences and suggestions below.
Also, because it does have a lot of moving parts, I have done a tutorial video on its use linked below:
Thanks for checking it out, safe trades everyone and take care!
Volume / Open Interest "Footprint" - By LeviathanThis script generates a footprint-style bar (profile) based on the aggregated volume or open interest data within your chart's visible range. You can choose from three different heatmap visualizations: Volume Delta/OI Delta, Total Volume/Total OI, and Buy vs. Sell Volume/OI Increase vs. Decrease.
How to use the indicator:
1. Add it to your chart.
2. The script will use your chart's visible range and generate a footprint bar on the right side of the screen. You can move left/right, zoom in/zoom out, and the bar's data will be updated automatically.
Settings:
- Source: This input lets you choose the data that will be displayed in the footprint bar.
- Resolution: Resolution is the number of rows displayed in a bar. Increasing it will provide more granular data, and vice versa. You might need to decrease the resolution when viewing larger ranges.
- Type: Choose between 3 types of visualization: Total (Total Volume or Total Open Interest increase), UP/DOWN (Buy Volume vs Sell Volume or OI Increase vs OI Decrease), and Delta (Buy Volume - Sell Volume or OI Increase - OI Decrease).
- Positive Delta Levels: This function will draw boxes (levels) where Delta is positive. These levels can serve as significant points of interest, S/R, targets, etc., because they mark the zones where there was an increase in buy pressure/position opening.
- Volume Aggregation: You can aggregate volume data from 8 different sources. Make sure to check if volume data is reported in base or quote currency and turn on the RQC (Reported in Quote Currency) function accordingly.
- Other settings mostly include appearance inputs. Read the tooltips for more info.
RedK EVEREX - Effort Versus Results ExplorerRedK EVEREX is an experimental indicator that explores "Volume Price Analysis" basic concepts and Wyckoff law "Effort versus Result" - by inspecting the relative volume (effort) and the associated (relative) price action (result) for each bar - showing the analysis as an easy to read "stacked bands" visual. From that analysis, we calculate a "Relative Rate of Flow" - an easy to use +100/-100 oscilator that can be used to trigger a signal when a bullish or bearish mode is detected for a certain user-selected length of bars.
Basic Concepts of VPA
-------------------------------
(The topics of VPA & Wyckoff Effort vs Results law are too comprehensive to cover here - So here's just a very basic summary - please review these topics in detail in various sources available here in TradingView or on the web)
* Volume Price Analysis (VPA) is the examination of the number of shares or contracts of a security that have been traded in a given period, and the associated price movement. By analyzing trends in volume in conjunction with price movements, traders can determine the significance of changes in price and what may unfold in the near future.
* Oftentimes, high volumes of trading can infer a lot about investors’ outlook on a market or security. A significant price increase along with a significant volume increase, for example, could be a credible sign of a continued bullish trend or a bullish reversal. Adversely, a significant price decrease with a significant volume increase can point to a continued bearish trend or a bearish trend reversal.
* Incorporating volume into a trading decision can help an investor to have a more balanced view of all the broad market factors that could be influencing a security’s price, which helps an investor to make a more informed decision.
* Wyckoff's law "Effort versus results" dictates that large effort is expected to be accompanied with big results - which means that we should expect to see a big price move (result) associated with a large relative volume (effort) for a certain trading period (bar).
* The way traders use this concept in chart analysis is to mainly look for imbalances or invalidation. for example, when we observe a large relative volume that is associated with very limited price change - that should trigger an early flag/warning sign that the current price trend is facing challenges and may be an early sign of "reversal" - this applies in both bearish and bullish conditions. on the other hand, when price starts to trend in a certain direction and that's associated with increasing volume, that can act as kind of validation, or a confirmation that the market supports that move.
How does EVEREX work
---------------------------------
* EVEREX inspects each bar and calculates a relative value for volume (effort) and "strength of price movement" (result) compared to a specified lookback period. The results are then visualized as stacked bands - the lower band represents the relative volume, the upper band represents the relative price strength - with clear color coding for easier analysis.
* The scale of the band is initially set to 100 (each band can occupy up to 50) - and that can be changed in the settings to 200 or 400 - mainly to allow a "zoom in" on the bands.
* Reading the resulting stacked bands makes it easier to see "balanced" volume/price action (where both bands are either equally strong, or equally weak), or when there's imbalance between volume and price (for example, a compression bar will show with high volume band and very small/tiny price action band) - another favorite pattern in VPA is the "Ease of Move", which will show as a relatively small volume band associated with a large "price action band" (either bullish or bearish) .. and so on.
* a bit of a techie piece: why the use of a custom "Normalize()" function to calculate "relative" values in EVEREX?
When we evaluate a certain value against an average (for example, volume) we need a mechanism to deal with "super high" values that largely exceed that average - I also needed a mechanism that mimics how a trader looks at a volume bar and decides that this volume value is super low, low, average, above average, high or super high -- the issue with using a stoch() function, which is the usual technique for comparing a data point against a lookback average, is that this function will produce a "zero" for low values, and cause a large distortion of the next few "ratios" when super large values occur in the data series - i researched multiple techniques here and decided to use the custom Normalize() function - and what i found is, as long as we're applying the same formula consistently to the data series, since it's all relative to itself, we can confidently use the result. Please feel free to play around with this part further if you like - the code is commented for those who would like to research this further.
* Overall, the hope is to make the bar-by-bar analysis easier and faster for traders who apply VPA concepts in their trading
What is RROF?
--------------------------
* Once we have the values of relative volume and relative price strength, it's easy from there to combine these values into a moving index that can be used to track overall strength and detect reversals in market direction - if you think about it this a very similar concept to a volume-weighted RSI. I call that index the "Relative Rate of Flow" - or RROF (cause we're not using the direct volume and price values in the calculation, but rather relative values that we calculated with the proprietary "Normalize" function in the script.
* You can show RROF as a single or double-period - and you can customize it in terms of smoothing, and signal line - and also utilize the basic alerts to get notified when a change in strength from one side to the other (bullish vs bearish) is detected
* In the chart above, you can see how the RROF was able to detect change in market condition from Bearsh to Bullish - then from Bullish to Bearish for TSLA with good accuracy.
Other Usage Options in EVEREX
------------------------------------
* I wrote EVEREX with a lot of flexibility and utilization in mind, while focusing on a clean and easy to use visual - EVEREX should work with any time frame and any instrument - in instruments with no volume data, only price data will be used.
* You can completely hide the "EVEREX bands" and use EVEREX as a single or dual period strength indicator (by exposing the Bias/Sentiment plot which is hidden by default) -
here's how this setup would look like - in this mode, you will basically be using EVEREX the same way you're using a volume-weighted RSI
* or you can hide the bias/sentiment, and expose the Bulls & Bears plots (using the indicator's "Style" tab), and trade it like a Bull/Bear Pressure Index like this
* you can choose Moving Average type for most plot elements in EVEREX, including how to deal with the Lookback averaging
* you can set EVEREX to a different time frame than the chart
* did i mention basic alerts in this v1.0 ?? There's room to add more VPA-specific alerts in future version (for example, when Ease-of-Move or Compression bars are detected...etc) - let me know if the comments what you want to see
Final Thoughts
--------------------
* EVEREX can be used for bar-by-bar VPA analysis - There are so much literature out there about VPA and it's highly recommended that traders read more about what VPA is and how it works - as it adds an interesting (and critical) dimension to technical analysis and will improve decision making
* RROF is a "strength indicator" - it does not track price values (levels) or momentum - as you will see when you use it, the price can be moving up, while the RROF signal line starts moving down, reflecting decreasing strength (or otherwise, increasing bear strength) - So if you incorporate EVEREX in your trading you will need to use it alongside other momentum and price value indicators (like MACD, MA's, Trend Channels, Support & Resistance Lines, Fib / Donchian..etc) - to use for trade confirmation
A New Adaptive Moving Average [CC]The New Adaptive Moving Average was created by Scott Cong (Stocks and Commodities Mar 2023) and his idea was to focus on the Adaptive Moving Average created by Perry Kaufman and to try to improve it by introducing a concept of effort vs results. In this case the effort would be the total range of the underlying price action since each bar is essentially a war of the bulls vs the bears. The result would be the total range of the close so we are looking for the highest close and lowest close in that same time period. This gives us an alpha that we can use to plug into the Kaufman Adaptive Moving Average algorithm which gives us a brand new indicator that can hug the price just enough to allow us to ride the stock up or down. I have color coded it to be darker colors when it is a strong signal and lighter colors when it is a normal signal. Buy when the line turns green and sell when it turns red.
Let me know if there are any other indicators you would like to see me publish!
True Range Adjusted Exponential Moving Average [CC]The True Range Adjusted Exponential Moving Average was created by Vitali Apirine (Stocks and Commodities Jan 2023 pgs 22-27) and this is the latest indicator in his EMA variation series. He has been tweaking the traditional EMA formula using various methods and this indicator of course uses the True Range indicator. The way that this indicator works is that it uses a stochastic of the True Range vs its highest and lowest values over a fixed length to create a multiple which increases as the True Range rises to its highest level and decreases as the True Range falls. This in turn will adjust the Ema to rise or fall depending on the underlying True Range. As with all of my indicators, I have color coded it to turn green when it detects a buy signal or turn red when it detects a sell signal. Darker colors mean it is a very strong signal and let me know if you find any settings that work well overall vs the default settings.
Let me know if you would like me to publish any other scripts that you recommend!
EURUSD COT Trend StrategyThis is a long term/investment type of strategy designed to have a good idea about where the big trend direction is headed.
Its logic, its made entirely on the COT report, mainly from looking into the net non comercial positions aka the speculators.
For bullish trend we look that the difference between long non comercial vs short non comercial is higher than 0
For bearish trend we look that the difference between long non comercial vs short non comercial is lower than 0.
This is mainly as an educational tool, for a full strategy, I recommend implement other things into it, like technical analysis or risk management.
If you have any questions, please let me know !
Vector ScalerVector Scaler is like Stochastic but it uses a different method to scale the input. The method is very similar to vector normalization but instead of keeping the "vector" we just sum the three points and average them. The blue line is the signal line and the orange line is the smoothed signal line. I have added the "J" line from the KDJ indicator to help spot divergences. Differential mode uses the delta of the input for the calculations. Here are some pictures to help illustrate how this works relative to other popular indicators.
Vector Scaler vs Stochastic
Vector Scaler vs Smooth Stochastic RSI
average set to 100
average set to 200
Currency Strength V2An update to my original Currency Strength script to include a 2nd timeframe for more market context.
Changed the formatting slightly for better aesthetics, as the extra column and colors became unsightly.
Also added a new setting for "Flat Color", which changes the value background to a simple green/red for above or below 50, rather than using the Color Scale that increases color intensity the further it gets from 50.
________________________________________________________________________________
This script measures the strength of the 6 major currencies USD, EUR, GBP, CAD, AUD and JPY.
Simply, it averages the RSI values of a currency vs the 5 other currencies in the basket, and displays each average RSI value in a table with color coding to quickly identify the strongest and weakest currencies over the past 14 bars (or user defined length).
The arrow in the current RSI column shows the difference in average RSI value between current and X bars back (user defined), telling you whether the combined RSI value has gone up or down in the last X bars.
Using the average RSI allows us to get a sense of the currency strength vs an equally weighted basket of the other majors, as opposed to using Indexes which are heavily weighted to 1 or 2 currencies.
The additional security calls for the extra timeframe make this slower to load than the original, but this was a user request so hopefully it will prove worthwhile for some people.
Those who find the loading too slow when switching between charts may be better off still using the original, which is why this is posted as a separate script and not an update to the original.
This is the table with Flat Color option enabled.
Binance Basis OscillatorBinance Basis Oscillator illustrates the premium or discount between Binance spot vs perps.
This indicates whether speculators (i.e. traders on perps) are paying premium vs spot. If true then speculation is leading, indicating euphoria (at certain levels).
Conversely, spot leading perps (i.e. perps at a discount) shows extreme bearish conditions, where speculation is on the short side. Indicating times of despair.
Strategy: Combo Z ScoreStrategy version of Combo Z Score
Objective:
Can we use both VIX and MOVE relationships to indicate movement in the SPY? VIX (forward contract on SPY options) correlations are quite common as forward indicators however MOVE (forward contract on bonds) also provides a slightly different level of insight
Using the Z-Score of VIX vs VVIX and MOVE vs inverted VIX (there is no M of Move so we use inverted Vix as a proxy) we get some helpful indications of potential future moves. Added %B to give us some exposure to momentum. Toggle VIX or MOVE.
If anyone has a better idea of inverted Vix to proxy forward interest in MOVE let me know.
Noticeable delta is that Vix only approach over the back test period is slightly better. Questions would be, what is the structure and nature of the market over the test period and in a bear market would MOVE or combined perform better.
Combo Z ScoreObjective:
Can we use both VIX and MOVE relationships to indicate movement in the SPY? VIX (forward contract on SPY options) correlations are quite common as forward indicators however MOVE (forward contract on bonds) also provides a slightly different level of insight
Using the Z-Score of VIX vs VVIX and MOVE vs inverted VIX (there is no M of Move so we use inverted Vix as a proxy) we get some helpful indications of potential future moves. Added %B to give us some exposure to momentum. Toggle VIX or MOVE.
If anyone has a better idea of inverted Vix to proxy forward interest in MOVE let me know.
Premium on BTC in Russia (%)
Indicator shows the relative "premium" or "discount" of buying BTC with Ruble vs the USD on Binance.
Figures are shown in %.
Positive figures indicate a "premium" vs USD, negative indicates a "discount".
Indicator is calculated on the close of the 4h candles of each input.
Closing MomentumClosing momentum calculates the moving averages of closes and highs vs previous highs plus those of closes and lows vs previous lows to create momentum moving averages. Closes above/below previous highs/lows are weighted more strongly than new high or low wicks above/below a previous highs or lows.
If momentum is up, the background will shade green; brighter is stronger. If momentum is down, likewise with red.
Shifts in momentum are indicated by symbols: triangles indicate a minor shifts, arrows moderate, big arrows major. Likewise, the shade of the symbols indicates strength (darker is stronger).
Using the indicator: long continuous stretches of the same color indicate trend - deeper is stronger. If the shade is lightening or clears and/or if symbols of the other color start appearing, the trend is weakening.
Currency StrengthThis script measures the strength of the 6 major currencies USD, EUR, GBP, CAD, AUD and JPY.
Simply, it averages the RSI values of a currency vs the 5 other currencies in the basket, and displays each average RSI value in a table with color coding to quickly identify the strongest and weakest currencies over the past 14 bars (or user defined length).
The Dir. value looks at the difference in average RSI value between current and X bars back (user defined), telling you whether the combined RSI value has gone up or down in the last X bars.
Using the average RSI allows us to get a sense of the currency strength vs an equally weighted basket of the other majors, as opposed to using Indexes which are heavily weighted to 1 or 2 currencies.
The table doesn't load super fast as we are making 15 Security requests to get the values for each pair (where possible we reverse the values of the pair to reduce Security requests, e.g. we don't need to request EURUSD and USDEUR, we reverse the value to calculate the USD RSI).
Bogdan Ciocoiu - Looking Glass► Description
The script shows a multi-timeline suite of information for the current ticker. This information refers to configurable moving averages, RSI, Stochastic RSI, VWAP and TSI data. The timeframes reflected in the script vary from 1m to 1h. I recommend the tool for 3m scalping as it provides good visibility upwards.
The headings from the table are:
{Close} - {MA1}
{Close} - {MA2}
{Close} - {MA3}
{MA1} - {MA2}
{MA2} - {MA3}
{RSI}
{Stoch RSI K}
{Stoch RSI D}
{VWAP}
{TSI}
{TSI EMA}
{TSI} - {TSI EMA}
► Originality and usefulness
This tool is helpful because it helps users read a chart much quicker than if they were to navigate between timeframes. The colour coding indicates an accident/descendant trend between any two values (i.e. close vs MA1, MA1-MA2, RSI K vs RSI D, etc.).
► Open-source reuse
www.tradingview.com
www.tradingview.com
www.tradingview.com
www.tradingview.com
www.tradingview.com
LankouVsBTCIndicator that displays the asset value VS BTC.
When you are trading an asset VS USDT you may want to check it's value againts BTC also.