Immediate rebalanceGuided by the new ICT tutoring, I create this versatile Immediate Rebalance indicator
This indicator shows a different way on how to view the "Spikes or Shadows", based on the direction of the price this indicator divides the "Spike or Shadows" into levels 0.5 - 0.75 - 0.25 Fibonacci, giving the possibility to view the levels both in normal or in pre-Macro times
The user has the possibility to:
- Choose to have Spike levels shown in MultiTimeframe
- Choose to show Sike levels only Bullish or only Bearish
- Choose to show Sike levels only in pre-Macro/Macro times
- Choose to view the maximum amount of levels with Max Show
The indicator must be used as ICT shows in its concepts, the indicator takes into consideration the last 2 candles already closed so on the candle that is forming it is possible to expect reactions on the levels it marks, below is an example of how to use it in MultiTimeframe
Below I show an example on how to set the indicator to see Immediate Rebalance in Macro times
Below is an example of when not to take the indicator into consideration
In den Scripts nach "央行:下调个人住房公积金贷款利率0.25个百分点" suchen
AI Momentum [YinYang]Overview:
AI Momentum is a kernel function based momentum Indicator. It uses Rational Quadratics to help smooth out the Moving Averages, this may give them a more accurate result. This Indicator has 2 main uses, first it displays ‘Zones’ that help you visualize the potential movement areas and when the price is out of bounds (Overvalued or Undervalued). Secondly it creates signals that display the momentum of the current trend.
The Zones are composed of the Highest Highs and Lowest lows turned into a Rational Quadratic over varying lengths. These create our Rational High and Low zones. There is however a second zone. The second zone is composed of the avg of the Inner High and Inner Low zones (yellow line) and the Rational Quadratic of the current Close. This helps to create a second zone that is within the High and Low bounds that may represent momentum changes within these zones. When the Rationalized Close crosses above the High and Low Zone Average it may signify a bullish momentum change and vice versa when it crosses below.
There are 3 different signals created to display momentum:
Bullish and Bearish Momentum. These signals display when there is current bullish or bearish momentum happening within the trend. When the momentum changes there will likely be a lull where there are neither Bullish or Bearish momentum signals. These signals may be useful to help visualize when the momentum has started and stopped for both the bulls and the bears. Bullish Momentum is calculated by checking if the Rational Quadratic Close > Rational Quadratic of the Highest OHLC4 smoothed over a VWMA. The Bearish Momentum is calculated by checking the opposite.
Overly Bullish and Bearish Momentum. These signals occur when the bar has Bullish or Bearish Momentum and also has an Rationalized RSI greater or less than a certain level. Bullish is >= 57 and Bearish is <= 43. There is also the option to ‘Factor Volume’ into these signals. This means, the Overly Bullish and Bearish Signals will only occur when the Rationalized Volume > VWMA Rationalized Volume as well as the previously mentioned factors above. This can be useful for removing ‘clutter’ as volume may dictate when these momentum changes will occur, but it can also remove some of the useful signals and you may miss the swing too if the volume just was low. Overly Bullish and Bearish Momentum may dictate when a momentum change will occur. Remember, they are OVERLY Bullish and Bearish, meaning there is a chance a correction may occur around these signals.
Bull and Bear Crosses. These signals occur when the Rationalized Close crosses the Gaussian Close that is 2 bars back. These signals may show when there is a strong change in momentum, but be careful as more often than not they’re predicting that the momentum may change in the opposite direction.
Tutorial:
As we can see in the example above, generally what happens is we get the regular Bullish or Bearish momentum, followed by the Rationalized Close crossing the Zone average and finally the Overly Bullish or Bearish signals. This is normally the order of operations but isn’t always how it happens as sometimes momentum changes don’t make it that far; also the Rationalized Close and Zone Average don’t follow any of the same math as the Signals which can result in differing appearances. The Bull and Bear Crosses are also quite sporadic in appearance and don’t generally follow any sort of order of operations. However, they may occur as a Predictor between Bullish and Bearish momentum, signifying the beginning of the momentum change.
The Bull and Bear crosses may be a Predictor of momentum change. They generally happen when there is no Bullish or Bearish momentum happening; and this helps to add strength to their prediction. When they occur during momentum (orange circle) there is a less likely chance that it will happen, and may instead signify the exact opposite; it may help predict a large spike in momentum in the direction of the Bullish or Bearish momentum. In the case of the orange circle, there is currently Bearish Momentum and therefore the Bull Cross may help predict a large momentum movement is about to occur in favor of the Bears.
We have disabled signals here to properly display and talk about the zones. As you can see, Rationalizing the Highest Highs and Lowest Lows over 2 different lengths creates inner and outer bounds that help to predict where parabolic movement and momentum may move to. Our Inner and Outer zones are great for seeing potential Support and Resistance locations.
The secondary zone, which can cross over and change from Green to Red is also a very important zone. Let's zoom in and talk about it specifically.
The Middle Zone Crosses may help deduce where parabolic movement and strong momentum changes may occur. Generally what may happen is when the cross occurs, you will see parabolic movement to the High / Low zones. This may be the Inner zone but can sometimes be the outer zone too. The hard part is sometimes it can be a Fakeout, like displayed with the Blue Circle. The Cross doesn’t mean it may move to the opposing side, sometimes it may just be predicting Parabolic movement in a general sense.
When we turn the Momentum Signals back on, we can see where the Fakeout occurred that it not only almost hit the Inner Low Zone but it also exhibited 2 Overly Bearish Signals. Remember, Overly bearish signals mean a momentum change in favor of the Bulls may occur soon and overly Bullish signals mean a momentum change in favor of the Bears may occur soon.
You may be wondering, well what does “may occur soon” mean and how do we tell?
The purpose of the momentum signals is not only to let you know when Momentum has occurred and when it is still prevalent. It also matters A LOT when it has STOPPED!
In this example above, we look at when the Overly Bullish and Bearish Momentum has STOPPED. As you can see, when the Overly Bullish or Bearish Momentum stopped may be a strong predictor of potential momentum change in the opposing direction.
We will conclude our Tutorial here, hopefully this Indicator has been helpful for showing you where momentum is occurring and help predict how far it may move. We have been dabbling with and are planning on releasing a Strategy based on this Indicator shortly.
Settings:
1. Momentum:
Show Signals: Sometimes it can be difficult to visualize the zones with signals enabled.
Factor Volume: Factor Volume only applies to Overly Bullish and Bearish Signals. It's when the Volume is > VWMA Volume over the Smoothing Length.
Zone Inside Length: The Zone Inside is the Inner zone of the High and Low. This is the length used to create it.
Zone Outside Length: The Zone Outside is the Outer zone of the High and Low. This is the length used to create it.
Smoothing length: Smoothing length is the length used to smooth out our Bullish and Bearish signals, along with our Overly Bullish and Overly Bearish Signals.
2. Kernel Settings:
Lookback Window: The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars. Recommended range: 3-50.
Relative Weighting: Relative weighting of time frames. As this value approaches zero, the longer time frames will exert more influence on the estimation. As this value approaches infinity, the behavior of the Rational Quadratic Kernel will become identical to the Gaussian kernel. Recommended range: 0.25-25.
Start Regression at Bar: Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit. Recommended range: 5-25.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Are stop orders making money? [yohtza]Who is this indicator for and what does it do?
This is an indicator that helps price action traders in determining the strength of the trend and potential counter trend traps that present themselves during the move. It highlights the background of the bar at which counter trend traders that trade with stop orders (breakout entries) were able to achieve the same amount of reward as was their risk for that trade.
What is it based on?
When there is a strong trend in effect, the counter trend traders are unable to buy above(in bear trend) or sell below (in bull trend) a bar with a stop order and get an equal reward for the risk they are taking.
The first time counter trend traders are able to buy and make money in bear or sell and make money in bull it is a warning sign that market is likely transitioning into trading range phase of the market cycle.
Another application of the indicator is for discovering potential traps. If market comes very close to the take profit level of counter trend traders and reverses, they will usually try to get out with as much profit or as small of a loss as possible and that will often create a fast move (also called giving up) and a good with trend entry.
How does it work?
The indicator is using exponential moving average as a filter for when the market is trending and then scans for signals where counter trend traders enter. Next it looks if the stoploss or profit target was hit for that trade. If the profit target was hit it draws a box around the bar on which the traders entered, the box height is based on stoploss and profit target price levels.
Indicator inputs
- Scan for doji signal bars
When this option is selected, bars that have small bodies (less than 50% of their height) are also included as bars on which counter traders enter. If the option is not selected it only looks for bull trend bars (bodies are greater than 50% of their height) below the moving average and bear trend bars above the moving average.
- Border and background colors and border style
It is possible to select different colors and chose between solid, dashed and dotted borders
- Ema period
Default setting is 20 bar exponential moving average but feel free to use which you prefer
- Tick value
This is the value of the minimal movement of the chart you are trading on. For example for S&P 500 E-mini futures the value is 0.25 and that is the default setting.
Modern Portfolio Management IndicatorAfter weeks of grueling over this indicator, I am excited to be releasing it!
Intro:
This is not a sexy, technical or math based indicator that will give you buy and sell signals or anything fancy, but it is an indicator that I created in hopes to bridge a gap I have noticed. That gap is the lack of indicators and technical resources for those who also like to plan their investments. This indicator is tailored to those who are either established investors and to those who are looking to get into investing but don't really know where to start.
The premise of this indicator is based on Modern Portfolio Theory (MPT). Before we get into the indicator itself, I think its important to provide a quick synopsis of MPT.
About MPT:
Modern Portfolio Theory (MPT) is an investment framework that was developed by Harry Markowitz in the 1950s. It is based on the idea that an investor can optimize their investment portfolio by considering the trade-off between risk and return. MPT emphasizes diversification and holds that the risk of an individual asset should be assessed in the context of its contribution to the overall portfolio's risk. The theory suggests that by diversifying investments across different asset classes with varying levels of risk, an investor can achieve a more efficient portfolio that maximizes returns for a given level of risk or minimizes risk for a desired level of return. MPT also introduced the concept of the efficient frontier, which represents the set of portfolios that offer the highest expected return for a given level of risk. MPT has been widely adopted and used by investors, financial advisors, and portfolio managers to construct and manage portfolios.
So how does this indicator help with MPT?
The thinking and theory that went behind this indicator was this: I wanted an indicator, or really just a "way" to test and back-test ticker performance over time and under various circumstances and help manage risk.
Over the last 3 years we have seen a massive bull market, followed by a pretty huge bear market, followed by a very unexpected bull market. We have been and continue to be plagued with economic and political uncertainty that seems to constantly be looming over everyone with each waking day. Some people have liquidated their retirement investments, while others are fomoing in to catch this current bull run. But which tickers are sound and how tickers and funds have compared amongst each other remains somewhat difficult to ascertain, absent manually reviewing and calculating each ticker individually.
That is where this indicator comes in. This indicator permits the user to define up to 5 equities that they are potentially interested in investing in, or are already invested in. The user can then select a specific period in time, say from the beginning of 2022 till now. The user can then define how much they want to invest in each company by number of shares, so if they want to buy 1 share a week, or 2 shares a month, they can input these variables into the indicator to draw conclusions. As many brokers are also now permitting fractional share trading, this ability is also integrated into the indicator. So for shares, you can put in, say, 0.25 shares of SPY and the indicator will accept this and account for this fractional share.
The indicator will then show you a portfolio summary of what your earnings and returns would be for the defined period. It will provide a percent return as well as the projected P&L based on your desired investment amount and frequency.
But it goes beyond just that, you can also have the indicator display a simple forecasting projection of the portfolio. It will show the projected P&L and % Return over various periods in time on each of the ticker (see image below):
The indicator will also break down your portfolio allocation, it will show where the majority of your holdings are and where the majority of your P&L in coming from (best performers will show a green fill and worst will show a red fill, see image below):
This colour coding also extends to the portfolio breakdown itself.
Dollar cost averaging (DCA) is incorporated into the indicator itself, by assuming ongoing contributions. If you want to stop contributions at a certain point, you just select your end time for contributions at the point in which you would stop contributing.
The indicator also provides some basic fundamental information about the company tickers (if applicable). Simply select the "Fundamental" chart and it will display a breakdown of the fundamentals, including dividends paid, market cap and earnings yield:
The indicator also provides a correlation assessment of each holding against each other holding. This emphasizes the profound role of diversification on portfolios. The less correlation you have in your portfolio among your holdings, the better diversified you are. As well, if you have holdings that are perfectly inverse other holdings, you have a pseudo hedge against the downturn of one of your holdings. This is even more helpful if the inverse is a company with solid fundamentals.
In the below example you will see NASDAQ:IRDM in the portfolio. You will be able to see that NASDAQ:IRDM has a slight inverse relationship to SPY:
Yet IRDM has solid fundamentals and is performing well fundamentally. Thus, this makes IRDIM a solid addition to your portfolio as it can potentially hedge against a downturn for SPY and is less risky than simply holding an inverse leveraged share on SPY which is most likely just going to cost you money than make you money.
Concluding remarks:
There are many fun and interesting things you can do with this indicator and I encourage you to try it out and have fun with it! The overall objective with the indicator is to help you plan for your portfolio and not necessarily to manage your portfolio. If you have a few stocks you are looking at and contemplating investing in, this will help you run some theoretical scenarios with this stock based on historical performance and also help give you a feel of how it will perform in the future based on past behaviour.
It is important to remember that past behaviour does not indicate future behaviour, but the indicator provides you with tools to get a feel for how a stock has performed under various circumstances and get a general feel of the fundamentals of the company you could potentially be investing in.
Please note, this indicator is not meant to replace full, fundamental analyses of individual companies. It is simply meant to give you a "gist" of how companies are fundamentally and how they have performed historically.
I hope you enjoy it!
Safe trades everyone!
Daily SPY PlanThe Daily SPY Plan indicator is a technical analysis tool designed to provide traders with a visual representation of price levels and take profit points for the SPY (S&P 500 ETF) on a daily timeframe. This indicator utilizes the Average True Range (ATR) to calculate projected price levels and take profit points, aiding traders in identifying potential breakout and profit-taking opportunities.
Indicator Description:
The indicator is written in Pine Script, specifically for use on the TradingView platform. It plots several levels on the price chart, each representing a potential breakout or take profit point. The levels are determined based on a fraction of the ATR added or subtracted from the closing price. The fractions used are 0.25, 0.5, 0.75, 1.0, 1.25, and 1.5 times the ATR.
The indicator distinguishes between breakout levels and take profit levels using different colors. Breakout levels, which indicate potential entry or exit points, are displayed in green, while take profit levels are shown in gray.
Key Features and Use:
ATR Calculation: The indicator calculates the Average True Range (ATR) using a specified length (default value of 14). ATR is a measure of market volatility and represents the average range between the high and low prices over a specific period.
Projected Price Levels: The indicator plots several projected price levels above and below the closing price. These levels are calculated by adding or subtracting a fraction of the ATR from the closing price. Traders can use these levels as potential breakout points or areas to set stop-loss orders.
Take Profit Points: The indicator also plots take profit points at specific levels above and below the closing price. These levels are designed to help traders identify potential areas to secure profits or partially exit their positions.
Visual Representation: The indicator utilizes step-like lines to plot the projected price levels and take profit points, providing a clear visual representation on the price chart. Traders can easily identify the relevant levels and incorporate them into their trading strategies.
Customizability: The indicator allows traders to customize the ATR length and choose whether to display Fibonacci levels (although there are no Fibonacci calculations in the provided code). These customization options enable traders to adapt the indicator to their preferred trading style and timeframe.
Limitations and Considerations:
Complementary Analysis: The Daily SPY Plan indicator should be used as a complementary tool alongside other technical analysis techniques and indicators. It provides price levels and take profit points based on ATR calculations, but it doesn't incorporate additional market factors or trading strategies.
Timeframe Suitability: The indicator is specifically designed for the daily timeframe of the SPY. Traders should consider adjusting the parameters and adapting the indicator if using it on different timeframes or instruments.
Risk Management: While the indicator suggests potential breakout and take profit points, it does not provide explicit stop-loss levels or risk management parameters. Traders should incorporate appropriate risk management techniques to protect their capital.
Conclusion:
The Daily SPY Plan indicator is a valuable technical analysis tool for traders focusing on the SPY ETF and the daily timeframe. By utilizing the ATR, it helps traders identify potential breakout levels and take profit points. However, traders should remember that this indicator is just one piece of the puzzle and should be used in conjunction with other technical analysis tools and risk management strategies to make informed trading decisions.
Ultimate Balance StrategyThe Ultimate Balance Oscillator Strategy harnesses the power of the Ultimate Balance Oscillator to deliver a comprehensive and disciplined approach to trading. By combining the insights of the Rate of Change (ROC), Relative Strength Index (RSI), Commodity Channel Index (CCI), Williams Percent Range, and Average Directional Index (ADX) from TradingView, this strategy offers traders a systematic way to navigate the markets with precision.
The core principle of this strategy lies in its ability to identify optimal entry and exit points based on the movement of the Ultimate Balance Oscillator. When the oscillator line crosses below the 0.75 level, a buy signal is generated, indicating a potential opportunity for a bullish trend reversal. Conversely, when the oscillator line crosses above the 0.25 level, it triggers an exit signal, suggesting a possible end to a bullish trend.
Key Features:
1. Objective Market Analysis: The Ultimate Balance Oscillator Strategy provides a disciplined and objective approach to market analysis. By relying on the quantified insights of multiple indicators, it helps traders cut through market noise and focus on key signals, improving decision-making and reducing emotional biases.
2. Enhanced Timing and Precision: This strategy's entry and exit signals are based on the specific thresholds of the Ultimate Balance Oscillator. By waiting for confirmation through the crossing of these levels, traders can potentially enter trades at opportune moments and exit with greater precision, maximizing profit potential and minimizing risk exposure.
3. Customizability and Adaptability: The strategy offers flexibility, allowing traders to customize the parameters to fit their preferred trading style and timeframes. Whether you're a short-term trader or a long-term investor, the Ultimate Balance Oscillator Strategy can be adjusted to suit your specific needs, making it adaptable to various market conditions.
4. Real-time Alerts: Stay informed and never miss a potential trade opportunity with the strategy's built-in alert system. Set personalized alerts for buy and exit signals to receive timely notifications, ensuring you're always aware of the latest developments in the market.
5. Backtesting and Optimization: Before applying the strategy to live trading, it's recommended to conduct thorough backtesting and optimization. By testing the strategy's performance over historical data and fine-tuning the parameters, you can gain insights into its strengths and weaknesses, enabling you to make informed adjustments and increase its effectiveness.
Trading involves risk. Use the Ultimate Balance Oscillator Strategy at your own discretion. Past performance is not indicative of future results.
Kernel Regression ToolkitThis toolkit provides filters and extra functionality for non-repainting Nadaraya-Watson estimator implementations made by @jdehorty. For the sake of ease I have nicknamed it "kreg". Filters include a smoothing formula and zero lag formula. The purpose of this script is to help traders test, experiment and develop different regression lines. Regression lines are best used as trend lines and can be an invaluable asset for quickly locating first pullbacks and breaks of trends.
Other features include two J lines and a blend line. J lines are featured in tools like Stochastic KDJ. The formula uses the distance between K and D lines to make the J line. The blend line adds the ability to blend two lines together. This can be useful for several tasks including finding a center/median line between two lines or for blending in the characteristics of a different line. Default is set to 50 which is a 50% blend of the two lines. This can be increased and decreased to taste. This tool can be overlaid on the chart or on top of another indicator if you set the source. It can even be moved into its own window to create a unique oscillator based on whatever sources you feed it.
Below are the standard settings for the kernel estimation as documented by @jdehorty:
Lookback Window: The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars. Recommended range: 3-50
Weighting: Relative weighting of time frames. As this value approaches zero, the longer time frames will exert more influence on the estimation. As this value approaches infinity, the behavior of the Rational Quadratic Kernel will become identical to the Gaussian kernel. Recommended range: 0.25-25
Level: Bar index on which to start regression. Controls how tightly fit the kernel estimate is to the data. Smaller values are a tighter fit. Larger values are a looser fit. Recommended range: 2-25
Lag: Lag for crossover detection. Lower values result in earlier crossovers. Recommended range: 1-2
For more information on this technique refer to to the original open source indicator by @jdehorty located here:
Normalized Elastic Volume Oscillator (MTF)The Multi-Timeframe Normalized Elastic Volume Oscillator combines volume analysis with multiple timeframe analysis. It provides traders with valuable insights into volume dynamics across different timeframes, helping to identify trends, potential reversals, and overbought/oversold conditions.
When using the Multi-Timeframe Normalized Elastic Volume Oscillator, consider the following guidelines:
Understanding Input Parameters : The indicator offers customizable input parameters to suit your trading preferences. You can adjust the EMA length (emaLength), scaling factor (scalingFactor), volume weighting option (volumeWeighting), and select a higher timeframe for analysis (higherTF). Experiment with these parameters to optimize the indicator for your trading strategy.
Multiple Timeframe Analysis : The Multi-Timeframe Normalized Elastic Volume Oscillator allows you to analyze volume dynamics on both the current timeframe and a higher timeframe. By comparing volume behavior across different timeframes, you gain a broader perspective on market trends and the strength of volume deviations. The higher timeframe analysis provides additional confirmation and helps identify more significant market shifts.
Normalized Values : The indicator normalizes the volume deviations on both timeframes to a consistent scale between -0.25 and 0.75. This normalization makes it easier to compare and interpret the oscillator's readings across different assets and timeframes. Positive values indicate bullish volume behavior, while negative values suggest bearish volume behavior.
Interpreting the Indicator : Pay attention to the position of the Multi-Timeframe Normalized Elastic Volume Oscillator lines relative to the zero line on both timeframes. Positive values on either timeframe indicate a bullish bias, while negative values suggest a bearish bias. The distance of the oscillator from the zero line reflects the strength of the volume deviation. Extreme readings, both positive and negative, may indicate overbought or oversold conditions, potentially signaling a trend reversal or exhaustion.
Combining with Other Indicators : For more robust trading decisions, consider combining the Multi-Timeframe Normalized Elastic Volume Oscillator with other technical analysis tools. This could include trend indicators, support/resistance levels, or candlestick patterns. By incorporating multiple indicators, you gain additional confirmation and increase the reliability of your trading signals.
Remember that the Multi-Timeframe Normalized Elastic Volume Oscillator is a valuable tool, but it should not be used in isolation. Consider other factors such as price action, market context, and fundamental analysis to make well-informed trading decisions. Additionally, practice proper risk management and exercise caution when executing trades.
By utilizing the Multi-Timeframe Normalized Elastic Volume Oscillator, you gain a comprehensive view of volume dynamics across different timeframes. This knowledge can help you identify potential market trends, confirm trading signals, and improve the timing of your trades.
Take time to familiarize yourself with the indicator and conduct thorough testing on historical data. This will help you gain confidence in its effectiveness and align it with your trading strategy. With experience and continuous evaluation, you can harness the power of the Multi-Timeframe Normalized Elastic Volume Oscillator to make informed trading decisions.
Psychological levels (Bank levels) PsychoLevels v3 - TartigradiaPsychological levels (Bank levels) plots the closest "round" price levels above and below current price, based on neuroscience research of how humans intuitively calculate in logarithms.
Psychological levels, also called bank levels, are "round" price numbers, by truncating after the nth leftmost digits, around which price often experience resistance or support, because traders and investors tend to set orders around these round numbers.
The calculation done here is fully automatic and dynamic, contrary to other similar scripts, this one uses a mathematical calculation that extracts the 1, 2 or 3 leftmost digits and calculate the previous and next level by incrementing/decrementing these digits. This means it works for any symbol under any price range.
This approach is based on neuroscience research, which found that human brains intuitively approximate numbers on a logarithmic scale, adults and children alike, and similarly to macaques, for more info see Numerical Cognition , Weber-Fechner Law , Zipf law .
For example, if price is at 0.0421, the next major price level is 0.05 and medium one is 0.043. For another asset currently priced at 19354, the next and previous major price levels are 20000 and 10000 respectively, and the next/previous medium levels are 20000 and 19000, and the next/previous weak levels are 19400 and 19300.
IMPORTANT: Please enable "Scale price chart only" in the chart's scale's options, as otherwise major levels may make the chart's scale very small and hard to read.
How it works
At any time, there are 3 levels of strength (1 leftmost digit, 2 leftmost digits, 3 leftmost digits) represented by different sizes, and 3 directional levels for each of these strengths (level above, level below, and half-level) represented by different colors and positions, around current price.
Indeed, contrary to other similar price levels scripts, we do not plot ALL price levels at all times, because otherwise the chart becomes wayyy too cluttered, and also it's highly processing intensive to plot so many lines. So we here use a dynamical approach: we plot only the relevant levels, the closest ones according to current price.
Hence, when a level disappears, it does not mean that it does not exist anymore, but simply that we are not drawing it right now because it is not pertinent for the current price movement (ie, too far away).
Breakouts can be detected in two different ways depending on if SMA is set to a value higher than 1 or not: if SMA == 1, then there is no smoothing, so the levels adapt instantaneously to the current price, so to detect breakout, you should refer to the levels at the previous tick and whether they were broken by current tick's price; if SMA > 1, then there is some smoothing, and so the levels will stay in-place even if there is a breakout, so it's easier to spot breakouts without having to look at the previous ticks, but on the other hand you won't see the new levels for the new price range until after a few more ticks for the smoothing window to adapt. Hence, by default, smoothing is disabled, so that you can see the currently pertinent levels at all time, even right after or during a breakout.
By default, the strong above level is in green, strong below level is in red, medium above level is in blue, medium below level is in yellow, and weak levels aren't displayed but can be. Half levels are also displayed, in a darker color. Strong levels are increments of the first leftmost digit (eg, 10000 to 20000), medium levels are increments of the second leftmost digit (eg, 19000 to 20000), and weak levels of the third leftmost digit (eg, 19100 to 19200). Instead of plotting all the psychological levels all at once as a grid, which makes the chart unintelligible, here the levels adapt dynamically around the current price, so that they show the above/below/half levels relatively to the current price.
Indeed, "half-levels" are also displayed (eg, medium level can also display 19500 instead of only 19000 or 20000). This was made because otherwise the gap between two levels was too big, especially for the strongest levels (eg, there was no major level between 20000 and 30000, but with a half-step we also get a half-level at 25000, and empirically price tends to respect these half levels - I also tried quarter levels but empirically the results were not good). In addition to this hard-coded half-level, you can also create more subdivisions (eg, quarter levels) by setting the simple moving average to a value higher than 1.
The script can be made to run on the daily timeframe whatever the current chart's timeframe is, to reduce the variability in levels, to make it less noisy than intraday price movement. But by default, the chart resolution is used, because I empirically found that the levels found with this indicator work on all time resolutions quite well.
The step can be adjusted to increase the gap between levels, eg, if you want to display one every 2 levels then input step = 2 (eg, 22000, 24000, 26000, etc), or if you want to display quarter levels, input 0.25 (eg, 22000, 22250, 22500, etc). The default values should fit most use cases and cover most psychological levels.
How to read
Focust first on bigger dotted levels, they are stronger and more likely to cause a rebound or a major event or price to stay at this level.
Remember that it's not enough to just look at levels, the context is important, because levels have various effects depending on current price movement: if price is above a level, the level is a support on which price can rebound; if price is below a level, the level is a resistance on which price can rebound (or break); and finally sometimes price also stays hovering around a level for some time.
Levels closer to 9 are less weaker, and levels closer to 0 are stronger, according to Zipf law. This is now reflected since v3 in the transparency, levels that are closer to 9 will be more transparent.
The switch in color for the same level illustrates how a level switches from being a support to a resistance and inversely. Eg, if a major level turns from green to red, then it changed from being a resistance (above) to a support (below).
As is well known in trading, longer standing levels are stronger. This indicator provides a direct illustration: in practice, the number of consecutive dots on the same line influences the strength of the level: the longer the chain of dots, the more you can expect this price level to be significant. The length does not mean the level will necessarily hold, but that other traders are likely to monitor if it holds, and if not then price will break down. Hence, longer levels are good spots to place stop losses, or to enter trades depending on your strategy. In general, a single dot is not enough to consider a level significant, but 2 or more is a good enough level, and 10+ is a strong level. Intuitively, this makes sense, and is what pro traders do: the longer a level is tested, the stronger it is. This indicator can visually represent this intuition and allows to use it as a more systematic trading signal.
Motivation
I initially made the first version of the PsychoLevels indicator mainly to train with PineScript, but I found it surprisingly accurate to define levels that are respected by price movements. So I guess it can be useful for new traders and experienced traders alike, as it's easy to forget that psychological levels can often be as strong if not stronger than technical levels. It can also be used to quickly screen other minor assets for trading opportunities. For example, a hybrid strategy would be to manually define levels on BTCUSD but using this script to automatically define levels in crypto altcoins and quickly screen them for a trade opportunity that can be greater than with BTCUSD but with the same trend.
Personally, although initially I did not believe an automated tool would work well for this purpose, I could now empirically verify that it is quite reliable for the purpose of detecting levels, and so I use it all the time to find the levels automatically and help me monitor them like a hawk, so that I only have to draw uber major levels, the ones that last between cycles and that are hard to autodetect, but otherwise all daily/weekly levels are usually covered. However, trendlines must still be drawn manually or with another indicator (but note that up to now I have found none that worked well enough), as PsychoLevels only draws levels (ie, horizontal lines, not oblique ones!).
Differences with the previous version PsychoLevels v2
price levels now have a transparency according to their importance for the human brain: numbers closer to 9 are weaker, and numbers closer to 0 are stronger and represent a major psychological threshold (eg, that's why prices marked as $9.99 sell better than $10.00). This option can be disabled to get the exact same behavior as v2.
modularized and typed code
PsychoLevels v2 can be found here:
Ultimate P&L IndicatorHello everyone,
Excited to release this P&L Indicator! Read below for more details.
What it does:
This is an indicator that permits you to track your active P&L live on Tradingview. As well, it provides some insight into DCAing your position by giving you live estimates of your revised DCA if you were to add to your position at various targets/price points.
Who is it for:
I developed it because I trade 100% off of Tradingview but my broker does not support Tradingview integration. So I wanted a way to track my position live on the Tradingview platform without having to constantly reference my broker. I also wanted to be able to set position specific alerts right on Tradingview.
How does it work:
It works by the user manually inputting their trade information, including their DCA, position size and the date and time of position entry. The indicator can provide real time and live DCA adjusted estimates if you were to add to your position at the current stock price, or you can manually calculcate your revised DCA at a specific price target.
The indicator also displays your current and past performance on your position for the duration of the position period:
Elements:
Capabilities:
The indicator is compatible with both futures and share trading.
Option trading is not directly available, however, you can get an idea for your option position P&L by following the 1 option contract = 100 share rule.
So if you have 5 option contracts that you bought at a ticker price of, say, 38$, your average cost or DCA would be 38 and your position size would be 500. This will not be 100% accurate, but will be close enough to give you a feel for your active P&L.
If you are trading futures, you will need to select "Futures Trading" and specify the TIck and Index costs. A cheat sheet has been provided in the tool tip for ES, Oil and MNQ. The default is set for ES1! mini futures at 0.25 ticks per 50$.
Important tips:
1. Select the date and time of your position (optional): This is optional but will provide you with the clearest and most accurate review of how your position has performed, including the highest and lowest (drawdown).
2. Select whether it is a share position or a futures position (this is required).
3. Select whether it is a long or short position (this is required).
4. Input your DCA and position size (this is required).
5. Most importantly, select the ticker your position is based in!
I have also prepared a quick start video which is linked below:
As always, please let me know your comments/questions and feedback for the indicator.
Thanks for checking it out and safe trades everyone!
Interpolated SMA (ISMA)The "Interpolated SMA" indicator is a technical analysis tool that uses a mathematical formula to smooth out fluctuations in the data and provide a clearer picture of the underlying trend. It is a variation of the Simple Moving Average (SMA) indicator, which is widely used in technical analysis. The key difference is that while the SMA indicator uses a fixed length to calculate the average, the ISMA indicator uses an interpolated length, which means it can use fractional values. This allows for more precision in the calculation of the moving average.
The script starts by importing the "Interpolation" library from Electrified/Interpolation/1, which provides the necessary functionality to interpolate the moving average. The script then defines a function called "sma" which takes two parameters: "source" and "length". The "source" parameter is used to specify the data that the indicator will be applied to. It is set to the "close" price by default, but can be changed to any other data source using the input function. The "length" parameter is used to specify the number of data points that will be used to calculate the moving average. It is set to 20.25 by default, but can be changed to any other value between 1 and 2000 with increments of 0.25 using the input function.
The function starts by initializing two variables: "sum" and "sma". The "sum" variable is used to store the sum of the data points. It is set to "na" (not available) by default. The "sma" variable is used to store the calculated moving average. It is also set to "na" by default. The function then uses a conditional statement to check if the "length" parameter is a fractional value. If it is, the function uses the linear interpolation function from the imported "Interpolation" library to calculate the moving average. If it is not, the function calculates the moving average using the traditional method.
Finally, the script uses the "plot" function to display the calculated moving average on the chart. The "Interpolated SMA" indicator is then overlayed on the chart and can be used to analyze trends and make predictions about future market movements.
Variation analysis 1.1Plots lines on the graph in the upper and lower regions ( 0.25% 0.5% 0.75%).
Based on the previous day's closing price or by entering a base value.
Intrabar Efficiency Ratio█ OVERVIEW
This indicator displays a directional variant of Perry Kaufman's Efficiency Ratio, designed to gauge the "efficiency" of intrabar price movement by comparing the sum of movements of the lower timeframe bars composing a chart bar with the respective bar's movement on an average basis.
█ CONCEPTS
Efficiency Ratio (ER)
Efficiency Ratio was first introduced by Perry Kaufman in his 1995 book, titled "Smarter Trading". It is the ratio of absolute price change to the sum of absolute changes on each bar over a period. This tells us how strong the period's trend is relative to the underlying noise. Simply put, it's a measure of price movement efficiency. This ratio is the modulator utilized in Kaufman's Adaptive Moving Average (KAMA), which is essentially an Exponential Moving Average (EMA) that adapts its responsiveness to movement efficiency.
ER's output is bounded between 0 and 1. A value of 0 indicates that the starting price equals the ending price for the period, which suggests that price movement was maximally inefficient. A value of 1 indicates that price had travelled no more than the distance between the starting price and the ending price for the period, which suggests that price movement was maximally efficient. A value between 0 and 1 indicates that price had travelled a distance greater than the distance between the starting price and the ending price for the period. In other words, some degree of noise was present which resulted in reduced efficiency over the period.
As an example, let's say that the price of an asset had moved from $15 to $14 by the end of a period, but the sum of absolute changes for each bar of data was $4. ER would be calculated like so:
ER = abs(14 - 15)/4 = 0.25
This suggests that the trend was only 25% efficient over the period, as the total distanced travelled by price was four times what was required to achieve the change over the period.
Intrabars
Intrabars are chart bars at a lower timeframe than the chart's. Each 1H chart bar of a 24x7 market will, for example, usually contain 60 intrabars at the LTF of 1min, provided there was market activity during each minute of the hour. Mining information from intrabars can be useful in that it offers traders visibility on the activity inside a chart bar.
Lower timeframes (LTFs)
A lower timeframe is a timeframe that is smaller than the chart's timeframe. This script determines which LTF to use by examining the chart's timeframe. The LTF determines how many intrabars are examined for each chart bar; the lower the timeframe, the more intrabars are analyzed, but fewer chart bars can display indicator information because there is a limit to the total number of intrabars that can be analyzed.
Intrabar precision
The precision of calculations increases with the number of intrabars analyzed for each chart bar. As there is a 100K limit to the number of intrabars that can be analyzed by a script, a trade-off occurs between the number of intrabars analyzed per chart bar and the chart bars for which calculations are possible.
Intrabar Efficiency Ratio (IER)
Intrabar Efficiency Ratio applies the concept of ER on an intrabar level. Rather than comparing the overall change to the sum of bar changes for the current chart's timeframe over a period, IER compares single bar changes for the current chart's timeframe to the sum of absolute intrabar changes, then applies smoothing to the result. This gives an indication of how efficient changes are on the current chart's timeframe for each bar of data relative to LTF bar changes on an average basis. Unlike the standard ER calculation, we've opted to preserve directional information by not taking the absolute value of overall change, thus allowing it to be utilized as a momentum oscillator. However, by taking the absolute value of this oscillator, it could potentially serve as a replacement for ER in the design of adaptive moving averages.
Since this indicator preserves directional information, IER can be regarded as similar to the Chande Momentum Oscillator (CMO) , which was presented in 1994 by Tushar Chande in "The New Technical Trader". Both CMO and ER essentially measure the same relationship between trend and noise. CMO simply differs in scale, and considers the direction of overall changes.
█ FEATURES
Display
Three different display types are included within the script:
• Line : Displays the middle length MA of the IER as a line .
Color for this display can be customized via the "Line" portion of the "Visuals" section in the script settings.
• Candles : Displays the non-smooth IER and two moving averages of different lengths as candles .
The `open` and `close` of the candle are the longest and shortest length MAs of the IER respectively.
The `high` and `low` of the candle are the max and min of the IER, longest length MA of the IER, and shortest length MA of the IER respectively.
Colors for this display can be customized via the "Candles" portion of the "Visuals" section in the script settings.
• Circles : Displays three MAs of the IER as circles .
The color of each plot depends on the percent rank of the respective MA over the previous 100 bars.
Different colors are triggered when ranks are below 10%, between 10% and 50%, between 50% and 90%, and above 90%.
Colors for this display can be customized via the "Circles" portion of the "Visuals" section in the script settings.
With either display type, an optional information box can be displayed. This box shows the LTF that the script is using, the average number of lower timeframe bars per chart bar, and the number of chart bars that contain LTF data.
Specifying intrabar precision
Ten options are included in the script to control the number of intrabars used per chart bar for calculations. The greater the number of intrabars per chart bar, the fewer chart bars can be analyzed.
The first five options allow users to specify the approximate amount of chart bars to be covered:
• Least Precise (Most chart bars) : Covers all chart bars by dividing the current timeframe by four.
This ensures the highest level of intrabar precision while achieving complete coverage for the dataset.
• Less Precise (Some chart bars) & More Precise (Less chart bars) : These options calculate a stepped LTF in relation to the current chart's timeframe.
• Very precise (2min intrabars) : Uses the second highest quantity of intrabars possible with the 2min LTF.
• Most precise (1min intrabars) : Uses the maximum quantity of intrabars possible with the 1min LTF.
The stepped lower timeframe for "Less Precise" and "More Precise" options is calculated from the current chart's timeframe as follows:
Chart Timeframe Lower Timeframe
Less Precise More Precise
< 1hr 1min 1min
< 1D 15min 1min
< 1W 2hr 30min
> 1W 1D 60min
The last five options allow users to specify an approximate fixed number of intrabars to analyze per chart bar. The available choices are 12, 24, 50, 100, and 250. The script will calculate the LTF which most closely approximates the specified number of intrabars per chart bar. Keep in mind that due to factors such as the length of a ticker's sessions and rounding of the LTF, it is not always possible to produce the exact number specified. However, the script will do its best to get as close to the value as possible.
Specifying MA type
Seven MA types are included in the script for different averaging effects:
• Simple
• Exponential
• Wilder (RMA)
• Weighted
• Volume-Weighted
• Arnaud Legoux with `offset` and `sigma` set to 0.85 and 6 respectively.
• Hull
Weighting
This script includes the option to weight IER values based on the percent rank of absolute price changes on the current chart's timeframe over a specified period, which can be enabled by checking the "Weigh using relative close changes" option in the script settings. This places reduced emphasis on IER values from smaller changes, which may help to reduce noise in the output.
█ FOR Pine Script™ CODERS
• This script imports the recently published lower_ltf library for calculating intrabar statistics and the optimal lower timeframe in relation to the current chart's timeframe.
• This script uses the recently released request.security_lower_tf() Pine Script™ function discussed in this blog post .
It works differently from the usual request.security() in that it can only be used on LTFs, and it returns an array containing one value per intrabar.
This makes it much easier for programmers to access intrabar information.
• This script implements a new recommended best practice for tables which works faster and reduces memory consumption.
Using this new method, tables are declared only once with var , as usual. Then, on the first bar only, we use table.cell() to populate the table.
Finally, table.set_*() functions are used to update attributes of table cells on the last bar of the dataset.
This greatly reduces the resources required to render tables.
Look first. Then leap.
Psychological levels (Bank levels) PsychoLevels v2 - TartigradiaPsychological levels (Bank levels) plots "round" price levels above and below current price, by truncating after the nth leftmost digits, based on neuroscience research of how humans intuitively calculate in logarithms.
Psychological levels, also called bank levels, are "round" price numbers around which price often experience resistance or support, because traders and investors tend to set orders around these round numbers.
Calculation here is fully automatic and dynamic, contrary to other similar scripts, this one uses a mathematical calculation that extracts the 1, 2 or 3 leftmost digits and calculate the previous and next level by incrementing/decrementing these digits. This means it works for any symbol under any price range.
This approach is based on neuroscience research, which found that human brains intuitively approximate numbers on a logarithmic scale, adults and children alike, and similarly to macaques, for more info see Numerical Cognition , Weber-Fechner Law , Zipf law.
For example, if price is at 0.0421, the next major price level is 0.05 and medium one is 0.043. For another asset currently priced at 19354, the next and previous major price levels are 20000 and 10000 respectively, and the next/previous medium levels are 20000 and 19000, and the next/previous weak levels are 19400 and 19300.
Usage:
* By default, strong upper level is in green, strong lower level is in red, medium upper level is in blue, medium lower level is in yellow, and weak levels aren't displayed but can be. Half levels are also displayed, in a darker color. Strong levels are increments of the first leftmost digit (eg, 10000 to 20000), medium levels are increments of the second leftmost digit (eg, 19000 to 20000), and weak levels of the third leftmost digit (eg, 19100 to 19200). Instead of plotting all the psychological levels all at once as a grid, which makes the chart unintelligible, here the levels adapt dynamically around the current price, so that they show the upper/lower levels relatively to the current price.
* A simple moving average is implemented, so that "half-levels" are also displayed when relevant (eg, medium level can also display 19500 instead of only 19000 or 20000). This can be disabled by setting smoothing to 1.
* By default, the script runs on the daily timeframe, whatever the current chart's timeframe is. This is to reduce the variability in levels, to make it less noisy than intraday price movement, but this can be changed in the settings.
* The step can be adjusted to increase the gap between levels, eg, if you want to display one every 2 levels then input step = 2 (eg, 22000, 24000, 26000, etc), or if you want to display quarter levels, input 0.25 (eg, 22000, 22250, 22500, etc). The default values should fit most use cases and cover most psychological levels.
I made this script mainly to train with PineScript, but I found it surprisingly accurate to define levels that are respected by price movements. So I guess it can be useful for new traders and experienced traders alike, as it's easy to forget that psychological levels can often be as strong if not stronger than technical levels. It can also be used to quickly screen other minor assets for trading opportunities. For example, a hybrid strategy would be to manually define levels on BTCUSD but using this script to automatically define levels in crypto altcoins and quickly screen them for a trade opportunity that can be greater than with BTCUSD but with the same trend.
Changes compared to v1:
* Deduplicated redundant calculations and hence faster script.
* Added half-step levels, which allows to more easily see breakouts (because the levels are still on-screen).
* All steps are now configuration on the GUI.
* Revamped color scheme.
* And major reasons to post as a separate v2 script rather than updating: because we can't update the original description nor screenshot. I have now read more about the House Rules and saw other scriptmakers, so I am trying to write better descriptions like wizards do, by explaining not only how the script works but what the underlying financial concept is to a neophyte audience.
Hodrick-Prescott Extrapolation of Price [Loxx]Hodrick-Prescott Extrapolation of Price is a Hodrick-Prescott filter used to extrapolate price.
The distinctive feature of the Hodrick-Prescott filter is that it does not delay. It is calculated by minimizing the objective function.
F = Sum((y(i) - x(i))^2,i=0..n-1) + lambda*Sum((y(i+1)+y(i-1)-2*y(i))^2,i=1..n-2)
where x() - prices, y() - filter values.
If the Hodrick-Prescott filter sees the future, then what future values does it suggest? To answer this question, we should find the digital low-frequency filter with the frequency parameter similar to the Hodrick-Prescott filter's one but with the values calculated directly using the past values of the "twin filter" itself, i.e.
y(i) = Sum(a(k)*x(i-k),k=0..nx-1) - FIR filter
or
y(i) = Sum(a(k)*x(i-k),k=0..nx-1) + Sum(b(k)*y(i-k),k=1..ny) - IIR filter
It is better to select the "twin filter" having the frequency-independent delay Тdel (constant group delay). IIR filters are not suitable. For FIR filters, the condition for a frequency-independent delay is as follows:
a(i) = +/-a(nx-1-i), i = 0..nx-1
The simplest FIR filter with constant delay is Simple Moving Average (SMA):
y(i) = Sum(x(i-k),k=0..nx-1)/nx
In case nx is an odd number, Тdel = (nx-1)/2. If we shift the values of SMA filter to the past by the amount of bars equal to Тdel, SMA values coincide with the Hodrick-Prescott filter ones. The exact math cannot be achieved due to the significant differences in the frequency parameters of the two filters.
To achieve the closest match between the filter values, I recommend their channel widths to be similar (for example, -6dB). The Hodrick-Prescott filter's channel width of -6dB is calculated as follows:
wc = 2*arcsin(0.5/lambda^0.25).
The channel width of -6dB for the SMA filter is calculated by numerical computing via the following equation:
|H(w)| = sin(nx*wc/2)/sin(wc/2)/nx = 0.5
Prediction algorithms:
The indicator features the two prediction methods:
Metod 1:
1. Set SMA length to 3 and shift it to the past by 1 bar. With such a length, the shifted SMA does not exist only for the last bar (Bar = 0), since it needs the value of the next future price Close(-1).
2. Calculate SMA filer's channel width. Equal it to the Hodrick-Prescott filter's one. Find lambda.
3. Calculate Hodrick-Prescott filter value at the last bar HP(0) and assume that SMA(0) with unknown Close(-1) gives the same value.
4. Find Close(-1) = 3*HP(0) - Close(0) - Close(1)
5. Increase the length of SMA to 5. Repeat all calculations and find Close(-2) = 5*HP(0) - Close(-1) - Close(0) - Close(1) - Close(2). Continue till the specified amount of future FutBars prices is calculated.
Method 2:
1. Set SMA length equal to 2*FutBars+1 and shift SMA to the past by FutBars
2. Calculate SMA filer's channel width. Equal it to the Hodrick-Prescott filter's one. Find lambda.
3. Calculate Hodrick-Prescott filter values at the last FutBars and assume that SMA behaves similarly when new prices appear.
4. Find Close(-1) = (2*FutBars+1)*HP(FutBars-1) - Sum(Close(i),i=0..2*FutBars-1), Close(-2) = (2*FutBars+1)*HP(FutBars-2) - Sum(Close(i),i=-1..2*FutBars-2), etc.
The indicator features the following inputs:
Method - prediction method
Last Bar - number of the last bar to check predictions on the existing prices (LastBar >= 0)
Past Bars - amount of previous bars the Hodrick-Prescott filter is calculated for (the more, the better, or at least PastBars>2*FutBars)
Future Bars - amount of predicted future values
The second method is more accurate but often has large spikes of the first predicted price. For our purposes here, this price has been filtered from being displayed in the chart. This is why method two starts its prediction 2 bars later than method 1. The described prediction method can be improved by searching for the FIR filter with the frequency parameter closer to the Hodrick-Prescott filter. For example, you may try Hanning, Blackman, Kaiser, and other filters with constant delay instead of SMA.
Related indicators
Itakura-Saito Autoregressive Extrapolation of Price
Helme-Nikias Weighted Burg AR-SE Extra. of Price
Weighted Burg AR Spectral Estimate Extrapolation of Price
Levinson-Durbin Autocorrelation Extrapolation of Price
Fourier Extrapolator of Price w/ Projection Forecast
CCI High Performance long onlyThis strategy is based on the classic Commodity Channel Index and only works long.
The system enters the market when this indicator is very low ( CCI <-150 or user-defined threshold) and as soon as it regains strength (i.e. CCI> CCI of the previous candle) with a filter on the "strength" of the prices themselves (i.e. the closing of the candle that provides the signal must be higher than a certain difference - fixed at 0.25% - at the opening of the candle itself).
You exit the market when you either incur a stop loss or when the prices are above the upper band of the CCI.
This system is used to have a high number of profitable operations (well over 50%) with little effort in terms of number of bars, rather than wanting to capture the actual duration of a trend. It is therefore recommended for those who "suffer to see the potential losses".
MTF previous high and low quarter levelsDescription
An experimental script that prints quarter levels of the previous timeframe's high and low to the current timeframe. The idea is quite simple and is basically the Fibonacci pivoted on the previous high and low with quarter level settings (0,0.25,0.5,0.75,1 etc). The default setting is the previous daily high and low but can be customized on user discretion.
New quarter levels are printed after the close of the previous timeframe and open of the new timeframe (user's timeframe setting)
How To Use
Levels should not be used blindly. Levels can be used as confluence when aligned with high probability supply and demand zones, support, resistance, order blocks, and so on.
Credit to @HeWhoMustNotBeNamed for the Previous High/Low MTF indicator code and @mrbirman for the idea to put this together.
FunctionPatternDecompositionLibrary "FunctionPatternDecomposition"
Methods for decomposing price into common grid/matrix patterns.
series_to_array(source, length) Helper for converting series to array.
Parameters:
source : float, data series.
length : int, size.
Returns: float array.
smooth_data_2d(data, rate) Smooth data sample into 2d points.
Parameters:
data : float array, source data.
rate : float, default=0.25, the rate of smoothness to apply.
Returns: tuple with 2 float arrays.
thin_points(data_x, data_y, rate) Thin the number of points.
Parameters:
data_x : float array, points x value.
data_y : float array, points y value.
rate : float, default=2.0, minimum threshold rate of sample stdev to accept points.
Returns: tuple with 2 float arrays.
extract_point_direction(data_x, data_y) Extract the direction each point faces.
Parameters:
data_x : float array, points x value.
data_y : float array, points y value.
Returns: float array.
find_corners(data_x, data_y, rate) ...
Parameters:
data_x : float array, points x value.
data_y : float array, points y value.
rate : float, minimum threshold rate of data y stdev.
Returns: tuple with 2 float arrays.
grid_coordinates(data_x, data_y, m_size) transforms points data to a constrained sized matrix format.
Parameters:
data_x : float array, points x value.
data_y : float array, points y value.
m_size : int, default=10, size of the matrix.
Returns: flat 2d pseudo matrix.
Smart RebalanceThis script is based on the portfolio rebalancing strategy. It's designed to work with cryptocurrencies, but it can work with any market.
How portfolio rebalance works?
Let's assume your initial capital is $1000, and you want to distribute it into 4 coins. This script takes the USDT as the stable coin for the initial money, so in case you want other currency, the pairs must be with that fiat as the quote.
Following our example, you would take BTC, ETH, BNB, and FTT. After selecting the coins, it's time to choose how much allocation is on each. Let's put 25% on each. This way, $250 of our capital on each coin.
After selecting the coins and their allocation, you choose the price change ratio for rebalancing. Let's use 1%. Next, you start to watch the markets. The first thing that happens, following our example, is the BTCUSDT price moving 1% up.
That amount hit the ratio of 1% for the rebalance. Hence, you sell 1% of BTC for USDT and redistribute to the other coins, buying 0.25% of each currency to rebalance the portfolio.
Next, ETHUSDT goes 1% down, time to rebalance again. This time, you need to take 0.33% of each other coin and buy ETH, so this way, it's all divided as the chosen allocation.
Why use rebalancing?
Looks easy, right? It is, but very time demanding. Demands even more if you raise the number of coins you want to distribute. Having a system to do that automatically is a must to work efficiently. Rebalancing spreads the risk among multiple currencies. This way, you earn small when it goes up, but you lose small when it goes down.
What this script helps with portfolio rebalance?
This indicator will not buy/sell for you but will help you choose the best markets for your rebalancing. Which coin will work best in that period? Do I need to have more than 8 coins? How much must be my ratio? Those questions you can answer using this indicator.
What this script has?
Start and End dates
The script will work for a certain period. All calculations will be done in that period.
Coin Ratio %
The amount of price movement of each asset that will be used to calculate the rebalancing
Initial Capital and Broker Fee
The amount of capital to be used on the rebalancing and the broker fee you want to use the strategy. The cost will be applied on every trade, buying or selling the coins.
Assets, allocations, and colors
It's possible to select from 2 to 10 assets to be used on the portfolio. Each purchase must have the allocation %. Suppose the sum of the allocations is different from 100%. In that case, a warning message will appear on the chart instead of the statistics.
Panel and tooltips
There is a panel with a summary of the results
Set allocations automatically
There is an option to make the indicator use the daily asset volume from the day before to determine the allocation percentage of each asset. This option is better if you are unsure how much allocation you want to use on each coin.
Use this indicator as a backtest for your rebalancing strategy. The selected market on the chart will not affect the calculation on this indicator, but the time frame will. The higher the time frame, the higher the coin ratio % must be.
About the code
The code is written to use arrays to store the values of each asset, making the calculations on each candle inside the time range. The for-loops are used to reduce the code length and make it easy to change the analysis of all assets. Finally, the script has some comments on the code.
Improved Percent Price Oscillator w/ Colored Candles[C2Trends]The Percent Price Oscillator(PPO) is a momentum oscillator that measures the difference between two moving averages as a percentage of the larger moving average. Similar to the Moving Average Convergence/Divergence(MACD), the PPO is comprised of a signal line, a histogram and a centerline. Signals are generated with signal line crossovers, centerline crossovers, and divergences. Because these signals are no different than those associated with MACD, this indicator can be read exactly as the MACD is read. The main differences between the PPO and MACD are: 1) PPO readings are not subject to the price level of the security. 2) PPO readings for different securities can be compared, even when there are large differences in the price. MACD readings for different securities cannot be compared when there are large differences in price.
PPO Calculations:
Percentage Price Oscillator(PPO): {(12-day EMA - 26-day EMA )/26-day EMA} x 100
Signal Line: 9-day EMA of PPO
PPO Histogram: PPO - Signal Line
iPPO includes everything from standard PPO plus:
1)Plots for PPO/Signal line crosses.
2)Plots for PPO/0 level crosses.
3)PPO/Signal line gap color fill.
4)PPO/0 level gap color fill.
4)Background fill for PPO/Signal line crosses.
5)Background fill for PPO/0 level crosses.
6)Price candles colored based on PPO indicator readings.
7)All plots, lines and fill colors can be turned on/off individually from the 'Input' tab of the iPPO indicator settings menu.
Indicator Notes:
1) When the green PPO line is above the 0 level, intermediate to long-term price momentum can be considered bullish(begins w/yellow cross, green background).
2) When the green PPO line is below the 0 level, intermeidate to long-term price momentum can be considered bearish(begins w/red cross, purple background).
3) Green PPO line above purple Signal line + both lines rising + both lines above 0 level = bullish short-term price momentum(begins w/green dot above 0 level, green highlight).
4) Green PPO line below purple Signal line + both lines falling + both lines above 0 level = loss of short-term bullish price momentum(begins w/purple dot above 0 level, purple highlight).
5) Green PPO line below purple Signal line + both lines falling + both lines below 0 level = bearish short-term price momentum(begins w/purple dot below 0 level, purple highlight).
6) Green PPO line above purple Signal line + both lines rising + both lines below 0 level = loss of short-term bearish price momentum(begins w/green dot below 0 level, green highlight).
7) Price candles are colored lime when the PPO line is above the Signal line and both lines are above the 0 level.
8) Price candles are colored green when the PPO line is below the Signal line and both lines are above the 0 level.
9) Price candles are colored fuschia when the PPO line is below the Signal line and both lines are below the 0 level.
10) Price candles are colored purple when the PPO line is above the Signal line and both lines are below the 0 level.
11) Price candles are colored gray when the green PPO line is within a set % of the 0 level. This value can be set manually in the indicator settings. The default value is 0.25% to ensure
smooth candle color transition between timeframes, charts, sectors and markets. Adjust value up or down if gray candles are absent or too abundant. Gray candles should mostly only appear
during periods of price consolidation(flat/sideways price movement), or just before a significant move up or down in price.
Donchian RSI BandsThis little mashup of mine is called the Donchian RSI Bands. It consists of two RSI's, a Donchian Channel, & Bollinger bands, which can all be turned on or off depending on your preferences.
The main RSI is set to the 7 length and the second RSI is set to the default 14 length. When used together, they form an RSI cloud.
The Bollinger Bands are set to the 35 length and use two sets of adjustable deviations to form the bands. The inner band is set to 0.25 deviation and the outside is set to 0.5. Generally, the Bollinger Bands deviation is set to 2 but for this idea, when the RSI is inside the Bollinger Bands, there's a higher possibility of chop. The stronger Bullish or Bearish trend will be when the main RSI is trending above or below the Bollinger Bands.
The RSI color is Bullish when the RSI is above the Upper Bollinger Band, Neutral when the RSI is inside the Bands, and Bearish when the RSI is below the lower Bollinger Band. The wider you adjust the Outer Band Deviation, the wider the Neutral zone will be. The width of the Bollinger Band Basis can also be adjusted so you could widen it all the way out to the Bands which will form a fully shaded channel to avoid trading when the RSI is trending inside.
The Donchian Channel is set to 70, which 2x the Bollinger Band length. I use it for longer term trends and possible trend reversals.
There are 3 options for Barcoloring:
RSI Bollinger Bands
RSI Cloud
& when the RSI is above/below the Donchian Channel Basis
Higher order Orderblocks + Breakerblocks + Range + AlertsThis script identifies Orderblocks, Breakerblocks and Range using higher order pivots and priceaction logic.
I tried to reduce the number of blocks to make the chart cleaner, for this purpose I use only second order pivots for both MSB lines and supply/demand boxes, I also tried to filter out shifts in MS and false breakouts.
Any box has GRAY color until it gets tested.
After successful test box gets colors:
RED for Supply
GREEN for Demand
BLUE for any Breakerblocks
For cleaner chart and script speed all broken boxes deletes from chart.
It gives comparatively clean chart on any TF, even on extra small (5m, 3m, 1m).
For Range there is option to plot 0.25, 0.5, 0.75 lines.
I usually use log scale on charts and there is an option to use it for proper range mean.
In previous my scripts i have requests to make alerts and this time i made it.
It has customizable alert catching all needed alerts into one output:
- Alert MSB - when market structure changes alert will inform you about its direction, MSB line and new Demand/Supply.
- Alert Orderblock or Breakerblock test - alerts when block was tested and it holds (in other words when it get RED/GREEN/BLUE colors)
- Alert New Range - when new range detected
- Alert Range test - alerts when range top or botoom was tested and it holds.
some examples :
Weekly Put SaleWeekly Put Sale
This study is a tool I use for selling weekly puts at the suggested strike prices.
1. The suggested strike prices are based on the weekly high minus an ATR multiple which can be adjusted in the settings
2. You can also adjust the settings to Monthly strike prices if you prefer selling options further out
3. I suggest looking for Put sale premium that is between 0.25% to 0.75% of the strike price for weekly Puts and 1% to 3% of the strike price for monthly Puts
Disclaimers: Selling Puts is an advanced strategy that is risky if you are not prepared to acquire the stock at the strike price you sell at on the expiration date. You must make your own decisions as you will bear the risks associated with any trades you place. To sum it up, trading is risky, and do so at your own risk.