William's Magic GridHere is an accurate and adaptive SR grid.
Best settings:
Zones: Large
Turn off Daily High and Low lines
5m TF
Steps:
1. Wait for price to get in a zone. Use break of structure and pullbacks to determine trend and safe entry.
2. Enter trade. Set TP a little before next zone. Set SL as desired.
3. Enjoy profits.
More edits to come.
Forecasting
Potential Profit at ATHUsage:
Enter how much of the particular coin you are holding within the settings area.
What this indicator does:
Grabs the current All Time High (ATH).
Uses the ATH to calculate the potential profit in percentage from the current price to ATH.
Calculates the potential profit in EUR based on the percentage in the previous calculation.
Displays the above-mentioned values on the screen as labels.
You now have a forecast of the potential profit you can make when you hodl to the ATH.
Attention: "The example uses 1 coin as default.
For a calculation of your holdings, make sure you enter the amount of the current coin you are holding"
Probability Pivot PointsProbability Pivot Points integrates a customizable Pivot Points indicator with conditional probabilities calculated from historical occurrences.
Features
Six different discretionarily Pivot Point Bias strategies utilizing Midpoint Pivot Points in bullish and bearish variants: Standard, Range, Continuation, Counter Trend, Expansion, and Extension.
Next Period's Pivot Points given the current period's OHLC data. Includes settings to use theoretical OHLC values to see what the next period's Pivot Points could look like.
Supports Traditional, Floor, Fibonacci, and Average True Range Pivot Point calculations.
Includes settings to customize the Fibonacci ratios and Average True Range calculations.
Automatically maximize or manually set the number of historical Pivot Points to draw.
Probability visualizations for the Pivot Points based on historical occurrences for the current and upcoming trading periods. The Probability Weighted Pivot (PWP) Point uses the probabilities calculated as weights against every displayed Pivot Point to show a mean of the data.
Load seasonal or non-seasonal historical data to calculate the odds of a High, Low, or Close occurring between any two Pivot Points.
Settings to manually set the weekly, monthly, and quarterly seasonal data loaded into the Pivot Probabilities feature. Automatic detection and loading of the current seasonal period's data is the default behavior. Includes a table that displays the data that's loaded.
Get probabilities for the currently selected Pivot Point Bias strategy.
Check the odds of High, Low, or Close occurrences at the strategy's marked Entry, Exit, or Stop Loss Pivot Points.
Seasonal Filters let you select specific years to sample probabilities from.
Customize pivot colors, width, label size, label color, Bias Entry and Exit Zone colors, Pivot Probability colors, and pick between the Point Five and M Legacy Midpoint label styles.
Auto Timeframe changes the Pivot Points higher timeframe based on the chart timeframe in use. Includes settings to customize what chart timeframes will display specific Pivot Point higher timeframes.
Q: Is this an update to your older Pivot Probabilities indicator?
Pivot Probabilities was designed to require a separately applied Pivot Points indicator to be interpreted and used properly. Probability Pivot Points is designed with an included set of Pivot Pivots that can interact with the probability calculations, which helps make improvements to new calculations and visualizations that Pivot Probabilities was never originally designed to do. Features from Pivot Probabilities are being completely redesigned, reimplemented, and expanded upon as a component in this larger Probability Pivot Points indicator. Anyone with access to the old Pivot Probabilities will also get access to Probability Pivot Points and are considered part of the same package.
WinningWave By Sercan V1Winningwave is a hurricane algorithm that works in all time frames and all transactions (stock exchange-coin), is too comprehensive to be explained in detail and includes many strategies.
To explain briefly; It is a layered oracle algorithm that gives signals by filtering the formations (Normal and Harmonic formations) created by multiple account movements containing many calculations and algorithms, based on the instantaneous momentum of the price and the overbought or oversold levels in a certain time period. Of course, formations refer to situations in which price movements occur in a certain order in financial markets. These patterns are specific patterns seen on the price chart and can often provide clues about future movements of prices. For example; Reverse Shoulder, Head and Shoulder, Symmetrical Triangle etc. Dozens of formation formation conditions and targets were filtered and made suitable for signaling. It also creates bands using YDK3 with the channel algorithm it contains. This band is usually calculated using the standard deviation method to measure price movements and indicate a specific deviation. The upper and lower bands obtained as a result of standard deviation calculations are drawn on the price chart. After a certain band is created, automatic expansion is carried out in order to predict possible movements of future prices. Additionally, Winningwave includes Ema calculations and has identified stop points after the main entry signal to help you in case you miss the main exit signal or choose a different strategy.
STRATEGY 1: As I mentioned in the general statement, the signals that emerged after many formations were filtered in 2 stages (SMI and CCI values served as filters for the formations) and the false signal rate was reduced to a minimum. You can combine signals into your own strategy using oscillators and tactics you trust.
It is important to remember that no indicator or tactic works 100% accurately. That's why filters and combinations are the right methods for you.
STRATEGY 2: Channel programs often create bands using the standard deviation method to indicate price movements and a specific deviation. Standard deviations are a measure of how far prices are generally from the mean. Channel programs draw price charts by creating upper and lower bands using these standard deviation values.
These bands can become very narrow depending on the playability of the price and the strength of the trends. In this way it can change the normal range of movement of prices and indicate potential overbought or oversold.
Once the channel is created, it is automatically expanded and gives us some clues about the direction of price movements. This expansion automatically signals the change according to the price movements of the bands. This feature becomes a predictive tool to predict price movements on the indicator.
Thus, using channel updates and standard deviation, the bands show the normal range of prices and these bands expand or contract dynamically, giving an idea about possible changes in prices. This can help investors gain insight into potential trend reversals or overbought or oversold prices.
In channel band strategy . It is a second strategy in which we calculate the profit rate with the most logical calculations when the prices touch the channel bottoms and channel tops and move up or down.
STRATEGY 3: We aimed to create a stop zone by blending the most appropriate ema values with buy signals. In some cases where you don't want to follow the signals or are confident in the transaction (written to filter out successive sell signals where price action generally rises without correction), it has created a more reliable stopping point for your trading strategy. It gives you a stopping point.
*** Calculations and mathematical settings will be in the menu. For healthy signals and filters, do not play with the numbers. For your personal use, color options or On-Off settings of each feature are available in the menu.
WRESBAL PlusWRESBAL Plus is an improved way of looking at the same data that drives WRESBAL, which is a commonly used series on FRED.
WRESBAL is a weekly average of combined balances on FRED using inputs that are weekly averages in some cases. For example the Treasury General Account has multiple FRED series including WDTGAL (wednesday level) and WTREGEN (wednesday weekly average) There are data sets that are tracking the same metrics which are updated daily such as RRPONTSYD as opposed to WLRRAL.
This situation leads to an opportunity to create a new and improved WRESBAL with the data that is updated more frequently. WRESBAL Plus solves the problem of waiting for weekly averages to update trends.
WRESBAL plus combines data sets from FRED that are updated more frequently and are the basis for the original WRESBAL equation. WRESBAL Plus offers a signal that predicts where WRESBAL will go, and this is important when determining the direction of asset prices as they relate to liquidity. One example of an asset that closely follows WRESBAL is Bitcoin.
ICT Premium/DiscountGuided by ICT mentorship and help from TraderTim and its community, I created this versatile indicator to mark a "Premium/Discount" price range.
This indicator shows the Premium and Discount Zones in an alternative way, manually setting the start of the band and automatically shows the HTF and LTF FVG present only in the set band, having a cleaning of the graph from possible other distractions, so as to be able to have a clear vision clear of the set trading range
The user has the possibility to:
- Choose the start of the interval from the graph by moving the start line
- Choose to show levels 50% - 75% - 25% of the range
- Choose the color, style and size of the lines
- Choose to display FVG LTF or HTF in range
- Choose the FVG mitigation mode
The indicator must be used as shown by the ICT in its concepts, the Premium and Discount zones are nothing more than zones where the price risks retracing, and consequently we can evaluate making entries in the Premium Zone, Sell is evaluated, in the Discoutn Zone they are evaluated as Buy, taking the opposite area as Take Profit
As in the example below:
If anything is unclear, comment below and I will get back to you as soon as possible.
How to change range:
Historical Volatility StudyThe goal of this script it to provide you an idea to forecast the future momentum by looking at historical volatility.
This chart has basically three parts.
1. Three lines are there. The multi color line represents the historical annualized volatility in terms of minimum look back period . The white line represents the historical annualized volatility in terms of medium term look back period . The green line represents the historical annualized volatility in terms of longer term look back period .
2. The back ground color has three components. Green zone is the zone where overall volatility is on the lower side. Red zone is the zone where overall volatility is on the higher side. Purple zone means fluctuating volatility.
3. The multi color line has three colors. Red color means volatility moving towards extreme low. Yellow means it is moving towards extreme high. Purple means it is in normal course of action.
This tool can be used as a confirmation tool with other studies to aid you to make better decisions. For example- look at the diagram below.
Make your thorough study before making any trading decision. Thanks.
The Square of NineThe Square of Nine
█ OVERVIEW
This script is made to make it easy for traders to visualize the movement of price along the square of nine table. This script Places the square of nine table right infront of you in the middle of the screen, which is why it's suggested that you would use it on the side of your main chart.
This script gives you ability to adjust number of revolutions which is the number of rings making the square of nine table up to 9 revs.
You can also change the price unit ( increments ) for each step.
You can use this indicator as a visual reference to track the price action along the square of 9 and make sense of the mechanism behind turning points. It is made to complement both :
- Gann Static Square of 9
- Gann Dynamic Square of 9
You can enable all of the following degrees and adjust their visual appearances on the chart :
360, 45, 90, 135, 180, 225, 270, 315
█ Future Plans and upgrades to this script may include :
1. Adjustable starting price.
2. Astro Integrations.
3. Visuals and matching prices.
and more! feel free to let me know what you'd like to see!
█ How to use :
1. Put the script on your chart
2. Selected your desired levels to activate and the number of desired revolutions.
give the script a few seconds and you should be set.
MTF External Range Liquidity - SMC IndicatorsThe Multi-Timeframe External Range Liquidity highlights possible “Key Liquidity Zones” above and below Short-Term highs and lows. Allowing for the filtering out of shorter-term swings and easily identifying levels for possible “liquidity runs” or “stop runs”.
Purged Liquidity
This shows areas where the price has already reached above previous key highs or below previous key lows. Recognizing “Purged Liquidity” areas is useful for historical analysis and understanding prior liquidity-driven movements.
Open Liquidity
These mark possible or potential Open Liquidity Zones where the price might reach above or below short-term key highs and lows.
Multi-Timeframe Analysis
The Multi Timeframe Feature allows traders to have all “key Liquidity Levels” from higher and lower timeframes relative to the current timeframe. (Weekly and down to the 1-Minute Chart) while trading in real-time allowing the trader to keep the higher time frame “levels” in mind when trading on lower time frames.
1W BSL & 1W SSL indicate levels of transposed from the Weekly timeframe to the Daily timeframe or lower.
1D BSL & 1D SSL indicate levels of transposed from the Daily timeframe to the 4H timeframe or lower.
4H BSL & 4H SSL indicate levels of transposed from the 4H timeframe to the 1H timeframe or lower.
1H BSL & 1H SSL indicate levels of transposed from the 1H timeframe to the 15M timeframe or lower.
15M BSL & 15M SSL indicate levels of transposed from the 15M timeframe to the 5M timeframe or lower.
5M BSL & 5M SSL indicate levels of transposed from the 5M timeframe to the timeframes lower than 5M.
How This Can Help with Analysis
Timing Entries
This tool can be used to look for possible entry levels by looking at where the last run on liquidity (Purged Liquidity) above a previous key high or low was. The trader would use this indicator by waiting until the liquidity is purged before looking for a possible trade setup.
This helps in waiting for entries and may avoid or reduce the number of entries where the trade would get stopped due to an early entry.
Setting Possible Targets
This indicator can be used to look for higher time frame “Open Liquidity” key levels above short-term highs or below short-term lows as potential targets.
Other Key Features
Alerts on selected time frame “key levels”
Choose to show and hide levels on any timeframe.
Choose the number of the Purged and Open Liquidity desired to show on the chart.
Highlights the Daily, Weekly, and Monthly Highs and Lows.
One Setup for Life ICTGuided by ICT tutoring, I create this versatile 'One Trading Set Up For Life' indicator
This indicator shows a different way of viewing the "Highs and Lows" of Previous Sessions, drawing from the current day until 09:30 AM, the time at which the Highs and Lows of the previous day's sessions can be taken into consideration for a Reversal or for a Take profit.
Levels tested after 9.30am will be blocked so you have a good and clear view of the levels affected
Timing Session =
London: 02:00 to 05:00
New York: 9.30am to 12.30pm
Lunch: 12.30pm to 1pm
PM Session: 1.30pm to 4pm
The user has the possibility to:
- Choose to view sessions or not
- Choose to show levels from previous sessions
- Choose to show today's session levels
- Choose between 08:30 and 09:30 the starting time for the Liquidity taken
- Choose to view High and Low only from the previous day
- See both the name of the Sessions and the price of the levels
The indicator must be used as ICT shows in its concepts, the indicator takes into consideration both previous sessions and today's sessions, and the session levels can be used both for a reversal and for a possible Take Profit like the example here under
Reversal =
Possible Take Profit =
If something is not clear, comment below and I will reply as soon as possible.
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!
Data from dataThe "Data from Data" indicator, developed by OmegaTools, is a sophisticated and versatile tool designed to offer a nuanced analysis of various market dynamics, catering to traders and investors seeking a comprehensive understanding of price movements considering a large amount of data and variables.
The uses of this indicator are nonconventional. You can use the indicator as a stand-alone tool on the chart, hiding the current symbol price data, to be able to analyze the price action with the Semaphore visualization method, you can also hide the indicator and choose from your favorite indicators and oscillator one of the data output as a source to have additional insight on the asset.
The last use of this indicator, which depends on the X Value that you set in the settings, is to have a possible scenario for the future outcomes of the markets. Remember that there is no tool that can really predict what the market will do in the future, this tool applies a large amount of formulas to use past prices as an indication that aims to be as close as possible to the future prices. The X Value not only changes the lookback of the formulas but also changes the number of future scenarios that the indicator will plot on the chart.
Key Features:
1. Rate of Change Analysis:
The indicator evaluates the rate of change variations in closing prices, providing insights into the current rate of change and expected rate of change variation.
2. Momentum Analysis:
Momentum is analyzed through calculations involving simple moving averages, offering expected values derived from momentum and momentum variation.
3. High/Low Variation:
The expected market behavior is assessed based on the average variation between high and low prices, contributing to a more holistic analysis.
4. Liquidity Targets:
Liquidity targets can be found by analyzing the highs and lows in the direction of the current fair price.
5. Regression Sequence:
Linear regression analysis is applied to closing prices, assessing momentum and providing expected values based on regression sequences.
6. Volume Presence:
The indicator evaluates the Rate of Change (ROC) by volume presence, offering insights into price movements influenced by trading volume.
7. Liquidity Grabs:
Expected market behavior is determined based on liquidity grabs, considering both current and historical price levels.
8. Fair Value Analysis:
Expected values are derived from fair value closes and fair value highs and lows, contributing to a more nuanced analysis of market conditions.
9. STT (Sequential Trend Test):
The Sequential Trend Test is employed to analyze market trends, providing expected values for a more informed decision-making process.
Visualization:
The indicator shows a "Semaphore" on the chart, visually representing all of the data extrapolated from the script. The visualization can be more minimalistic or more complex, to let the user decide that, in the settings, it's possible to decide if to show all of the data or only the average.
Additionally, the user can choose to display bars on the chart, that visualize the standard high and low of the price data, with the difference between the expected forecasted value and the actual closing price.
My suggestion is to try to change the colors of the data to fit best your eye and the data that you find more useful, and also to try to change some parameters from circle to line as a visualization method to catch with more ease some price patterns.
Error Analysis:
The indicator provides a detailed error analysis, including historical error, average error, and present error. This information is presented in a user-friendly table for quick reference. This table can be used to analyze the margin of error of the expected future price.
Backtest Strategy Optimizer Adapter - Supertrend ExampleSample Code
This is a sample code for my Backtest Strategy Optimizer Adapter library.
You can find the library at:
Backtest Strategy Optimizer Tester
With this indicator, you will be able to run one or multiple backtests with different variables (combinations). For example, you can run dozens of backtests of Supertrend at once with an increment factor of 0.1, or whatever you prefer. This way, you can easily grab the most profitable settings and use them in your strategy. The chart above shows different color plots, each indicating a profit backtest equal to tradingview backtesting system. This code uses my backtest library, available in my profile.
Below the code you should edit yourself
You can use ChatGPT or write a python script to autogenerate code for you.
// #################################################################
// # ENTRIES AND EXITS
// #################################################################
// You can use the link and code in the description to create
// your code for the desired number of entries / exits.
// #################################################################
// AUTO GENERATED CODE
// ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
= ti.supertrend(10, 0.1)
= ti.supertrend(10, 0.2)
= ti.supertrend(10, 0.3)
= ti.supertrend(10, 0.4)
// 005 etc...
pnl_001 = backtest.profit(date_start, date_end, entry_001, exit_001)
pnl_002 = backtest.profit(date_start, date_end, entry_002, exit_002)
pnl_003 = backtest.profit(date_start, date_end, entry_003, exit_003)
pnl_004 = backtest.profit(date_start, date_end, entry_004, exit_004)
plot(pnl_001, title='0.1', color=backtest.color(001))
plot(pnl_002, title='0.2', color=backtest.color(002))
plot(pnl_003, title='0.3', color=backtest.color(003))
plot(pnl_004, title='0.4', color=backtest.color(004))
// Make sure you set the correct array size.
// The amount of tests + 1 (e.g. 4 tests you set it to 5)
var results_list = array.new_string(5)
if (ta.change(pnl_001))
array.set(results_list, 0, str.tostring(pnl_001) + '|0.1')
if (ta.change(pnl_002))
array.set(results_list, 1, str.tostring(pnl_002) + '|0.2')
if (ta.change(pnl_003))
array.set(results_list, 2, str.tostring(pnl_003) + '|0.3')
if (ta.change(pnl_004))
array.set(results_list, 3, str.tostring(pnl_004) + '|0.4')
// ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
// AUTO GENERATED CODE
// #################################################################
ADR % RangesThis indicator is designed to visually represent percentage lines from the open of the day. The % amount is determined by X amount of the last days to create an average...or Average Daily Range (ADR).
1. ADR Percentage Lines: The core function of the script is to apply lines to the chart that represent specific percentage changes from the daily open. It first calculates the average over X amount of days and then displays two lines that are 1/3rd of that average. One line goes above the other line goes below. The other two lines are the full "range" of the average. These lines can act as boundaries or targets to know how an asset has moved recently. *Past performance is not indicative of current or future results.
The calculation for ADR is:
Step 1. Calculate Today's Range = DailyHigh - DailyLow
Step 2. Store this average after the day has completed
Step 3. Sum all day's ranges
Step 4. Divide by total number of days
Step 5. Draw on chart
2. Customizable Inputs: Users have the flexibility to customize the script through various inputs. This includes the option to display lines only for the current trading day (`todayonly`), and to select which lines are displayed. The user can also opt to show a table the displays the total range of previous days and the average range of those previous days.
3. No Secondary Timeframe: The ADR is computed based on whatever timeframe the chart is and does not reference secondary periods. Therefore the script cannot be used on charts greater than daily.
This script is can be used by all traders for any market. The trader might have to adjust the "X" number of days back to compute a historical average. Maybe they only want to know the average over the past week (5 days) or maybe the past month (20 days).
Machine Learning: Optimal Length [YinYangAlgorithms]This Indicator aims to solve an issue that most others face; static lengths. This Indicator will scan lengths from the Min to Max setting (1 - 400 by default) to calculate which is the most Optimal Length in the current market condition. Almost every Indicator uses a length in some part of their calculation, and this length is usually adjustable via the Settings; however it is generally a static fixed length. Static non changing lengths may not always produce optimal results. As market conditions change generally the optimal length will too. For this reason we have created this indicator.
This Indicator will create a Neutral (Min - Max Length), Fast (Min - Mid Length ((Max - Min) / 2)) and Slow (Mid Length ((Max - Min) / 2) - Max Length). This allows you to understand which the Optimal Fast, Slow and Neutral lengths are within the given Mix and Max length settings.
This Indicator then plots these Optimal Lengths as an Oscillator which can then be used within ANOTHER Indicator as a Source within its Settings. Stand alone this Indicator may not prove all that useful, however when its Lengths are inputted into another Indicator it may prove very useful. This allows other Indicators to use the Optimal Length within its calculations from the Settings rather than relying on simply a fixed length. Unfortunately this results in users needing to manually plug the Optimal Length plots into the second Indicator; but it also allows for endless possibilities with applying Machine Learning Optimal Lengths within both Traditional and Non-Traditional Indicators and may give other Pine Coders an easy and effective way to add Machine Learning auto adjustable lengths within their already created Indicators.
The beautiful part about this Indicator is that aside from inputting the Optimal Length Plot into another Indicator, there is no manual updating needed. When the Optimal Length changes, the change will automatically reflect in the other Indicator without the need for you to manually adjust its length. This may be very useful with both time preservation, as well as if there is an automated strategy based upon said Indicator that now won’t need manual intervention.
Tutorial:
By default this is what the Machine Learning: Optimal Length Indicator looks like. It is simply a way of both Displaying and Plotting our current Optimal Length so that we may then use it as a source within ANOTHER Indicator. This will allow the automation of an Optimal Length to be updated, rather than needing any manual input from yourself (aside from set up).
For instance if you set the start length to 1 and the end length to 400 (default settings), it will scan to find the optimal Length setting between 1 and 400. This features 3 types of lengths:
Fast (Green Line): 1-199 (from start length to half way of total)
Slow (Red Line): 200 - 400 (mid way to end length)
Neutral (Blue Line): 1 - 400 (start to end length)
By breaking down the Optimal Length detection into these 3 different types, we can see how the Optimal Length compares and changes based on the lengths allotted to them and how performance changes.
For instance, you may notice that both the Fast and Slow Optimal Length didn’t change much in the example above; however the Neutral Optimal Length changed quite a bit. This is due to the fact that the Neutral is inclusive of all lengths available and may be considered the more accurate due to that. However, this doesn’t mean the Fast and Slow lengths aren’t important and should be used. They may be useful for seeing how something fairs in a Fast and Slow standpoint.
If you change your TimeFrame from 15 minute to 1 Day, you’ll notice that the Optimal Lengths gravitate towards their upper bounds:
199 is max for Fast, it’s at 195
400 is max for Slow, its at 393
400 is max for Neutral, its at 399
The Optimal Length may move up to its upper bounds on Higher Time Frames because there is a lot of price action and long term data being displayed. This may lead to higher lengths performing better in a profitability standpoint since its data is based on so far back and such drastic price movements.
Below we’re going to go through a few examples, including the code so you may reproduce the example and have an understanding of how versatile Inputting an Optimal Length as a source may be within Traditional Indicators.
Adding the Machine Learning: Optimal Length to another Indicator:
You may add the Optimal Length to another Indicator as shown in the example above. In the example we are adding the ‘Machine Learning: Optimal Length - Neutral’ to our Neutral Length within the Settings. The external Indicator needs to have the ability to input the Optimal Length as a Source, this way it can automatically change within the external Indicator when the Optimal Length Indicator changes its Optimal Length.
Please note you may get an error within an external Indicator that accepts the Length as a Source if you don’t select the Machine Learning: Optimal Length. For instance, if you use ‘Close’ within BTC/USDT the length used would be ~36,000. This length is too long and will throw an error.
For this reason, we will ensure the Max Length that may be used is 1000.
Please note, on lower Time Frames you may need to adjust the Max Length. For instance if 20k bar data is used, the Max Length ‘may’ fail to load when going by default Min: 1 and Max: 400. Generally with most pairs it will load if your TradingView subscription is Premium or greater; however if it is less there is a chance it may fail. If it fails for you too often please lower the Max Length Amount; or send us a message we can look into a fix for this.
*** If it fails to load, please try removing the external Indicator and re-adding it and adding the Lengths back as a Source within the Settings. Sometimes it fails, but re-adding may fix it. If it keeps failing afterwards, reduce the Max Length Amount as mentioned above. ***
Simple Moving Average:
In this example above have the Fast, Slow and Neutral Optimal Length formatted as a Slow Moving Average. The first example is on the 15 minute Time Frame and the second is on the 1 Day Time Frame, demonstrating how the length changes based on the Time Frame and the effects it may have.
Here is the code for the example Indicator shown above. This example shows how you may use the Optimal Length as a Source and then use that Optimal Length and plot it as a Simple Moving Average:
//@version=5
indicator("Optimal Length - Backtesting - MA", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
plot(showNeutral ? optimalMA : na, color=color.blue)
plot(showFast ? optimalMA_fast : na, color=color.green)
plot(showSlow ? optimalMA_slow : na, color=color.red)
Bollinger Bands:
In the two examples above for Bollinger Bands we have first the 15 Minute Time Frame and then the 1 Day Time Frame. As described above in ‘Adding the Machine Learning: Optimal Length to another Indicator’ sometimes it may fail to load, for this reason in the 15 Minute it was reduced to a max of 300 Length.
Bollinger Bands are a way to see a Simple Moving Average (SMA) that then uses Standard Deviation to identify how much deviation has occurred. This Deviation is than Added and Subtracted from the SMA to create the Bollinger Bands which help Identify possible movement zones that are ‘within range’. This may mean that the price may face Support / Resistance when it reaches the Outer / Inner bounds of the Bollinger Bands. Likewise, it may mean the Price is ‘Overbought’ when outside and above or ‘Underbought’ when outside and below the Bollinger Bands.
By applying All 3 different types of Optimal Lengths towards a Traditional Bollinger Band calculation we may hope to see different ranges of Bollinger Bands and how different lookback lengths may imply possible movement ranges on both a Short Term, Long Term and Neutral perspective. By seeing these possible ranges you may have the ability to identify more levels of Support and Resistance over different lengths and Trading Styles.
Below is the code for the Bollinger Bands example above:
//@version=5
indicator("Optimal Length - Backtesting - Bollinger Bands", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
mult = 2.0
src = close
neutralColor = color.blue
slowColor = color.red
fastColor = color.green
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
//Neutral Bollinger Bands
dev = mult * ta.stdev(src, math.round(optimalLength))
upper = optimalMA + dev
lower = optimalMA - dev
plot(showNeutral ? optimalMA : na, "Neutral Basis", color=color.new(neutralColor, 0))
p1 = plot(showNeutral ? upper : na, "Neutral Upper", color=color.new(neutralColor, 50))
p2 = plot(showNeutral ? lower : na, "Neutral Lower", color=color.new(neutralColor, 50))
fill(p1, p2, title = "Neutral Background", color=color.new(neutralColor, 96))
//Slow Bollinger Bands
dev_slow = mult * ta.stdev(src, math.round(optimalLength_slow))
upper_slow = optimalMA_slow + dev_slow
lower_slow = optimalMA_slow - dev_slow
plot(showFast ? optimalMA_slow : na, "Slow Basis", color=color.new(slowColor, 0))
p1_slow = plot(showFast ? upper_slow : na, "Slow Upper", color=color.new(slowColor, 50))
p2_slow = plot(showFast ? lower_slow : na, "Slow Lower", color=color.new(slowColor, 50))
fill(p1_slow, p2_slow, title = "Slow Background", color=color.new(slowColor, 96))
//Fast Bollinger Bands
dev_fast = mult * ta.stdev(src, math.round(optimalLength_fast))
upper_fast = optimalMA_fast + dev_fast
lower_fast = optimalMA_fast - dev_fast
plot(showSlow ? optimalMA_fast : na, "Fast Basis", color=color.new(fastColor, 0))
p1_fast = plot(showSlow ? upper_fast : na, "Fast Upper", color=color.new(fastColor, 50))
p2_fast = plot(showSlow ? lower_fast : na, "Fast Lower", color=color.new(fastColor, 50))
fill(p1_fast, p2_fast, title = "Fast Background", color=color.new(fastColor, 96))
Donchian Channels:
Above you’ll see two examples of Machine Learning: Optimal Length applied to Donchian Channels. These are displayed with both the 15 Minute Time Frame and the 1 Day Time Frame.
Donchian Channels are a way of seeing potential Support and Resistance within a given lookback length. They are a way of withholding the High’s and Low’s of a specific lookback length and looking for deviation within this length. By applying our Fast, Slow and Neutral Machine Learning: Optimal Length to these Donchian Channels way may hope to achieve a viable range of High’s and Low’s that one may use to Identify Support and Resistance locations for different ranges of Optimal Lengths and likewise potentially different Trading Strategies.
The code to reproduce these Donchian Channels as displayed above is so:
//@version=5
indicator("Optimal Length - Backtesting - Donchian Channels", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
mult = 2.0
src = close
neutralColor = color.blue
slowColor = color.red
fastColor = color.green
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
//Neutral Donchian Channels
lower_dc = ta.lowest(optimalLength)
upper_dc = ta.highest(optimalLength)
basis_dc = math.avg(upper_dc, lower_dc)
plot(showNeutral ? basis_dc : na, "Donchain Channel - Neutral Basis", color=color.new(neutralColor, 0))
u = plot(showNeutral ? upper_dc : na, "Donchain Channel - Neutral Upper", color=color.new(neutralColor, 50))
l = plot(showNeutral ? lower_dc : na, "Donchain Channel - Neutral Lower", color=color.new(neutralColor, 50))
fill(u, l, color=color.new(neutralColor, 96), title = "Donchain Channel - Neutral Background")
//Fast Donchian Channels
lower_dc_fast = ta.lowest(optimalLength_fast)
upper_dc_fast = ta.highest(optimalLength_fast)
basis_dc_fast = math.avg(upper_dc_fast, lower_dc_fast)
plot(showFast ? basis_dc_fast : na, "Donchain Channel - Fast Neutral Basis", color=color.new(fastColor, 0))
u_fast = plot(showFast ? upper_dc_fast : na, "Donchain Channel - Fast Upper", color=color.new(fastColor, 50))
l_fast = plot(showFast ? lower_dc_fast : na, "Donchain Channel - Fast Lower", color=color.new(fastColor, 50))
fill(u_fast, l_fast, color=color.new(fastColor, 96), title = "Donchain Channel - Fast Background")
//Slow Donchian Channels
lower_dc_slow = ta.lowest(optimalLength_slow)
upper_dc_slow = ta.highest(optimalLength_slow)
basis_dc_slow = math.avg(upper_dc_slow, lower_dc_slow)
plot(showSlow ? basis_dc_slow : na, "Donchain Channel - Slow Neutral Basis", color=color.new(slowColor, 0))
u_slow = plot(showSlow ? upper_dc_slow : na, "Donchain Channel - Slow Upper", color=color.new(slowColor, 50))
l_slow = plot(showSlow ? lower_dc_slow : na, "Donchain Channel - Slow Lower", color=color.new(slowColor, 50))
fill(u_slow, l_slow, color=color.new(slowColor, 96), title = "Donchain Channel - Slow Background")
Envelopes / Envelopes Adjusted:
Envelopes are an interesting one in the sense that they both may be perceived as useful; however we deem that with the use of an ‘Optimal Length’ that the ‘Envelopes Adjusted’ may work best. We will start with examples of the Traditional Envelope then showcase the Adjusted version.
Envelopes:
As you may see, a Traditional form of Envelopes even produced with our Machine Learning: Optimal Length may not produce optimal results. Unfortunately this may occur with some Traditional Indicators and they may need some adjustments as you’ll notice with the ‘Envelopes Adjusted’ version. However, even without the adjustments, these Envelopes may be useful for seeing ‘Overbought’ and ‘Oversold’ locations within a Machine Learning: Optimal Length standpoint.
Envelopes Adjusted:
By adding an adjustment to these Envelopes, we may hope to better reflect out Optimal Length within it. This is caused by adding a ratio reflection towards the current length of the Optimal Length and the max Length used. This allows for the Fast and Neutral (and potentially Slow if Neutral is greater) to achieve a potentially more accurate result.
Envelopes, much like Bollinger Bands are a way of seeing potential movement zones along with potential Support and Resistance. However, unlike Bollinger Bands which are based on Standard Deviation, Envelopes are based on percentages +/- from the Simple Moving Average.
The code used to reproduce the example above is as follows:
//@version=5
indicator("Optimal Length - Backtesting - Envelopes", overlay=true, max_bars_back=5000)
outputType = input.string("All", "Output Type", options= )
displayType = input.string("Envelope Adjusted", "Display Type", options= )
lengthSource = input.source(close, "Neutral Length")
lengthSource_fast = input.source(close, "Fast Length")
lengthSource_slow = input.source(close, "Slow Length")
showNeutral = outputType == "Neutral" or outputType == "Fast + Neutral" or outputType == "Slow + Neutral" or outputType == "All"
showFast = outputType == "Fast" or outputType == "Fast + Neutral" or outputType == "Fast + Slow" or outputType == "All"
showSlow = outputType == "Slow" or outputType == "Slow + Neutral" or outputType == "Fast + Slow" or outputType == "All"
mult = 2.0
src = close
neutralColor = color.blue
slowColor = color.red
fastColor = color.green
//Neutral
optimalLength = math.min(math.max(math.round(lengthSource), 1), 1000)
optimalMA = ta.sma(close, optimalLength)
//Fast
optimalLength_fast = math.min(math.max(math.round(lengthSource_fast), 1), 1000)
optimalMA_fast = ta.sma(close, optimalLength_fast)
//Slow
optimalLength_slow = math.min(math.max(math.round(lengthSource_slow), 1), 1000)
optimalMA_slow = ta.sma(close, optimalLength_slow)
percent = 10.0
maxAmount = math.max(optimalLength, optimalLength_fast, optimalLength_slow)
//Neutral
k = displayType == "Envelope" ? percent/100.0 : (percent/100.0) / (optimalLength / maxAmount)
upper_env = optimalMA * (1 + k)
lower_env = optimalMA * (1 - k)
plot(showNeutral ? optimalMA : na, "Envelope - Neutral Basis", color=color.new(neutralColor, 0))
u_env = plot(showNeutral ? upper_env : na, "Envelope - Neutral Upper", color=color.new(neutralColor, 50))
l_env = plot(showNeutral ? lower_env : na, "Envelope - Neutral Lower", color=color.new(neutralColor, 50))
fill(u_env, l_env, color=color.new(neutralColor, 96), title = "Envelope - Neutral Background")
//Fast
k_fast = displayType == "Envelope" ? percent/100.0 : (percent/100.0) / (optimalLength_fast / maxAmount)
upper_env_fast = optimalMA_fast * (1 + k_fast)
lower_env_fast = optimalMA_fast * (1 - k_fast)
plot(showFast ? optimalMA_fast : na, "Envelope - Fast Basis", color=color.new(fastColor, 0))
u_env_fast = plot(showFast ? upper_env_fast : na, "Envelope - Fast Upper", color=color.new(fastColor, 50))
l_env_fast = plot(showFast ? lower_env_fast : na, "Envelope - Fast Lower", color=color.new(fastColor, 50))
fill(u_env_fast, l_env_fast, color=color.new(fastColor, 96), title = "Envelope - Fast Background")
//Slow
k_slow = displayType == "Envelope" ? percent/100.0 : (percent/100.0) / (optimalLength_slow / maxAmount)
upper_env_slow = optimalMA_slow * (1 + k_slow)
lower_env_slow = optimalMA_slow * (1 - k_slow)
plot(showSlow ? optimalMA_slow : na, "Envelope - Slow Basis", color=color.new(slowColor, 0))
u_env_slow = plot(showSlow ? upper_env_slow : na, "Envelope - Slow Upper", color=color.new(slowColor, 50))
l_env_slow = plot(showSlow ? lower_env_slow : na, "Envelope - Slow Lower", color=color.new(slowColor, 50))
fill(u_env_slow, l_env_slow, color=color.new(slowColor, 96), title = "Envelope - Slow Background")
Hopefully these examples, including reproducing code, have given you some insight as to how useful this Machine Learning: Optimal Length may be and how another Indicator may easily modify their existing code to incorporate the usage of such Machine Learning: Optimal Length. We likewise will publish a Backtesting Indicator which incorporates all of the concepts we’ve gone over within here; in case you wish to take advantage of the Traditional Indicators mentioned above that allow the input of Machine Learning: Optimal Length and don’t wish to code them.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
[KVA]Body Percentage Counter This indicator presents a comprehensive view of the historical candle data within user-defined body percentage ranges. Each column represents a specific body size percentage threshold, starting from as low as 0.01% and extending up to 20%.
The rows categorize candles by their closing and opening price differences, effectively sorting them into green (bullish) and red (bearish) candles based on whether they closed higher or lower than their opening prices.
First Row of the table is the bu
For developers, this table can be immensely useful in determining stop-loss ranges. By analyzing the frequency of candles that fall within certain body percentage ranges, developers can better understand where to set stop-loss orders. For instance, if a developer notices a high frequency of candles with body sizes within a specific percentage range, they may choose to set their stop-loss orders outside of this range to avoid being stopped out by normal market fluctuations.
Moreover, the indicator can be used to:
Volatility Assessment : The indicator can be used to gauge market volatility. Smaller bodies may indicate consolidation periods, while larger bodies might suggest more volatile market conditions.
Optimize Trading Strategies : Adjust entry and exit points based on the prevalence of certain candle sizes.
Risk Management : Determine the commonality of price movements within a certain range to better manage risks.
Backtesting : Use historical data to backtest how different stop-loss ranges would have performed in the past.
Comparative Analysis : Traders can compare the frequency of different body sizes over a selected period, providing insights into how the market is evolving.
Educational Use : For new traders, the indicator can serve as an educational tool to understand the implications of candlestick sizes and their relationship with market dynamics
The data provided in this output can guide developers to make more informed decisions about where to place stop-loss orders, potentially increasing the effectiveness of their trading algorithms or manual trading strategies.
The output of the " Body Percentage Counter" indicator is organized into a table format, which can be broken down as follows:
Header (First Row) : This row lists the body percentage thresholds used to categorize the candles. It starts from 0.01% and increases incrementally to 20%. These thresholds are likely set by the user and represent the range of candle body sizes as a percentage of the total candle size.
Green Candle Count (Second Row) : This row displays the count of green candles—candles where the close price is higher than the open price—that fall within each body percentage threshold. For example, under the column "0.01", the number 25 indicates there are 25 green candles whose body size is 0.01% of the total candle size.
Red Candle Count (Third Row) : This row shows the count of red candles—candles where the close price is lower than the open price—for each body percentage threshold. The numbers in this row reflect the number of red candles that match the body percentage criteria in the corresponding column.
Total Candle Count (Fourth Row) : This row sums the counts of both green and red candles for each body percentage threshold, providing a total count of candles that have a body size within the specific range. For instance, if under "0.01" the green count is 25 and the red count is 26, then the total would be 51.
This organized data representation allows users to quickly assess the distribution of candle body sizes over a historical period, which is especially useful for determining the frequency of price movements that are significant enough to consider for stop-loss settings or other trade management decisions.
Predictive Indicator Matrix v4 (public)Predictive Indicator Matrix for TradingView
The "Predictive Indicator Matrix" is an advanced analytical tool for TradingView, designed to work across multiple timeframes from 1D to 5m. It employs a complex algorithm combining various technical indicators such as the Ichimoku Cloud, ADX, five EMAs, slow and fast versions of MACD, Stochastic Oscillator, and RSI. This combination is meticulously curated to provide a multifaceted view of the market.
The uniqueness of this script lies in its trigonometric and mathematical logic. It utilizes trigonometric functions, like the arctangent and cosine functions, to calculate the 'bias' and 'score' of market trends, presented in decimal percentages (%). These calculations are pivotal in understanding market dynamics and potential directional changes. The 'bias' is calculated using the cosine of the arctangent of the ratio between current and previous scores, adjusted for market shift. This innovative approach provides a nuanced understanding of market momentum and trend strength.
Furthermore, the script dynamically generates prediction lines based on these calculations. These lines represent potential future market paths, plotted using the current market data and the calculated levels from the matrix. This feature visually represents the script's analysis, offering users an intuitive and actionable insight into potential market movements.
The integration of these indicators, along with the trigonometric calculations, makes the script not only unique but also a powerful tool for traders. It encapsulates various market aspects in one matrix, offering a comprehensive analysis that goes beyond traditional indicator-based strategies.
Additional Features:
The line updates on the first bar close when you load it onto the chart, providing immediate insights into the market.
It also updates on the most recent close of the Update Interval that you choose in the settings. The default setting is on the 1-hour timeframe (1H).
You can now use REPLAY MODE!
Data Options:
Timeframes : Show the timeframe row being analyzed;
Score : Each timeframes' overall score average in %;
Bias : Bias % of each timeframe;
Time : The time that each prediction level is based on/expected;
Pip Change : Based on the bias and volatility, expected pip change;
Levels : The expected level based on the aggregate analysis;
Min/Max Level : The minimum and maximum level based on the analysis;
Potential Stop Loss : Based on the current price, where you should set your SL if you were to go long or short;
Prediction : The prediction line that we calculate.
Show 1 Line? : Only have the most recent line on your chart.
Note 1: This tool is intended for market analysis and should not be construed as investment advice.
Demand and Supply Zones Lite [Afnan]Are you looking to level up your trading game and spot potential turning points in the stock market? Introducing the Smart Money Demand and Supply Zones indicator, a powerful tool designed to identify opportunities created by the Smart money.
The Smart Money Demand and Supply Zones indicator is built upon the principles of Rally Base Rally (RBR), Rally Base Drop (RBD), Drop Base Rally (DBR), Drop Base Drop (DBD).
🔍 Key Details 🔍
The "Smart Money" concept refers to large institutional investors and professional traders who possess significant financial resources and expertise. The importance of smart money lies in their influence on market trends and price movements. Their actions and positions often serve as signals for retail traders and investors to make informed decisions.
Formation of Smart Money: Smart money is attracted to areas in the market where they can find favourable risk-to-reward opportunities.
1. Rally Base Rally (RBR) Zones: These zones occur after a rally (upward price movement), followed by a period of consolidation (base formation), and then another rally. Smart money often forms positions here as it suggests a strong uptrend continuation.
2. Rally Base Drop (RBD) Zones: In this case, there is a rally, followed by a base formation, but instead of another rally, the price drops. Smart money may position themselves here in anticipation of a potential trend reversal.
3. Drop Base Rally (DBR) Zones: These zones form when there is a drop in price, followed by a base formation, and then a rally. Smart money may take positions here, expecting a trend reversal to the upside.
4. Drop Base Drop (DBD) Zones: In this scenario, the price drops, then forms a base, but subsequently continues to drop. Smart money might take bearish positions here, anticipating further downward movement.
🚀 Pending Orders from Smart Money Zones: 🚀
When the price approaches these smart money zones, institutional investors often place remaining pending orders to enter the market.
By identifying RBR/DBR zones as potential buying opportunities and RBD/DBD zones as potential selling opportunities on price charts, retail traders can align their trades with smart money activities. Implementing proper risk management and confirming signals enhances the likelihood of successful trades by following the footsteps of institutional investors.
💡 Key Features of the Indicator 💡
This indicator includes the following features:
Customizable Zone Length: Adjust the number of base candles in a zone to suit your preferences and strategy.
Candle Body Size Customization: Personalize the body size of candles for fine-tuning visual representation.
Base Candle Selection: Choose between the body of the candle or narrow range candles as the base candle for zone plotting.
Colour Customization For Candles: Customize Drop, Base, Rally, and Zone colours to match your visual preferences.
Number of Zones: This feature is flexible, allowing you to customize the quantity of zones displayed on the chart for improved visibility.
Zone Colours: You have the option to personalize the colours for both fresh and tested zones based on your preferences.
Zone Strength Customization: Adjust candle sensitivity for better control.
Swing High and Swing Low: Enable or disable support and demand lines based on Swing High and Swing Low.
Wick of Candle: Customize zone plotting using the body or wicks of candles for flexible analysis.
Previous Zones: You can choose to display or disable previous zones on the chart that have been deleted and utilized before. This option helps you maintain a clutter-free chart while retaining valuable historical information.
Moving Averages: Utilize four (4) customizable Moving Averages to enhance analysis from any time frame.
💎 Employing a Top-Down Approach and Multiple Time Frame Analysis: 💎
Let's delve into the concept of adopting a top-down approach combined with multiple time frame analysis in trading scenarios. It is consistently recommended to trade with the trend because, as the saying goes, "the trend is your friend." If you identify a demand zone on the chart but the overall trend is downward, it's crucial to confirm the stock's trend in higher timeframes. Avoid purchasing from the demand zone in such a scenario as you would be going against the trend. To consider buying from the demand zone, ensure that the overall trend is upward by checking the higher timeframe.
Similarly, if the higher timeframe trend is upward but the price is approaching a higher timeframe supply zone, refrain from buying in the lower timeframe. If the price reaches a higher timeframe supply zone, there is a likelihood that the price will face rejection from this zone.
If the price is significantly extended from the EMA 20 on a higher timeframe, for instance, if you plan to trade on a 30-minute timeframe and the price is considerably extended from the daily EMA 20, consider trading from zones that are closer to the daily EMA 20. When the price is extended from the higher timeframe EMA 20, it implies that the price is expensive, and there may be a tendency for it to return to the EMA 20. Therefore, it is advisable to trade from zones that are closer to the higher timeframe EMA 20 and avoid zones that are extended from the higher timeframe EMA 20.
For instance, imagine you're considering purchasing a stock that has reached a demand zone known as Rally Base Rally (RBR). If you identify a corresponding demand zone in a higher time frame located at the same position, and concurrently observe that the intermediate time frame indicates an upward trend, your potential for a successful trade is enhanced.
Conversely, if you spot a buying zone in a lower time frame, but notice a supply zone in the higher time frame at that exact position, the likelihood of a profitable trade decreases significantly. In such cases, it's prudent to steer clear of the lower time frame zone. This emphasizes the critical significance of employing a top-down approach or conducting a multiple time frame analysis.
Note: By Doing top down approach you can easily follow the footprints of smart money in the stock market or any other market by using this indicator and make well-informed trading decisions.
Remember, don't make decisions based only on one time frame. Check the overall trend of the stock and look at buying and selling points on bigger time scales. If you only use one time scale, your chances of making successful trades will be lower.
💎 To execute these comprehensive analyses and optimize your trading outcomes, you can make use of my indicator called "Demand & Supply Zone Scoring: Rally Base & Drop Concept."💎
This indicator is thoughtfully crafted to assess the strength of trade setups based on demand and supply zones through a scoring mechanism. It serves as your guide for correct top-down and multiple time frame analysis, eliminating the possibility of overlooking any strategic parameters. To gain deeper insights, you can learn more about how to use this indicator in its description.
Lastly, Thank you for your support, your likes & comments." Feel free to ask if you have questions.
Let's conquer the markets together! 🚀
Time-itTime-it = Time based indicator
The Time-it indicator parses data by the day of week. Every tradeable instrument has its own personality. Some are more volatile on Mondays, and some are more bullish / bearish on Fridays or any day in between. The key metrics Time-it parses is range, open, high, low, close and +volume-.
The Time-it parsed data is printed in a table format. The table, position, size & color and text color & size can be changed to your preference. Each column parsed data is the last 10 which is numbered 0-9 which refers to the number of the selected day bars ago. For example: if Monday is chosen, 0 is the last closed Monday bar and 9 is the last closed Monday 9 Monday bars ago.
Range = measures the range between high and low for the day.
Open = is the opening price for the day.
High = is the high price for the day.
Low = is the low price for the day.
Close = is the closing price for the day.
+volume- = is the positive or negative volume for the day.
Default settings:
*Represents a how to use tooltip*
Source = ohlc4
* The source used for MA
MA length = 20
* The moving average used
Day bar color on / off
* checked on / unchecked off
Monday = blue
Tuesday = yellow
Wednesday = purple
Thursday = orange
Friday = white
Saturday = red
Sunday = green
Day M, T, W, TH, F, ST, SN.
* Parsed data for the day of week tables
Table, position, size & color:
Top, middle, bottom, left, center, right
* Table position on the chart.
Frame width & border width = 1
Text color and text size
Border color and frame color
Decimal place = 0
* example: use 0 for a round number, use 4 for Forex
*** The Time-it indicator uses parts and/or pieces of code from "Tradingview Up/Down Volume" and "Tradingview Financials on Chart".
Trend Line XrossTrend Line Xross (TLX) Uses User Input Points to draw trendlines and displays the exact intersection point of those trendlines.
This is the public indicator of the practical application for this intersection method included in my entry for Pinefest #1.
To determine the exact intersection point I am using the y-intercept method as seen below.
The code is notated for more information on the technical workings.
One difference to note between this version and the pinefest version is that I had to change the line drawings to use bar_index values so that I can use line.get_price() to grab the current value of the line to make alerts from.
Additionally, there are alerts built-in to this version for every type of cross on all of the visible lines.
Enjoy!
Intersection PointThis publication focusses at the intersection of 2 lines, and a trend estimation derived from a comparison of Intersection Point value against current price value.
The formula to calculate the Intersection Point (IP) is:
change1 = ta.change (valueLine1)
change2 = ta.change (valueLine2)
sf = (valueLine2 - valueLine1 ) / (change1 - change2)
I = valueLine1 + change1 * sf
🔶 USAGE
🔹 Future / Past Intersection
The position where 2 lines would intersect in the future is shown here by extending both lines and a yellow small line to indicate its location:
Of course this can change easily when price changes.
If "Back" is enabled, the IP in history can be seen:
The yellow line which indicates the IP is only visible when it is not further located then +/- 500 bars from current bar.
If this point is further away, lines towards the IP still will be visible (max 500 bars further) without the IP.
🔹 Trend
The calculated intersection price is compared with the latest close and used for estimating the trend direction.
When close is above the intersection price (I), this is an indication the market is trending up, if close is below I, this would indicate the market is trending down.
The included bands can be useful for entry/SL/TP,...
🔶 DETAILS
🔹 Map.new()
All values are put in a map.new() with the function value()
The latest Intersection is also placed in this map with the function addLastIntersectValue() and retrieved at the last bar (right top)
🔹 Intersection Point Line
The intersection price can be made visible by enabling "Intersection Price" in SETTINGS -> STYLE. To ensure lines aren't drawn all over the place, this value is limited to maximum high + 200 days-ATR and minimum low - 200 days-ATR.
🔶 SETTINGS
🔹 Choose the value for both lines :
Type : choose between
• open, high, low, close,
• SMA, EMA, HullMA, WMA, VWMA, DEMA, TEMA
• The Length setting sets 1 of these Moving Averages when chosen
• src 1 -> You can pick an external source here
🔹 Length Intersection Line : Max length of line:
Intersection Line will update untillthe amount of bars reach the "Length Intersection Line"
💜 PURPLE BARS 😈
• Since TradingView has chosen to give away our precious Purple coloured Wizard Badge, bars are coloured purple 😊😉
Ultimate Seasonality Indicator [SS]Hello everyone,
This is my seasonality indicator. I have been working on it for like 2 months, so hope you like it!
What it does?
The Ultimate Seasonality indicator is designed to provide you, the trader, an in-depth look at seasonality. The indicator gives you the ability to do the following functions:
View the most bearish and bullish months over a user defined amount of years back.
View the average daily change for each respective months over a user defined amount of years back.
See the most closely correlated month to the current month to give potential insights of likely trend.
Plot out areas of High and Low Seasonality.
Create a manual seasonal forecast model by selecting the desired month you would like to model the current month data after.
Have the indicator develop an autoregressive seasonal model based on seasonally lagged variables, using principles of machine learning.
I will go over these functions 1 by 1, its a whopper of an indicator so I will try to be as clear and concise as possible.
Viewing Bullish vs Bearish Months, Average Daily Change & Correlation to Current Month
The indicator will break down the average change, as well as the number of bullish and bearish days by month. See the image below as an example:
In the table to the right, you will see a breakdown of each month over the past 3 years.
In the first column, you will see the average daily change. A negative value, means it was a particularly bearish month, a positive value means it was a particularly bullish month.
The next column over shows the correlation to the current dataset. How this works is the indicator takes the size of the monthly data for each month, and compares it to the last X number of days up until the last trading day. It will then perform a correlation assessment to see how closely similar the past X number of trading days are to the various monthly data.
The last 2 columns break down the number of Bullish and Bearish days, so you can see how many red vs green candles happened in each respective month over your set timeframe. In the example above, it is over the pats 3 years.
Plot areas of High and Low Seasonality
In the chart above, you will see red and green highlighted zones.
Red represents areas of HIGH Seasonality .
Green represents areas of LOW Seasonality .
For this function, seasonality is measured by the autocorrelation function at various lags (12 lags). When there is an average autocorrelation of greater than 0.85 across all seasonal lags, it is considered likely the result of high seasonality/trend.
If the lag is less than or equal to 0.05, it is indicative of very low seasonality, as there is no predominate trend that can be found by the autocorrelation functions over the seasonally lagged variables.
Create Manual Seasonal Forecasts
If you find a month that has a particularly high correlation to the current month, you can have the indicator create a seasonal model from this month, and fit it onto the current dataset (past X days of trading).
If we look at the example below:
We can see that the most similar month to the current data is September. So, we can ask the indicator to create a seasonal forecast model from only September data and fit it to our current month. This is the result:
You will see, using September data, our most likely close price for this month is 450 and our model is y= 1.4305x + -171.67.
We can accept the 450 value but we can use the equation to model the data ourselves manually.
For example, say we have a target price on the month of 455 based on our own analysis. We can calculate the likely close price, should this target be reached, by substituting this target for x. So y = 1.4305x + -171.67 becomes
y = 1.4305(455) +- 171.67
y = 479.20
So the likely close price would be 479.20. No likely, and thus its not likely we are to see 455.
HOWEVER, in this current example, the model is far too statistically insignificant to be used. We can see the correlation is only 0.21 and the R squared is 0.04. Not a model you would want to use!
You want to see a correlation of at least 0.5 or higher and an R2 of 0.5 or higher.
We can improve the accuracy by reducing the number of years we look back. This is what happens when we reduce the lookback years to 1:
You can see reducing to 1 year gives December as the most similar month. However, our R2 value is still far too low to really rely on this data whole-heartedly. But it is a good reference point.
Automatic Autoregressive Model
So this is my first attempt at using some machine learning principles to guide statistical analysis.
In the main chart above, you will see the indicator making an autoregressive model of seasonally lagged variables. It does this in steps. The steps include:
1) Differencing the data over 12, seasonally lagged variables.
2) Determining stationarity using DF test.
3) Determining the highest, autocorrelated lags that fall within a significant stationary result.
4) Creating a quadratic model of the two identified lags that best represents a stationary model with a high autocorrelation.
What are seasonally lagged variables?
Seasonally lagged variables are variables that represent trading months. So a lag of 25 would be 1 month, 50, 2 months, 75, 3 months, etc.
When it displays this model, it will show us what the results of the t-statistic are for the DF test, whether the data is stationary, and the result of the autocorrelation assessment.
It will then display the model detail in the tip table, which includes the equation, the current lags being used, the R2 and the correlation value.
Concluding Remarks
That's the indicator in a nutshell!
Hope you like it!
One final thing, you MUST have your chart set to daily, otherwise you will get a runtime error. This can ONLY be used on the daily timeframe!
Feel free to leave your questions, comments and suggestions below.
Note:
My "ultimate" indicators are made to give the functionality of multiple indicators in one. If you like this one, you may like some of my others:
Ultimate P&L Indicator
Ultimate Customizable EMA/SMA
Thanks for checking out the indicator!
K`s Extreme DurationExtreme duration uses a special combination of the RSI and its relative position to deliver a reversal signal.
The following are the conditions to generate signals:
* Bullish signal: The current 8-period RSI is below 50 and above 35 while the previous 5 RSI's are below 35.
* Bearish signal: The current 8-period RSI is above 50 and below 65 while the previous 5 RSI's are above 65.