Multi-ticker Daily Pivot AlertDescription:
The Big Tech Daily Pivot Alert is a powerful TradingView indicator designed to monitor daily pivot points for major tech and market-leading tickers. It provides real-time alerts when prices approach their daily pivot levels, helping traders identify potential trading opportunities during the U.S. market hours.
Key Features:
Multi-Ticker Monitoring: Tracks the daily pivot points for top tech and market tickers, including NVDA, TSLA, AMZN, NFLX, SPY, QQQ, GOOGL, MSFT, META, and AAPL.
Daily Pivot Calculations: Uses yesterday's high, low, and close prices to calculate the pivot point for each ticker.
Real-Time Alerts: Sends instant alerts when the open, high, low, or current price is near the pivot point (within 0.25% tolerance).
Time-Sensitive Alerts: Operates exclusively during U.S. market hours (6:00 AM to 1:00 PM PST) on weekdays (Monday to Friday).
Customizable Alert Format: Alerts are sent as JSON payloads for seamless integration with platforms like Discord or other webhook-supported systems.
How It Works:
The indicator calculates the daily pivot point for each ticker using the formula:
Pivot Point = (High + Low + Close) / 3
It continuously monitors the open, high, low, and current prices of each ticker on a 1-minute timeframe.
If any value approaches the pivot point within a configurable threshold (default: 0.25%), it triggers an alert with detailed information for all tickers meeting the criteria.
Who Should Use It:
Day Traders: Spot potential price reversal or breakout levels based on pivot point testing.
Swing Traders: Identify key levels of support and resistance to inform trading decisions.
Tech and Market Enthusiasts: Stay updated on critical price levels for major tech and market tickers.
Instructions:
Add the indicator to your chart.
Configure your webhook endpoint to receive alerts (e.g., Discord or Slack).
Monitor alerts for actionable opportunities when prices test pivot points.
In den Scripts nach "央行:下调个人住房公积金贷款利率0.25个百分点" suchen
gann fib levelsDescription of gann fib Levels
Input Value Level:
Purpose: This level is the starting point for calculating support and resistance. Users can input a specific high or low price value that serves as the foundation for subsequent calculations.
Visual Representation: A bold blue line indicates this level prominently on the chart, making it easy to identify. Additionally, a horizontal magenta line provides a reference to this initial price level.
Support Levels:
Definition: Support levels are price points where a downtrend can be expected to pause due to buying interest. They act as a floor that prevents the price from falling further.
Calculation: Support levels are derived by calculating the square root of the input value, adjusting it downward by a defined step (0.25), and squaring the result to find potential support points.
Visual Representation: Each support level is plotted with a red line when the current price is below the support level and changes to green when the price is above it. Every fourth support level is depicted with a bolder line for emphasis.
Resistance Levels:
Definition: Resistance levels are price points where an uptrend can be expected to pause due to selling interest. They serve as a ceiling that prevents the price from rising further.
Calculation: Resistance levels are calculated similarly to support levels, using the square root of the input value but adjusting it upward by the defined step (0.25) before squaring the result.
Visual Representation: Each resistance level is plotted with a green line when the current price is below the resistance level and turns red when the price is above it. Like support levels, every fourth resistance line is bolded for easier identification.
Dynamic Behavior:
Crossing Logic: When the current market price crosses above a resistance level, that level transforms into a support level, effectively changing its role. Conversely, if the price crosses below a support level, it transforms into a resistance level. This dynamic behavior reflects real-time market sentiment and helps traders identify potential reversal points.
Summary
This Pine Script provides a visual representation of dynamic support and resistance levels based on a user-defined input price. With distinct color coding and bold lines for significant levels, traders can quickly assess market conditions, identify potential buy or sell signals, and make informed trading decisions. The system's adaptability allows it to reflect the latest market movements, enhancing its utility as a trading tool.
Gap Finder by DarkoexeThis indicator plots labels that indicate gaps whenever the open price and the previous bar close price have a significant gap.
To determine the size the gap has to be before it is labeled at a specific point in time on the chart. The gap needs to be larger or equal to a factor of an ATR value. For example, if the ATR gap factor is 0.25, the gap between the open and the previous close price must be greater than 0.25*ATR of the ATR length specified for the gap to be plotted on the chart.
Note: If you don't know what the ATR or average true range is, search for "ATR" in indicators. It is one of Trading View's most fundamental indicators.
Evolving RThe "Evolving R" script is a script that allows to calculate a dynamic reward-to-risk ratio at any given point of time during the trade. Its fundamentals are based on Tom Dante's concept of an evolving reward-to-risk. The script requires a user to input their preferred stop loss price and the target price for a specific asset, and calculates the ratio between two differences: (a) the absolute difference between the target price and the current price and (b) the absolute difference between the stop loss price and the current price.
The output of the script displays the ratio discussed as a value called "Evolving R" in the table. In order to use it successfully, the user of the script has to input:
(a) Stop loss price for the asset
(b) Target price for the asset
Theoretically, as long as the evolving R value holds above or equal to 0.25, the trade is worth holding. However, if the evolving R value drops below 0.25, the table turns red and signifies that such a trade possesses more risk than there is a reward remaining: this alerts the user to possibly take profits prematurely without risking their unrealized gains for a minor amount of additional gain.
The graphics of the script are represented by green and red areas: the green area indicates the area between the current price and the target price, while the red area shows the distance between the current price and the stop loss price. This visual representation allows users to understand the relative reward-to-risk ratio graphically in addition to the given evolving R value output.
The script is used for any type of trading: whether trend-trading or in a ranging market, it doesn't suggest a user which market conditions they should use.
Donch +This is an indicator I made for trading Forex to help me see the bigger picture. It is meant for the 30min TF and it includes the following:
- 20 Day High | Low
- 5 Day High | Low
- 4 Hour High | L
- 4 Hour Bars
- Daily Simple Moving Averages
- Weekly Trend Line (connects last week's open to this week's open)
- Daily Trend Line (connects yesterday's open to today's open)
- Horizontal Lines at 0.25% increments (these can be useful for S/R... currency rarely moves more than 1% in a day).
- A table with information about what markets are open and technicals on the pair I am looking at.
- A slight white background fill to highlight the first hour of the US session. Knowing what session you are in is very important in day trading (in my opinion). This lets me go back and see how the US has been trading.
To keep the chart from being "too busy" (it's plenty busy lol), I use a step line and focus on 30min closes. I reference the white lines above and below closes for 4hr highs/lows and don't bother with looking at the high/low of every 30 min bar.
For the table, you will see bright green by the country for the first hour of trading in that session. It will turn to a regular green after the first hour. It will turn yellow the final hour of that session. It will turn red if that market is closed.
You can select from the settings 'inputs' tab to enable/disable any parts of this you don't find useful, for the table you'd go over to the 'style' tab and unselect it there. For example, I don't use the labels regularly. If I were to get confused about what a moving average was or something, I'd enable the labels and clarify.
Currency doesn't like to break out and likes to be stable. Keeping this in mind, you can see how the 20 day high / low and the 5 day high / low act as support and resistance (unless there is a news event to break out on.
I have alerts for the following:
- Price update every hour
- Crossing a trend line
- Crossing a moving average
- Crossing a 0.25% increment
- Making a new 4 hour, 5 day, or 20 day high/low
To enable the alerts, you would click add alert, select the indicator, and click save. To work properly, you'd want to be on the 30min TF before doing this. You will get a lot of alerts (personally I like this because I like to see how currency moves throughout the day). You will get one notification per 30 minutes but not more than that for the particular alert.
Z-Score Based Momentum Zones with Advanced Volatility ChannelsThe indicator "Z-Score Based Momentum Zones with Advanced Volatility Channels" combines various technical analysis components, including volatility, price changes, and volume correction, to calculate Z-Scores and determine momentum zones and provide a visual representation of price movements and volatility based on multi timeframe highest high and lowest low values.
Note: THIS IS A IMPROVEMNT OF "Multi Time Frame Composite Bands" INDICATOR OF MINE WITH MORE EMPHASIS ON MOMENTUM ZONES CALULATED BASED ON Z-SCORES
Input Options
look_back_length: This input specifies the look-back period for calculating intraday volatility. correction It is set to a default value of 5.
lookback_period: This input sets the look-back period for calculating relative price change. The default value is 5.
zscore_period: This input determines the look-back period for calculating the Z-Score. The default value is 500.
avgZscore_length: This input defines the length of the momentum block used in calculations, with a default value of 14.
include_vc: This is a boolean input that, if set to true, enables volume correction in the calculations. By default, it is set to false.
1. Volatility Bands (Composite High and Low):
Composite High and Low: These are calculated by combining different moving averages of the high prices (high) and low prices (low). Specifically:
a_high and a_low are calculated as the average of the highest (ta.highest) and lowest (ta.lowest) high and low prices over various look-back periods (5, 8, 13, 21, 34) to capture short and long-term trends.
b_high and b_low are calculated as the simple moving average (SMA) of the high and low prices over different look-back periods (5, 8, 13) to smooth out the trends.
high_c and low_c are obtained by averaging a_high with b_high and a_low with b_low respectively.
IDV Correction Calulation : In this script the Intraday Volatility (IDV) is calculated as the simple moving average (SMA) of the daily high-low price range divided by the closing price. This measures how much the price fluctuates in a given period.
Composite High and Low with Volatility: The final c_high and c_low values are obtained by adjusting high_c and low_c with the calculated intraday volatility (IDV). These values are used to create the "Composite High" and "Composite Low" plots.
Composite High and Low with Volatility Correction: The final c_high and c_low values are obtained by adjusting high_c and low_c with the calculated intraday volatility (IDV). These values are used to create the "Composite High" and "Composite Low" plots.
2. Momentum Blocks Based on Z-Score:
Relative Price Change (RPC):
The Relative Price Change (rpdev) is calculated as the difference between the current high-low-close average (hlc3) and the previous simple moving average (psma_hlc3) of the same quantity. This measures the change in price over time.
Additionally, std_hlc3 is calculated as the standard deviation of the hlc3 values over a specified look-back period. The standard deviation quantifies the dispersion or volatility in the price data.
The rpdev is then divided by the std_hlc3 to normalize the price change by the volatility. This normalization ensures that the price change is expressed in terms of standard deviations, which is a common practice in quantitative analysis.
Essentially, the rpdev represents how many standard deviations the current price is away from the previous moving average.
Volume Correction (VC): If the include_vc input is set to true, volume correction is applied by dividing the trading volume by the previous simple moving average of the volume (psma_volume). This accounts for changes in trading activity.
Volume Corrected Relative Price Change (VCRPD): The vcrpd is calculated by multiplying the rpdev by the volume correction factor (vc). This incorporates both price changes and volume data.
Z-Scores: The Z-scores are calculated by taking the difference between the vcrpd and the mean (mean_vcrpd) and then dividing it by the standard deviation (stddev_vcrpd). Z-scores measure how many standard deviations a value is away from the mean. They help identify whether a value is unusually high or low compared to its historical distribution.
Momentum Blocks: The "Momentum Blocks" are essentially derived from the Z-scores (avgZScore). The script assigns different colors to the "Fill Area" based on predefined Z-score ranges. These colored areas represent different momentum zones:
Positive Z-scores indicate bullish momentum, and different shades of green are used to fill the area.
Negative Z-scores indicate bearish momentum, and different shades of red are used.
Z-scores near zero (between -0.25 and 0.25) suggest neutrality, and a yellow color is used.
MTF Evolving Weighted Composite Value Area🧾 Description:
This indicator calculates evolving value areas across 3 different timeframes/periods and combines them into one composite, multi-timeframe evolving value area - with each of the underlying timeframes' VAs assigned their own weighting/importance in the final calculation. Layered with extra smoothing options, this creates an informative and useful 'rolling value area' effect that can give you a better perspective on the value area across multiple periods at once as it develops - without total calculation resets at the onset of every new period.
Let's start with a simplified primer on value areas and then jump in to the new ideas this indicator introduces.
🤔 What is a value area?
Value areas are a tool used in market profile analysis to determine the range of prices that represents where most trading activity occurred during a specific time period, typically within a single 'bar' of a certain higher timeframe, such as the 4-hour, daily, or weekly. It helps traders understand the levels where the market finds value.
To calculate the value area, we look at the distribution of prices and trading volume. We determine a percentage, usually 70% or 80%, that represents the significant portion of trading volume. Then, we identify the price range that contains this percentage of trading volume, which becomes the value area.
Value areas are useful because they provide insights into market dynamics and potential support and resistance levels. They show where traders have been most active and where they find value, and traders can use this information to make better-informed decisions.
For example, if price is trading within the value area, it suggests that it's within a range where traders see value and are actively participating, which could indicate a balanced market. If the price moves above or below the value area, it may signal a potential shift in market sentiment or a breakout/breakdown from the established range.
By understanding the value area, traders can identify potential areas of supply and demand, determine levels of interest for buyers and sellers, and make decisions based on the market's perception of value.
📑 Limitations of traditional value areas
Static representation: Value areas are usually represented as static zones calculated after the fact. For example, after a daily period is completed, a typical 1D VA indicator will display the value area for the past period with static horizontal lines. This approach doesn't give you the power to see how the value area evolved, or developed, during the time period, as it is only displayed retroactively. It also doesn't give you the ability to view it as it evolves in real-time. This is why we chose to use an evolving value area representation, specifically borrowed from @sourcey's Value Area POC/VAH/VAL script function for calculating evolving VAs.
Rollover resets - no memory of past periods!: The traditional value area is calculated over a static period - it is calculated from the beginning of the period, for example a 1 day period, to the end, and that's the end of it. When the next daily period begins, the calculation resets, and has no memory of the preceding period. This limits the usefulness of the value area visual when viewed near the beginning of a new period before price and volume have been given ample time to define an area.
Hard to absorb all of that information: Value areas aren't generally meant to be a hardline representation of something extremely exact - they're based on a percentage of the area where traders appeared to find value over a certain time period. Most traders use them as a guide for support and resistance levels or finding an expected range. Traders typically overlay multiple VAs - sometimes requiring several instances of the same indicator to be applied - to represent the VA across multiple timeframes such as the 4H, 1D, or 1W. The chart quickly gets cluttered and it's not necessarily easy to understand the relationship between these multiple periods' VAs at a glance.
🧪 New concepts introduced in this indicator
With the evolving weighted composite value area we tried to address these limitations, and we think the result can be useful and intuitive for traders who want more dynamic and practical VAs for their everyday technical analysis.
⚖️ 1. A composite, weighted multi-timeframe VA
This indicator's value areas represent a combination or composite of the value areas calculated across multiple timeframes. The VAs calculated across each timeframe are then given a weighting percentage, which determines their contribution to the final 'weighted composite value area'.
Pictured below: a 4H/1D/1W MTF evolving weighted composite VA on the BTCUSDT Perpetual Futures (Binance) 5 minute chart:
Traditionally, when traders wanted to get a view of where the majority of trading activity occurred over the past four hours, day, and week, they would need to apply three value area indicators (or sometimes one if it allows multiple custom timeframes), each set to a different period (4H, 1D, 1W). The chart gets cluttered quickly and the information is hard to absorb in one shot. Addressing this problem was the main impetus for creating this weighted composite process.
〰️ 2. Rolling and smoothed evolving VAs
Because the composite VA is calculated based on multiple period VAs, there is no one single point where the area calculation resets (unless all 3 selected timeframes happen to rollover on the same bar). This creates a 'rolling' effect that gives a sense of the progression of the VA as price transitions through the different underlying time periods, without the traditional 'jump' in calculations between periods.
Pictured below: a 1D/1W/1M MTF evolving weighted composite VA on the NQ futures 1H chart:
To help give even more of a sense of perspective and 'progression' of the VA, there are also smoothing options to even out the 'jumps' at period-rollover points.
✔️ What's it good for?
Smoothed, rolling, and evolving multi-timeframe VAs that give you a better real-time perspective of where traders are finding value across multiple time periods at once.
📎 References
1. @sourcey's Value Area POC/VAH/VAL script by adapting its f_poc(tf) function.
💠 Features:
A MTF evolving weighted composite value area based on 3 underlying VAs calculated across customizable timeframes
Aesthetic and flexible coloring and color theme styling options
Period-roller labels and options for ease-of-use and legibility
⚙️ Settings:
Calculation Decimal Resolution: This setting essentially determines how 'granular' the value area calculating process is. This value should be set to some multiple of the tick size/smallest decimal of the symbol's price chart. Eg. On BTCUSDT, the tick size/decimal is usually 0.1. So, you might use 0.5. On TSLA, the tick size is 0.01. You might use 0.05 or 0.25. Beware: if the resolution is too small, calculation will take too long and the script may timeout.
Show Me Suggested Resolutions: If enabled, a label will display in the bottom right of the chart with some suggested resolutions for the current chart.
Area Percentage: Set the displayed percentage of the calculated composite value area. Igor method = 70%; Daniel method: 68%.
Use a Color Theme: When this setting is enabled, all manual 'Bullish and Bearish Colors' are overridden. All plots will use the colors from your selected Color Theme - excepting those plots set to use the 'Single Color' coloring method.
Color Theme: When 'Use a Color Theme' is enabled, this setting allows you to select the color theme you wish to use.
Resistance Color: When 'Use a Color Theme' is disabled, this will set the 'resistance color' for the composite VA.
Support Color: When 'Use a Color Theme' is disabled, this will set the 'support color' for the composite VA.
Show Period Rollover Labels: When enabled, a label will show above or below the composite VA marking any underlying period rollovers with the label 'New __' (eg. 'New 4H', 'New 1D', 'New 1W').
Size: Sets the font size of the period rollover labels.
Show Period Rollover Lines: When enabled, a translucent vertical dashed line will be drawn across the composite VA when one of the underlying periods rolls over.
Fill Composite Value Area: When enabled, the composite VA will be filled with a gradient coloring from the support line to the resistance line using their respective colors.
Smooth: When enabled, a smoothing moving average will be applied to the composite value area.
Smoothing Period: Set the lookback period for the smoothing average.
Smoothing Type: Set the calculation type for the smoothing average. Options include: Exponential, Simple, Weighted, Volume-Weighted, and Hull.
Enable: Include/exclude a timeframe's VA in the composite VA calculation.
Timeframe: Set the timeframe for this specific underlying VA.
Weighting %: Set the weighting percentage or 'importance' of this timeframe's value area in calculating the composite VA. Beware! The sum of the weighting percentages across all enabled timeframes must ALWAYS add up to 100 in order for this indicator to work as designed.
Public Sentiment Oscillator This is a combination of 9 common use indicators turned into on single oscillator. These indicators are: 200 day moving average cross, 9/12 ema cross, 13/48 sma cross, rsi, stochastic, mfi, cci, macd, and open close trend. I have weighted the scores to be pretty even so that its balances each indicator in the sum. Because of the odd number of indicators, I have decided to normalized the score to 10. I think this has the effect of making it easier to read.
The score definition: oc_trend > 0 ? 1 : 0, fast_e > slow_e ? 1 : 0, fast_s > slow_s ? 1 : 0, rsi < 30 ? 0 : rsi > 30 and rsi < 70 ? 0.5 : rsi > 70 ? 1 : 0, macd1 > macd2 ? 0.5 : macd1 < macd2 ? 0 : 0, (hist >=0 ? (hist < hist ? 0.5 : 0.25) : (hist < hist ? 0.25 : 0)), stoch < 20 ? 0 : stoch > 20 and stoch < 80 ? 0.5 : stoch > 80 ? 1 : 0, source > ma200 ? 1 : ex <= ma200 ? 0 : 0, mfi < 20 ? 0 : mfi > 20 and mfi < 80 ? 0.5 : mfi > 80 ? 1 : 0, cci < -100 ? 0 : cci > -100 and cci < 100 ? 0.5 : cci > 100 ? 1 : 0
I hope you find this useful in your trades. Enjoy!
Fear Of Missing Out grid of forex tradingAbstract
This script finds potential safe grids placing limit orders without fear of missing out.
This script computes grids according to power of 1.0025 .
You can reference those price levels for your trading.
Introduction
Grid trading is a popular trading method.
Traders plan several price levels as grids and repeat buying at lower grids and selling at higher grids.
Grids can be round number like multiple of 100 pips.
Grids can also be support and resistance according to price history.
Some traders may think they need to adjust grids to trade.
However, there are several problems in choosing grids.
One problem is rate of change is related and therefore exponential. 20 to 30 is different from 30 to 40.
Another interesting point is there are some special impressing reversal price levels.
Several months ago, I had a question why usdjpy bounced near 108.3 .
After using a calculator, I found that 108.3 = 100 * 1.083 ≒ 100 * pow(1.0025,31) .
1.0025 , as known as 0.25% of change, is a potential stop out zone.
Therefore, we can compute grids and one grid is a little more than 1.0025 times than an another one.
After we finished computing grids, we can consider buy and sell near those grids.
Note that different traders may obtain different grid values.
For example, from 1.0 to 2.0 , it can be splited as 270 grids or 277 grids because pow(1.0025,277)<2 .
Those grids cannot always imply potential reversal points but they can be useful for traders looking for 0.25% profit targets with reducing fearing of buying or selling too early.
Computing grids
This script split from 1.0 to 10.0 into three segments.
One is 1.0 to 2.0 .
The second segment is from 2.0 to 5.0 .
The third segment is from 5.0 to 10.0 .
This script does the same thing for 0.1 to 1.0 , 10.0 to 100.0 , and so on.
For 1.0 to 2.0 and 5.0 to 10.0 , this script split a segment as 270 grids.
For 2.0 to 5.0 , this script split a segment as 360 grids.
The last step is display the next grids to the daily low and daily high.
Maybe also display the grids behind grids shown.
Parameters
x1,x2,x3,x4 : display the next x1,x2,x3,x4 grids to daily high and daily low. 1 means the next grid to daily high and daily low. 2 means the next grid to 1.
x_seg : default 2.0 . This script split from 1.0 to 10.0 into three segments. One is 1.0 to x_seg. The second segment is from x_seg to 10.0/x_seg . The third segment is from 10.0/x_seg to 10.0 .
x_grid1 : how many grids in the first segment
x_grid2 : how many grids in the second segment
x_lowprice : add this number for bigger grid distance. Generally, you don't need this number when trading forex but you may need it in stock trading. For stocks with price between 50 to 100, I recommend you use x_lowprice=100.
Conclusion and suggestions
This script can find potential grids for trading.
If price touches grids usually, we can consider buy and sell after price touches grids.
If price reverses before touching grids usually, we may consider buy and sell before price touches grids.
Those grids can remind us don't buy too much unless the price touches the next grid.
For instruments with less volatility, maybe we need more grids.
For traders with more money, they may also consider more grids for more dedicated range trading to collect more profit.
Reference
Sorry, I forgot them.
ProbabilityLibrary "Probability"
erf(value) Complementary error function
Parameters:
value : float, value to test.
Returns: float
ierf_mcgiles(value) Computes the inverse error function using the Mc Giles method, sacrifices accuracy for speed.
Parameters:
value : float, -1.0 >= _value >= 1.0 range, value to test.
Returns: float
ierf_double(value) computes the inverse error function using the Newton method with double refinement.
Parameters:
value : float, -1. > _value > 1. range, _value to test.
Returns: float
ierf(value) computes the inverse error function using the Newton method.
Parameters:
value : float, -1. > _value > 1. range, _value to test.
Returns: float
complement(probability) probability that the event will not occur.
Parameters:
probability : float, 0 >=_p >= 1, probability of event.
Returns: float
entropy_gini_impurity_single(probability) Gini Inbalance or Gini index for a given probability.
Parameters:
probability : float, 0>=x>=1, probability of event.
Returns: float
entropy_gini_impurity(events) Gini Inbalance or Gini index for a series of events.
Parameters:
events : float , 0>=x>=1, array with event probability's.
Returns: float
entropy_shannon_single(probability) Entropy information value of the probability of a single event.
Parameters:
probability : float, 0>=x>=1, probability value.
Returns: float, value as bits of information.
entropy_shannon(events) Entropy information value of a distribution of events.
Parameters:
events : float , 0>=x>=1, array with probability's.
Returns: float
inequality_chebyshev(n_stdeviations) Calculates Chebyshev Inequality.
Parameters:
n_stdeviations : float, positive over or equal to 1.0
Returns: float
inequality_chebyshev_distribution(mean, std) Calculates Chebyshev Inequality.
Parameters:
mean : float, mean of a distribution
std : float, standard deviation of a distribution
Returns: float
inequality_chebyshev_sample(data_sample) Calculates Chebyshev Inequality for a array of values.
Parameters:
data_sample : float , array of numbers.
Returns: float
intersection_of_independent_events(events) Probability that all arguments will happen when neither outcome
is affected by the other (accepts 1 or more arguments)
Parameters:
events : float , 0 >= _p >= 1, list of event probabilities.
Returns: float
union_of_independent_events(events) Probability that either one of the arguments will happen when neither outcome
is affected by the other (accepts 1 or more arguments)
Parameters:
events : float , 0 >= _p >= 1, list of event probabilities.
Returns: float
mass_function(sample, n_bins) Probabilities for each bin in the range of sample.
Parameters:
sample : float , samples to pool probabilities.
n_bins : int, number of bins to split the range
@return float
cumulative_distribution_function(mean, stdev, value) Use the CDF to determine the probability that a random observation
that is taken from the population will be less than or equal to a certain value.
Or returns the area of probability for a known value in a normal distribution.
Parameters:
mean : float, samples to pool probabilities.
stdev : float, number of bins to split the range
value : float, limit at which to stop.
Returns: float
transition_matrix(distribution) Transition matrix for the suplied distribution.
Parameters:
distribution : float , array with probability distribution. ex:.
Returns: float
diffusion_matrix(transition_matrix, dimension, target_step) Probability of reaching target_state at target_step after starting from start_state
Parameters:
transition_matrix : float , "pseudo2d" probability transition matrix.
dimension : int, size of the matrix dimension.
target_step : number of steps to find probability.
Returns: float
state_at_time(transition_matrix, dimension, start_state, target_state, target_step) Probability of reaching target_state at target_step after starting from start_state
Parameters:
transition_matrix : float , "pseudo2d" probability transition matrix.
dimension : int, size of the matrix dimension.
start_state : state at which to start.
target_state : state to find probability.
target_step : number of steps to find probability.
Square Root Moving AverageAbstract
This script computes moving averages which the weighting of the recent quarter takes up about a half weight.
This script also provides their upper bands and lower bands.
You can apply moving average or band strategies with this script.
Introduction
Moving average is a popular indicator which can eliminate market noise and observe trend.
There are several moving average related strategies used by many traders.
The first one is trade when the price is far from moving average.
To measure if the price is far from moving average, traders may need a lower band and an upper band.
Bollinger bands use standard derivation and Keltner channels use average true range.
In up trend, moving average and lower band can be support.
In ranging market, lower band can be support and upper band can be resistance.
In down trend, moving average and upper band can be resistance.
An another group of moving average strategy is comparing short term moving average and long term moving average.
Moving average cross, Awesome oscillators and MACD belong to this group.
The period and weightings of moving averages are also topics.
Period, as known as length, means how many days are computed by moving averages.
Weighting means how much weight the price of a day takes up in moving averages.
For simple moving averages, the weightings of each day are equal.
For most of non-simple moving averages, the weightings of more recent days are higher than the weightings of less recent days.
Many trading courses say the concept of trading strategies is more important than the settings of moving averages.
However, we can observe some characteristics of price movement to design the weightings of moving averages and make them more meaningful.
In this research, we use the observation that when there are no significant events, when the time frame becomes 4 times, the average true range becomes about 2 times.
For example, the average true range in 4-hour chart is about 2 times of the average true range in 1-hour chart; the average true range in 1-hour chart is about 2 times of the average true range in 15-minute chart.
Therefore, the goal of design is making the weighting of the most recent quarter is close to the weighting of the rest recent three quarters.
For example, for the 24-day moving average, the weighting of the most recent 6 days is close to the weighting of the rest 18 days.
Computing the weighting
The formula of moving average is
sum ( price of day n * weighting of day n ) / sum ( weighting of day n )
Day 1 is the most recent day and day k+1 is the day before day k.
For more convenient explanation, we don't expect sum ( weighting of day n ) is equal to 1.
To make the weighting of the most recent quarter is close to the weighting of the rest recent three quarters, we have
sum ( weighting of day 4n ) = 2 * sum ( weighting of day n )
If when weighting of day 1 is 1, we have
sum ( weighting of day n ) = sqrt ( n )
weighting of day n = sqrt ( n ) - sqrt ( n-1 )
weighting of day 2 ≒ 1.414 - 1.000 = 0.414
weighting of day 3 ≒ 1.732 - 1.414 = 0.318
weighting of day 4 ≒ 2.000 - 1.732 = 0.268
If we follow this formula, the weighting of day 1 is too strong and the moving average may be not stable.
To reduce the weighting of day 1 and keep the spirit of the formula, we can add a parameter (we call it as x_1w2b).
The formula becomes
weighting of day n = sqrt ( n+x_1w2b ) - sqrt ( n-1+x_1w2b )
if x_1w2b is 0.25, then we have
weighting of day 1 = sqrt(1.25) - sqrt(0.25) ≒ 1.1 - 0.5 = 0.6
weighting of day 2 = sqrt(2.25) - sqrt(1.25) ≒ 1.5 - 1.1 = 0.4
weighting of day 3 = sqrt(3.25) - sqrt(2.25) ≒ 1.8 - 1.5 = 0.3
weighting of day 4 = sqrt(4.25) - sqrt(3.25) ≒ 2.06 - 1.8 = 0.26
weighting of day 5 = sqrt(5.25) - sqrt(4.25) ≒ 2.3 - 2.06 = 0.24
weighting of day 6 = sqrt(6.25) - sqrt(5.25) ≒ 2.5 - 2.3 = 0.2
weighting of day 7 = sqrt(7.25) - sqrt(6.25) ≒ 2.7 - 2.5 = 0.2
What you see and can adjust in this script
This script plots three moving averages described above.
The short term one is default magenta, 6 days and 1 atr.
The middle term one is default yellow, 24 days and 2 atr.
The long term one is default green, 96 days and 4 atr.
I arrange the short term 6 days to make it close to sma(5).
The other twos are arranged according to 4x length and 2x atr.
There are 9 curves plotted by this script. I made the lower bands and the upper bands less clear than moving averages so it is less possible misrecognizing lower or upper bands as moving averages.
x_src : how to compute the reference price of a day, using 1 to 4 of open, high, low and close.
len : how many days are computed by moving averages
atr : how many days are computed by average true range
multi : the distance from the moving average to the lower band and the distance from the moving average to the lower band are equal to multi * average true range.
x_1w2b : adjust this number to avoid the weighting of day 1 from being too strong.
Conclusion
There are moving averages which the weighting of the most recent quarter is close to the weighting of the rest recent three quarters.
We can apply strategies based on moving averages. Like most of indicators, oversold does not always means it is an opportunity to buy.
If the short term lower band is close to the middle term moving average or the middle term lower band is close to the long term moving average, it may be potential support value.
References
Computing FIR Filters Using Arrays
How to trade with moving averages : the eight trading signals concluded by Granville
How to trade with Bollinger bands
How to trade with double Bollinger bands
Strategy - Bobo PAPATRHi I've revamped this bot mentioned in the linked idea to make it work with v4 of pine. In doing so there are some very significant changes to how it works. The main one is that it no longer uses traditional daily pivot calculations to calculate the bands. It creates a more dynamic intraday set of pivot points based on recent price action rather than yesterday's ohlc. As published, the bot is tuned for a 15 min time frame. But it actually works well on lower time frames you just need to adjust the lookback periods in settings a bit to re tune it. It's also tuned to ES really but will need tweaking for a different instrument at the very least.
The basic concept is recent price action is used to calculate a 'middle' around which red and green bands are located. Their position or width is largely determined by recent volatility. The middle line is again calculated from recent price action. The three lines from that form a tradeable range with green at the top and red at the bottom. The strategy is simple enough, it shorts as it sinks from outside red, and longs when rising above green. The basic principle being that once you enter that range you have a high probability of hitting the middle before you hit your stop loss. So the basic principle is you are trying to capture the inherent ranginess of liquid indices like S&P 500. That back and forth movement that happens. The bot is capturing this by fading extremes of a recent range but the problem with that is you'dd get murdered in a strong trend. To mitigate that there is a trend calculation running in the background the will prevent trading against firm trends mostly. So the bot should trade mostly in rangy conditions because that is what it is trying to do.
Bot will close issue close signals automatically upon crossing the middle, it also will close automatically at predefined stops or limits. These values are denominated in market mintick values. For example the CFD SPX500 has a mintick of 0.1. Therefore a stop value of 100 will equate to 10 points on the index. If trading the same market via ES1! the mintick value is different - 0.25. So in this case a value of 40 is required to set the stop at 10 points.
Anyway shout if you have questions. Hope it's useful.
TVC:SPX OANDA:SPX500USD
ATR based Pivots mcbwHey everyone this is an exciting new script I have prepared for you.
I was reading an old forex bulletin article some time ago when I came across this: solar.murty.net (or you can download the full bulletin with lots of other good articles here: www.forexfactory.com).
You can already buy this for metatrader (www.mql5.com) so I figured to make it for free for tradingview.
This bulletin suggested that you can reasonably predict daily volatility by adding or subtracting multiples of the daily ATR to the daily opening. Using this you can choose multiples to use as price targets and alternatively as stop losses. For example, if you already have a sense of market direction you can buy at market open place a stop loss at - 1 daily ATR and a profit target at + 3 ATRs for a risk to reward ratio of 3. If you are looking for smaller/quicker moves with a ratio of 3 you can have a stop loss at -0.25 ATR and a take profit at +0.75 ATR.
Alternatively this article also suggests to use this method to catch volatility breakouts. If price is higher than the + 1 ATR area then you can safely assume it will be going to the +2 ATR area so you can put a buy stop at + 1 ATR with a profit target at + 2 ATR with a stop loss at +0.5 ATR to catch a volatility breakout with a risk to reward ratio of 2!
Even further there are methods that you can use with ATRs of multiple window sizes, for example by opening two copies of this indicator and measuring recent volatility with a 1 week window and long term volatility within a 1 month window. If the short term volatility is crossing the long term volatility then there is a high probability chance that even more price movement will occur.
However I have found that this method is good for more than daily volatility , it can also be used to measure weekly volatility , and monthly volatility and use these multiples as good long term price targets.
To select if you want daily, weekly, or monthly values of the ATR of volatility you're using go to the settings and click on the options in the "Opening period". The default window of the ATR here is 14 periods, but you can change this if you want to in "ATR period". Most importantly you are able to select which multiples of the ATR you would like to use in the settings in "ATR multiple 1" which is the green line, "ATR multiple 2" which is the blue line, and "ATR multiple 3" which is the purple line. You can select any values you want to put in these, the choice of 0.25, 0.5, and 1 is not special, some people use fibonacci numbers here or simply 0.33, 0.66, and 0.99.
Repainting issue: This script uses the daily value of the Average True Range (ATR), which measures the volatility that is happening today. If price becomes more volatile then the value of the ATR can increase throughout the day, but it can never decrease. What this means is that the ATR based pivots are able to expand away from the opening price, which should not affect the trades that you take based on these areas. If you base your take profit on one of these ATR multiples and the daily volatility increase this means that your take profit area will be closer to your entry than the ATR multiple. Meaning that your trades will be more conservative.
While this all may sound very technical it is super intuitive, throw this on your chart and play around with it :)
Happy trading!
Pramod’s Intraday StrategyIf Open = High, Short with 0.25% Stop Loss and 0.5% Take Profit
If Open = Low, Long with 0.25% Stop Loss and 0.5% Take Profit
This strategy is given by desipplz.
UCS_Murrey's Math Oscillator_V2Hello, Murrey Math lovers, Thanks for those who showed interest on this. Based on a request, I have updated the plot / candle coloring, for Version - 2.
This has been in the queue for a while.
There was a Glitch found with the Multiplier. Will Fix in the next version. The Current Version (and the previous version) only supports 1/8 fractions. Will not support 0.25. The code needs to be updated, to automate the fractal line glitches for other ratios, Planned for future update.
Good Luck and Enjoy the Colorful Oscillator. Please keep your suggestions flowing. Lets make it better.
UCS_Value BandsThis Indicator is yet another variation of KC. Inspired from Value Charts webinar. I have seen their videos on youtube. What appears to be a variation of KC.
They use 12 bands Showing the zone, and different MA for different timeframes.
You can get this indicator close to accuracy by changing the inputs (ATR) and (Deviations)
This also can be used with the triple ATR setup - Change the values to EMA to desired value. To obtain the First band to plot @ 1, Change the Band deviation to 0.25.
Also can be used as as the Acceleration Band. With Current Settings, the Third Band will plot the Acceleration band.
List of All my Indicators - www.tradingview.com
Lycka Till
BBImpulse IndicatorBBImpulse is part of the latest indicators package offered by John Bollinger. Excerpt from their market blurb (www.bbforex.com):
"BBImpulse is derived from %b. Its value is the periodic change of %b, so if %b was 0.45 this period and 0.20 last period the present value of BBImpulse is 0.25. We present two reference levels on the chart, an alert level and an impulse level."
"Generally the market moves in the direction of the latest alerts and/or impulses except towards the end of a move where one can take advantage of exhaustion/reversal signals from this indicator."
"Ian Woodward employs BBImpulse for his Kahuna signals using key levels of 0.24 and 0.40."
I added support for the following:
- Highlighting alert/impulse trigger bars
- Rendering the range (check options page).
I noticed that the range, by itself, highlights lot of info:
- Tapering in (narrowing) of range may signify topping or falling prices.
- Tapering out (expanding) may signify nearing a bottom or rising prices.
- Range getting "ranged" between alert or impulse levels signify a major move in the direction of the last impulse trigger. I think for this, alert level ranging intensity is greater than impulse level ranging intensity.
Someone more familiar with BB will have more observations, I am sure. Please do share here so we BB noobs can learn :)
For more indicators, check out my complete list here:
Interest Rate Trading (Manually Added Rate Decisions) [TANHEF]Interest Rate Trading: How Interest Rates Can Guide Your Next Move.
How were interest rate decisions added?
All interest rate decision dates were manually retrieved from the 'Record of Policy Actions' and 'Minutes of Actions' on the Federal Reserve's website due to inconsistent dates from other sources. These were manually added as Pine Script currently only identifies rate changes, not pauses.
█ Simple Explanation:
This script is designed for analyzing and backtesting trading strategies based on U.S. interest rate decisions which occur during Federal Open Market Committee (FOMC) meetings, to make trading decisions. No trading strategy is perfect, and it's important to understand that expectations won't always play out. The script leverages historical interest rate changes, including increases, decreases, and pauses, across multiple economic time periods from 1971 to the present. The tool integrates two key data sources for interest rates—USINTR and FEDFUNDS—to support decision-making around rate-based trades. The focus is on identifying opportunities and tracking trades driven by interest rate movements.
█ Interest Rate Decision Sources:
As noted above, each decision date has been manually added from the 'Record of Policy Actions' and 'Minutes of Actions' documents on the Federal Reserve's website. This includes +50 years of more than 600 rate decisions.
█ Interest Rate Data Sources:
USINTR: Reflects broader U.S. interest rate trends, including Treasury yields and various benchmarks. This is the preferred option as it corresponds well to the rate decision dates.
FEDFUNDS: Tracks the Federal Funds Rate, which is a more specific rate targeted by the Federal Reserve. This does not change on the exact same days as the rate decisions that occur at FOMC meetings.
█ Trade Criteria:
A variety of trading conditions are predefined to suit different trading strategies. These conditions include:
Increase/Decrease: Standard rate increases or decreases.
Double/Triple Increase/Decrease: A series of consecutive changes.
Aggressive Increase/Decrease: Rate changes that exceed recent movements.
Pause: Identification of no changes (pauses) between rate decisions, including double or triple pauses.
Complex Patterns: Combinations of pauses, increases, or decreases, such as "Pause after Increase" or "Pause or Increase."
█ Trade Execution and Exit:
The script allows automated trade execution based on selected criteria:
Auto-Entry: Option to enter trades automatically at the first valid period.
Max Trade Duration: Optional exit of trades after a specified number of bars (candles).
Pause Days: Minimum duration (in days) to validate rate pauses as entry conditions. This is especially useful for earlier periods (prior to the 2000s), where rate decisions often seemed random compared to the consistency we see today.
█ Visualization:
Several visual elements enhance the backtesting experience:
Time Period Highlighting: Economic time periods are visually segmented on the chart, each with a unique color. These periods include historical phases such as "Stagflation (1971-1982)" and "Post-Pandemic Recovery (2021-Present)".
Trade and Holding Results: Displays the profit and loss of trades and holding results directly on the chart.
Interest Rate Plot: Plots the interest rate movements on the chart, allowing for real-time tracking of rate changes.
Trade Status: Highlights active long or short positions on the chart.
█ Statistics and Criteria Display:
Stats Table: Summarizes trade results, including wins, losses, and draw percentages for both long and short trades.
Criteria Table: Lists the selected entry and exit criteria for both long and short positions.
█ Economic Time Periods:
The script organizes interest rate decisions into well-defined economic periods, allowing traders to backtest strategies specific to historical contexts like:
(1971-1982) Stagflation
(1983-1990) Reaganomics and Deregulation
(1991-1994) Early 1990s (Recession and Recovery)
(1995-2001) Dot-Com Bubble
(2001-2006) Housing Boom
(2007-2009) Global Financial Crisis
(2009-2015) Great Recession Recovery
(2015-2019) Normalization Period
(2019-2021) COVID-19 Pandemic
(2021-Present) Post-Pandemic Recovery
█ User-Configurable Inputs:
Rate Source Selection: Choose between USINTR or FEDFUNDS as the primary interest rate source.
Trade Criteria Customization: Users can select the criteria for long and short trades, specifying when to enter or exit based on changes in the interest rate.
Time Period: Select the time period that you want to isolate testing a strategy with.
Auto-Entry and Pause Settings: Options to automatically enter trades and specify the number of days to confirm a rate pause.
Max Trade Duration: Limits how long trades can remain open, defined by the number of bars.
█ Trade Logic:
The script manages entries and exits for both long and short trades. It calculates the profit or loss percentage based on the entry and exit prices. The script tracks ongoing trades, dynamically updating the profit or loss as price changes.
█ Examples:
One of the most popular opinions is that when rate starts begin you should sell, then buy back in when rate cuts stop dropping. However, this can be easily proven to be a difficult task. Predicting the end of a rate cut is very difficult to do with the the exception that assumes rates will not fall below 0.25%.
2001-2009
Trade Result: +29.85%
Holding Result: -27.74%
1971-2024
Trade Result: +533%
Holding Result: +5901%
█ Backtest and Real-Time Use:
This backtester is useful for historical analysis and real-time trading. By setting up various entry and exit rules tied to interest rate movements, traders can test and refine strategies based on real historical data and rate decision trends.
This powerful tool allows traders to customize strategies, backtest them through different economic periods, and get visual feedback on their trading performance, helping to make more informed decisions based on interest rate dynamics. The main goal of this indicator is to challenge the belief that future events must mirror the 2001 and 2007 rate cuts. If everyone expects something to happen, it usually doesn’t.
BTC Arcturus IndicatorBTC Arcturus Indicator: This indicator is designed to create buy and sell signals based on the market value of Bitcoin. It also predicts potential market tops with the Pi Cycle Top indicator.
How Does It Work?
1. MVRVZ (Market Value to Realized Value-Z Score) Calculation:
MC: Bitcoin's market cap (Market Cap) is pulled daily from Glassnode data.
MCR: Realized Market Cap of Bitcoin is taken daily from Coinmetrics data.
MVRVZ: It is calculated by dividing the difference between Bitcoin's market value and realized market value by one standard deviation. This value indicates whether the market is overvalued or undervalued.
2. Reception and Warning Signals:
Buy Signal: When MVRVZ falls below the -0.255 threshold value, the indicator gives a "Buy" signal. This indicates that Bitcoin is undervalued and may be a buying opportunity.
Warning Signal: A warning signal turns on when MVRVZ exceeds the threshold value of 2.765. This indicates that the market is approaching saturation and caution is warranted.
3. Tracking the Highest MVRVZ Value:
The indicator records the highest MVRVZ value in the last 10 candlesticks. This value is used to determine whether the market has reached its highest risk levels.
4. Warning Display:
If the MVRVZ value matches the highest value in the last 10 bars and this warning has not been displayed before, a "Warning" signal is displayed.
Once the warning signal is shown, no further warnings are shown for 10 candles.
5. Pi Cycle Top Indicator:
Pi Cycle Top: This indicator predicts Bitcoin tops by comparing two moving averages (350-day and 111-day). If the short-term moving average falls below the long-term moving average, this is considered a sell signal.
The indicator displays this signal with the label "Sell", indicating a potential market top.
User Guide:
Green Buy Signal: It means Bitcoin is cheap and offers a buying opportunity.
Yellow Warning Signal: Indicates that Bitcoin has reached possible profit taking points and caution should be exercised.
Red Sell Signal: Indicates that Bitcoin has reached market saturation and it may be appropriate to sell.
Fake StrategyTHIS IS A FAKE STRATEGY. PLEASE DO NOT USE THIS FOR TRADING.
Just publishing this to display how easily you can fake backtest results in the strategies. However, there are ways to identify the scams. Let's discuss about major red herrings in a strategy. How to identify them and stay away from them.
Any strategy which proclaims significantly high win rate (such as this) are not practical and can only be achieved via following means
Significantly high risk compared to reward
Trades are set in such a way that profits are taken in small movement whereas stops are significantly farther. By doing this, win rate will surely increase. But, will be picking pennies by risking plenty of capital. General trait of such strategies can be identified by comparing average trade and max drawdown . These kind of strategies will have significantly higher drawdown even though the number of losses are less. For example, 1 losing trade leading to drawdown of 10+% whereas every winning only contributes 0.25%.
We can also see this kind of behaviour in option selling strategies such as 0 and 1 DTE option selling strategies. Here too probability of winning can be pretty high (north of 90%). But, on every winning, you make 1-2% of your capital however on remaining trades, you will lose your complete capital - which leads to overall losing position.
Inducing repainting through code
This strategy is an excellent example of how repainting can be induced via code using request.securities method. There are plenty of ways a strategy or code can be made to repaint. Tradingview user manual has lots of information about repainting. Feel free to read through if you have extra time. If you look at this code, it is very simple to induce repainting in a strategy to make it look like an infinite money printing machine.
High Leverage and lack of usage of margin
Using leverage in pine can show false results. This is because, the strategy engine will not stop when equity goes below 0% until the trade is closed. But, that does not happen in real life. This is the reason why using leverage along with high risk and low reward trades can show false results overall making it look like the strategy is unbeatable. But, when you try to use that in real time, it is likely that account will be blown out.
To understand leverage conditions, please have a look at the strategy property fields - Order Size, Pyramiding, Commission, Slippage, Margin Long/Short.
Curve fitting
If the author claims that strategy will only work on particular set of instrument and particular timeframe, then the strategy is not real. It is curve fitting. Knowingly/Unknowingly author has moulded his strategy to fit what has happened in the past. This is general issue even non malicious author go through. It is very much essential to test the strategy across various set of instruments and timeframes to understand the real capability. Use back-testing as test cases. More test cases you have, more bug free your strategy will be. There are many methods to understand curve fitting and perform better testing of the strategy in hand which can be studied and implemented by authors.
Significantly short trades - a sign of lack of strategy
A strategy built using pine in general work on close of candle. So, all the calculations generally happen upon close of the candle. You can force intra-bar calculations using bar magnifier. But, that is not equivalent to tick data. Due to this reason, I consider any trade happening within a bar (Meaning open and close within the same bar) as not reliable. This is because, it is not possible for strategy back-tester to know whether entry condition is satisfied first or exit in a completely foolproof way. Bar magnifier can help reduce this issue - but will not eradicate this problem completely. If there are lots of trades in a strategy - which are closing within the same bar, this is very likely that the strategy backtest results are not reliable.
Hope this helps at least some people to understand the scams and stay away from it.
X HL QA market structure tool designed to frame price action within a defined context of prior session dynamics. It accomplishes this by anchoring a set of reference levels to the high, low, and open prices of a user-specified higher timeframe (e.g., 4H, 1D, etc.) and projecting those levels onto the current chart for ongoing analysis.
At its core, the indicator establishes a reference range—derived from the previous completed instance of the selected timeframe—and overlays this on the current timeframe. This range serves as a foundational structure for price interpretation in the current session.
Building upon this framework, the script constructs a set of symmetrical quadrants (or deviation zones) both inside and outside of the prior range. These include:
The midpoint (EQ) of the prior range
Levels at ±0.25x, ±0.75x, ±1.0x, ±1.5x, and ±2.0x the range height
These levels act as contextual zones that traders can use to interpret price behavior—whether it's consolidating within the prior range, approaching fair value (EQ), or expanding into directional continuation or reversal zones beyond the range.
The script operates in both real-time and historical contexts. On live bars, it dynamically updates the key levels to provide an evolving view of current price positioning. Simultaneously, it supports the display of historical levels for past sessions, enabling robust backtesting and comparative analysis of price behavior relative to previous quadrant structures.
Ultimately, this tool serves as a positional map, helping traders assess where price is trading relative to significant levels from the prior session, offering insights into potential support/resistance, overextension, or mean reversion scenarios.
Key Technical Features
Multi-Timeframe Support:
request.security() is used to pull data from a user-defined higher timeframe regardless of the current chart interval.
Visual Flexibility:
Toggle between "line" and "channel" mode.
Line color, width, and visibility are all user-controlled.
Anchoring Options:
Deviation levels can be calculated from either the previous period's open or its EQ (midpoint), giving flexibility depending on analytical preference.
Efficient Labeling:
Labels are only rendered on the last bar and are automatically cleared and redrawn to prevent duplication.
Label style, size, text color, and background color are all user-configurable.
Trading Application
This indicator is especially suited for:
1. Mean Reversion Strategies
When price moves beyond +1.0 or +1.5 deviations from the EQ or open, it may signal overextension and a potential snap back to the midpoint or range.
2. Breakout Confirmation
Sustained price action beyond ±1.0 levels may indicate trend strength or continuation beyond historical balance zones.
3. Contextual Range Awareness
EQ and Open provide structure from which traders can judge whether price is in a state of balance or imbalance.
Labels offer at-a-glance interpretation of key levels across any chosen timeframe.
4. Fractal and Multi-Session Analysis
Analysts can layer daily, weekly, and monthly versions of this indicator to observe confluence or divergence of higher timeframe structure.
Buy The Dip - Does It Work?Buying the dip has become a meme in crypto, but does it actually work?
Using this script you can find out.
The dip is defined here as the average true range multiplied by a number of your choosing (dipness input) and subtracted from the low.
When price crosses under the dip level, a long is initiated. The long is then closed using a timestop (default value 20 bars), no fancy exits here.
A general rule for buying the dip should be to be more passive in a bull market and aggressive in a bear market.
Same goes for all counter trend trading.
Heres a few other examples of dip buying statistics using the H4 timeframe:
50% profitable, 1.692 Profit Factor
BINANCE:PIVXBTC
56.52% profitable, 1.254 Profit Factor
BINANCE:KMDBTC
27.27% Profitable, 0.257 Profit Factor... yikes!
BINANCE:BTSBTC
73.33% Profitable, 13.627 Profit Factor... o.O
BINANCE:MANABTC
TB DayProfile (stabil)TB DayProfile Indicator
The TB DayProfile plots intraday price movements relative to the current day’s opening price. Each bar is shifted so that the daily open acts as a fixed zero line, making it easy to see how far the market has moved above or below the open during the session.
The indicator includes:
Relative intraday bars (iOpen, iHigh, iLow, iClose): Displayed as a custom bar chart, showing price action normalized to the day’s open.
Zero line with color signals: Turns green if the number of consecutive bars above the open exceeds a user-defined threshold, or red if below.
ATR reference bands: Daily ATR(5) from the previous day (scaled by 0.25) is plotted as upper and lower bands, helping to gauge typical intraday ranges.
This tool helps traders quickly identify whether the market is trending strongly away from the daily open, or if price is reverting back toward it, independent of the chosen chart timeframe.