Premium & Discount Delta Volume [BigBeluga]Premium & Discount Delta Volume is an advanced volume-based tool that helps traders identify zones of market imbalances by using the concepts of premium and discount pricing, commonly taught by ICT trader. It calculates and highlights periods where the market is trading at a premium (selling pressure is stronger) or a discount (buying pressure is stronger) and dynamically plots these zones over time. The indicator also calculates delta volume between buying and selling within these zones, showing shifts in market sentiment and potential areas for reversals or continuations.
🔵 IDEA
The Premium & Discount Delta Volume indicator is rooted in the ICT (Inner Circle Trader) concept of premium and discount zones. This concept divides the price action into two key zones:
Premium Zone : This area is where the market is trading at a level where sellers dominate, leading to more selling pressure. The idea is that the price is overvalued, and a potential drop could occur as the market reverts to a balanced state.
Discount Zone : This area is where the market is undervalued, with buyers dominating and applying upward pressure. Prices in this area often indicate opportunities to buy into strength as the market moves back to equilibrium.
At the core of the indicator is the delta volume, which measures the difference between buying and selling pressure within the premium and discount zones. When the delta volume is negative, it signals a downtrend with more selling pressure, while a positive delta volume signals an uptrend with more buying pressure. These zones and their associated delta values update dynamically, providing traders with real-time insights into market strength and potential price reversals.
The equilibrium in the middle of the premium and discount zones represents the balance point between buyers and sellers. When price moves away from equilibrium, it either enters the premium zone (potentially overbought) or the discount zone (potentially oversold), helping traders make more informed decisions based on volume and price structure.
🔵 KEY FEATURES & USAGE
Premium & Discount Zones:
The indicator automatically identifies and plots premium and discount zones on the chart. Premium zones count only negative (selling) volume, while discount zones count only positive (buying) volume. These zones are key areas of interest for identifying potential price reversals or continuations based on volume pressure.
Dynamic Delta Volume Calculation:
The indicator calculates delta volume between the premium and discount zones, showing the imbalance between buyers and sellers. A positive delta volume inside the discount zone suggests strong buying pressure, while a negative delta inside the premium zone suggests strong selling pressure. This helps traders quickly identify trends or market exhaustion.
Up Trend:
Down Trend:
Real-time Updates & Equilibrium Line:
The zones update dynamically every 100 bars or after price crosses them, ensuring that traders always have the most relevant market data. The equilibrium line in the middle of the zones helps traders gauge whether the market is balanced or moving into overbought (premium) or oversold (discount) territory.
Macro and Local Period Calculations:
The indicator allows traders to customize two different periods for analysis: a smaller lookback period (e.g., 50 bars) for short-term price action and a macro period (e.g., 200 bars) for larger trends. Each period has its own premium and discount zones, allowing for a multi-timeframe view of market strength.
Macro:
Both:
Color-coded background for Volume Pressure:
The background color of the smaller period premium and discount box changes based on delta volume. A positive delta turns the background blue, indicating higher buy pressure, while a negative delta turns the background red, signaling higher sell pressure.
🔵 CUSTOMIZATION
Toggle Premium & Discount: Traders can choose to display support and resistance levels based on the high and low points of the premium and discount zones.
Premium & Discount Lookback Period: Traders can adjust the lookback period to define the length of price action to be analyzed for premium and discount zones. A shorter period focuses on more recent market activity, while a longer period provides a broader view of trends.
Macro Highs/Lows Period: The indicator also offers a macro lookback period for identifying larger market trends and key levels of buying or selling volume.
Toggle Macro Levels: Macro levels help identify long-term price extremes, and traders can toggle this feature on or off as needed.
Трендовый анализ
Standard Deviation-Based Fibonacci Band by zdmre This indicator is designed to better understand market dynamics by focusing on standard deviation and the Fibonacci sequence. This indicator includes the following components to assist investors in analyzing price movements:
Weighted Moving Average (WMA) : The indicator creates a central band by utilizing the weighted moving average of standard deviation. WMA provides a more current and accurate representation by giving greater weight to recent prices. This central band offers insights into the general trend of the market, helping to identify potential buying and selling opportunities.
Fibonacci Bands : The Fibonacci bands located above and below the central band illustrate potential support and resistance levels for prices. These bands enable investors to pinpoint areas where the price may exhibit indecisiveness. When prices move within these bands, it may be challenging for investors to discern the market's preferred direction.
Indecisiveness Representation : When prices fluctuate between the Fibonacci bands, they may reflect a state of indecisiveness. This condition is critical for identifying potential reversal points and trend changes. Investors can evaluate these periods of indecisiveness to develop suitable buying and selling strategies.
This indicator is designed to assist investors in better analyzing market trends and supporting their decision-making processes. The integration of standard deviation and the Fibonacci sequence offers a new perspective on understanding market movements.
#DYOR
The Bar Counter Trend Reversal Strategy [TradeDots]Overview
The Bar Counter Trend Reversal Strategy is designed to identify potential counter-trend reversal points in the market after a series of consecutive rising or falling bars.
By analyzing price movements in conjunction with optional volume confirmation and channel bands (Bollinger Bands or Keltner Channels), this strategy aims to detect overbought or oversold conditions where a trend reversal may occur.
🔹How it Works
Consecutive Price Movements
Rising Bars: The strategy detects when there are a specified number of consecutive rising bars (No. of Rises).
Falling Bars: Similarly, it identifies a specified number of consecutive falling bars (No. of Falls).
Volume Confirmation (Optional)
When enabled, the strategy checks for increasing volume during the consecutive price movements, adding an extra layer of confirmation to the potential reversal signal.
Channel Confirmation (Optional)
Channel Type: Choose between Bollinger Bands ("BB") or Keltner Channels ("KC").
Channel Interaction: The strategy checks if the price interacts with the upper or lower channel lines: For short signals, it looks for price moving above the upper channel line. For long signals, it looks for price moving below the lower channel line.
Customization:
No. of Rises/Falls: Set the number of consecutive bars required to trigger a signal.
Volume Confirmation: Enable or disable volume as a confirmation factor.
Channel Confirmation: Enable or disable channel bands as a confirmation factor.
Channel Settings: Adjust the length and multiplier for the Bollinger Bands or Keltner Channels.
Visual Indicators:
Entry Signals: Triangles plotted on the chart indicate potential entry points:
Green upward triangle for long entries.
Red downward triangle for short entries.
Channel Bands: The upper and lower bands are plotted for visual reference.
Strategy Parameters:
Initial Capital: $10,000.
Position Sizing: 80% of equity per trade.
Commission: 0.01% per trade to simulate realistic trading costs.
🔹Usage
Set up the number of Rises/Falls and choose whether if you want to use channel indicators and volume as the confirmation.
Monitor the chart for triangles indicating potential entry points.
Consider the context of the overall market trend and other technical factors.
Backtesting and Optimization:
Use TradingView's Strategy Tester to evaluate performance.
Adjust parameters to optimize results for different market conditions.
🔹 Considerations and Recommendations
Risk Management:
The strategy does not include built-in stop-loss or take-profit levels. It's recommended to implement your own risk management techniques.
Market Conditions:
Performance may vary in different market environments. Testing and adjustments are advised when applying the strategy to new instruments or timeframes.
No Guarantee of Future Results:
Past performance is not indicative of future results. Always perform due diligence and consider the risks involved in trading.
Universal Ratio Trend Matrix [InvestorUnknown]The Universal Ratio Trend Matrix is designed for trend analysis on asset/asset ratios, supporting up to 40 different assets. Its primary purpose is to help identify which assets are outperforming others within a selection, providing a broad overview of market trends through a matrix of ratios. The indicator automatically expands the matrix based on the number of assets chosen, simplifying the process of comparing multiple assets in terms of performance.
Key features include the ability to choose from a narrow selection of indicators to perform the ratio trend analysis, allowing users to apply well-defined metrics to their comparison.
Drawback: Due to the computational intensity involved in calculating ratios across many assets, the indicator has a limitation related to loading speed. TradingView has time limits for calculations, and for users on the basic (free) plan, this could result in frequent errors due to exceeded time limits. To use the indicator effectively, users with any paid plans should run it on timeframes higher than 8h (the lowest timeframe on which it managed to load with 40 assets), as lower timeframes may not reliably load.
Indicators:
RSI_raw: Simple function to calculate the Relative Strength Index (RSI) of a source (asset price).
RSI_sma: Calculates RSI followed by a Simple Moving Average (SMA).
RSI_ema: Calculates RSI followed by an Exponential Moving Average (EMA).
CCI: Calculates the Commodity Channel Index (CCI).
Fisher: Implements the Fisher Transform to normalize prices.
Utility Functions:
f_remove_exchange_name: Strips the exchange name from asset tickers (e.g., "INDEX:BTCUSD" to "BTCUSD").
f_remove_exchange_name(simple string name) =>
string parts = str.split(name, ":")
string result = array.size(parts) > 1 ? array.get(parts, 1) : name
result
f_get_price: Retrieves the closing price of a given asset ticker using request.security().
f_constant_src: Checks if the source data is constant by comparing multiple consecutive values.
Inputs:
General settings allow users to select the number of tickers for analysis (used_assets) and choose the trend indicator (RSI, CCI, Fisher, etc.).
Table settings customize how trend scores are displayed in terms of text size, header visibility, highlighting options, and top-performing asset identification.
The script includes inputs for up to 40 assets, allowing the user to select various cryptocurrencies (e.g., BTCUSD, ETHUSD, SOLUSD) or other assets for trend analysis.
Price Arrays:
Price values for each asset are stored in variables (price_a1 to price_a40) initialized as na. These prices are updated only for the number of assets specified by the user (used_assets).
Trend scores for each asset are stored in separate arrays
// declare price variables as "na"
var float price_a1 = na, var float price_a2 = na, var float price_a3 = na, var float price_a4 = na, var float price_a5 = na
var float price_a6 = na, var float price_a7 = na, var float price_a8 = na, var float price_a9 = na, var float price_a10 = na
var float price_a11 = na, var float price_a12 = na, var float price_a13 = na, var float price_a14 = na, var float price_a15 = na
var float price_a16 = na, var float price_a17 = na, var float price_a18 = na, var float price_a19 = na, var float price_a20 = na
var float price_a21 = na, var float price_a22 = na, var float price_a23 = na, var float price_a24 = na, var float price_a25 = na
var float price_a26 = na, var float price_a27 = na, var float price_a28 = na, var float price_a29 = na, var float price_a30 = na
var float price_a31 = na, var float price_a32 = na, var float price_a33 = na, var float price_a34 = na, var float price_a35 = na
var float price_a36 = na, var float price_a37 = na, var float price_a38 = na, var float price_a39 = na, var float price_a40 = na
// create "empty" arrays to store trend scores
var a1_array = array.new_int(40, 0), var a2_array = array.new_int(40, 0), var a3_array = array.new_int(40, 0), var a4_array = array.new_int(40, 0)
var a5_array = array.new_int(40, 0), var a6_array = array.new_int(40, 0), var a7_array = array.new_int(40, 0), var a8_array = array.new_int(40, 0)
var a9_array = array.new_int(40, 0), var a10_array = array.new_int(40, 0), var a11_array = array.new_int(40, 0), var a12_array = array.new_int(40, 0)
var a13_array = array.new_int(40, 0), var a14_array = array.new_int(40, 0), var a15_array = array.new_int(40, 0), var a16_array = array.new_int(40, 0)
var a17_array = array.new_int(40, 0), var a18_array = array.new_int(40, 0), var a19_array = array.new_int(40, 0), var a20_array = array.new_int(40, 0)
var a21_array = array.new_int(40, 0), var a22_array = array.new_int(40, 0), var a23_array = array.new_int(40, 0), var a24_array = array.new_int(40, 0)
var a25_array = array.new_int(40, 0), var a26_array = array.new_int(40, 0), var a27_array = array.new_int(40, 0), var a28_array = array.new_int(40, 0)
var a29_array = array.new_int(40, 0), var a30_array = array.new_int(40, 0), var a31_array = array.new_int(40, 0), var a32_array = array.new_int(40, 0)
var a33_array = array.new_int(40, 0), var a34_array = array.new_int(40, 0), var a35_array = array.new_int(40, 0), var a36_array = array.new_int(40, 0)
var a37_array = array.new_int(40, 0), var a38_array = array.new_int(40, 0), var a39_array = array.new_int(40, 0), var a40_array = array.new_int(40, 0)
f_get_price(simple string ticker) =>
request.security(ticker, "", close)
// Prices for each USED asset
f_get_asset_price(asset_number, ticker) =>
if (used_assets >= asset_number)
f_get_price(ticker)
else
na
// overwrite empty variables with the prices if "used_assets" is greater or equal to the asset number
if barstate.isconfirmed // use barstate.isconfirmed to avoid "na prices" and calculation errors that result in empty cells in the table
price_a1 := f_get_asset_price(1, asset1), price_a2 := f_get_asset_price(2, asset2), price_a3 := f_get_asset_price(3, asset3), price_a4 := f_get_asset_price(4, asset4)
price_a5 := f_get_asset_price(5, asset5), price_a6 := f_get_asset_price(6, asset6), price_a7 := f_get_asset_price(7, asset7), price_a8 := f_get_asset_price(8, asset8)
price_a9 := f_get_asset_price(9, asset9), price_a10 := f_get_asset_price(10, asset10), price_a11 := f_get_asset_price(11, asset11), price_a12 := f_get_asset_price(12, asset12)
price_a13 := f_get_asset_price(13, asset13), price_a14 := f_get_asset_price(14, asset14), price_a15 := f_get_asset_price(15, asset15), price_a16 := f_get_asset_price(16, asset16)
price_a17 := f_get_asset_price(17, asset17), price_a18 := f_get_asset_price(18, asset18), price_a19 := f_get_asset_price(19, asset19), price_a20 := f_get_asset_price(20, asset20)
price_a21 := f_get_asset_price(21, asset21), price_a22 := f_get_asset_price(22, asset22), price_a23 := f_get_asset_price(23, asset23), price_a24 := f_get_asset_price(24, asset24)
price_a25 := f_get_asset_price(25, asset25), price_a26 := f_get_asset_price(26, asset26), price_a27 := f_get_asset_price(27, asset27), price_a28 := f_get_asset_price(28, asset28)
price_a29 := f_get_asset_price(29, asset29), price_a30 := f_get_asset_price(30, asset30), price_a31 := f_get_asset_price(31, asset31), price_a32 := f_get_asset_price(32, asset32)
price_a33 := f_get_asset_price(33, asset33), price_a34 := f_get_asset_price(34, asset34), price_a35 := f_get_asset_price(35, asset35), price_a36 := f_get_asset_price(36, asset36)
price_a37 := f_get_asset_price(37, asset37), price_a38 := f_get_asset_price(38, asset38), price_a39 := f_get_asset_price(39, asset39), price_a40 := f_get_asset_price(40, asset40)
Universal Indicator Calculation (f_calc_score):
This function allows switching between different trend indicators (RSI, CCI, Fisher) for flexibility.
It uses a switch-case structure to calculate the indicator score, where a positive trend is denoted by 1 and a negative trend by 0. Each indicator has its own logic to determine whether the asset is trending up or down.
// use switch to allow "universality" in indicator selection
f_calc_score(source, trend_indicator, int_1, int_2) =>
int score = na
if (not f_constant_src(source)) and source > 0.0 // Skip if you are using the same assets for ratio (for example BTC/BTC)
x = switch trend_indicator
"RSI (Raw)" => RSI_raw(source, int_1)
"RSI (SMA)" => RSI_sma(source, int_1, int_2)
"RSI (EMA)" => RSI_ema(source, int_1, int_2)
"CCI" => CCI(source, int_1)
"Fisher" => Fisher(source, int_1)
y = switch trend_indicator
"RSI (Raw)" => x > 50 ? 1 : 0
"RSI (SMA)" => x > 50 ? 1 : 0
"RSI (EMA)" => x > 50 ? 1 : 0
"CCI" => x > 0 ? 1 : 0
"Fisher" => x > x ? 1 : 0
score := y
else
score := 0
score
Array Setting Function (f_array_set):
This function populates an array with scores calculated for each asset based on a base price (p_base) divided by the prices of the individual assets.
It processes multiple assets (up to 40), calling the f_calc_score function for each.
// function to set values into the arrays
f_array_set(a_array, p_base) =>
array.set(a_array, 0, f_calc_score(p_base / price_a1, trend_indicator, int_1, int_2))
array.set(a_array, 1, f_calc_score(p_base / price_a2, trend_indicator, int_1, int_2))
array.set(a_array, 2, f_calc_score(p_base / price_a3, trend_indicator, int_1, int_2))
array.set(a_array, 3, f_calc_score(p_base / price_a4, trend_indicator, int_1, int_2))
array.set(a_array, 4, f_calc_score(p_base / price_a5, trend_indicator, int_1, int_2))
array.set(a_array, 5, f_calc_score(p_base / price_a6, trend_indicator, int_1, int_2))
array.set(a_array, 6, f_calc_score(p_base / price_a7, trend_indicator, int_1, int_2))
array.set(a_array, 7, f_calc_score(p_base / price_a8, trend_indicator, int_1, int_2))
array.set(a_array, 8, f_calc_score(p_base / price_a9, trend_indicator, int_1, int_2))
array.set(a_array, 9, f_calc_score(p_base / price_a10, trend_indicator, int_1, int_2))
array.set(a_array, 10, f_calc_score(p_base / price_a11, trend_indicator, int_1, int_2))
array.set(a_array, 11, f_calc_score(p_base / price_a12, trend_indicator, int_1, int_2))
array.set(a_array, 12, f_calc_score(p_base / price_a13, trend_indicator, int_1, int_2))
array.set(a_array, 13, f_calc_score(p_base / price_a14, trend_indicator, int_1, int_2))
array.set(a_array, 14, f_calc_score(p_base / price_a15, trend_indicator, int_1, int_2))
array.set(a_array, 15, f_calc_score(p_base / price_a16, trend_indicator, int_1, int_2))
array.set(a_array, 16, f_calc_score(p_base / price_a17, trend_indicator, int_1, int_2))
array.set(a_array, 17, f_calc_score(p_base / price_a18, trend_indicator, int_1, int_2))
array.set(a_array, 18, f_calc_score(p_base / price_a19, trend_indicator, int_1, int_2))
array.set(a_array, 19, f_calc_score(p_base / price_a20, trend_indicator, int_1, int_2))
array.set(a_array, 20, f_calc_score(p_base / price_a21, trend_indicator, int_1, int_2))
array.set(a_array, 21, f_calc_score(p_base / price_a22, trend_indicator, int_1, int_2))
array.set(a_array, 22, f_calc_score(p_base / price_a23, trend_indicator, int_1, int_2))
array.set(a_array, 23, f_calc_score(p_base / price_a24, trend_indicator, int_1, int_2))
array.set(a_array, 24, f_calc_score(p_base / price_a25, trend_indicator, int_1, int_2))
array.set(a_array, 25, f_calc_score(p_base / price_a26, trend_indicator, int_1, int_2))
array.set(a_array, 26, f_calc_score(p_base / price_a27, trend_indicator, int_1, int_2))
array.set(a_array, 27, f_calc_score(p_base / price_a28, trend_indicator, int_1, int_2))
array.set(a_array, 28, f_calc_score(p_base / price_a29, trend_indicator, int_1, int_2))
array.set(a_array, 29, f_calc_score(p_base / price_a30, trend_indicator, int_1, int_2))
array.set(a_array, 30, f_calc_score(p_base / price_a31, trend_indicator, int_1, int_2))
array.set(a_array, 31, f_calc_score(p_base / price_a32, trend_indicator, int_1, int_2))
array.set(a_array, 32, f_calc_score(p_base / price_a33, trend_indicator, int_1, int_2))
array.set(a_array, 33, f_calc_score(p_base / price_a34, trend_indicator, int_1, int_2))
array.set(a_array, 34, f_calc_score(p_base / price_a35, trend_indicator, int_1, int_2))
array.set(a_array, 35, f_calc_score(p_base / price_a36, trend_indicator, int_1, int_2))
array.set(a_array, 36, f_calc_score(p_base / price_a37, trend_indicator, int_1, int_2))
array.set(a_array, 37, f_calc_score(p_base / price_a38, trend_indicator, int_1, int_2))
array.set(a_array, 38, f_calc_score(p_base / price_a39, trend_indicator, int_1, int_2))
array.set(a_array, 39, f_calc_score(p_base / price_a40, trend_indicator, int_1, int_2))
a_array
Conditional Array Setting (f_arrayset):
This function checks if the number of used assets is greater than or equal to a specified number before populating the arrays.
// only set values into arrays for USED assets
f_arrayset(asset_number, a_array, p_base) =>
if (used_assets >= asset_number)
f_array_set(a_array, p_base)
else
na
Main Logic
The main logic initializes arrays to store scores for each asset. Each array corresponds to one asset's performance score.
Setting Trend Values: The code calls f_arrayset for each asset, populating the respective arrays with calculated scores based on the asset prices.
Combining Arrays: A combined_array is created to hold all the scores from individual asset arrays. This array facilitates further analysis, allowing for an overview of the performance scores of all assets at once.
// create a combined array (work-around since pinescript doesn't support having array of arrays)
var combined_array = array.new_int(40 * 40, 0)
if barstate.islast
for i = 0 to 39
array.set(combined_array, i, array.get(a1_array, i))
array.set(combined_array, i + (40 * 1), array.get(a2_array, i))
array.set(combined_array, i + (40 * 2), array.get(a3_array, i))
array.set(combined_array, i + (40 * 3), array.get(a4_array, i))
array.set(combined_array, i + (40 * 4), array.get(a5_array, i))
array.set(combined_array, i + (40 * 5), array.get(a6_array, i))
array.set(combined_array, i + (40 * 6), array.get(a7_array, i))
array.set(combined_array, i + (40 * 7), array.get(a8_array, i))
array.set(combined_array, i + (40 * 8), array.get(a9_array, i))
array.set(combined_array, i + (40 * 9), array.get(a10_array, i))
array.set(combined_array, i + (40 * 10), array.get(a11_array, i))
array.set(combined_array, i + (40 * 11), array.get(a12_array, i))
array.set(combined_array, i + (40 * 12), array.get(a13_array, i))
array.set(combined_array, i + (40 * 13), array.get(a14_array, i))
array.set(combined_array, i + (40 * 14), array.get(a15_array, i))
array.set(combined_array, i + (40 * 15), array.get(a16_array, i))
array.set(combined_array, i + (40 * 16), array.get(a17_array, i))
array.set(combined_array, i + (40 * 17), array.get(a18_array, i))
array.set(combined_array, i + (40 * 18), array.get(a19_array, i))
array.set(combined_array, i + (40 * 19), array.get(a20_array, i))
array.set(combined_array, i + (40 * 20), array.get(a21_array, i))
array.set(combined_array, i + (40 * 21), array.get(a22_array, i))
array.set(combined_array, i + (40 * 22), array.get(a23_array, i))
array.set(combined_array, i + (40 * 23), array.get(a24_array, i))
array.set(combined_array, i + (40 * 24), array.get(a25_array, i))
array.set(combined_array, i + (40 * 25), array.get(a26_array, i))
array.set(combined_array, i + (40 * 26), array.get(a27_array, i))
array.set(combined_array, i + (40 * 27), array.get(a28_array, i))
array.set(combined_array, i + (40 * 28), array.get(a29_array, i))
array.set(combined_array, i + (40 * 29), array.get(a30_array, i))
array.set(combined_array, i + (40 * 30), array.get(a31_array, i))
array.set(combined_array, i + (40 * 31), array.get(a32_array, i))
array.set(combined_array, i + (40 * 32), array.get(a33_array, i))
array.set(combined_array, i + (40 * 33), array.get(a34_array, i))
array.set(combined_array, i + (40 * 34), array.get(a35_array, i))
array.set(combined_array, i + (40 * 35), array.get(a36_array, i))
array.set(combined_array, i + (40 * 36), array.get(a37_array, i))
array.set(combined_array, i + (40 * 37), array.get(a38_array, i))
array.set(combined_array, i + (40 * 38), array.get(a39_array, i))
array.set(combined_array, i + (40 * 39), array.get(a40_array, i))
Calculating Sums: A separate array_sums is created to store the total score for each asset by summing the values of their respective score arrays. This allows for easy comparison of overall performance.
Ranking Assets: The final part of the code ranks the assets based on their total scores stored in array_sums. It assigns a rank to each asset, where the asset with the highest score receives the highest rank.
// create array for asset RANK based on array.sum
var ranks = array.new_int(used_assets, 0)
// for loop that calculates the rank of each asset
if barstate.islast
for i = 0 to (used_assets - 1)
int rank = 1
for x = 0 to (used_assets - 1)
if i != x
if array.get(array_sums, i) < array.get(array_sums, x)
rank := rank + 1
array.set(ranks, i, rank)
Dynamic Table Creation
Initialization: The table is initialized with a base structure that includes headers for asset names, scores, and ranks. The headers are set to remain constant, ensuring clarity for users as they interpret the displayed data.
Data Population: As scores are calculated for each asset, the corresponding values are dynamically inserted into the table. This is achieved through a loop that iterates over the scores and ranks stored in the combined_array and array_sums, respectively.
Automatic Extending Mechanism
Variable Asset Count: The code checks the number of assets defined by the user. Instead of hardcoding the number of rows in the table, it uses a variable to determine the extent of the data that needs to be displayed. This allows the table to expand or contract based on the number of assets being analyzed.
Dynamic Row Generation: Within the loop that populates the table, the code appends new rows for each asset based on the current asset count. The structure of each row includes the asset name, its score, and its rank, ensuring that the table remains consistent regardless of how many assets are involved.
// Automatically extending table based on the number of used assets
var table table = table.new(position.bottom_center, 50, 50, color.new(color.black, 100), color.white, 3, color.white, 1)
if barstate.islast
if not hide_head
table.cell(table, 0, 0, "Universal Ratio Trend Matrix", text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.merge_cells(table, 0, 0, used_assets + 3, 0)
if not hide_inps
table.cell(table, 0, 1,
text = "Inputs: You are using " + str.tostring(trend_indicator) + ", which takes: " + str.tostring(f_get_input(trend_indicator)),
text_color = color.white, text_size = fontSize), table.merge_cells(table, 0, 1, used_assets + 3, 1)
table.cell(table, 0, 2, "Assets", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, 2, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = #010c3b, text_size = fontSize)
table.cell(table, 0, x + 3, text = str.tostring(array.get(assets, x)), text_color = color.white, bgcolor = f_asset_col(array.get(ranks, x)), text_size = fontSize)
for r = 0 to (used_assets - 1)
for c = 0 to (used_assets - 1)
table.cell(table, c + 1, r + 3, text = str.tostring(array.get(combined_array, c + (r * 40))),
text_color = hl_type == "Text" ? f_get_col(array.get(combined_array, c + (r * 40))) : color.white, text_size = fontSize,
bgcolor = hl_type == "Background" ? f_get_col(array.get(combined_array, c + (r * 40))) : na)
for x = 0 to (used_assets - 1)
table.cell(table, x + 1, x + 3, "", bgcolor = #010c3b)
table.cell(table, used_assets + 1, 2, "", bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 1, x + 3, "==>", text_color = color.white)
table.cell(table, used_assets + 2, 2, "SUM", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
table.cell(table, used_assets + 3, 2, "RANK", text_color = color.white, text_size = fontSize, bgcolor = #010c3b)
for x = 0 to (used_assets - 1)
table.cell(table, used_assets + 2, x + 3,
text = str.tostring(array.get(array_sums, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_sum(array.get(array_sums, x), array.get(ranks, x)))
table.cell(table, used_assets + 3, x + 3,
text = str.tostring(array.get(ranks, x)),
text_color = color.white, text_size = fontSize,
bgcolor = f_highlight_rank(array.get(ranks, x)))
Futures Daily Settlement PricesDaily settlement prices reflect the fair market value of the underlying commodity or financial instrument, as determined by buyers and sellers during the settlement period or “close”. The price quoted in the evening news for items like a bush of corn, a barrel of crude oil, or a 10-year U.S. Treasury note frequently use the settlement price for the corresponding futures product that day.
Settlement prices are used to mark traders’ positions to market daily, determining profits or losses. Daily settlement prices play a key role in facilitating price discovery, risk management, and market integrity.
This indicator plots up to 30 settlement prices as well as the date of settlement on your chart, on time frames under 1 hour.
Customizable line types, colors, and label colors.
DWMA & Normalized DWMA St. Dev.The Distance Weighted Moving Average With Standard Deviations enhanced by Normalizing it (DWMA & NDWMA) is an advanced technical indicator designed to identify trends, potential breakouts, and reversals while accounting for market volatility. By combining a weighted approach to moving averages with dynamic standard deviations and a normalized component, this tool offers a robust framework for both short-term traders and long-term investors. It brings together several layers of trend analysis to provide clearer signals and minimize market noise.
1. DWMA (Distance Weighted Moving Average)
At its core, the DWMA assigns more weight to price points that are closer in value to the current price. Unlike traditional moving averages that focus on time-based proximity, DWMA highlights price similarity, making it more adaptive to sudden changes in the market. This helps to smooth out erratic price movements while staying responsive to meaningful shifts.
2. DWMA SD (Standard Deviation)
The DWMA SD measures how much the DWMA fluctuates from its mean over a specified period. By analyzing these fluctuations, the DWMA SD provides a volatility assessment of the DWMA itself, offering insights into the stability or turbulence of the current trend. This is a critical aspect for traders who want to gauge whether a trend is steady or losing momentum.
3. DWMA WSD (Weighted Standard Deviations)
The DWMA WSD introduces a volatility-based channel around the DWMA by multiplying the standard deviation with user-defined weights. This creates dynamic upper and lower bands, allowing traders to identify potential overbought and oversold conditions. When the price crosses these bands, it signals possible trend reversals or breakout opportunities, helping traders make more informed decisions on entry and exit points.
4. NDWMA (Normalized DWMA)
The Normalized DWMA takes the DWMA one step further by adjusting it relative to the current price level. This normalization ensures that the DWMA remains comparable across different price ranges, whether the asset’s price is high or low. This component is particularly useful for analyzing assets with volatile or widely varying price levels, as it makes trends easier to spot and interpret.
5. NDWMA SD (Standard Deviation)
The NDWMA SD works similarly to the DWMA SD, but it focuses on the volatility of the normalized DWMA. It reflects how much the normalized DWMA fluctuates around its average, providing an additional perspective on market conditions. Traders can use this to detect shifts in the strength of the trend and to anticipate potential changes in direction.
6. Signals
The Signals generated by this indicator combine insights from both the DWMA and NDWMA:
Long Signals (L) occur when the price moves above the DWMA’s upper band and the NDWMA confirms a positive trend. This suggests that the market is gaining momentum, making it a potential buy signal.
Short Signals (S) are triggered when the price falls below the DWMA’s lower band, and the NDWMA shows weakness. This indicates a possible bearish trend, signaling traders to consider selling or shorting.
These signals are designed to filter out false signals and provide more reliable trend confirmations by leveraging the combined power of both moving averages and their volatility bands.
The DWMA & NDWMA indicator provides a sophisticated approach to trend analysis by merging price-weighted moving averages with volatility bands and normalization. Its multi-layered structure offers a detailed perspective on price movements and trends, helping traders identify potential opportunities with greater accuracy.
Dynamic Price Oscillator [CHE]Dynamic Price Oscillator
Overview:
Welcome to the Dynamic Price Oscillator ! This indicator is designed to help traders identify potential trend reversals and divergences by comparing short-term and long-term price movements in percentage terms. It’s a powerful tool to enhance your trading strategies by spotting bullish and bearish divergences effectively.
Key Features:
Dynamic Oscillator Calculation: The DPO calculates the percentage difference between two EMAs (Exponential Moving Averages), offering insight into the relative strength of price movements.
Bullish & Bearish Divergence Detection:
The indicator highlights divergences between price and the oscillator, allowing you to identify potential reversal points with ease.
Long-Term Divergence Option: Enable or disable long-term divergences to focus on either short-term trends or broader market movements.
High/Low Markers:
Visual markers for significant peaks and troughs in the DPO, helping you quickly spot potential trade setups.
Custom Alerts: Set up alerts for both bullish and bearish divergence signals, ensuring you never miss an important opportunity.
How to Use:
Bullish Divergence: A bullish divergence occurs when price is making lower lows, but the DPO shows higher lows. This can indicate a potential reversal to the upside.
Bearish Divergence: A bearish divergence happens when price is making higher highs, but the DPO shows lower highs. This can signal a potential downside reversal.
Customizable Settings: Adjust the fast and slow EMA periods, smoothing factor, and divergence lookback to fit your personal trading style.
Ideal For:
Swing traders and day traders looking for early signs of market reversals.
Those who want a clear, visual representation of divergence between price and momentum.
Traders who appreciate flexibility with customizable parameters and built-in alerts.
Why Use Dynamic Price Oscillator ?
This indicator gives you the edge by providing a reliable way to measure price momentum and detect divergences that are often missed by other indicators. With the option to enable long-term divergences, you can tailor the indicator to fit both short-term and long-term strategies.
Give it a try and see how the Dynamic Price Oscillator can enhance your trading performance!
Best regards Chervolino
Gaussian RSI For Loop [TrendX_]The Gaussian RSI For Loop indicator is a sophisticated tool designed for trend-following traders seeking to identify strong uptrends in the market. By integrating a Gaussian and Weighted-MA (GWMA) with the Relative Strength Index (RSI), this indicator employs a loop-based scoring system to provide clear signals for potential trading opportunities. The combination of Gaussian smoothing techniques and overbought/oversold filtering enhances the indicator's ability to capture significant price movements while reducing noise, making it an optimal choice for traders aiming to capitalize on robust upward trends.
💎 KEY FEATURES
Gaussian Weighted Moving Average (GWMA): Smooths price data to reduce noise and enhance responsiveness to significant price changes.
Filtered RSI: Applies the RSI to Gaussian-filtered data, allowing for more accurate momentum readings.
Wavetrend Analysis: Calculates the difference between the Filtered RSI and its short-term moving average, providing additional insights into momentum shifts.
Loop-Based Scoring System: Evaluates the strength and direction of uptrends through a systematic analysis of the Filtered RSI against defined thresholds.
⚙️ USAGES
Identifying Strong Uptrends: Traders can use this indicator to pinpoint periods of strong upward momentum, helping them make informed decisions about entering long positions and its exits.
Trend and Signal Confirmation: The Score confirms Long and Exit signals which traders can see through the Dots on the Gaussian RSI.
🔎 BREAKDOWN
Gaussian-Filtered Data:
The first component of the Gaussian RSI For Loop is the application of a GWMA to the sourced price data. This smoothing technique uses weighted averages based on a Gaussian distribution, which emphasizes more recent prices while diminishing the impact of older prices. This GWMA effectively reduces market noise, allowing traders to focus on significant price movements. By adjusting weights using sigma parameters, traders can fine-tune the sensitivity of the indicator, making it more responsive to genuine market trends while filtering out minor fluctuations that could lead to misleading signals.
Filtered RSI:
Next, the RSI is applied to the Gaussian-filtered data. The RSI measures the speed and change of price movements, providing insights into overbought or oversold conditions. By applying the RSI to smoothed price data, traders obtain a clearer view of momentum without the distortion caused by sudden price spikes or drops. This results in more reliable readings that help identify potential trend reversals or continuations.
Wavetrend Analysis:
The Wavetrend component calculates the difference between the Filtered RSI and its short-term moving average (MA). This difference serves as an additional momentum indicator. When the Filtered RSI is above its short-term MA, it suggests that upward momentum is strengthening; conversely, when it falls below, it indicates weakening momentum. This analysis helps traders confirm whether an uptrend is gaining strength or losing traction.
Loop-Based Scoring System:
Range Analysis: The system evaluates the Filtered RSI by comparing its current value against overbought (OB) and oversold (OS) thresholds over a defined range. This systematic approach ensures that each value within this range contributes to understanding overall trend strength.
Score Calculation: As the loop iterates through values within the defined range, it adjusts a score based on whether the current Filtered RSI and its previous values are higher or lower than established OB and OS levels. This scoring mechanism quantifies trend strength and direction.
Strong Uptrend Trigger: A strong uptrend signal is generated when the score exceeds a predefined Score Threshold (Long). This indicates that bullish momentum is robust enough to warrant entry into long positions.
None Trend: Conversely, if the score falls below the Score Threshold (Short), it suggests that upward momentum has weakened significantly, signaling potential exit points and it can be consolidated or downtrend.
DISCLAIMER
This indicator is not financial advice, it can only help traders make better decisions. There are many factors and uncertainties that can affect the outcome of any endeavor, and no one can guarantee or predict with certainty what will occur. Therefore, one should always exercise caution and judgment when making decisions based on past performance.
Trading Ranges + ZScoreOverview
The "Trading Ranges + ZScore" script is a versatile technical indicator developed for TradingView. This tool combines two powerful concepts—price ranges and Z-Score analysis—to help traders identify potential trend reversals, overbought/oversold conditions, and trend strength. The script dynamically calculates price ranges based on recent price action and utilizes Z-Score to detect deviations from a statistical norm, providing valuable insights for decision-making in both ranging and trending markets.
Features
Price Ranges: Calculates dynamic upper and lower price boundaries based on volatility and market structure.
Z-Score Oscillator: A statistical measure that highlights overbought/oversold conditions based on the deviation from a moving average.
Trend Detection: Identifies trend continuation or reversal points by comparing current price action against historical levels.
Customizable Alerts: Generates visual signals (diamonds and X crosses) for potential long/short entries and exits.
Visual Representation: Colors the bars based on Z-Score and trend direction, enhancing the chart’s readability and signal clarity.
Customizable Parameters: The script allows users to fine-tune perception length, analysis period, factor multiplier, and oscillator thresholds to fit different market conditions.
Key Input Parameters
Perception: The length used for calculating highest/lowest price points (default: 20).
Analysis: The length used for calculating the moving average and volatility (default: 100).
Factor: A multiplier to adjust the width of the price ranges (default: 2.0).
Oscillator Threshold: The overbought/oversold threshold for the Z-Score oscillator (default: 70).
Trend Filter: A boolean switch that filters signals based on trend direction.
Fill Zones: Option to color-fill between price levels when certain conditions are met.
Bullish/Bearish/Neutral Colors: Customizable colors for bullish, bearish, and neutral signals.
How It Works
Price Ranges Calculation:
The script calculates five levels: two upper boundaries, the average price level, and two lower boundaries. These levels are based on the highest/lowest prices over a user-defined period and adjusted by volatility (Average True Range).
When the price crosses either of these levels, it suggests a significant change in market direction, potentially indicating a trend reversal.
Z-Score Oscillator:
The Z-Score is a statistical measurement of a price's position relative to its moving average. The indicator calculates two variations:
Z-Score based on the absolute difference between the price and the moving average.
Z-Score based on standard deviation.
These oscillators help detect extreme conditions where the price is likely to revert (overbought/oversold zones).
Trend Detection and Signals:
The indicator generates potential buy/sell signals when the price crosses the predefined levels or based on the fast Z-Score crossing the overbought/oversold thresholds.
Weak long/short signals are shown when the faster Z-Score oscillator reaches extreme levels but trend filters are applied to avoid noise.
Bar Colors and Signal Shapes:
Bar colors change dynamically to reflect the trend direction and Z-Score conditions. Signals for potential trades are displayed using diamonds and X crosses, making it easy to spot opportunities visually.
Visuals and Plots
Bar Colors: Changes the bar color based on Z-Score and trend direction.
Z-Score Plot: Displays two Z-Score oscillators, the standard and a faster one for detecting quicker price deviations.
Overbought/Oversold Zones: Highlighted by upper and lower thresholds of the Z-Score.
Long/Short Signals: Uses diamond-shaped markers for strong long/short signals and X-shaped markers for weaker signals.
Dynamic Range Lines: Plots lines for key price levels (upper/lower boundaries, mid-range) based on the dynamic range calculations.
Usage Guide
Identify Overbought/Oversold Conditions: Look for the Z-Score reaching extreme positive or negative values. When combined with trend signals, these conditions often point to a potential reversal.
Follow the Trend: Use the trend filter option to focus only on trades in the direction of the prevailing trend, reducing false signals in ranging markets.
Watch for Range Breakouts: Pay attention to the upper and lower boundaries. Price crossing these levels often signals the start of a new trend or a major price movement.
Adjust Parameters: Tailor the perception length, analysis length, and multiplier to suit different asset classes or timeframes.
Customization
You can adjust the key parameters to adapt the indicator to different markets or personal trading preferences:
- Perception & Analysis Lengths: Control the sensitivity of the price range calculations.
- Factor Multiplier: Adjusts the width of the ranges, with higher values indicating larger zones.
- Oscillator Threshold: Modify the overbought/oversold levels to suit different market volatility.
- Trend Filter: Toggle on/off to focus on trend-following strategies or range-bound conditions.
- Visual Options: Customize colors for bullish, bearish, and neutral signals, as well as enable/disable the zone fills.
Bias TF TableThis indicator is a technical analysis tool designed to evaluate the price trend of an asset across multiple time frames (5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, daily, and weekly).
Main Functions:
Directional Bias: Displays whether the trend is bullish (Up) or bearish (Down) for each time frame, using the closing price in comparison to a 50-period exponential moving average (EMA).
Table Visualization: Presents the results in a table located in the bottom right corner of the chart, making it easy to read and compare trends across different time intervals.
This indicator provides a quick and effective way to assess market direction and make informed trading decisions based on the trend in various time frames.
Volumetric Volatility Breaker Blocks [UAlgo]The "Volumetric Volatility Breaker Blocks " indicator is designed for traders who want a comprehensive understanding of market volatility combined with volume analysis. This indicator provides a clear visualization of significant volatility areas (or blocks), characterized by price movements that exceed a specific volatility threshold, as calculated using the ATR (Average True Range). The concept is enhanced by integrating volume-based insights, offering a view of market activity that helps users to recognize when significant price changes are being supported by an appropriate level of market participation.
The indicator calculates breaker blocks for both bullish and bearish market conditions, providing distinct visual elements that identify periods of high volatility and substantial volume divergence. The focus on both volume and volatility makes this tool versatile, allowing traders to assess the strength of price movements as well as areas where price might break above or below previously established levels.
It supports adjustable parameters, such as volatility length, smoothness factor, and volume display, allowing traders to fine-tune the indicator according to their trading strategy and market environment. The highlighted breaker blocks assist in identifying zones of potential price reversal or continuation, which can be critical for making informed trading decisions.
🔶 Key Features
Volatility-Based Block Identification: The indicator uses the Average True Range (ATR) to determine the volatility of the market. When the ATR exceeds a specified threshold (smooth ATR multiplied by a user-defined multiplier), it highlights these areas as volatility blocks. The idea is to mark periods where price activity is significantly divergent from normal conditions, which often signals market opportunities.
Volume Integrated Analysis: In addition to tracking volatility, the indicator incorporates volume data, allowing traders to see the amount of activity that occurs during these high-volatility periods. This helps in identifying whether a price movement is likely sustainable or whether it lacks market support.
User Adjustable Parameters: The indicator offers customization options for the volatility length (using ATR), smooth length, and multiplier for sensitivity adjustment. These settings enable users to modify the indicator’s responsiveness to market conditions.
The option to display the last few volatility blocks allows traders to manage clutter on their charts and focus only on the most recent significant data.
Mitigation Method: Users can select between different mitigation methods ("Close" or "Wick") to determine how blocks are broken. This adds an extra layer of adaptability, allowing traders to modify the indicator's response based on different price action strategies.
Dynamic Visual Representation: The indicator dynamically draws boxes for volatility blocks and shades them according to market direction, with split areas showing the bullish and bearish strength contributions. It also provides percentage volume for each block, helping traders understand the relative market participation during these moves.
🔶 Interpreting the Indicator
Identifying High Volatility Areas: When a new volatility block appears, it signifies that the market is experiencing higher-than-usual volatility, driven by increased ATR values. Traders should pay attention to these blocks, as they often indicate that a significant price move is occurring. Bullish blocks suggest upward pressure, whereas bearish blocks indicate downward pressure.
Volume Insights: The volume associated with each volatility block provides an insight into how much market participation accompanies these moves. Higher volume within a block implies that the market is actively supporting the price change, which may be a sign of continuation. Low volume suggests that the movement may lack the strength to persist.
Bullish vs. Bearish Strength Analysis: Each block is split into bullish and bearish strength, giving a clearer picture of what’s happening within the volatility period. If the bullish portion dominates, it indicates strong upward sentiment during that period. Conversely, if the bearish side is more prominent, there is more selling pressure. This breakdown helps in understanding intra-block market dynamics.
Volume Percentage Display: The indicator also displays the volume percentage in each block, which provides context for the strength of the move relative to recent market activity. Higher percentages mean more market engagement, which could confirm the legitimacy of a trend or a significant breakout.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Volumatic Variable Index Dynamic Average [BigBeluga]The Volumatic VIDYA (Variable Index Dynamic Average) indicator is a trend-following tool that calculates and visualizes both the current trend and the corresponding buy and sell pressure within each trend phase. Using the Variable Index Dynamic Average as the core smoothing technique, this indicator also plots volume levels of lows and highs based on market structure pivot points, providing traders with key insights into price and volume dynamics.
Additionally, it generates delta volume values to help traders evaluate buy-sell pressure balance during each trend, making it a powerful tool for understanding market sentiment shifts.
BTC:
TSLA:
🔵 IDEA
The Volumatic VIDYA indicator's core idea is to provide a dynamic, adaptive smoothing tool that identifies trends while simultaneously calculating the volume pressure behind them. The VIDYA line, based on the Variable Index Dynamic Average, adjusts according to the strength of the price movements, offering a more adaptive response to the market compared to standard moving averages.
By calculating and displaying the buy and sell volume pressure throughout each trend, the indicator provides traders with key insights into market participation. The horizontal lines drawn from the highs and lows of market structure pivots give additional clarity on support and resistance levels, backed by average volume at these points. This dual analysis of trend and volume allows traders to evaluate the strength and potential of market movements more effectively.
🔵 KEY FEATURES & USAGE
VIDYA Calculation:
The Variable Index Dynamic Average (VIDYA) is a special type of moving average that adjusts dynamically to the market’s volatility and momentum. Unlike traditional moving averages that use fixed periods, VIDYA adjusts its smoothing factor based on the relative strength of the price movements, using the Chande Momentum Oscillator (CMO) to capture the magnitude of price changes. When momentum is strong, VIDYA adapts and smooths out price movements quicker, making it more responsive to rapid price changes. This makes VIDYA more adaptable to volatile markets compared to traditional moving averages such as the Simple Moving Average (SMA) or the Exponential Moving Average (EMA), which are less flexible.
// VIDYA (Variable Index Dynamic Average) function
vidya_calc(src, vidya_length, vidya_momentum) =>
float momentum = ta.change(src)
float sum_pos_momentum = math.sum((momentum >= 0) ? momentum : 0.0, vidya_momentum)
float sum_neg_momentum = math.sum((momentum >= 0) ? 0.0 : -momentum, vidya_momentum)
float abs_cmo = math.abs(100 * (sum_pos_momentum - sum_neg_momentum) / (sum_pos_momentum + sum_neg_momentum))
float alpha = 2 / (vidya_length + 1)
var float vidya_value = 0.0
vidya_value := alpha * abs_cmo / 100 * src + (1 - alpha * abs_cmo / 100) * nz(vidya_value )
ta.sma(vidya_value, 15)
When momentum is strong, VIDYA adapts and smooths out price movements quicker, making it more responsive to rapid price changes. This makes VIDYA more adaptable to volatile markets compared to traditional moving averages
Triangle Trend Shift Signals:
The indicator marks trend shifts with up and down triangles, signaling a potential change in direction. These signals appear when the price crosses above a VIDYA during an uptrend or crosses below during a downtrend.
Volume Pressure Calculation:
The Volumatic VIDYA tracks the buy and sell pressure during each trend, calculating the cumulative volume for up and down bars. Positive delta volume occurs during uptrends due to higher buy pressure, while negative delta volume reflects higher sell pressure during downtrends. The delta is displayed in real-time on the chart, offering a quick view of volume imbalances.
Market Structure Pivot Lines with Volume Labels:
The indicator draws horizontal lines based on market structure pivots, which are calculated using the highs and lows of price action. These lines are extended on the chart until price crosses them. The indicator also plots the average volume over a 6-bar range to provide a clearer understanding of volume dynamics at critical points.
🔵 CUSTOMIZATION
VIDYA Length & Momentum: Control the sensitivity of the VIDYA line by adjusting the length and momentum settings, allowing traders to customize the smoothing effect to match their trading style.
Volume Pivot Detection: Set the number of bars to consider for identifying pivots, which influences the calculation of the average volume at key levels.
Band Distance: Adjust the band distance multiplier for controlling how far the upper and lower bands extend from the VIDYA line, based on the ATR (Average True Range).
RSI Crossover Strategy with Compounding (Monthly)Explanation of the Code:
Initial Setup:
The strategy initializes with a capital of 100,000.
Variables track the capital and the amount invested in the current trade.
RSI Calculation:
The RSI and its SMA are calculated on the monthly timeframe using request.security().
Entry and Exit Conditions:
Entry: A long position is initiated when the RSI is above its SMA and there’s no existing position. The quantity is based on available capital.
Exit: The position is closed when the RSI falls below its SMA. The capital is updated based on the net profit from the trade.
Capital Management:
After closing a trade, the capital is updated with the net profit plus the initial investment.
Plotting:
The RSI and its SMA are plotted for visualization on the chart.
A label displays the current capital.
Notes:
Test the strategy on different instruments and historical data to see how it performs.
Adjust parameters as needed for your specific trading preferences.
This script is a basic framework, and you might want to enhance it with risk management, stop-loss, or take-profit features as per your trading strategy.
Feel free to modify it further based on your needs!
Cumulative Volume Delta with VWAP-based Buy/Sell AlertsDescription:
This script combines Cumulative Volume Delta (CVD) with Volume Weighted Average Price (VWAP) to generate buy and sell signals. It plots both the cumulative volume delta and its moving average on the chart, but the actual buy and sell signals are now based on the crossover and crossunder of the price with the VWAP, a popular tool for tracking price relative to the volume-weighted average over time.
Features:
Cumulative Volume Delta (CVD) Plot:
CVD helps visualize the net buying or selling pressure by accumulating volume when the price is rising and subtracting it when the price is falling. The cumulative volume is plotted on the chart as a blue line.
Moving Average of CVD:
A simple moving average (SMA) of the cumulative volume delta is plotted in orange to smooth out fluctuations and help detect the trend of volume flow.
VWAP Calculation:
VWAP (Volume Weighted Average Price) is a standard benchmark widely used in trading. It gives insight into whether the price is trading above or below the average price at which most of the volume has traded, weighted by volume. The VWAP is plotted as a purple line on the chart.
Buy/Sell Signals Based on VWAP:
Buy Signal: Triggered when the price crosses above the VWAP, indicating potential upward momentum.
Sell Signal: Triggered when the price crosses below the VWAP, signaling potential downward momentum.
These signals are displayed on the chart with clear labels:
Buy Signal: A green upward label appears below the price.
Sell Signal: A red downward label appears above the price.
Alerts for Buy/Sell Conditions:
Alerts are built into the script, so traders can receive notifications when the following conditions are met:
Buy Alert: The price crosses above the VWAP.
Sell Alert: The price crosses below the VWAP.
Use Case:
This script is useful for traders looking to incorporate both volume-based indicators and the VWAP into their trading strategy. The combination of CVD and VWAP provides a more comprehensive view of both price and volume dynamics:
VWAP helps traders understand whether the price is trading above or below its volume-weighted average.
CVD highlights buying or selling pressure through cumulative volume analysis.
Customization:
Anchor Periods: The user can customize the anchor period to suit different timeframes and trading styles.
Custom Alerts: The alert conditions can be easily modified to integrate into any trader’s strategy.
This script can be adapted for both short-term and long-term trading strategies and is especially useful in high-volume markets.
How to Use:
Add the script to your TradingView chart.
Customize the timeframe and anchor period, if needed, to match your preferred trading style.
Watch for Buy/Sell signals based on price crossing the VWAP.
Set up alerts to receive notifications when Buy or Sell signals are triggered.
This script is designed to help traders make informed decisions based on both price action relative to volume and Cumulative Delta volume trends, giving a more comprehensive view of the market dynamics.
Leading Indicator by Parag RautBreakdown of the Leading Indicator:
Linear Regression (LRC):
A linear regression line is used to estimate the current trend direction. When the price is above or below the regression line, it indicates whether the price is deviating from its mean, signaling potential reversals.
Rate of Change (ROC):
ROC measures the momentum of the price over a set period. By using thresholds (positive or negative), we predict that the price will continue in the same direction if momentum is strong enough.
Leading Indicator Calculation:
We calculate the difference between the price and the linear regression line. This is normalized using the standard deviation of price over the same period, giving us a leading signal based on price divergence from the mean trend.
The leading indicator is used to forecast changes in price behavior by identifying when the price is either stretched too far from the mean (indicating a potential reversal) or showing strong momentum in a particular direction (predicting trend continuation).
Buy and Sell Signals:
Buy Signal: Generated when ROC is above a threshold and the leading indicator shows the price is above the regression line.
Sell Signal: Generated when ROC is below a negative threshold and the leading indicator shows the price is below the regression line.
Visual Representation:
The indicator oscillates around zero. Values above zero signal potential upward price movements, while values below zero signal potential downward movements.
Background colors highlight potential buy (green) and sell (red) areas based on our conditions.
How It Works as a Leading Indicator:
This indicator attempts to predict price movements before they happen by combining the trend (via linear regression) and momentum (via ROC).
When the price significantly diverges from the trendline and momentum supports a continuation, it signals a potential entry point (either buy or sell).
It is leading in that it anticipates price movement before it becomes fully apparent in the market.
Next Steps:
You can adjust the length of the linear regression and ROC to fine-tune the indicator’s sensitivity to your trading style.
This can be combined with other indicators or used as part of a larger strategy
VATICAN BANK CARTELVATICAN BANK CARTEL - Precision Signal Detection for Buyers.
The VATICAN BANK CARTEL indicator is a highly sophisticated tool designed specifically for buyers, helping them identify key market trends and generate actionable buy signals. Utilizing advanced algorithms, this indicator employs a multi-variable detection mechanism that dynamically adapts to price movements, offering real-time insights to assist in executing profitable buy trades. This indicator is optimized solely for identifying buying opportunities, ensuring that traders are equipped to make well-timed entries and exits, without signals for shorting or selling.
The recommended settings for VATICAN BANK CARTEL indicator is as follows:-
Depth Engine = 20,30,40,50,100.
Deviation Engine = 3,5,7,15,20.
Backstep Engine = 15,17,20,25.
NOTE:- But you can also use this indicator as per your setting, whichever setting gives you best results use that setting.
Key Features:
1.Adaptive Depth, Deviation, and Backstep Inputs:
The core of this indicator is its customizable Depth Engine, Deviation Engine, and Backstep Engine parameters. These inputs allow traders to adjust the sensitivity of the trend detection algorithm based on specific market conditions:
Depth: Defines how deep the indicator scans historical price data for potential trend reversals.
Deviation: Determines the minimum required price fluctuation to confirm a market movement.
Backstep: Sets the retracement level to filter false signals and maintain the accuracy of trend detection.
2. Visual Signal Representation:
The VATICAN BANK CARTEL plots highly visible labels on the chart to mark trend reversals. These labels are customizable in terms of size and transparency, ensuring clarity in various chart environments. Traders can quickly spot buying opportunities with green labels and potential square-off points with red labels, focusing exclusively on buy-side signals.
3.Real-Time Alerts:
The indicator is equipped with real-time alert conditions to notify traders of significant buy or square-off buy signals. These alerts, which are triggered based on the indicator’s internal signal logic, ensure that traders never miss a critical market movement on the buy side.
4.Custom Label Size and Transparency:
To enhance visual flexibility, the indicator allows the user to adjust label size (from small to large) and transparency levels. This feature provides a clean, adaptable view suited for different charting styles and timeframes.
How It Works:
The VATICAN BANK CARTEL analyzes the price action using a sophisticated algorithm that considers historical low and high points, dynamically detecting directional changes. When a change in market direction is detected, the indicator plots a label at the key reversal points, helping traders confirm potential entry points:
- Buy Signal (Green): Indicates potential buying opportunities based on a trend reversal.
- Square-Off Buy Signal (Red): Marks the exit point for open buy positions, allowing traders to take profits or protect capital from potential market reversals.
Note: This indicator is exclusively designed to provide signals for buyers. It does not generate sell or short signals, making it ideal for traders focused solely on identifying optimal buying opportunities in the market.
Customizable Parameters:
- Depth Engine: Fine-tunes the historical data analysis for signal generation.
- Deviation Engine: Adjusts the minimum price change required for detecting trends.
- Backstep Engine: Controls the indicator's sensitivity to retracements, minimizing false signals.
- Labels Transparency: Adjusts the opacity of the labels, ensuring they integrate seamlessly into any chart layout.
- Buy and Sell Colors: Customizable color options for buy and square-off buy labels to match your preferred color scheme.
- Label Size: Select between five different label sizes for optimal chart visibility.
Ideal For:
This indicator is ideal for both beginner and experienced traders looking to enhance their buying strategy with a highly reliable, visual, and alert-driven tool. The VATICAN BANK CARTEL adapts to various timeframes, making it suitable for day traders, swing traders, and long-term investors alike—focused exclusively on buying opportunities.
Benefits and Applications:
1.Intraday Trading: The VATICAN BANK CARTEL indicator is particularly well-suited for intraday trading, as it provides accurate and timely "buy" and "square-off buy" signals based on the current market dynamics.
2.Trend-following Strategies: Traders who employ trend-following strategies can leverage the indicator's ability to identify the overall market direction, allowing them to align their trades with the dominant trend.
3.Swing Trading: The dynamic price tracking and signal generation capabilities of the indicator can be beneficial for swing traders, who aim to capture medium-term price movements.
Security Measures:
1. The code includes a security notice at the beginning, indicating that it is subject to the Mozilla Public License 2.0, which is a reputable open-source license.
2. The code does not appear to contain any obvious security vulnerabilities or malicious content that could compromise user data or accounts.
NOTE:- This indicator is provided under the Mozilla Public License 2.0 and is subject to its terms and conditions.
Disclaimer: The usage of VATICAN BANK CARTEL indicator might or might not contribute to your trading capital(money) profits and losses and the author is not responsible for the same.
IMPORTANT NOTICE:
While the indicator aims to provide reliable "buy" and "square-off buy" signals, it is crucial to understand that the market can be influenced by unpredictable events, such as natural disasters, political unrest, changes in monetary policies, or economic crises. These unforeseen situations may occasionally lead to false signals generated by the VATICAN BANK CARTEL indicator.
Users should exercise caution and diligence when relying on the indicator's signals, as the market's behavior can be unpredictable, and external factors may impact the accuracy of the signals. It is recommended to thoroughly backtest the indicator's performance in various market conditions and to use it as one of the many tools in a comprehensive trading strategy, rather than solely relying on its output.
Ultimately, the success of the VATICAN BANK CARTEL indicator will depend on the user's ability to adapt it to their specific trading style, market conditions, and risk management approach. Continuous monitoring, analysis, and adjustment of the indicator's settings may be necessary to maintain its effectiveness in the ever-evolving financial markets.
DEVELOPER:- yashgode9
PineScript:- version:- 5
This indicator aims to enhance trading decision-making by combining DEPTH, DEVIATION, BACKSTEP with custom signal generation, offering a comprehensive tool for traders seeking clear "buy" and "square-off buy" signals on the TradingView platform.
Fourier For Loop [BackQuant]Fourier For Loop
PLEASE Read the following, as understanding an indicator's functionality is essential before integrating it into a trading strategy. Knowing the core logic behind each tool allows for a sound and strategic approach to trading.
Introducing BackQuant's Fourier For Loop (FFL) — a cutting-edge trading indicator that combines Fourier transforms with a for-loop scoring mechanism. This innovative approach leverages mathematical precision to extract trends and reversals in the market, helping traders make informed decisions. Let's break down the components, rationale, and potential use-cases of this indicator.
Understanding Fourier Transform in Trading
The Fourier Transform decomposes price movements into their frequency components, allowing for a detailed analysis of cyclical behavior in the market. By transforming the price data from the time domain into the frequency domain, this indicator identifies underlying patterns that traditional methods may overlook.
In this script, Fourier transforms are applied to the specified calculation source (defaulted to HLC3). The transformation yields magnitude values that can be used to score market movements over a defined range. This scoring process helps uncover long and short signals based on relative strength and trend direction.
Why Use Fourier Transforms?
Fourier Transforms excel in identifying recurring cycles and smoothing noisy data, making them ideal for fast-paced markets where price movements may be erratic. They also provide a unique perspective on market volatility, offering traders additional insights beyond standard indicators.
Calculation Logic: For-Loop Scoring Mechanism
The For Loop Scoring mechanism compares the magnitude of each transformed point in the series, summing the results to generate a score. This score forms the backbone of the signal generation system.
Long Signals: Generated when the score surpasses the defined long threshold (default set at 40). This indicates a strong bullish trend, signaling potential upward momentum.
Short Signals: Triggered when the score crosses under the short threshold (default set at -10). This suggests a bearish trend or potential downside risk.'
Thresholds & Customization
The indicator offers customizable settings to fit various trading styles:
Calculation Periods: Control how many periods the Fourier transform covers.
Long/Short Thresholds: Adjust the sensitivity of the signals to match different timeframes or risk preferences.
Visualization Options: Traders can visualize the thresholds, change the color of bars based on trend direction, and even color the background for enhanced clarity.
Trading Applications
This Fourier For Loop indicator is designed to be versatile across various market conditions and timeframes. Some of its key use-cases include:
Cycle Detection: Fourier transforms help identify recurring patterns or cycles, giving traders a head-start on market direction.
Trend Following: The for-loop scoring system helps confirm the strength of trends, allowing traders to enter positions with greater confidence.
Risk Management: With clearly defined long and short signals, traders can manage their positions effectively, minimizing exposure to false signals.
Final Note
Incorporating this indicator into your trading strategy adds a layer of mathematical precision to traditional technical analysis. Be sure to adjust the calculation start/end points and thresholds to match your specific trading style, and remember that no indicator guarantees success. Always backtest thoroughly and integrate the Fourier For Loop into a balanced trading system.
Thus following all of the key points here are some sample backtests on the 1D Chart
Disclaimer: Backtests are based off past results, and are not indicative of the future .
INDEX:BTCUSD
INDEX:ETHUSD
BINANCE:SOLUSD
Support Resistance ImportanceThe Support Resistance Importance indicator is designed to highlight key price levels based on the relationship between fractal occurrences and volume distribution within a given price range. By dividing the range into bins, the indicator calculates the total volume traded at each fractal level and normalizes the values for easy visualization. The normalized values represent an "importance score" for each price range, helping traders identify critical support and resistance levels where price action might react.
Key Features:
Fractal Detection:
The indicator detects Williams Fractals, which are specific price patterns representing potential market reversals. It identifies both upward fractals (potential resistance) and downward fractals (potential support).
Price Range Binning:
The price range is divided into a user-defined number of bins (default is 20). Each bin represents a segment of the total price range, allowing the indicator to bucket price action and track fractal volumes in each bin.
Volume-Based Importance Calculation:
For each bin, the indicator sums up the volume traded at the time a fractal occurred. The volumes are then normalized to reflect their relative importance.
The importance score is calculated as the relative volume in each bin, representing the potential influence of that price range. Higher scores indicate stronger support or resistance levels.
Normalization:
The volume data is normalized to allow for better comparison across bins. This normalization ensures that the highest and lowest volumes are scaled between 0 and 1 for visualization purposes. The smallest volume value is used to scale the rest, ensuring meaningful comparisons.
Visualization:
The indicator provides a table-based visualization showing the price range and the corresponding importance score for each bin.
Each bin is color-coded based on the normalized importance score, with blue or greenish shades indicating higher importance levels. The current price range is highlighted to help traders quickly identify relevant areas of interest.
Trading Utility:
Traders can use the importance scores to identify price levels where significant volume has accumulated at fractals. A higher importance score suggests a stronger likelihood of the price reacting to that level.
If a price moves towards a bin with a high score and the bins above it have much smaller values, it suggests that the price may "pump" up to the next high-scored range, similar to how price drops can occur.
Example Use Case:
Suppose the price approaches a bin with an importance score of 25, and the bins above have much smaller values. This suggests that price may break higher towards the next significant level of resistance, offering traders an opportunity to capitalize on the move by entering long positions or adjusting their stop losses.
This indicator is particularly useful for support and resistance trading, where understanding key levels of price action and volume can improve decision-making in anticipating market reactions.
Adaptive Volatility-Controlled LSMA [QuantAlgo]Adaptive Volatility-Controlled LSMA by QuantAlgo 📈💫
Introducing the Adaptive Volatility-Controlled LSMA (Least Squares Moving Average) , a powerful trend-following indicator that combines trend detection with dynamic volatility adjustments. This indicator is designed to help traders and investors identify market trends while accounting for price volatility, making it suitable for a wide range of assets and timeframes. By integrating LSMA for trend analysis and Average True Range (ATR) for volatility control, this tool provides clearer signals during both trending and volatile market conditions.
💡 Core Concept and Innovation
The Adaptive Volatility-Controlled LSMA leverages the precision of the LSMA to track market trends and combines it with the sensitivity of the ATR to account for market volatility. LSMA fits a linear regression line to price data, providing a smoothed trend line that is less reactive to short-term noise. The ATR, on the other hand, dynamically adjusts the volatility bands around the LSMA, allowing the indicator to filter out false signals and respond to significant price moves. This combination provides traders with a reliable tool to identify trend shifts while managing risk in volatile markets.
📊 Technical Breakdown and Calculations
The indicator consists of the following components:
1. Least Squares Moving Average (LSMA): The LSMA calculates a linear regression line over a defined period to smooth out price fluctuations and reveal the underlying trend. It is more reactive to recent data than traditional moving averages, allowing for quicker trend detection.
2. ATR-Based Volatility Bands: The Average True Range (ATR) measures market volatility and creates upper and lower bands around the LSMA. These bands expand and contract based on market conditions, helping traders identify when price movements are significant enough to indicate a new trend.
3. Volatility Extensions: To further account for rapid market changes, the bands are extended using additional volatility measures. This ensures that trend signals are generated when price movements exceed both the standard volatility range and the extended volatility range.
⚙️ Step-by-Step Calculation:
1. LSMA Calculation: The LSMA is computed using a least squares regression method over a user-defined length. This provides a trend line that adapts to recent price movements while smoothing out noise.
2. ATR and Volatility Bands: ATR is calculated over a user-defined length and is multiplied by a factor to create upper and lower bands around the LSMA. These bands help detect when price movements are substantial enough to signal a new trend.
3. Trend Detection: The price’s relationship to the LSMA and the volatility bands is used to determine trend direction. If the price crosses above the upper volatility band, a bullish trend is detected. Conversely, a cross below the lower band indicates a bearish trend.
✅ Customizable Inputs and Features:
The Adaptive Volatility-Controlled LSMA offers a variety of customizable options to suit different trading or investing styles:
📈 Trend Settings:
1. LSMA Length: Adjust the length of the LSMA to control its sensitivity to price changes. A shorter length reacts quickly to new data, while a longer length smooths the trend line.
2. Price Source: Choose the type of price (e.g., close, high, low) that the LSMA uses to calculate trends, allowing for different interpretations of price data.
🌊 Volatility Controls:
ATR Length and Multiplier: Adjust the length and sensitivity of the ATR to control how volatility is measured. A higher ATR multiplier widens the bands, making the trend detection less sensitive, while a lower multiplier tightens the bands, increasing sensitivity.
🎨 Visualization and Alerts:
1. Bar Coloring: Customize bar colors to visually distinguish between uptrends and downtrends.
2. Volatility Bands: Enable or disable the display of volatility bands on the chart. The bands provide visual cues about trend strength and volatility thresholds.
3. Alerts: Set alerts for when the price crosses the upper or lower volatility bands, signaling potential trend changes.
📈 Practical Applications
The Adaptive Volatility-Controlled LSMA is ideal for traders and investors looking to follow trends while accounting for market volatility. Its key use cases include:
Identifying Trend Reversals: The indicator detects when price movements break through volatility bands, signaling potential trend reversals.
Filtering Market Noise: By applying ATR-based volatility filtering, the indicator helps reduce false signals caused by short-term price fluctuations.
Managing Risk: The volatility bands adjust dynamically to account for market conditions, helping traders manage risk and improve the accuracy of their trend-following strategies.
⭐️ Summary
The Adaptive Volatility-Controlled LSMA by QuantAlgo offers a robust and flexible approach to trend detection and volatility management. Its combination of LSMA and ATR creates clearer, more reliable signals, making it a valuable tool for navigating trending and volatile markets. Whether you're detecting trend shifts or filtering market noise, this indicator provides the tools you need to enhance your trading and investing strategy.
Note: The Adaptive Volatility-Controlled LSMA is a tool to enhance market analysis. It should be used in conjunction with other analytical tools and should not be relied upon as the sole basis for trading or investment decisions. No signals or indicators constitute financial advice, and past performance is not indicative of future results.
Adaptive SuperTrend Oscillator [AlgoAlpha]Adaptive SuperTrend Oscillator 🤖📈
Introducing the Adaptive SuperTrend Oscillator , an innovative blend of volatility clustering and SuperTrend logic designed to identify market trends with precision! 🚀 This indicator uses K-Means clustering to dynamically adjust volatility levels, helping traders spot bullish and bearish trends. The oscillator smoothly tracks price movements, adapting to market conditions for reliable signals. Whether you're scalping or riding long-term trends, this tool has got you covered! 💹✨
🔑 Key Features:
📊 Volatility Clustering with K-Means: Segments volatility into three levels (high, medium, low) using a K-Means algorithm for precise trend detection.
📈 Normalized Oscillator : Allows for customizable smoothing and normalization, ensuring the oscillator remains within a fixed range for easy interpretation.
🔄 Heiken Ashi Candles : Optionally visualize smoothed trends with Heiken Ashi-style candlesticks to better capture market momentum.
🔔 Alert System : Get notified when key conditions like trend shifts or volatility changes occur.
🎨 Customizable Appearance : Fully customizable colors for bullish/bearish signals, along with adjustable smoothing methods and lengths.
📚 How to Use:
⭐ Add the indicator to favorites by pressing the star icon. Customize settings to your preference:
👀 Watch the chart for trend signals and reversals. The oscillator will change color when trends shift, offering visual confirmation.
🔔 Enable alerts to be notified of critical trend changes or volatility conditions
⚙️ How It Works:
This script integrates SuperTrend with volatility clustering by analyzing ATR (Average True Range) to dynamically identify high, medium, and low volatility clusters using a K-Means algorithm . The SuperTrend logic adjusts based on the assigned volatility level, creating adaptive trend signals. These signals are then smoothed and optionally normalized for clearer visual interpretation. The Heiken Ashi transformation adds an additional layer of smoothing, helping traders better identify the market's true momentum. Alerts are set to notify users of key trend shifts and volatility changes, allowing traders to react promptly.
Support and Resistance HeatmapThe "Support and Resistance Heatmap" indicator is designed to identify key support and resistance levels in the price action by using pivots and ATR (Average True Range) to define the sensitivity of zone detection. The zones are plotted as horizontal lines on the chart, representing areas where the price has shown significant interaction. The indicator features a customizable heatmap to visualize the intensity of these zones, making it a powerful tool for technical analysis.
Features:
Dynamic Support and Resistance Zones:
Identifies potential support and resistance areas based on price pivots.
Zones are defined by ATR-based thresholds, making them adaptive to market volatility.
Customization Options:
Heatmap Visualization: Toggle the heatmap on/off to view the strength of each zone.
Sensitivity Control: Modify the zone sensitivity with the ATR Multiplier to increase or decrease zone detection precision.
Confirmations: Set how many touches a level needs before it is confirmed as a zone.
Extended Zone Visualization:
Option to extend the zones for better long-term visibility.
Ability to limit the number of zones displayed to avoid clutter on the chart.
Color-Coded Zones:
Color-coded zones help differentiate between bullish (support) and bearish (resistance) levels, providing visual clarity for traders.
Heatmap Integration:
Gradient-based color changes on levels show the intensity of touches, helping traders understand which zones are more reliable.
Inputs and Settings:
1. Settings Group:
Length:
Determines the number of bars used for the pivot lookback. This directly affects how frequently new zones are formed.
Sensitivity:
Controls the sensitivity of the zone calculation using ATR (Average True Range). A higher value will result in fewer, larger zones, while a lower value increases the number of detected zones.
Confirmations:
Sets the number of price touches needed before a level is confirmed as a support/resistance zone. Lower values will result in more zones.
2. Visual Group:
Extend Zones:
Option to extend the support and resistance lines across the chart for better visibility over time.
Max Zones to Display (maxZonesToShow):
Limits the maximum number of zones shown on the chart to avoid clutter.
3. Heatmap Group:
Show Heatmap:
Toggle the heatmap display on/off. When enabled, the script visualizes the strength of the zones using color intensity.
Core Logic:
Pivot Calculation:
The script identifies support and resistance zones by using the pivotHigh and pivotLow functions. These pivots are calculated using a lookback period, which defines the number of candles to the left and right of the pivot point.
ATR-Based Threshold:
ATR (Average True Range) is used to create dynamic zones based on volatility. The ATR acts as a buffer around the identified pivot points, creating zones that are more flexible and adaptable to market conditions.
Merging Zones:
If two zones are close to each other (within a certain threshold), they are merged into a single zone. This reduces overlapping zones and gives a cleaner visual representation of significant price levels.
Confirmation Mechanism:
Each time the price touches a zone, the confirmation counter for that zone increases. The more confirmations a zone has, the more reliable it is. Zones are only displayed if they meet the required number of confirmations as specified by the user.
Color Gradient:
Zones are color-coded based on the number of confirmations. A gradient is used to visually represent the strength of each zone, with stronger zones being more vividly colored.
Heatmap Visualization:
When the heatmap is enabled, the color intensity of the zones is adjusted based on the proximity of the price to the zone and the number of touches the zone has received. This helps traders quickly identify which zones are more critical.
How to Use:
Identifying Support and Resistance Zones:
After adding the indicator to your chart, you will see horizontal lines representing key support (bullish) and resistance (bearish) levels. These zones are dynamically updated based on price action and pivots.
Adjusting Zone Sensitivity:
Use the "ATR Multiplier" to fine-tune how sensitive the indicator is to price fluctuations. A higher multiplier will reduce the number of zones, focusing on more significant levels.
Using Confirmations:
The more times a price interacts with a zone, the stronger that zone becomes. Use the "Confirmations" input to filter out weaker zones. This ensures that only zones with enough interaction (touches) are plotted.
Activating the Heatmap:
Enabling the heatmap will provide a color-coded visual representation of the strength of the zones. Zones with more price interactions will appear more vividly, helping you focus on the most significant areas.
Best Practices:
Combine with Other Indicators:
This support and resistance indicator works well when combined with other technical analysis tools, such as oscillators (e.g., RSI, MACD) or moving averages, for better trade confirmations.
Adjust Sensitivity Based on Market Conditions:
In volatile markets, you may want to increase the ATR multiplier to focus on more significant support and resistance zones. In calmer markets, decreasing the multiplier can help you spot smaller, but relevant, levels.
Use in Different Time Frames:
This indicator can be used effectively across different time frames, from intraday charts (e.g., 1-minute or 5-minute charts) to longer-term analysis on daily or weekly charts.
Look for Confluences:
Zones that overlap with other indicators, such as Fibonacci retracements or key moving averages, tend to be more reliable. Use the zones in conjunction with other forms of analysis to increase your confidence in trade setups.
Limitations and Considerations:
False Breakouts:
In highly volatile markets, there may be false breakouts where the price briefly moves through a zone without a sustained trend. Consider combining this indicator with momentum-based tools to avoid false signals.
Sensitivity to ATR Settings:
The ATR multiplier is a key component of this indicator. Adjusting it too high or too low may result in too few or too many zones, respectively. It is important to fine-tune this setting based on your specific trading style and market conditions.
Volume Performance Table (Weekdays Only)This is a volume performance table that compares the volume from the previous trading day to the average daily volume from the previous week, month, 3-month, 6-month, and 12-month period in order to show where the rate of change of volume is contributing to the price trend.
For example, if the price trend is bullish and volume is accelerating, that is a bullish confirmation.
If the price is bearish and volume is accelerating, that is a bearish confirmation.
If the price is bullish and volume is decelerating, that is a bearish divergence.
If the price is bearish and volume is decelerating, that is a bullish divergence.
This does not include weekend trading when applied to digital assets such as cryptocurrencies.
FVG Channel [LuxAlgo]The FVG Channel indicator displays a channel constructed from the averages of unmitigated historical fair value gaps (FVG), allowing to identify trends and potential reversals in the market.
Users can control the amount of FVGs to consider for the calculation of the channels, as well as their degree of smoothness through user settings.
🔶 USAGE
The FVG Channel is constructed by averaging together recent unmitigated Bullish FVGs (contributing to the creation of the upper bands), and Bearish unmitigated FVGs (contributing to the creation of the lower bands) within a lookback determined by the user. A higher lookback will return longer-term indications from the indicator.
The channel includes 5 bands, with one upper and one lower outer extremities, as well as an inner series of values determined using the Fibonacci ratios (respectively 0.786, 0.5, 0.236) from the channel's outer extremities.
An uptrend can be identified by price holding above the inner upper band (obtained from the 0.786 ratio), this band can also provide occasional support when the price retraces to it while in an uptrend.
Breaking below the inner upper band with an unwillingness to reach above again is a clear sign of hesitation in the market and can be indicative of an upcoming consolidation or reversal.
This can directly be applied to downtrends as well, below are examples displaying both scenarios.
Uptrend Example:
Downtrend Example:
🔹 Breakout Levels
When the price mitigates all FVGs in a single direction except for 1, the indicator will display a "Breakout Level". This is the level that price will need to cross in order for all FVGs in that direction to be mitigated, because of this they can also be aptly called "Last Stand Levels".
These levels can be considered as potential support and resistance levels, however, should always be monitored for breakouts since a substantial push above or below these points would indicate strong momentum.
🔹 Signals
The indicator includes Bullish and Bearish Signals, these signals fire when all FVGs for a single direction have been mitigated and an engulfing candle occurs in the opposite direction. These are reversal signals and should be used alongside other indicators to appropriately manage risk.
Note: When all FVGs in a single direction have been mitigated, the candles will change colors accordingly.
🔶 DETAILS
The script uses a typical identification method for FVGs. Once identified, the script collects and stores the mitigation levels of the respective bullish and bearish FVGs:
For Bullish FVGs this is the bottom of the FVG.
For Bearish FVGs this is the top of the FVG.
The data is managed to only consider a specific amount of FVG mitigation levels, determined by the set "Unmitigated FVG Lookback". If an FVG is mitigated, it frees up a spot in the memory for a new FVG, however, if the memory is full, the oldest will be deleted.
The averages displayed (Channel Upper and Lower) are created from 2 calculation steps, the first step involves taking the raw average of the FVG mitigation levels, and the second step applies a simple moving average (SMA) smoothing of the precedent obtained averages.
Note: To view the mitigation levels average obtained in the first step, the "Smoothing Length" can be set to 1.
🔶 SETTINGS
Unmitigated FVG Lookback: Sets the maximum number of Unmitigated FVG mitigation levels that the script will use to calculate the channel.
Smoothing Length: Sets the smoothing length for the channel to reduce noise from the raw data.