How to force strategies fire exit alerts not reversalsPineScript has gone a long way, from very simple and little-capable scripting language to a robust coding platform with reliable execution endpoints. However, this one small intuitivity glitch is still there and is likely to stay, because it is traditionally justified and quite intuitive for significant group of traders. I'm sharing this workaround in response to frequent inquiries about it.
What's the glitch? When setting alerts on strategies to be synchronized with TradingView's Strategy Tester events, using simple alert messages such as "buy" or "sell" based on entry direction seems straightforward by inserting {{strategy.order.action}} into the Create Alert's "Message" field. Because "buy" or "sell" are exactly the strings produced by {{strategy.order.action}} placeholder. However, complications arise when attempting to EXIT positions without reversing, whether triggered by price levels like Stop Loss or Take Profit, or logical conditions to close trades. Those bricks fall apart, because on such events {{strategy.order.action}} sends the same "sell" for exiting buy positions and "buy" for exiting sell positions, instead of something more differentiating like "closebuy" or "closesell". As a result reversal trades are opened, instead of simply closing the open ones.
This convention harkens back to traditional stock market practices, where traders either bought shares to enter positions or sold them to exit. However, modern trading encompasses diverse instruments like CFDs, indices, and Forex, alongside advanced features such as Stop Loss, reshaping the landscape. Despite these advancements, the traditional nomenclature persists.
And is poised to stay on TradingView as well, so we need a workaround to get a simple strategy going. Luckily it is here and is called alert_message . It is a parameter, which needs to be added into each strategy.entry() / strategy.exit() / strategy.close() function call - each call, which causes Strategy Tester to produce entry or exit orders. As in this example script:
line 12: strategy.entry(... alert_message ="buy")
line 14: strategy.entry(... alert_message ="sell")
line 19: strategy.exit(... alert_message ="closebuy")
line 20: strategy.exit(... alert_message ="closesell")
line 24: strategy.close(... alert_message ="closebuy")
line 26: strategy.close(... alert_message ="closesell")
These alert messages are compatible with the Alerts Syntax of TradingConnector - a tool facilitating auto-execution of TradingView alerts in MetaTrader 4 or 5. Yes, simple alert messages like "buy" / "sell" / "closebuy" / "closesell" suffice to carry the execution of simple strategy, without complex JSON files with multiple ids and such. Other parameters can be added (actually plenty), but they are only option and that's not a part of this story :)
Last thing left to do is to replace "Message" in Create Alert popup with {{strategy.order.alert_message}} . This placeholder transmits the string defined in the PineScript alert_message= parameter, as outlined in this publication. With this workaround, executing closing alerts becomes seamless within PineScript strategies on TradingView.
Disclaimer: this content is purely educational, especially please don't pay attention to backtest results on any timeframe/ticker.
Cari dalam skrip untuk "tradingview+筹码结构"
Backtest any Indicator v5Happy Trade,
here you get the opportunity to backtest any of your indicators like a strategy without converting them into a strategy. You can choose to go long or go short and detailed time filters. Further more you can set the take profit and stop loss, initial capital, quantity per trade and set the exchange fees. You get an overall result table and even a detailed, scroll-able table with all trades. In the Image 1 you see the provided info tables about all Trades and the Result Summary. Further more every trade is marked by a background color, Labels and Levels. An opening Label with the trade direction and trade number. A closing Label again with the trade number, the trades profit in % and the total amount of $ after all past trades. A green line for the take profit level and a red line for the stop loss.
Image 1
Example
For this description we choose the Stochastic RSI indicator from TradingView as it is. In Image 2 is shown the performance of it with decent settings.
Timeframe=45, BTCUSD, 2023-08-01 - 2023-10-20
Stoch RSI: k=30, d=40, RSI-length=140, stoch-length=140
Backtest any Indicator: input signal=Stoch RSI, goLong, take profit=9.1%, stop loss=2.5%, start capital=1000$, qty=5%, fee=0.1%, no Session Filter
Image 2
Usage
1) You need to know the name of the boolean (or integer) variable of your indicator which hold the buy condition. Lets say that this boolean variable is called BUY. If this BUY variable is not plotted on the chart you simply add the following code line at the end of your pine script.
For boolean (true/false) BUY variables use this:
plot(BUY ? 1:0,'Your buy condition hold in that variable BUY',display = display.data_window)
And in case your script's BUY variable is an integer or float then use instate the following code line:
plot(BUY ,'Your buy condition hold in that variable BUY',display = display.data_window)
2) Probably the name of this BUY variable in your indicator is not BUY. Simply replace in the code line above the BUY with the name of your script's trade condition variable.
3) Save your changed Indicator script.
4) Then add this 'Backtest any Indicator' script to the chart ...
5) and go to the settings of it. Choose under "Settings -> Buy Signal" your Indicator. So in the example above choose .
The form is usually: ' : BUY'. Then you see something like Image 2
6) Decide which trade direction the BUY signal should trigger. A go Long or a go Short by set the hook or not.
Now you have a backtest of your Indicator without converting it into a strategy. You may change the setting of your Indicator to the best results and setup the following strategy settings like Time- and Session Filter, Stop Loss, Take Profit etc. More of it below in the section Settings Menu.
Appereance
In the Image 2 you see on the right side the List of Trades . To scroll down you go into the settings again and decrease the scroll value. So you can see all trades that have happened before. In case there is an open trade you will find it at the last position of the list.
Every Long trade is green back grounded while Short trades are red.
Every trade begins with a label that show goLong or goShort and its number. And ends with another label again with its number, Profit in % and the resulting total amount of cash.
If activated you further see the Take Profit as a green line and the Stop Loss as a orange line. In the settings you can set their percentage above or below the entry price.
You also see the Result Summary below. Here you find the usual stats of a strategy of all closed trades. The profit after total amount of fees , amount of trades, Profit Factor and the total amount of fees .
Settings Menu
In the settings menu you will find the following high-lighted sections. Most of the settings have a question mark on their right side. Move over it with the cursor to read specific explanation.
Input Signal of your Indicator: Under Buy you set the trade signal of your Indicator. And under Target you set the value when a trade should happen. In the Example with the Stochastic RSI above we used 20. Below you can set the trade direction, let it be go short when hooked or go long when unhooked.
Trade Settings & List of Trades: Take Profit set the target price of any trade. Stop Loss set the price to step out when a trade goes the wrong direction. Check mark the List of Trades to see any single trade with their stats. In case that there are more trades as fits in the list you can scroll down the list by decrease the value Scroll .
Time Filter: You can set a Start Time or deactivate it by leave it unhooked. The same with End Time .
Session Filter: here you can choose to activate it on weekly base. Which days of the week should be trading and those without. And also on daily base from which time on and until trade are possible. Outside of all times and sessions there will be no new trades if activated.
Invest Settings: here you can choose the amount of cash to start with. The Quantity percentage define for every trade how much of the cash should be invested and the Fee percentage which have to be payed every trade. Open position and closing position.
Other Announcements
This Backtest script don't use the strategy functions of TradingView. It is programmed as an indicator. All trades get executed at candle closing. This script use the functionality "Indicator-on-Indicator" from TradingView.
Conclusion
So now it is your turn, take your promising indicators and connect it to that Backtest script. With it you get a fast impression of how successful your indicator will trade. You don't have to relay on coders who maybe add cheating code lines. Further more you can check with the Time Filter under which market condition you indicator perform the best or not so well. Also with the Session Filter you can sort out repeating good market conditions for your indicator. Even you can check with the GoShort XOR GoLong check mark the trade signals of you indicator in opposite trade direction with one click. And compare your indicators under the same conditions and get the results just after 2 clicks. Thanks to the in-build fee setting you get an impression how much a 0.1% fee cost you in total.
Cheers
IBIT Premium to CoinbaseThe BTC ETF premium indicator for TradingView is a specialized tool designed to measure and visualize the premium or discount of the iShares Bitcoin Trust (IBIT), an investment vehicle that holds Bitcoin, relative to the actual price of Bitcoin on the Coinbase exchange. This indicator can be particularly insightful for traders interested in the BTC securities market and those analyzing the demand for Bitcoin as reflected by institutional investment products.
#### Description:
The BTC ETF premium indicator in TradingView leverages an advanced Pine Script algorithm to calculate the premium (or discount) percentage of IBIT compared to the spot price of Bitcoin (BTC/USD) on Coinbase. The premium is a critical insight that reflects market sentiment and potentially arbitrage opportunities between the trust's share price and the underlying cryptocurrency asset.
Here's how the indicator works:
1. **Calculation Methodology:**
- **Implied Bitcoin Price of IBIT:** We determine the implied price of Bitcoin within IBIT by dividing the IBIT closing price by the known ratio of Bitcoin per share.
- **IBIT Premium to Coinbase:** The percentage premium is then calculated as:
$$\text{IBIT Premium} = \frac{(\text{Implied Bitcoin Price of IBIT } - \text{Actual Bitcoin Price on Coinbase})}{\text{Actual Bitcoin Price on Coinbase}} \times 100$$
- This calculation is performed using the closing prices on a per-minute basis to ensure timely and accurate analysis.
2. **Visualization:** The indicator plots the premium as a step line chart, making it easy to visualize changes over time. A dynamic label accompanies the plot, displaying the implied Bitcoin price, the actual percentage premium or discount, and whether the premium is trending up or down compared to the previous day's value.
3. **Usage Scenario:** Traders can use this indicator to monitor the live premium 24/7 and analyze how it behaves during different market conditions, including when the equity market, where IBIT is traded, is closed.
#### Additional Features:
- **Color-Coding:** The premium is color-coded in green when positive (premium) and in red when negative (discount), aiding quick visual assessment.
- **Zero-Line Reference:** A horizontal line is drawn at zero to easily identify when IBIT is trading at par with the spot price of Bitcoin.
- **Real-Time Label Updates:** The label updates in real time with the latest premium/discount information and includes an arrow to signify the trend direction.
#### Access and Usage:
The indicator can be favorited or added to your TradingView charts. You are also welcome to use the source code as a foundation for further customization to suit your trading strategies.
#### Notes:
Please consider that the IBIT has specific trading hours, and the indicator can show live changes even when its market is closed, which might lead to discrepancies from official static data. For best performance, use this indicator alongside the IBIT candlestick chart on TradingView.
GBTC Premium to CoinbaseThe BTC ETF premium indicator for TradingView is a specialized tool designed to measure and visualize the premium or discount of the Grayscale Bitcoin Trust (GBTC), an investment vehicle that holds Bitcoin, relative to the actual price of Bitcoin on the Coinbase exchange. This indicator can be particularly insightful for traders interested in the BTC securities market and those analyzing the demand for Bitcoin as reflected by institutional investment products.
#### Description:
The BTC ETF premium indicator in TradingView leverages an advanced Pine Script algorithm to calculate the premium (or discount) percentage of GBTC compared to the spot price of Bitcoin (BTC/USD) on Coinbase. The premium is a critical insight that reflects market sentiment and potentially arbitrage opportunities between the trust's share price and the underlying cryptocurrency asset.
Here's how the indicator works:
1. **Calculation Methodology:**
- **Implied Bitcoin Price of GBTC:** We determine the implied price of Bitcoin within GBTC by dividing the GBTC closing price by the known ratio of Bitcoin per share.
- **GBTC Premium to Coinbase:** The percentage premium is then calculated as:
$$\text{GBTC Premium} = \frac{(\text{Implied Bitcoin Price of GBTC} - \text{Actual Bitcoin Price on Coinbase})}{\text{Actual Bitcoin Price on Coinbase}} \times 100$$
- This calculation is performed using the closing prices on a per-minute basis to ensure timely and accurate analysis.
2. **Visualization:** The indicator plots the premium as a step line chart, making it easy to visualize changes over time. A dynamic label accompanies the plot, displaying the implied Bitcoin price, the actual percentage premium or discount, and whether the premium is trending up or down compared to the previous day's value.
3. **Usage Scenario:** Traders can use this indicator to monitor the live premium 24/7 and analyze how it behaves during different market conditions, including when the equity market, where GBTC is traded, is closed.
#### Additional Features:
- **Color-Coding:** The premium is color-coded in green when positive (premium) and in red when negative (discount), aiding quick visual assessment.
- **Zero-Line Reference:** A horizontal line is drawn at zero to easily identify when GBTC is trading at par with the spot price of Bitcoin.
- **Real-Time Label Updates:** The label updates in real time with the latest premium/discount information and includes an arrow to signify the trend direction.
#### Access and Usage:
The indicator can be favorited or added to your TradingView charts. You are also welcome to use the source code as a foundation for further customization to suit your trading strategies.
#### Notes:
Please consider that the GBTC has specific trading hours, and the indicator can show live changes even when its market is closed, which might lead to discrepancies from official static data. For best performance, use this indicator alongside the GBTC candlestick chart on TradingView.
Ticker Correlation Matrix Table and Heatmap [SS]Hello everyone,
I am in the process of releasing some of my own utility indicators/things I use to reference and perform analyses.
I do a lot of quantitative/math based analyses, including correlation assessments that I traditionally would need to export data from Tradingview and perform in SPSS, Excel or R. I have been slowly building a repertoire of Excel/R functionality right on pinescript so I do not need to constantly export data and can perform the assessments right on Tradingview.
This is an example of such an indicator.
About the Indicator:
It is a correlation table/matrix indicator. It will allow up to 10 ticker inputs, which can be stocks, economic data, anything available on Tradingview, and it will perform a correlation assessment in a matrix / heatmap style.
The indicator will show the various correlations among all of the selected ticker inputs and will colour them based on correlation strength and type.
Strong negative correlations will appear bright red.
Strong positive correlations will appear bright green.
Complete absence of correlation (i.e. 0) will show bright orange.
The rest will show a darker shade to indicate less strength/correlation.
Calculation Functions
In addition to outputting a correlation matrix, the indicator is also able to express the relationship between tickers in a linear expression using the y = mx + b formula.
If we look at table, we can see that MSFT and AAPL have a significantly strong correlation of 0.82.
If we wanted to express this relationship mathmatically, we can ask the indicator to represent the linear relationship in our y = mx + b format. We simply toggle to our menu and select the Convert From MSFT (Ticker 2) and convert to APPL (Ticker 3):
When we select this, a new table will populate below and give you the expression as well as the amount of error associated with it:
In this case, we can see that the equation is y = 0.553x + 0.626 with a range of around 10 points in either direction.
This means that, to convert MSFT to AAPL, we would multiply the MSFT price by 0.553 and then add 0.626. So if we try it, MSFT closed at 328.41. So we substitute:
AAPL price = 0.553(328.41) + 0.626
AAPL price = 181.61 + 0.626
AAPL Price = 182.24 +/- 10
AAPL actually closed at 184.12. So pretty good. If we try another, let's do SPY to XLF:
So we substitute, SPY closed at 449.16.
XLF Price = 449.16(0.077) + 0.084
XLF price = 34.59 + 0.084
XLF price = 34.67
XLF actually closed at 34.49.
This is handy if you want to see how one stock price may affect another. If you are long on one stock and short on another, you can use this to determine what the likely outcome may be for the alternative stock. However, I recommend only performing this on tickers that have a relationship of 0.7 or higher, or a relationship of -0.7 or lower.
I always had to use SPSS to do this, so being able to do this right in Pinescript for me is a huge convenience!
Some other uses:
As I tend to post educational stuff on Tradingview and I frequently use correlation matrices, I have formatted the indicator to be more aesthetically pleasing for these purposes. Thus, you can unselect extra ticker slots that you do not need. IF I only need to display 3 tickers, I can unselect tickers 4 - 10. The end result is a cleaner table:
Essential Functions:
The assessment length is defaulted to 75 candles on the daily timeframe. Be sure to have the daily timeframe opened when you are viewing the indicator.
You can increase or decrease the assessment length as you desire.
You can also specify the source. The source is defaulted to close, but if you want to see the direct correlation of ticker's highs and/or lows, you can modify the source input in the settings menu to look at this.
Just remember to have the chart opened to whatever timeframe you are looking at.
And that's the indicator! Hopefully you find it helpful. Its more of an academic indicator, but it is performing a function that I personally use frequently in analyses, so I hope you may also benefit from it as well!
Thanks for checking it out! Safe trades everyone!
[DisDev] D-I-Y Gridbot🟩 This script is a “do-it-yourself” Grid Bot Simulator, used for visualizing support and resistance levels. Prices are divided into grids, or trade zones, that will trigger signals each time a new zone is entered. During ranging markets, each transaction is followed by a “take profit.” As the market starts to trend, transactions are stacked (compare to DCA ), until the market consolidates. No signals are triggered above the upper gridline or below the lower gridline. Unlike the previous version, all grids may be adjusted in real-time by dragging the gridlines up and down to the desired support and resistance levels.
When adding the indicator to a new chart, you must choose six grid levels by clicking on the desired support or resistance price. You can change all of these levels at any time directly on the chart.
⚡ OVERVIEW ⚡
The D-I-Y Gridbot is an interactive tool designed for visualizing support and resistance levels. As a continuation of the original Gridbot Simulator , which has received significant recognition on TradingView, earning over 4000 boosts and an Editor's Pick status. This tool serves not only as an evolved version of its predecessor, but also as an open-source template for developing future gridbots. It aims to foster discussions and facilitate innovations around grid-trading strategies.
One of the new features of this gridbot is the real-time adjustability of all gridlines. Users can move these lines up and down to set their desired support and resistance levels in response to changing market conditions. Additionally, the D-I-Y Gridbot is compatible with multiple timeframes and can be used on most TradingView charts.
Drag gridlines up or down to desired price level.
Key Features 🔑
All gridlines are adjustable in real-time, directly on the chart
Signals can be filtered by a customizable moving average or by VWAP
Customizable support and resistance levels
Potentially increases profitability in ranging markets
Benefits 💸
Customizable Support and Resistance Levels : The D-I-Y Gridbot allows users to set their preferred support and resistance levels, which can be changed at any time directly on the chart. This provides users with the ability to customize their trading parameters based on their strategy and risk tolerance.
Various Trading Strategies : The D-I-Y Gridbot supports various trading strategies, including Mean Reversion, Ranging Markets, and Dollar-cost averaging (DCA). This allows users to capitalize on price reversals, execute buy and sell orders at predetermined levels, and buy more of an asset as the price falls, respectively.
Multi-Timeframe and Versatility : The D-I-Y Gridbot is compatible with multiple timeframes and can be used on any TradingView chart.
Experimental and Educational : The D-I-Y Gridbot is considered a proof-of-concept tool that is both experimental and educational. This can provide traders with a deeper understanding of grid trading strategies and the ability to experiment with different trading parameters and strategies.
⚙️ CONFIGURATION & SETTINGS ⚙️
Inputs 🔧
Trigger : Candle location to trigger the signal. "Wick" will use either high or low, depending on the signal direction. "Close" will use the close price. “MA” will use the selected moving average or VWAP.
Confirmation : Market direction to confirm the candle trigger. "Reverse" will confirm the signal when the price crosses back over the trigger. "Breakout" will confirm when the price breaks out of the trigger.
Number of Support/Resistance zones : 1 = Only Top Grid is Support/Only Bottom Grid is Resistance. 2 = Top two grids are Resistance/Bottom two grids are Support. 3 = Top three grids are Resistance/Bottom three grids are Support
MA Type : Exponential Moving Average (EMA), Hull Moving Average (HMA), Simple Moving Average (SMA), Triple Exponential Moving Average (TEMA), Volume Weighted Moving Average (VWMA), Volume Weighted Average Price (VWAP)
MA Filter : Use Moving Average as a reversion filter for signals. When enabled, no buys when above MA, no sells when below. Use in conjunction with S/R zones to reduce false signals.
Allow Repeat Signals . When enabled, signals will reset when nearest gridline is triggered. When disabled, only one signal will be triggered per gridline.
Line/Fill colors
Gridlines . Adjusts gridline prices manually.
Left : Trigger = Wick. Confirm = Breakout. Buys are signaled when LOW breaks below gridline. Sells are triggered when HIGH breaks above gridline.
Right : Trigger = Close. Confirm = Breakout. Buys are signaled when the candle CLOSES below the gridline. Sells are triggered when the candle CLOSES above the gridline.
Left : Confirm=Breakout. Signals on breaking through the next gridline.
Right : Confirm=Reverse. Signals only when crossing back from the gridline.
S/R Zones=1. Upper gridline is Resistance / Lower is Support. Middle 4 are neutral.
S/R Zones = 3. Upper three gridlines are Resistance / Lower three are Support
Notes:
If gridlines are dragged out of order on a live chart, they will auto-sort into the correct order.
Price levels may be entered in settings, or adjusted in real-time directly on the chart.
When changing symbols, remember to adjust the gridlines to accommodate the new symbol.
Alerts 🔔
Users can set alerts based on their chosen parameters for triggers, confirmations, number of support/resistance zones, and smoothing type, enabling precise control over alert conditions.
💡 USAGE & STRATEGY 💡
Trading Strategies 📈
Mean Reversion: The script can be used to capitalize on price reversals back to the mean.
Ranging Markets: The script excels in ranging markets, executing buy and sell orders at predetermined levels.
Dollar-cost averaging (DCA): The script can be used to execute DCA orders, buying more of an asset as the price falls, and lowering the average cost per unit.
Timeframes and Symbols ⌚
Multi-Timeframe: The indicator is compatible with multiple timeframes.
Versatile: Can be used on any crypto trading pair on TradingView.
🤖 DETAILS & METHODOLOGY 🤖
Algorithm and Calculation 🛡️
Grids are set and adjusted when loading the indicator on the chart and may be customized anytime afterward by clicking and dragging the gridlines on the chart.
Gridlines are updated, sorted, and stored in a float array.
Signals are calculated based on candle trigger, market direction, and previous price level.
📚 ADDITIONAL RESOURCES 📚
Chart Examples 📊
S/R Zones = 3: Three Support and Three Resistance. Filter = 50-period Triple Exponential Moving Average (TEMA)
S/R Zones = 1: One Support, One Resistance, and Four Neutral Zones. Support Zones: Buys only. Resistance Zones: Sells only. Neutral Zones: Grid-dependent
When MA filter is enabled, Buys are only triggered below Moving Average, and Sells are only triggered above.
Trigger = Wick. Confirmation = Breakout. Buys are signaled when Low breaks above the next grid level. Sells are signaled when High breaks below the next grid level.
🚀 CONCLUSION 🚀
The D-I-Y Gridbot is a proof-of-concept, emphasizing its experimental and educational nature. In future versions, we will aim to incorporate concepts such as auto-adjusting grids and angled grids for trending markets. The script is designed to evolve through user feedback and suggestions, shaping its future iterations.
Credit: This is a continuation of the Gridbot series by xxattaxx-DisDev . Explicit permission was granted by user xxattaxx-disdev to re-use all Gridbot code and all materials without restrictions.
⚠️ DISCLAIMER ⚠️
This indicator is a proof-of-concept and is considered experimental and educational. When gridlines are drawn in hindsight, signals appear to be predictive and valid. Future results may always vary when the trend direction changes. Comments and suggestions are encouraged.
This indicator is provided as a tool for traders and should not be used as the sole basis for making trading decisions. Always conduct your own research and consider your risk tolerance before entering any trades.
Tick based chart [DotH]Version 1.0 - 2nd January 2023
Hi All,
This is my first published indicator, although I have written several hundreds for private use.
Description
Tick based chart
I got intrigued while reading about tick based charts on this page (please note this link/website owner is not affiliated with me) , so I decided to see if it would be possible to recreate this type of chart in TradingView, and here's the results.
This is an implementation for displaying a tick based chart in Trading View. There are benefits to using ticks based candles, as each candle represents the same number of "price moves" rather than an unknown number of moves.
Tick based charts are charts with candles that are rendered in the same way as traditional candles. However, instead of rendering a new candle at a specific time period,tick based candles are rendered after a set number of ticks have occured. For example, in a 50 tick chart, each candle that you see represents exactly 50 ticks, i.e. 50 price changes/moves. Having a view of what happens on the tick level, may help some traders evaluate what is happening within very large candles, or even detect a change in trend, volatility or some other metric which otherwise may not be visible using a standard chart.
Please note that this indicator DOES NOT match/synchronize timewise with the main chart in TradingView. You must view it independently. If you need to see what times are represented in the tick chart, you can look at the custom time labels and X-Axis grid lines in it to get an idea what parts of the tick based chart correspond to the main chart.
Limitations/known issues:
Currently the indicator has been restricted to 100 candles. This is for limiting the line and box usage to a max of 300 objects.
On timeframes above 1 minute, the seconds values will always be 0. In order to be able to see seconds values in the chart scale you need to be on a second level chart, which requires a premium TradingView subscription.
Changing the parameters in the settings will cause the chart to empty and start redrawing from its first candle again. This is because the tick chart is being drawn from realtime data, unlike the standard TradingView charts.
TODOs & Bugs:
Add some moving average indicators (SMA, EMA as a minimum)
Add a corresponding tick based volume chart
Create RSI, MACD, BB variations of this indicator
If you have any ideas/suggestions or bug reports, please feel free to let me know, however keep in mind that I do not have too much spare time to add things, so updates are going to be sporadic.
ABOUT CODE REUSE:
The code is free to use/change. However, if you plan to use this code to make a derivative indicator or strategy, it would be nice to know, so let me know if you feel like it!
Volume Weighted Hull Moving Average Bollinger Bands (VWHBB)Title: "Volume Weighted Hull Moving Average Bollinger Bands Indicator for TradingView"
Abstract: This script presents a TradingView indicator that displays Bollinger Bands based on the volume weighted Hull Moving Average (VEHMA) of a financial asset. The VEHMA is a technical analysis tool that combines the reduced lag of the Hull Moving Average (HMA) with volume weighting to provide a more sensitive indicator of market trends and dynamics. The Bollinger Bands are a volatility indicator that plot upper and lower bands around a moving average, which can help traders identify potential trend changes and overbought or oversold conditions. The script allows the user to customize the VEHMA length and Bollinger Band deviation parameters.
Introduction: Bollinger Bands are a popular technical analysis tool used to identify potential trend changes and overbought or oversold conditions in the market. They are constructed by plotting upper and lower bands around a moving average, with the width of the bands determined by the volatility of the asset. The VEHMA is a variant of the Hull Moving Average (HMA) that combines the reduced lag of the HMA with volume weighting to provide a more sensitive indicator of market trends and dynamics.
Methodology: The VEHMA is calculated using a weighted average of two exponential moving averages (EMAs), with the weighting based on the volume of the asset and the length of the moving average. The Bollinger Bands are calculated by plotting the VEHMA plus and minus a standard deviation of the asset's price over a specified period. The standard deviation is a measure of the volatility of the asset and helps to adjust the width of the bands based on market conditions.
Implementation: The script is implemented in TradingView's PineScript language and can be easily added to any chart on the platform. The user can customize the VEHMA length and Bollinger Band deviation parameters to suit their trading strategy. The VEHMA, Bollinger Bands, and fill colors are plotted on the chart to provide a visual representation of the indicator.
Conclusion: The VEHMA Bollinger Bands indicator is a useful tool for traders looking to identify potential trend changes and overbought or oversold conditions in the market. This script provides a convenient and customizable implementation of the indicator for use in TradingView.
Price Weighted Volume MA (PWVMA)Title: "Price Weighted Volume Moving Average Indicator for TradingView"
Abstract: This script presents a TradingView indicator that displays the price weighted volume moving average (PWVMA) of a financial asset. The PWVMA is a technical analysis tool that helps traders visualize the relationship between price and volume over a specified period of time. The script offers two PWVMA calculation methods: the standard volume moving average (VMA) and the exponentially smoothed volume moving average (EVMA). The user can choose between these methods and customize the length and reset (session weighting) parameters of the moving average. The PWVMA is plotted on the chart alongside the volume data for easy comparison and analysis.
Introduction: In financial markets, volume is an important factor that can provide insights into the strength of a trend or the intensity of buying or selling pressure. The PWVMA is a variant of the volume moving average (VMA) that takes into account the price of the asset in the calculation. This makes the PWVMA more sensitive to price changes and helps traders understand the underlying dynamics of the market.
Methodology: The PWVMA is calculated by dividing the sum of the product of volume and price over a specified period by the sum of the price over the same period. In the VMA method, this calculation is performed using a simple moving average. In the EVMA method, the calculation uses an exponentially smoothed moving average, which gives greater weight to more recent data points.
Implementation: The script is implemented in TradingView's PineScript language and can be easily added to any chart on the platform. The user can choose between the VMA and EVMA methods and adjust the length and reset (session weighting) parameters as needed. The PWVMA is plotted on the chart alongside the volume data, allowing traders to compare and analyze the relationship between the two.
Conclusion: The PWVMA is a useful technical analysis tool that helps traders understand the relationship between price and volume in the market. This script provides a convenient and customizable implementation of the PWVMA for use in TradingView.
(I love using openai to write my descriptions)
All-in-one CPR indicator Introduction and Acknowledgement:
The script is basically a mashup script and provides a combined functionality of various indicators. I'll explain the usefulness and the optimal usage of the script after giving the credits where it is due. A CPR indicator for visually identifying the trend along with the strength of the trend is NOT available in the public library of TradingView. Hence, the need of this indicator.
The credit of creating the original indicators remain unknown to me but I would like to acknowledge the authors whose formulae and codes I have used for creating this mashup indicator.
- Frank Ochoa
- Guruprasad Meduri
- Rafael Zioni
- Stoked Stocks
- Pine team for default indicators
The prime focus of the script is identifying and simplifying the 2 main aspects of a trend:
1. Direction / Underlying trend
2. Strength of the trend
Flaws in traditional CPR:
Some may see this as a flaw, some may not. So take my opinion with a grain of salt. In general, the traditional CPR indicator is used to plot just support and resistance levels, and the trend identification is purely discretionary. In addition to this, there is no way to assess the strength of the move without using a dedicated volumed based indicator. This causes amateur traders to take counter trades to the market direction.
What is the need of this hybrid indicator?
A CPR indicator that also aids in visually identifying the trend and the strength of the trend with respect to the price action in NOT available in the public library of TradingView. The traditional CPR can be used to assess the rough direction of the market but if it combined with the Hull ribbon, the probability of identifying the trend increases manifold. Hence, I decided to create this mashup indicator.
In addition to the basic CPR pivots, the script provides the functionality of the following indicators:
1. HMA based trend ribbons with auto buy/sell signals
2. Volatility based bands - Bollinger bands, Keltner channel, Donchian channel, envelope.
3. Coloured volume candles to determine the strength of the trend
4. CPR with daily, weekly, and monthly levels
5. Previous day high/low
6. Tomorrow CPR
7. 3 Simple moving averages
8. Volume Weighted Average Price (VWAP)
Correct usage of the indicator:
The optimal usage of the indicators consists of mainly 2 parts:
1. Identification of the trend using the combination of CPR and Hull ribbon
2. Determining the strength of the trend
How to identify the trend?
In general, when the price is above CPR it is considered a bullish trend. Also, when the price is above the Hull ribbon, it is considered bullish. Reverse is true for a bearish trend. Combining the traditional CPR logic with the Hull trend ribbon, we can conclude that:
1. Bullish trend = Price above CPR and above the Hull ribbon
2. Bearish trend = Price below CPR and below the Hull ribbon
If the Hull ribbon is showing a zig-zag move, the trend will be sideways. Also, the time frame of the Hull ribbon can be defined as per the need of the user.
Exhibit: Identification of a bullish trend
Exhibit: Identification of a bullish trend with a contra move (pullback)
Exhibit: Identification of a bearish trend
Exhibit: Identification of a bearish trend with a contra move (pullback)
How to determine the strength of the trend?
1. Strong trend = The dark coloured candles represent volume more than 150% of the look back period. For instance
2. Moderate trend = The bright coloured candles represent volume between 50-150%.
3. Neutral trend = The Grey coloured candles represent a weak trend where the volume is less than 50%.
Exhibit: Identification of a strong bearish trend along with the trend direction
Exhibit: Identification of a strong bullish trend using only coloured candles
All the other indicators including the SMA, VWAP, Bollinger bands, Keltner channels, etc. can be used as per the taste of the trader.
Thanks for reading! I hope you find this indicator useful.
Happy learning. Cheers!
Rajat Kumar Singh (@johntradingwick)
Community Manager (India), TradingView
UpVol/TVol NYSE Lowry Upside DaysTakes Tradingviews Upside Volume for NYSE and divides it by Total Volume on NYSE.
Tradingview's data source generally has different volume figures than say the Wall Street Journal. Therefore, this indicator is an estimate.
10% upside volume shows extreme panic and is consistent with market sell offs.
90% upside days, following a decline, are often occur within a week or so of significant market bottoms.
Recommend using columns as the plot type.
Based on research of LowryResearch Corp.
pandas_taLibrary "pandas_ta"
Level: 3
Background
Today is the first day of 2022 and happy new year every tradingviewers! May health and wealth go along with you all the time. I use this chance to publish my 1st PINE v5 lib : pandas_ta
This is not a piece of cake like thing, which cost me a lot of time and efforts to build this lib. Beyond 300 versions of this script was iterated in draft.
Function
Library "pandas_ta"
PINE v5 Counterpart of Pandas TA - A Technical Analysis Library in Python 3 at github.com
The Original Pandas Technical Analysis (Pandas TA) is an easy to use library that leverages the Pandas package with more than 130 Indicators and Utility functions and more than 60 TA Lib Candlestick Patterns.
I realized most of indicators except Candlestick Patterns because tradingview built-in Candlestick Patterns are even more powerful!
I use this to verify pandas_ta python version indicators for myself, but I realize that maybe many may need similar lib for pine v5 as well.
Function Brief Descriptions (Pls find details in script comments)
bton --> Binary to number
wcp --> Weighted Closing Price (WCP)
counter --> Condition counter
xbt --> Between
ebsw --> Even Better SineWave (EBSW)
ao --> Awesome Oscillator (AO)
apo --> Absolute Price Oscillator (APO)
xrf --> Dynamic shifted values
bias --> Bias (BIAS)
bop --> Balance of Power (BOP)
brar --> BRAR (BRAR)
cci --> Commodity Channel Index (CCI)
cfo --> Chande Forcast Oscillator (CFO)
cg --> Center of Gravity (CG)
cmo --> Chande Momentum Oscillator (CMO)
coppock --> Coppock Curve (COPC)
cti --> Correlation Trend Indicator (CTI)
dmi --> Directional Movement Index(DMI)
er --> Efficiency Ratio (ER)
eri --> Elder Ray Index (ERI)
fisher --> Fisher Transform (FISHT)
inertia --> Inertia (INERTIA)
kdj --> KDJ (KDJ)
kst --> 'Know Sure Thing' (KST)
macd --> Moving Average Convergence Divergence (MACD)
mom --> Momentum (MOM)
pgo --> Pretty Good Oscillator (PGO)
ppo --> Percentage Price Oscillator (PPO)
psl --> Psychological Line (PSL)
pvo --> Percentage Volume Oscillator (PVO)
qqe --> Quantitative Qualitative Estimation (QQE)
roc --> Rate of Change (ROC)
rsi --> Relative Strength Index (RSI)
rsx --> Relative Strength Xtra (rsx)
rvgi --> Relative Vigor Index (RVGI)
slope --> Slope
smi --> SMI Ergodic Indicator (SMI)
sqz* --> Squeeze (SQZ) * NOTE: code sufferred from very strange error, code was commented.
sqz_pro --> Squeeze PRO(SQZPRO)
xfl --> Condition filter
stc --> Schaff Trend Cycle (STC)
stoch --> Stochastic (STOCH)
stochrsi --> Stochastic RSI (STOCH RSI)
trix --> Trix (TRIX)
tsi --> True Strength Index (TSI)
uo --> Ultimate Oscillator (UO)
willr --> William's Percent R (WILLR)
alma --> Arnaud Legoux Moving Average (ALMA)
xll --> Dynamic rolling lowest values
dema --> Double Exponential Moving Average (DEMA)
ema --> Exponential Moving Average (EMA)
fwma --> Fibonacci's Weighted Moving Average (FWMA)
hilo --> Gann HiLo Activator(HiLo)
hma --> Hull Moving Average (HMA)
hwma --> HWMA (Holt-Winter Moving Average)
ichimoku --> Ichimoku Kinkō Hyō (ichimoku)
jma --> Jurik Moving Average Average (JMA)
kama --> Kaufman's Adaptive Moving Average (KAMA)
linreg --> Linear Regression Moving Average (linreg)
mgcd --> McGinley Dynamic Indicator
rma --> wildeR's Moving Average (RMA)
sinwma --> Sine Weighted Moving Average (SWMA)
ssf --> Ehler's Super Smoother Filter (SSF) © 2013
supertrend --> Supertrend (supertrend)
xsa --> X simple moving average
swma --> Symmetric Weighted Moving Average (SWMA)
t3 --> Tim Tillson's T3 Moving Average (T3)
tema --> Triple Exponential Moving Average (TEMA)
trima --> Triangular Moving Average (TRIMA)
vidya --> Variable Index Dynamic Average (VIDYA)
vwap --> Volume Weighted Average Price (VWAP)
vwma --> Volume Weighted Moving Average (VWMA)
wma --> Weighted Moving Average (WMA)
zlma --> Zero Lag Moving Average (ZLMA)
entropy --> Entropy (ENTP)
kurtosis --> Rolling Kurtosis
skew --> Rolling Skew
xev --> Condition all
zscore --> Rolling Z Score
adx --> Average Directional Movement (ADX)
aroon --> Aroon & Aroon Oscillator (AROON)
chop --> Choppiness Index (CHOP)
xex --> Condition any
cksp --> Chande Kroll Stop (CKSP)
dpo --> Detrend Price Oscillator (DPO)
long_run --> Long Run
psar --> Parabolic Stop and Reverse (psar)
short_run --> Short Run
vhf --> Vertical Horizontal Filter (VHF)
vortex --> Vortex
accbands --> Acceleration Bands (ACCBANDS)
atr --> Average True Range (ATR)
bbands --> Bollinger Bands (BBANDS)
donchian --> Donchian Channels (DC)
kc --> Keltner Channels (KC)
massi --> Mass Index (MASSI)
natr --> Normalized Average True Range (NATR)
pdist --> Price Distance (PDIST)
rvi --> Relative Volatility Index (RVI)
thermo --> Elders Thermometer (THERMO)
ui --> Ulcer Index (UI)
ad --> Accumulation/Distribution (AD)
cmf --> Chaikin Money Flow (CMF)
efi --> Elder's Force Index (EFI)
ecm --> Ease of Movement (EOM)
kvo --> Klinger Volume Oscillator (KVO)
mfi --> Money Flow Index (MFI)
nvi --> Negative Volume Index (NVI)
obv --> On Balance Volume (OBV)
pvi --> Positive Volume Index (PVI)
dvdi --> Dual Volume Divergence Index (DVDI)
xhh --> Dynamic rolling highest values
pvt --> Price-Volume Trend (PVT)
Remarks
I also incorporated func descriptions and func test script in commented mode, you can test the functino with the embedded test script and modify them as you wish.
This is a Level 3 free and open source indicator library.
Feedbacks are appreciated.
This is not the end of pandas_ta lib publication, but it is start point with pine v5 lib function and I will add more and more funcs into this lib for my own indicators.
Function Name List:
bton()
wcp()
count()
xbt()
ebsw()
ao()
apo()
xrf()
bias()
bop()
brar()
cci()
cfo()
cg()
cmo()
coppock()
cti()
dmi()
er()
eri()
fisher()
inertia()
kdj()
kst()
macd()
mom()
pgo()
ppo()
psl()
pvo()
qqe()
roc()
rsi()
rsx()
rvgi()
slope()
smi()
sqz_pro()
xfl()
stc()
stoch()
stochrsi()
trix()
tsi()
uo()
willr()
alma()
wcx()
xll()
dema()
ema()
fwma()
hilo()
hma()
hwma()
ichimoku()
jma()
kama()
linreg()
mgcd()
rma()
sinwma()
ssf()
supertrend()
xsa()
swma()
t3()
tema()
trima()
vidya()
vwap()
vwma()
wma()
zlma()
entropy()
kurtosis()
skew()
xev()
zscore()
adx()
aroon()
chop()
xex()
cksp()
dpo()
long_run()
psar()
short_run()
vhf()
vortex()
accbands()
atr()
bbands()
donchian()
kc()
massi()
natr()
pdist()
rvi()
thermo()
ui()
ad()
cmf()
efi()
ecm()
kvo()
mfi()
nvi()
obv()
pvi()
dvdi()
xhh()
pvt()
[DS]Bitcoin BTC ETH and others cryptos==DESCRIPTION - English version
The purpose of this script is to show information on graph that can help your decision to buy and sell cryptos.
The script is indicated for Position Trade (Long Term - Holder) and Swing Trade (Medium term).
Position Trade it is recommended to use the Weekly (W) and Daily (D) charts, Swing trade to use the 4H and 2H charts.
It is not advisable to use this indicator with graphic time frame less than 2 hours because the noise levels of information are very high.
An alert function has been inserted in the indicator and to activate this function you will need configure it in the Tradingview.
This alert will indicate the likely points of entry and exit of the asset.
**DESCRIÇÃO - Versão em Português
A proposta deste script é mostrar no gráfico informações que possam auxiliar a sua decisão de compra e venda de cryptos.
Este script é indicado para negociação Position Trade (Longo Prazo - Holders) e Swing Trade (Médio prazo).
Para Position Trade (Holders) é indicado utilizar os gráficos Semanal (W) e Diário (D), para Swing trade utilizar os gráficos 4H e 2H.
Não é aconselhável utilizar este indicador com tempos gráficos menores que 2hs pois os níveis de ruídos nas informação são muito altos.
Foi inserido no indicador uma função de alerta e para ativar esta função, você precisará configurá-la no seu Tradingview.
Este alerta irá indicar os provaveis pontos de entrada e saída do ativo.
====================================================================================================
** English Version
====================================================================================================
█ SETUP applied to Indicator
The setup is based on the average 8, 21 and 56 of the weekly chart (taught on youtube channel: Augusto Backes)
Price above the average 8 on the weekly, indicates that the market is UP trend, below the average 8 on the weekly that the market is DOWN trend
RSI greater than 60% the market is UP trend
RSI greater than 40% and lower 60% the market is in ACCUMULATION
RSI less than 40% the market DOWN trend
The weekly average 8 is represented in GREEN (Upward Trend) and RED (Downward Trend).
The weekly average 21 is represented in LIGHT ORANGE
The weekly average 56 is represented in LIGHT PURPLE
The crossing of weekly averages 8 and 21 is represented with a GREEN (HIGH trend) and RED (LOW trend) cross - this signal is disabled on the graph but you can enable it by clicking on the graph setup
█ FUNCTION USE
(1) Average 8, 21 and 56 on Weekly - show the average 8, 21, 56 weekly on graphic (Average 8 in color red and green, 21 - light orange, 56 light purple)
(2) Crossing of averages 8 and 21 Weekly - is not active but you can activate
(3) Calculation of RSI
(4) barcolor() - mark the candles with the green color (High market) and red color (Dow market)
(5) alertcondition() - you can active this alert on Tadingview
█ BUY AND SELL POINTS - likely points
The indication of the BUY position is shown by a green arrow pointing upwards and the sell position by a red arrow pointing downwards. Buy and sell indications are obtained from the divergence in the market trend.
█ THANK TO
PineCoders for everything they do, all the tools and help they provide, and their involvement in making a better community. All PineCoders, Pine Pros and Pine Wizards, people who share their work and knowledge because of it and helping others, I am so happy and so grateful.
█ NOTE
This indicator is not a buy and sell recommendation, it indicates the most likely buy and sell points. Every purchase and sale decision is your responsibility
*****************************************************************************************************
** Versão em Português
*****************************************************************************************************
█ SETUP aplicado no Indicador
O setup está baseado na média 8, 21, e 56 do gráfico semanal
Preço acima da média 8 no semanal indica que o mercado esta em tendência de ALTA, abaixo da média 8 no semanal que o mercado está em tendência de BAIXA
RSI maior que 60% o mercado está em ALTA
RSI maior que 40% e menor 60% o mercado está em ACUMULAÇÃO
RSI menor que 40% o mercado está em BAIXA
A média 8 semanal está representadas nas cores VERDE (Tendência de Alta) e VERMELHA (Tendência de Baixa).
A média 21 semanal está representada na cor laranja claro
A média 56 semanal está representada na cor roxa claro
O cruzamento das médias 8 e 21 semanal esta representado com uma cruz VERDE (Tendência de ALTA) e VERMELHA (Tendência de BAIXA) - este sinal esta desativado no gráfico mas você pode ativá-lo clicando no setup do gráfico
█ FUNÇÕES UTILIZADAS
(1) Média 8, 21 e 56 no Semanal - mostra a média 8, 21, e 56 no gráfico
(2) Cruzamento das médias 8 e 21 Semanal - não está ativo mas você pode ativá-lo
(3) Cálculo do RSI
(4) barcolor() - marca a vela (Candle) com a cor verde (Mercado em Alta) e a cor vermelha (Mercado em Baixa)
(5) alertcondition () - você pode ativar o alerta no Tradingview
█ PONTOS DE COMPRA E VENDA - prováveis pontos
A indicação da posição de COMPRA é apresentada por uma seta na cor verde apontada para cima e a posição de VENDA por uma seta na cor vermelha apontada para baixo. As indicações de compra e venda são obtidas a partir da divergência na tendência do mercado.
█ OBRIGADO PARA
PineCoders por tudo o que fazem, todas as ferramentas e ajuda que fornecem, e seu envolvimento em fazer uma comunidade melhor. Todos os PineCoders, Pine Pros e Pine Wizards, pessoas que compartilham seu trabalho e conhecimento por causa dele e ajudando os outros, estou muito feliz e muito grato.
█ NOTA
Este indicador não é uma recomendação de compra e venda ele indica os pontos mais prováveis de compra e venda. Toda decisão de compra e venda é de sua responsabilidade
Bitcoin Funds PremiumDisplay the % premium of 4 different Bitcoin Funds relative to the price of Bitcoin in your current chart.
BTCC ETF
QBTC Fund
GBTC Trust
VBTC ETN
This indicator uses the metrics from the fund management websites to calculate the "Net Asset Value per Unit (NAVPU)" to calculate the true underlying value of the fund.
The difference is then compared to the price of Bitcoin in the chart you have open.
Note that the metrics change and therefore the graph is not accurate for long past timeframes.
If TradingView would expand their script language in a way to ingest CSV data from the funds website then this could be improved.
You can update the metrics for each fund in the settings dialogue.
The script will autodetect the currency pairs of your current graph and only display compatible funds:
BTC / USD will show BTCC.U, QBTC.U and GBTC
BTC / CAD will show BTCC and QBTC
BTC / EUR will show VBTC
The script should not show in other currency pairs so it will not mess up other charts you might switch to.
If you find bugs with this logic, please comment below so I can fix them.
Due to TradingViews "no-links in description" policy, you need to google each funds website yourself to find the current metrics. These search terms should help:
BTCC search "Purpose Bitcoin ETF"
QBTC search "3iq The Bitcoin Fund (QBTC)"
GBTC search "Grayscale® Bitcoin Trust"
VBTC search "VanEck Vectors Bitcoin ETN"
Delta Volume Columns Pro [LucF]█ OVERVIEW
This indicator displays volume delta information calculated with intrabar inspection on historical bars, and feed updates when running in realtime. It is designed to run in a pane and can display either stacked buy/sell volume columns or a signal line which can be calculated and displayed in many different ways.
Five different models are offered to reveal different characteristics of the calculated volume delta information. Many options are offered to visualize the calculations, giving you much leeway in morphing the indicator's visuals to suit your needs. If you value delta volume information, I hope you will find the time required to master Delta Volume Columns Pro well worth the investment. I am confident that if you combine a proper understanding of the indicator's information with an intimate knowledge of the volume idiosyncrasies on the markets you trade, you can extract useful market intelligence using this tool.
█ WARNINGS
1. The indicator only works on markets where volume information is available,
Please validate that your symbol's feed carries volume information before asking me why the indicator doesn't plot values.
2. When you refresh your chart or re-execute the script on the chart, the indicator will repaint because elapsed realtime bars will then recalculate as historical bars.
3. Because the indicator uses different modes of calculation on historical and realtime bars, it's critical that you understand the differences between them. Details are provided further down.
4. Calculations using intrabar inspection on historical bars can only be done from some chart timeframes. See further down for a list of supported timeframes.
If the chart's timeframe is not supported, no historical volume delta will display.
█ CONCEPTS
Chart bars
Three different types of bars are used in charts:
1. Historical bars are bars that have already closed when the script executes on them.
2. The realtime bar is the current, incomplete bar where a script is running on an open market. There is only one active realtime bar on your chart at any given time.
The realtime bar is where alerts trigger.
3. Elapsed realtime bars are bars that were calculated when they were realtime bars but have since closed.
When a script re-executes on a chart because the browser tab is refreshed or some of its inputs are changed, elapsed realtime bars are recalculated as historical bars.
Why does this indicator use two modes of calculation?
Historical bars on TradingView charts contain OHLCV data only, which is insufficient to calculate volume delta on them with any level of precision. To mine more detailed information from those bars we look at intrabars , i.e., bars from a smaller timeframe (we call it the intrabar timeframe ) that are contained in one chart bar. If your chart Is running at 1D on a 24x7 market for example, most 1D chart bars will contain 24 underlying 1H bars in their dilation. On historical bars, this indicator looks at those intrabars to amass volume delta information. If the intrabar is up, its volume goes in the Buy bin, and inversely for the Sell bin. When price does not move on an intrabar, the polarity of the last known movement is used to determine in which bin its volume goes.
In realtime, we have access to price and volume change for each update of the chart. Because a 1D chart bar can be updated tens of thousands of times during the day, volume delta calculations on those updates is much more precise. This precision, however, comes at a price:
— The script must be running on the chart for it to keep calculating in realtime.
— If you refresh your chart you will lose all accumulated realtime calculations on elapsed realtime bars, and the realtime bar.
Elapsed realtime bars will recalculate as historical bars, i.e., using intrabar inspection, and the realtime bar's calculations will reset.
When the script recalculates elapsed realtime bars as historical bars, the values on those bars will change, which means the script repaints in those conditions.
— When the indicator first calculates on a chart containing an incomplete realtime bar, it will count ALL the existing volume on the bar as Buy or Sell volume,
depending on the polarity of the bar at that point. This will skew calculations for that first bar. Scripts have no access to the history of a realtime bar's previous updates,
and intrabar inspection cannot be used on realtime bars, so this is the only to go about this.
— Even if alerts only trigger upon confirmation of their conditions after the realtime bar closes, they are repainting alerts
because they would perhaps not have calculated the same way using intrabar inspection.
— On markets like stocks that often have different EOD and intraday feeds and volume information,
the volume's scale may not be the same for the realtime bar if your chart is at 1D, for example,
and the indicator is using an intraday timeframe to calculate on historical bars.
— Any chart timeframe can be used in realtime mode, but plots that include moving averages in their calculations may require many elapsed realtime bars before they can calculate.
You might prefer drastically reducing the periods of the moving averages, or using the volume columns mode, which displays instant values, instead of the line.
Volume Delta Balances
This indicator uses a variety of methods to evaluate five volume delta balances and derive other values from those balances. The five balances are:
1 — On Bar Balance : This is the only balance using instant values; it is simply the subtraction of the Sell volume from the Buy volume on the bar.
2 — Average Balance : Calculates a distinct EMA for both the Buy and Sell volumes, and subtracts the Sell EMA from the Buy EMA.
3 — Momentum Balance : Starts by calculating, separately for both Buy and Sell volumes, the difference between the same EMAs used in "Average Balance" and
an SMA of double the period used for the "Average Balance" EMAs. The difference for the Sell side is subtracted from the difference for the Buy side,
and an RSI of that value is calculated and brought over the −50/+50 scale.
4 — Relative Balance : The reference values used in the calculation are the Buy and Sell EMAs used in the "Average Balance".
From those, we calculate two intermediate values using how much the instant Buy and Sell volumes on the bar exceed their respective EMA — but with a twist.
If the bar's Buy volume does not exceed the EMA of Buy volume, a zero value is used. The same goes for the Sell volume with the EMA of Sell volume.
Once we have our two intermediate values for the Buy and Sell volumes exceeding their respective MA, we subtract them. The final "Relative Balance" value is an ALMA of that subtraction.
The rationale behind using zero values when the bar's Buy/Sell volume does not exceed its EMA is to only take into account the more significant volume.
If both instant volume values exceed their MA, then the difference between the two is the signal's value.
The signal is called "relative" because the intermediate values are the difference between the instant Buy/Sell volumes and their respective MA.
This balance flatlines when the bar's Buy/Sell volumes do not exceed their EMAs, which makes it useful to spot areas where trader interest dwindles, such as consolidations.
The smaller the period of the final value's ALMA, the more easily you will see the balance flatline. These flat zones should be considered no-trade zones.
5 — Percent Balance : This balance is the ALMA of the ratio of the "On Bar Balance" value, i.e., the volume delta balance on the bar (which can be positive or negative),
over the total volume for that bar.
From the balances and marker conditions, two more values are calculated:
1 — Marker Bias : It sums the up/down (+1/‒1) occurrences of the markers 1 to 4 over a period you define, so it ranges from −4 to +4, times the period.
Its calculation will depend on the modes used to calculate markers 3 and 4.
2 — Combined Balances : This is the sum of the bull/bear (+1/−1) states of each of the five balances, so it ranges from −5 to +5.
█ FEATURES
The indicator has two main modes of operation: Columns and Line .
Columns
• In Columns mode you can display stacked Buy/Sell volume columns.
• The buy section always appears above the centerline, the sell section below.
• The top and bottom sections can be colored independently using eight different methods.
• The EMAs of the Buy/Sell values can be displayed (these are the same EMAs used to calculate the "Average Balance").
Line
• Displays one of seven signals: the five balances or one of two complementary values, i.e., the "Marker Bias" or the "Combined Balances".
• You can color the line and its fill using independent calculation modes to pack more information in the display.
You can thus appraise the state of 3 different values using the line itself, its color and the color of its fill.
• A "Divergence Levels" feature will use the line to automatically draw expanding levels on divergence events.
Default settings
Using the indicator's default settings, this is the information displayed:
• The line is calculated on the "Average Balance".
• The line's color is determined by the bull/bear state of the "Percent Balance".
• The line's fill gradient is determined by the advances/declines of the "Momentum Balance".
• The orange divergence dots are calculated using discrepancies between the polarity of the "On Bar Balance" and the chart's bar.
• The divergence levels are determined using the line's level when a divergence occurs.
• The background's fill gradient is calculated on advances/declines of the "Marker Bias".
• The chart bars are colored using advances/declines of the "Relative Balance". Divergences are shown in orange.
• The intrabar timeframe is automatically determined from the chart's timeframe so that a minimum of 50 intrabars are used to calculate volume delta on historical bars.
Alerts
The configuration of the marker conditions explained further is what determines the conditions that will trigger alerts created from this script. Note that simply selecting the display of markers does not create alerts. To create an alert on this script, you must use ALT-A from the chart. You can create multiple alerts triggering on different conditions from this same script; simply configure the markers so they define the trigger conditions for each alert before creating the alert. The configuration of the script's inputs is saved with the alert, so from then on you can change them without affecting the alert. Alert messages will mention the marker(s) that triggered the specific alert event. Keep in mind, when creating alerts on small chart timeframes, that discrepancies between alert triggers and markers displayed on your chart are to be expected. This is because the alert and your chart are running two distinct instances of the indicator on different servers and different feeds. Also keep in mind that while alerts only trigger on confirmed conditions, they are calculated using realtime calculation mode, which entails that if you refresh your chart and elapsed realtime bars recalculate as historical bars using intrabar inspection, markers will not appear in the same places they appeared in realtime. So it's important to understand that even though the alert conditions are confirmed when they trigger, these alerts will repaint.
Let's go through the sections of the script's inputs.
Columns
The size of the Buy/Sell columns always represents their respective importance on the bar, but the coloring mode for tops and bottoms is independent. The default setup uses a standard coloring mode where the Buy/Sell columns are always in the bull/bear color with a higher intensity for the winning side. Seven other coloring modes allow you to pack more information in the columns. When choosing to color the top columns using a bull/bear gradient on "Average Balance", for example, you will have bull/bear colored tops. In order for the color of the bottom columns to continue to show the instant bar balance, you can then choose the "On Bar Balance — Dual Solid Colors" coloring mode to make those bars the color of the winning side for that bar. You can display the averages of the Buy and Sell columns. If you do, its coloring is controlled through the "Line" and "Line fill" sections below.
Line and Line fill
You can select the calculation mode and the thickness of the line, and independent calculations to determine the line's color and fill.
Zero Line
The zero line can display dots when all five balances are bull/bear.
Divergences
You first select the detection mode. Divergences occur whenever the up/down direction of the signal does not match the up/down polarity of the bar. Divergences are used in three components of the indicator's visuals: the orange dot, colored chart bars, and to calculate the divergence levels on the line. The divergence levels are dynamic levels that automatically build from the line's values on divergence events. On consecutive divergences, the levels will expand, creating a channel. This implementation of the divergence levels corresponds to my view that divergences indicate anomalies, hesitations, points of uncertainty if you will. It precludes any attempt to identify a directional bias to divergences. Accordingly, the levels merely take note of divergence events and mark those points in time with levels. Traders then have a reference point from which they can evaluate further movement. The bull/bear/neutral colors used to plot the levels are also congruent with this view in that they are determined by the line's position relative to the levels, which is how I think divergences can be put to the most effective use. One of the coloring modes for the line's fill uses advances/declines in the line after divergence events.
Background
The background can show a bull/bear gradient on six different calculations. As with other gradients, you can adjust its brightness to make its importance proportional to how you use it in your analysis.
Chart bars
Chart bars can be colored using seven different methods. You have the option of emptying the body of bars where volume does not increase, as does my TLD indicator, and you can choose whether you want to show divergences.
Intrabar Timeframe
This is the intrabar timeframe that will be used to calculate volume delta using intrabar inspection on historical bars. You can choose between four modes. The three "Auto-steps" modes calculate, from the chart's timeframe, the intrabar timeframe where the said number of intrabars will make up the dilation of chart bars. Adjustments are made for non-24x7 markets. "Fixed" mode allows you to select the intrabar timeframe you want. Checking the "Show TF" box will display in the lower-right corner the intrabar timeframe used at any given moment. The proper selection of the intrabar timeframe is important. It must achieve maximal granularity to produce precise results while not unduly slowing down calculations, or worse, causing runtime errors. Note that historical depth will vary with the intrabar timeframe. The smaller the timeframe, the shallower historical plots you will be.
Markers
Markers appear when the required condition has been confirmed on a closed bar. The configuration of the markers when you create an alert is what determines when the alert will trigger. Five markers are available:
• Balances Agreement : All five balances are either bullish or bearish.
• Double Bumps : A double bump is two consecutive up/down bars with +/‒ volume delta, and rising Buy/Sell volume above its average.
• Divergence confirmations : A divergence is confirmed up/down when the chosen balance is up/down on the previous bar when that bar was down/up, and this bar is up/down.
• Balance Shifts : These are bull/bear transitions of the selected signal.
• Marker Bias Shifts : Marker bias shifts occur when it crosses into bull/bear territory.
Periods
Allows control over the periods of the different moving averages used to calculate the balances.
Volume Discrepancies
Stock exchanges do not report the same volume for intraday and daily (or higher) resolutions. Other variations in how volume information is reported can also occur in other markets, namely Forex, where volume irregularities can even occur between different intraday timeframes. This will cause discrepancies between the total volume on the bar at the chart's timeframe, and the total volume calculated by adding the volume of the intrabars in that bar's dilation. This does not necessarily invalidate the volume delta information calculated from intrabars, but it tells us that we are using partial volume data. A mechanism to detect chart vs intrabar timeframe volume discrepancies is provided. It allows you to define a threshold percentage above which the background will indicate a difference has been detected.
Other Settings
You can control here the display of the gray dot reminder on realtime bars, and the display of error messages if you are using a chart timeframe that is not greater than the fixed intrabar timeframe, when you use that mode. Disabling the message can be useful if you only use realtime mode at chart timeframes that do not support intrabar inspection.
█ RAMBLINGS
On Volume Delta
Volume is arguably the best complement to interpret price action, and I consider volume delta to be the most effective way of processing volume information. In periods of low-volatility price consolidations, volume will typically also be lower than normal, but slight imbalances in the trend of the buy/sell volume balance can sometimes help put early odds on the direction of the break from consolidation. Additionally, the progression of the volume imbalance can help determine the proximity of the breakout. I also find volume delta and the number of divergences very useful to evaluate the strength of trends. In trends, I am looking for "slow and steady", i.e., relatively low volatility and pauses where price action doesn't look like world affairs are being reassessed. In my personal mythology, this type of trend is often more resilient than high-volatility breakouts, especially when volume balance confirms the general agreement of traders signaled by the low-volatility usually accompanying this type of trend. The volume action on pauses will often help me decide between aggressively taking profits, tightening a stop or going for a longer-term movement. As for reversals, they generally occur in high-volatility areas where entering trades is more expensive and riskier. While the identification of counter-trend reversals fascinates many traders to no end, they represent poor opportunities in my view. Volume imbalances often precede reversals, but I prefer to use volume delta information to identify the areas following reversals where I can confirm them and make relatively low-cost entries with better odds.
On "Buy/Sell" Volume
Buying or selling volume are misnomers, as every unit of volume transacted is both bought and sold by two different traders. While this does not keep me from using the terms, there is no such thing as “buy only” or “sell only” volume. Trader lingo is riddled with peculiarities.
Divergences
The divergence detection method used here relies on a difference between the direction of a signal and the polarity (up/down) of a chart bar. When using the default "On Bar Balance" to detect divergences, however, only the bar's volume delta is used. You may wonder how there can be divergences between buying/selling volume information and price movement on one bar. This will sometimes be due to the calculation's shortcomings, but divergences may also occur in instances where because of order book structure, it takes less volume to increase the price of an asset than it takes to decrease it. As usual, divergences are points of interest because they reveal imbalances, which may or may not become turning points. To your pattern-hungry brain, the divergences displayed by this indicator will — as they do on other indicators — appear to often indicate turnarounds. My opinion is that reality is generally quite sobering and I have no reliable information that would tend to prove otherwise. Exercise caution when using them. Consequently, I do not share the overwhelming enthusiasm of traders in identifying bullish/bearish divergences. For me, the best course of action when a divergence occurs is to wait and see what happens from there. That is the rationale underlying how my divergence levels work; they take note of a signal's level when a divergence occurs, and it's the signal's behavior from that point on that determines if the post-divergence action is bullish/bearish.
Superfluity
In "The Bed of Procrustes", Nassim Nicholas Taleb writes: To bankrupt a fool, give him information . This indicator can display lots of information. While learning to use a new indicator inevitably requires an adaptation period where we put it through its paces and try out all its options, once you have become used to it and decide to adopt it, rigorously eliminate the components you don't use and configure the remaining ones so their visual prominence reflects their relative importance in your analysis. I tried to provide flexible options for traders to control this indicator's visuals for that exact reason — not for window dressing.
█ LIMITATIONS
• This script uses a special characteristic of the `security()` function allowing the inspection of intrabars — which is not officially supported by TradingView.
It has the advantage of permitting a more robust calculation of volume delta than other methods on historical bars, but also has its limits.
• Intrabar inspection only works on some chart timeframes: 3, 5, 10, 15 and 30 minutes, 1, 2, 3, 4, 6, and 12 hours, 1 day, 1 week and 1 month.
The script’s code can be modified to run on other resolutions.
• When the difference between the chart’s timeframe and the intrabar timeframe is too great, runtime errors will occur. The Auto-Steps selection mechanisms should avoid this.
• All volume is not created equally. Its source, components, quality and reliability will vary considerably with sectors and instruments.
The higher the quality, the more reliably volume delta information can be used to guide your decisions.
You should make it your responsibility to understand the volume information provided in the data feeds you use. It will help you make the most of volume delta.
█ NOTES
For traders
• The Data Window shows key values for the indicator.
• While this indicator displays some of the same information calculated in my Delta Volume Columns ,
I have elected to make it a separate publication so that traders continue to have a simpler alternative available to them. Both code bases will continue to evolve separately.
• All gradients used in this indicator determine their brightness intensities using advances/declines in the signal—not their relative position in a pre-determined scale.
• Volume delta being relative, by nature, it is particularly well-suited to Forex markets, as it filters out quite elegantly the cyclical volume data characterizing the sector.
If you are interested in volume delta, consider having a look at my other "Delta Volume" indicators:
• Delta Volume Realtime Action displays realtime volume delta and tick information on the chart.
• Delta Volume Candles builds volume delta candles on the chart.
• Delta Volume Columns is a simpler version of this indicator.
For coders
• I use the `f_c_gradientRelativePro()` from the PineCoders Color Gradient Framework to build my gradients.
This function has the advantage of allowing begin/end colors for both the bull and bear colors. It also allows us to define the number of steps allowed for each gradient.
I use this to modulate the gradients so they perform optimally on the combination of the signal used to calculate advances/declines,
but also the nature of the visual component the gradient applies to. I use fewer steps for choppy signals and when the gradient is used on discrete visual components
such as volume columns or chart bars.
• I use the PineCoders Coding Conventions for Pine to write my scripts.
• I used functions modified from the PineCoders MTF Selection Framework for the selection of timeframes.
█ THANKS TO:
— The devs from TradingView's Pine and other teams, and the PineCoders who collaborate with them. They are doing amazing work,
and much of what this indicator does could not be done without their recent improvements to Pine.
— A guy called Kuan who commented on a Backtest Rookies presentation of their Volume Profile indicator using a `for` loop.
This indicator started from the intrabar inspection technique illustrated in Kuan's snippet.
— theheirophant , my partner in the exploration of the sometimes weird abysses of `security()`’s behavior at intrabar timeframes.
— midtownsk8rguy , my brilliant companion in mining the depths of Pine graphics.
Currency Strength ALT v1.0Description:
This study is a version of Currency Strength Meter, that utilises TradingViews built-in 8 Currency indices (?XY), rather calculate them from currency pair values. It also utilises the built-in TSI function, the TSI uses moving averages of the underlying momentum of a financial instrument. The advantage of using the Currency Indices for strength is the fact that they are based on multiple Exchange sources and so hopefully making it more representative.
***WARNING*** The TradingView Currency Indices do tend to have gaps between candles especially on the low volume currencies like NZD and AUD, so strength chart can also jump around. I suggest using the indicator with higher TF (4H+) charts.
MACD SMOOTH - A ZULU_KILO INDICATORHey Tradingviewers!
Another Zulu_Kilo indicator coming at ya!
This will be an open source script as the base code comes from another Tradingview user, their original info is in the script.
This is a revision of an MACD smoothed script which mostly adds the capability for the indicator to show you bullish/bearish crosses in red/maroon background colors.
Use this along with other indicators as a confirmation of price action. It is recommended to confirm candles with it.
-Happy Trading!
MACD StrategyOverview
The "MACD Strategy" is a straightforward trading strategy tested for BTCUSDT Futures on the 1-minute timeframe, leveraging the Moving Average Convergence Divergence (MACD) indicator to identify momentum-based buy and sell opportunities. Developed with input from expert trading analyst insights, this strategy combines technical precision with risk management, making it suitable for traders of all levels on platforms like TradingView. It focuses on capturing trend reversals and momentum shifts, with clear visual cues and automated alerts for seamless integration with trading bots (e.g., Bitget webhooks).
#### How It Works
This strategy uses the MACD indicator to generate trading signals based on momentum and trend direction:
- **Buy Signal**: Triggered when the MACD line crosses above the signal line, and the MACD histogram turns positive (above zero). This suggests increasing bullish momentum.
- **Sell Signal**: Triggered when the MACD line crosses below the signal line, and the MACD histogram turns negative (below zero), indicating growing bearish momentum.
Once a signal is detected, the strategy opens a position (long for buy, short for sell) with a position size calculated based on your risk tolerance. It includes a stop-loss to limit losses and a take-profit to lock in gains, both dynamically adjusted using the Average True Range (ATR) for adaptability to market volatility.
#### Key Features
- **MACD-Based Signals**: Relies solely on MACD for entry points, plotted in a separate pane for clear momentum analysis.
- **Risk Management**: Automatically calculates position size based on a percentage of your account balance and sets stop-loss and take-profit levels using ATR multipliers and a risk:reward ratio.
- **Visual Feedback**: Plots entry, stop-loss, and take-profit lines on the chart with labeled markers for easy tracking.
- **Alerts**: Includes Bitget webhook-compatible alerts for automated trading, notifying you of buy and sell signals in real-time.
#### Input Parameters
- **Account Balance**: Default 10000 – Set your initial trading capital to determine position sizing.
- **MACD Fast Length**: Default 12 – The short-term EMA period for MACD sensitivity.
- **MACD Slow Length**: Default 26 – The long-term EMA period for MACD calculation.
- **MACD Signal Length**: Default 9 – The smoothing period for the signal line.
- **Risk Per Trade (%)**: Default 3.0 – The percentage of your account balance risked per trade (e.g., 3% of 10000 = 300).
- **Risk:Reward Ratio**: Default 3.0 – The ratio of potential profit to risk (e.g., 3:1 means risking 1 to gain 3).
- **SL Multiplier**: Default 1.0 – Multiplies ATR to set the stop-loss distance (e.g., 1.0 x ATR).
- **TP Multiplier**: Default 3.0 – Multiplies ATR to set the take-profit distance, adjusted by the risk:reward ratio.
- **Line Length (bars)**: Default 25 – Duration in bars for displaying trade lines on the chart.
- **Label Position**: Default 'left' – Position of text labels (left or right) relative to trade lines.
- **ATR Period**: Default 14 – The number of periods for calculating ATR to measure volatility.
#### How to Use
1. **Add to Chart**: Load the "MACD Strategy" as a strategy and the "MACD Indicator" as a separate indicator on your TradingView chart (recommended for BTCUSDT Futures on the 1-minute timeframe).
2. **Customize Settings**: Adjust the input parameters based on your risk tolerance and market conditions. For BTCUSDT Futures, consider reducing `Risk Per Trade (%)` during high volatility (e.g., 1%) or increasing `SL Multiplier` for wider stops.
3. **Visual Analysis**: Watch the main chart for trade entry lines (green for buy, red for sell), stop-loss (red), and take-profit (green) lines with labels. Use the MACD pane below to confirm momentum shifts.
4. **Set Alerts**: Create alerts in TradingView for "Buy Signal" and "Sell Signal" to automate trades via Bitget webhooks.
5. **Backtest and Optimize**: Test the strategy on historical BTCUSDT Futures 1-minute data to fine-tune parameters. The short timeframe requires quick execution, so monitor closely for slippage or latency.
#### Tips for Success
- **Market Conditions**: This strategy performs best in trending markets on the 1-minute timeframe. Avoid choppy conditions where MACD crossovers may produce false signals.
- **Risk Management**: Start with the default 3% risk per trade and adjust downward (e.g., 1%) during volatile periods like BTCUSDT news events. The 3:1 risk:reward ratio targets consistent profitability.
- **Timeframe**: Optimized for 1-minute charts; switch to 5-minute or 15-minute for less noise if needed.
- **Confirmation**: Cross-check MACD signals with price action or support/resistance levels for higher accuracy on BTCUSDT Futures.
#### Limitations
- This strategy relies solely on MACD, so it may lag in fast-moving or sideways markets. Consider adding a secondary filter (e.g., RSI) if needed.
- Stop-loss and take-profit are ATR-based and may need adjustment for BTCUSDT Futures’ high volatility, especially during leverage trading.
#### Conclusion
The "MACD Strategy" offers a simple yet effective way to trade momentum shifts using the MACD indicator, tested for BTCUSDT Futures on the 1-minute timeframe, with robust risk management and visual tools. Whether you’re scalping crypto futures or exploring short-term trends, this strategy provides a solid foundation for automated or manual trading. Share your feedback or customizations in the comments, and happy trading!
ConcatenatedAlertsHi all!
This library is useful if you want to concatenate every tick alert for sending on bar close. The 'alert()' function, provided by Tradingview, with the 'freq' parameter set to 'alert.freq_once_per_bar_close' only fires when the realtime bar closes. So if something has happened intrabar, the alert wont be sent.
This library concatenates all alert messages during the bar and sends them on bar close with a header saying how many messages it contains.
It's useful in many cases, but here are a few examples:
When you want alerts for a zone having a breakout (with a candle close) and another one being entered, like this:
When a candle breaks through 2, or more, lines. Like in this example:
There are of course more useful use cases, but above is 2 examples.
The library uses an own enum saying 'alert.freq_all', 'alert.freq_once_per_bar' and 'alert.freq_once_per_bar_close'. The value of this enumeration represents how often an alert will be sent. 'alert.freq_all' and 'alert.freq_once_per_bar' will behave as the once in the 'alert()' function provided by Tradingview. No concatenatination will take place in this case. However, when 'alert.freq_once_per_bar_close' is set, concatenatination will happen with all alert messages during the bar and sent on bar close. Helper functions can be used for both the string value used by the 'alert()' function by Tradingview and this enum type. Example code is provided in the source code, with the usage of input values for both this string and the enumeration.
Hope this is of help!
Concatenate(a_lert, message)
Concatenates all alert messages (called on every tick) to fire all of them with 'Alert()'.
Parameters:
a_lert (Alert) : The 'Alert' object to be used for the alert messages concatination.
message (string) : The string message to be added to the bar alert.
Alert(a_lert)
When the 'Alert.Frequency' is set to fire on the current tick, this function will concatenate all messages on the current bar and fire an alert. Concatenation will occur if 'alert.freq_once_per_bar_close' is set on 'a_lert.Frequency' separated by new lines and a header saying how many messages the bar contains.
Parameters:
a_lert (Alert) : The 'Alert' object to be used for the alert messages concatination and all its 'Messages' will be alerted.
Create(frequency)
Helper function to create an 'Alert' object.
Parameters:
frequency (series Frequency) : The 'Frequency' in the created 'Alert' object.
Returns: The 'Alert' object that can be used for concatination.
CreateFromAlertFreq(alertFreq)
Helper function to convert 'alert.freq_all', 'alert.freq_once_per_bar' or 'lert.freq_once_per_bar_close'.
Parameters:
alertFreq (string) : The 'alert.freq_all', 'alert.freq_once_per_bar' or 'lert.freq_once_per_bar_close' to convert to 'Frequency' enum.
Returns: The 'Alert' object that can be used for concatination.
Alert
Holds all the values for the 'Alert' to be used.
Fields:
Messages (array) : Holds the alert messages within the current bar that will be sent according to 'Frequency'.
Frequency (series Frequency) : The frequency for the final alert. One of 'alert.freq_all', 'alert.freq_once_per_bar' or 'alert.freq_once_per_bar_close'. If 'alert.freq_all' is set the alert messages will be fired on each tick and no concatination will occure. The same when 'alert.freq_once_per_bar' is set, but the alert will only fire once per bar. If 'alert.freq_once_per_bar_close' is set concatenation will occure before sending an alert (with all concatenated messages) on bar close.
SkipAddition (series bool) : Will skip addition of messages. Used internally if 'Frequency' is 'alert.freq_once_per_bar'.
ANAND RSI&HAHow to Set Up Alerts in TradingView:
Apply the indicator to your chart
Right-click on the chart → "Add Alert"
Choose your preferred alert condition:
"HA-RSI Buy/Sell Alerts" (combined)
"HA-RSI Buy Alert" (buy only)
"HA-RSI Sell Alert" (sell only)
Set your notification preferences (popup, email, webhook, etc.)
Alert Messages Include:
Clear BUY/SELL indication with colored emojis (🟢/🔴)
Ticker symbol
Current price
Descriptive message about the signal
Peak & Valley Screener RadarThis Pine Script indicator is designed to help traders and investors analyze the percentage distance of stock prices from their recent All-Time High (ATH) and All-Time Low (ALH) over a user-defined number of bars.
It functions as a multi-stock screener, scanning a customizable list of stocks (default: 40 BIST 500 stocks) and displaying results in a dynamic table on the chart.
The script identifies stocks that have pulled back more than a specified percentage from their ATH (potential buying opportunities) or risen less than a specified percentage from their ALH (potential caution zones).
Key Features:
Customizable Stock List: Users can input a comma-separated list of stock tickers (e.g., "AAPL,GOOGL,MSFT") to scan any symbols available on TradingView.
User-Defined Parameters: Adjust the lookback period (bars back, default 250), ATH pullback threshold (default 10%), and ALH rise threshold (default 10%).
Dynamic Table Display: Results are shown in a table with two columns: "Distance to TOP" (ATH pullbacks in red) and "Distance to BOTTOM" (ALH rises in green). The table includes input parameters for quick reference and can be positioned anywhere on the chart (top/bottom left/center/right).
Optional Plots: Toggle plots to visualize the percentage distances for the current chart symbol (red for ATH, green for ALH).
Efficient Data Handling: Uses request.security with tuples for optimized multi-symbol data fetching, supporting up to ~80 stocks without exceeding Pine Script limits (adjust table rows if needed for more).
Real-Time Updates: The table updates only on the last bar for performance efficiency.
How It Works:
The script calculates the highest high and lowest low over the specified bars for each stock.
It computes the percentage difference from the current close: negative for ATH (pullback) and positive for ALH (rise).
Stocks meeting the thresholds are listed in the table with their exact percentages.
Usage Tips:
Apply this indicator to any chart (e.g., a BIST index or stock) to run the screener in the background.
Ideal for swing traders scanning for undervalued stocks near ATH or overbought near ALH.
Note: Performance may vary with large stock lists due to TradingView's security call limits (~40-50 calls per script). Test with smaller lists if needed.
You can bypass the 40-stock limit by adding the indicator twice to the chart, entering 40 different stocks in the second indicator and setting a different table position from the first one, allowing you to scan 80 stocks simultaneously. In fact, this way, you can scan as many stocks as your plan's limits allow.
This script is released under the Mozilla Public License 2.0. Feedback and suggestions are welcome, but please adhere to TradingView's House Rules—no guarantees of profitability, use at your own risk.Disclaimer: This is not financial advice. Past performance does not predict future results. Always conduct your own research.
TPO[Fixed Range, Anchored, Bars Back]TPO Bars Back, Fixed Range and Anchored
Overview
The TPO Profile (Time Price Opportunity Profile) is a powerful market profile indicator that displays the amount of time price spent at different levels during a specified period. Unlike traditional volume profile indicators that show volume distribution, TPO Profile shows time distribution , providing insights into where price has spent the most time and identifying key support and resistance levels.
Key Advantages Over TradingView's Built-in TPO
Simplified Composite Creation : Automatically creates TPO profiles for any time range without manual split/merge operations
Instant Value Area Calculation : Immediately shows Value Area, POC, VAH, and VAL for your selected period
No Manual Assembly Required : TradingView's native TPO requires you to manually split sessions and merge them to create composites - this indicator does it automatically
Flexible Time Ranges : Create composites for any custom time period (multiple days, weeks, specific events) with a few clicks
Real-time Composite Updates : Anchor mode creates live composites that update as new data arrives
Multiple Composite Analysis : Easily compare different time periods without the tedious manual process
Key Features
Core Functionality
Time-Based Analysis : Shows time spent at each price level rather than volume
Configurable Time Blocks : Use any timeframe for TPO counting (30min, 1H, 4H, etc.)
Multiple Price Levels : Adjustable from 5 to 200 levels for granular analysis
Point of Control (POC) : Automatically identifies the price level with highest time activity
Value Area Calculation : Shows the price range containing 70% (configurable) of time activity
Automatic Composite Generation : Creates multi-session composites without manual intervention
Three Operating Modes
1. Bars Back Mode
Analyzes the last N bars from the current bar
Perfect for recent market activity analysis
Range: 10-500 bars
Use Case : Intraday analysis, recent session review
2. Fixed Range Mode
Analyzes a specific time period between start and end times
Ideal for historical analysis of specific events
Creates perfect composites for multi-day periods
Use Case : Earnings periods, news events, specific trading sessions, weekly/monthly composites
3. Anchor Mode (NEW)
Starts from a specific time and extends to the current bar
Dynamically updates as new bars form
Perfect for building live composites from any starting point
Use Case : Live session monitoring, event-based analysis from a specific point, growing composites
Visual Elements
TPO Bars
Horizontal bars showing time distribution at each price level
Longer bars = more time spent at that level
Color-coded to distinguish Value Area from outlying levels
Point of Control (POC)
Red line marking the price level with highest time activity
Most significant support/resistance level
Configurable line style (Solid/Dashed/Dotted) and width
Value Area High/Low (VAH/VAL)
Green and Orange lines marking the boundaries of the Value Area
Shows the price range containing the specified percentage of time activity
Optional display with customizable line styles
Single Print Detection
Identifies price levels touched by only one time block
Display options: Lines or Boxes
Purple color highlighting these significant levels
Often act as strong support/resistance in future trading
Customization Options
Time Block Configuration
Block Time : Choose timeframe for TPO counting (30min, 1H, 4H, etc.)
Allows analysis at different time granularities
Higher timeframes = broader perspective, Lower timeframes = finer detail
Visual Styling
Line Styles : Solid, Dashed, or Dotted for all line elements
Line Widths : 1-5 pixels for POC, VAH, and VAL lines
Colors : Fully customizable colors for all elements
Transparency : Adjustable transparency for better chart readability
Label Management
Show/Hide Labels : Toggle POC, VAH, VAL labels
Font Sizes : Tiny, Small, Normal, Large, Huge
Label Positioning : 8 different position options relative to lines
Offset Controls : Fine-tune label positioning
Line Extension
Level Offset Right : Controls how far lines extend
Smart extension logic:
Value ≤ 0: Infinite extension (extend.right)
Value ≥ 1: Extends exactly N bars ahead
Trading Applications
Support & Resistance
POC often acts as strong support/resistance
Value Area boundaries provide key levels
Single prints frequently become significant levels
Market Structure Analysis
Identify areas of price acceptance (thick TPO bars)
Spot areas of price rejection (thin TPO bars)
Understand where market participants are comfortable trading
Composite Profile Analysis
Create multi-day, weekly, or monthly composites instantly
Compare different composite periods without manual work
Analyze longer-term price acceptance levels
Build composites around specific events or announcements
Session Analysis
Monitor intraday session development in real-time
Compare different sessions (London, New York, Asia)
Track how profiles change throughout the trading day
Build live composites across multiple sessions
Event Analysis
Use Fixed Range mode for earnings, news events
Use Anchor mode to track price development from specific events
Compare pre/post event price acceptance levels
Create event-based composites automatically
Input Parameters
Mode Selection
Mode : Bars Back | Fixed Range | Anchor
Bars Back : Number of bars to analyze (10-500)
Start Time : Beginning time for Fixed Range and Anchor modes
End Time : Ending time for Fixed Range mode only
Analysis Configuration
Block Time : Timeframe for TPO blocks (e.g., "30" for 30-minute blocks)
TPO Levels : Number of price levels (5-200)
Value Area % : Percentage for Value Area calculation (50-95%)
Display Options
Show POC : Display Point of Control line
Show Value Area : Display Value Area box
Show VAH/VAL Lines : Display Value Area boundary lines
Show Single Prints : Display single print detection
Single Print Style : Lines or Boxes
Styling Controls
Colors : TPO, POC, Value Area, VAH, VAL, Single Print colors
Line Styles : POC, VAH, VAL line styles
Line Widths : POC, VAH, VAL line widths
Labels : Show/hide, font size, position, offset controls
Technical Details
Calculation Method
Divides the price range into equal levels based on TPO Levels setting
For each time block, determines which price levels it crosses
Adds +1 count to each crossed level
Identifies POC as the level with highest count
Calculates Value Area by expanding from POC until target percentage is reached
Performance Considerations
Historical data limited to prevent buffer overflow errors
Smart bounds checking for different timeframes
Optimized cleanup routines to prevent drawing object accumulation
Pine Script Version
Built on Pine Script v6
Uses modern Pine Script best practices
Efficient array handling and drawing object management
Best Practices
Timeframe Selection
Block Time = Chart Timeframe : Traditional TPO approach
Block Time > Chart Timeframe : Smoother, broader perspective
Block Time < Chart Timeframe : More granular, detailed analysis
Level Count Guidelines
Low levels (10-20) : Better for swing trading, major levels
High levels (50-100) : Better for scalping, precise entries
Very high levels (100+) : For very detailed analysis
Mode Selection
Bars Back : Daily analysis, recent activity
Fixed Range : Historical events, specific periods, manual composites
Anchor : Live monitoring, event-based analysis, growing composites
Composite Creation Workflow
Select Fixed Range or Anchor mode
Set your desired start time (and end time for Fixed Range)
Adjust TPO Levels for desired granularity
Enable VAH/VAL lines to see Value Area boundaries
The composite profile generates automatically with all key levels
This indicator eliminates the tedious manual process of creating composite TPO profiles in TradingView. Instead of splitting sessions and manually merging them, you get instant composite analysis with automatic Value Area calculation, POC identification, and single print detection. The combination of time-based analysis, multiple operating modes, and extensive customization options makes it a powerful tool for understanding market structure and price acceptance levels across any time period.
LTHB & HTLB Zones with AlertsIn price action trading, the Lowest Tick of the Highest Bar (LTHB) and the Highest Tick of the Lowest Bar (HTLB) are important concepts for support/resistance identification, trend exhaustion, and reversal confirmation. Here's what they mean and why they matter:
🔹 Definitions
1. Lowest Tick of the Highest Bar (LTHB):
The lowest price (tick) of the bar (candlestick) with the highest high in a recent price swing.
Significance: It marks the support inside an upward swing. If price breaks below this, it often indicates loss of upward momentum or reversal.
2. Highest Tick of the Lowest Bar (HTLB):
The highest price of the bar with the lowest low in a swing.
Significance: It acts as a resistance inside a downward swing. If price moves above this, it can signal a bullish reversal.
🔸 Why Are They Significant?
Concept LTHB HTLB
Trend Reversal - Break below LTHB → possible bearish reversal Break above HTLB → possible bullish reversal
Swing Confirmation -Holding above LTHB → continuation of uptrend Holding below HTLB → continuation of downtrend
Trap Detection - Stop hunts often occur just below LTHB Stop hunts often occur just above HTLB
Risk Management -Acts as logical stop-loss in long trades Acts as logical stop-loss in short trades
🔸 Uses in Strategy
1. Breakout Traders use these levels as entry triggers.
2. Reversal Traders look for price failing to hold these levels for early reversal signs.
3. Structure-Based Traders use them to confirm higher highs/lower lows.
4. Stop Placement: Tight stops just beyond LTHB/HTLB help manage risk in swing trades.
🔔 How to Set Alerts in TradingView:
Add the script to your chart.
Open the "⚠️ Alerts" tab.
Click "Create Alert".
In the "Condition" dropdown, select one of:
Enter LTHB Zone
Exit LTHB Zone
Enter HTLB Zone
Exit HTLB Zone
Set desired alert frequency (e.g., once per bar or once).
Click Create.