Power Struggle [GOODY]📊 Power Struggle – Gauge the Battle Between Bulls & Bears
"Power Struggle " is an advanced, multi-layered market strength and momentum analysis tool. It combines the classic Elder Impulse System and Elder-Ray Power Columns with modern enhancements like visual gauges, momentum shift alerts, and volume-based divergence detection — all in one clean and intuitive interface.
________________________________________
🧠 What This Indicator Shows You:
✅ Bull vs Bear Power Columns
• Visualize who’s in control with clean columns showing Bull and Bear dominance.
• Fully integrated with EMA-based Impulse logic to detect trend conviction.
✅ Buy/Sell Signal Labels & Alerts
• Trend-following signals based on dynamic power thresholds.
• Green = Bull Confirmed | Red = Bear Confirmed
• Alerts included for all signal and divergence conditions.
✅ Dynamic Volume Gauge (Horizontal or Vertical)
• A powerful gauge showing real-time buyer/seller strength.
• Includes divergence detection when volume and price disagree, often a warning sign.
• 🔄 Fully customizable layout, position, flip, rotation, and gradient styling.
✅ Active Column Gauge
• Tracks real-time momentum shifts within each candle.
• Highlights power shifts with emoji markers (🐂/🐻), and calculates where price closes within each candle's range.
✅ Volume-in-Candle Labels (Optional)
• See raw Buy vs Sell volume numbers inside the candles.
• Easily spot if price moves are supported by actual volume.
________________________________________
⚙️ Customizable Settings
• 🎚️ Set thresholds for signal strictness
• 🔔 Use built-in alerts for:
o Bullish/Bearish Impulse
o Bull/Bear Power Thresholds
o Bullish/Bearish Divergences
o Momentum Shifts
Wyszukaj w skryptach "bear"
Trapped Traders Order BlocksHow It Works
The Trapped Traders Order Blocks indicator identifies specific price action patterns that suggest large market participants ("big money") have been trapped in losing positions after significant price sweeps, creating potential opportunities for reversals. The indicator detects both "bullish trap blocks" (where bearish traders are trapped) and "bearish trap blocks" (where bullish traders are trapped). Here’s the step-by-step process for each:
Bullish Trap Block (Bears Trapped):
A bearish candle (Candle A) must sweep the high of the previous candle (Candle B), meaning its high exceeds the high of the prior candle.
This bearish candle must have a longer upper wick than its lower wick, indicating rejection of higher prices.
The candle must not be a doji (i.e., it must have a significant body, defined as the body being at least 10% of the candle's range).
The next candle (Candle C) must close above the body of the bearish candle (Candle A), suggesting that price has immediately moved against the bearish sweep, potentially trapping bearish traders who entered short positions expecting a downward move.
The body of the bearish candle (Candle A) is marked as a "bullish trap block." A box is drawn around this candle's body, and a label ("Bullish Trap") is placed below it.
Bearish Trap Block (Bulls Trapped):
A bullish candle (Candle A) must sweep the low of the previous candle (Candle B), meaning its low is below the low of the prior candle.
This bullish candle must have a longer lower wick than its upper wick, indicating rejection of lower prices.
The candle must not be a doji.
The next candle (Candle C) must close below the body of the bullish candle (Candle A), suggesting that price has immediately moved against the bullish sweep, potentially trapping bullish traders who entered long positions expecting an upward move.
The body of the bullish candle (Candle A) is marked as a "bearish trap block." A box is drawn around this candle's body, and a label ("Bearish Trap") is placed above it.
Dynamic Box Extension:
For both bullish and bearish trap blocks, the box extends dynamically to the current bar unless it exceeds a user-defined age (default is 52 bars), at which point it stops at the maximum age.
Sweep Detection:
Bullish Sweep (of any trap block, bullish or bearish):
The current candle's open is above the top of the box.
The low is below the top of the box.
The close is above the top of the box.
The lower wick is longer than the upper wick (indicating rejection of lower prices).
The close is above 50% of the candle's range (ensuring a strong bullish bias).
When a bullish sweep occurs, a label ("Bullish Sweep") is placed at the low of the candle, pointing upward, and an alert is triggered.
Bearish Sweep (of any trap block, bullish or bearish):
The current candle's open is below the bottom of the box.
The high is above the bottom of the box.
The close is below the bottom of the box.
The upper wick is longer than the lower wick (indicating rejection of higher prices).
The close is below 50% of the candle's range (ensuring a strong bearish bias).
When a bearish sweep occurs, a label ("Bearish Sweep") is placed at the high of the candle, pointing downward, and an alert is triggered.
When to Be Used
The Trapped Traders Order Blocks indicator is best used in the following scenarios:
Reversal Trading:
Use this indicator to identify potential reversal points in the market. Bullish trap blocks suggest that trapped bears may unwind their short positions, leading to a potential bullish move. Bearish trap blocks suggest that trapped bulls may unwind their long positions, leading to a potential bearish move.
Look for sweeps of these blocks as confirmation of a directional move. A bullish sweep indicates a potential upward move, while a bearish sweep indicates a potential downward move.
Range-Bound Markets:
In sideways or ranging markets, trapped blocks can highlight key levels where large players have been caught off-guard. These levels often act as support or resistance, and a sweep of the block can signal a breakout or continuation in the direction of the sweep.
Confluence with Other Indicators:
Combine the trapped blocks with other technical analysis tools, such as support/resistance levels, Fibonacci retracements, or volume analysis, to increase the probability of a successful trade. For example, a bullish trap block near a strong support level with a bullish sweep can provide a high-probability setup for a long position, while a bearish trap block near a strong resistance level with a bearish sweep can signal a short opportunity.
Timeframes:
The indicator is most effective on higher timeframes such as 1-day (1D), 1-week (1W), and 1-month (1M) charts. These timeframes are more likely to capture significant moves involving large market participants, reducing noise and false signals compared to lower timeframes. While it can be used on lower timeframes (e.g., 1-hour or 4-hour), the signals may be less reliable due to increased market noise.
Logic Behind It
The logic behind the Trapped Traders Order Blocks indicator is rooted in market psychology and the behavior of large market participants ("big money"). When a large sweep candle occurs where price spikes in one direction but then quickly reverses it often indicates that traders have entered positions in the direction of the sweep, expecting a continuation. However, if the price immediately moves against them, these traders are now trapped in losing positions.
Bullish Trap Block (Bears Trapped):
A large bearish sweep candle (spiking upward but closing lower) suggests that bearish traders (bears) have entered short positions at the top of the move, expecting a downward continuation. If the next candle closes above the bearish candle's body, these bears are trapped in losing positions.
The body of the bearish candle becomes a "bullish trap block" because the trapped bears are likely to have placed their stop-loss orders or break-even exit orders just above the high of the sweep candle or within the body of the candle. As price revisits this level in the future, these trapped traders may attempt to unwind their positions by buying back their shorts, which can drive the price higher. This unwinding process often attracts new buyers, leading to a potential bullish reversal or continuation.
The bullish sweep conditions (e.g., close > box top, longer lower wick, and close above 50% of the range) ensure that the price action at the block level shows strong bullish momentum and rejection of lower prices, confirming the potential for a move higher.
Bearish Trap Block (Bulls Trapped):
A large bullish sweep candle (spiking downward but closing higher) suggests that bullish traders (bulls) have entered long positions at the bottom of the move, expecting an upward continuation. If the next candle closes below the bullish candle's body, these bulls are trapped in losing positions.
The body of the bullish candle becomes a "bearish trap block" because the trapped bulls are likely to have placed their stop-loss orders or break-even exit orders just below the low of the sweep candle or within the body of the candle. As price revisits this level in the future, these trapped traders may attempt to unwind their positions by selling their longs, which can drive the price lower. This unwinding process often attracts new sellers, leading to a potential bearish reversal or continuation.
The bearish sweep conditions (e.g., close < box bottom, longer upper wick, and close below 50% of the range) ensure that the price action at the block level shows strong bearish momentum and rejection of higher prices, confirming the potential for a move lower.
Summary
Bullish Trap Block: Occurs when bears get trapped after a bearish sweep candle is immediately followed by a bullish candle, indicating a potential reversal as trapped bears may unwind their positions.
Bearish Trap Block: Occurs when bulls get trapped after a bullish sweep candle is immediately followed by a bearish candle, indicating a potential bearish reversal.
Use Case: Ideal for identifying reversal opportunities, especially in range-bound markets or at key support/resistance levels on higher timeframes like 1D, 1W, and 1M, and can be combined with other indicators for confluence.
Logic: Large sweep candles followed by an immediate reversal suggest that big money has been trapped, and these traders may unwind their positions at break-even in the near future, driving price in the opposite direction of their initial trade.
This indicator provides a visual and actionable way to identify these trapped trader scenarios, with customizable settings for box display, sweep visuals, and alerts to help traders capitalize on these opportunities, particularly on higher timeframes where the signals are most reliable.
Democratic MultiAsset Strategy [BerlinCode42]Happy Trade,
Intro
Included Trade Concept
Included Indicators and Compare-Functions
Usage and Example
Settings Menu
Declaration for Tradingview House Rules on Script Publishing
Disclaimer
Conclusion
1. Intro
This is the first multi-asset strategy available on TradingView—a market breadth multi-asset trading strategy with integrated webhooks, backtesting capabilities, and essential strategy components like Take Profit, Stop Loss, Trailing, Hedging, Time & Session Filters, and Alerts.
How It Trades? At the start of each new bar, one asset from a set of eight is selected to go long or short. As long there is available cash and the selected asset meets the minimum criteria.
The selection process works through a voting system, similar to a democracy. Each asset is evaluated using up to five indicators that the user can choose. The asset with the highest overall voting score is picked for the trade. If no asset meets all criteria, no trade is executed, and the cash reserve remains untouched for future opportunities.
How to Set Up This Market Breadth Strategy:
Choose eight assets from the same market (e.g., cryptos or big tech stocks).
Select one to five indicators for the voting system.
Refine the strategy by adjusting Take Profit, Stop Loss, Hedging, Trailing, and Filters.
2. Voting as the included Trade Concept
The world of financial trading is filled with both risks and opportunities, and the key challenge is to identify the right opportunities, manage risks, and do both right on time.
There are countless indicators designed to spot opportunities and filter out risks, but no indicator is perfect—they only work statistically, hitting the right signals more often than the wrong ones.
The goal of this strategy is to increase the accuracy of these Indicators by:
Supervising a larger number of assets
Filtering out less promising opportunities
This is achieved through a voting system that compares indicator values across eight different assets. It doesn't just compare long trades—it also evaluates long vs. short positions to identify the most promising trade.
Why focus on one asset class? While you can randomly select assets from different asset classes, doing so prevents the algorithm from identifying the strongest asset within a single class. Think about, within one asset class there is often a major trend whereby different asset classes has not really such behavior.
And, you don’t necessarily need trading in multiple classes—this algorithm is designed to generate profits in both bullish and bearish markets. So when ever an asset class rise or fall the voting system ensure to jump on the strongest asset. So this focusing on one asset class is an integral part of this strategy. This all leads to more stable and robust trading results compared to handling each asset separately.
3. Included Indicators and Compare-Functions
You can choose from 17 different indicators, each offering different types of signals:
Some provide a directional signal
Some offer a simple on/off signal
Some provide both
Available Indicators: RSI, Stochastic RSI, MFI, Price, Volume, Volume Oscillator, Pressure, Bilson Gann Trend, Confluence, TDI, SMA, EMA, WMA, HMA, VWAP, ZLMA, T3MA
However, these indicators alone do not generate trade signals. To do so, they must be compared with thresholds or other indicators using specific comparison functions.
Example – RSI as a Trade Signal. The RSI provides a value between 0 and 100. A common interpretation is:
RSI over 80 → Signal to go short or exit a long trade
RSI under 20 → Signal to go long or exit a short trade
Here, two comparison functions and two thresholds are used to determine trade signals.
Below is the full set of available comparison functions, where: I represents the indicator’s value and A represents the comparator’s value.
I < A if I smaller A then trade signal
I > A if I bigger A then trade signal
I = A if I equal to A then trade signal
I != A if I not equal to A then trade signal
A <> B if I bigger A and I smaller B then trade signal
A >< B if I smaller A then long trade signal or if I bigger B then short trade signal
Image 1
In Image 1, you can see one of five input sections, where you define an indicator along with its function, comparator, and constants. For our RSI example, we select:
Indicator: RSI
Function: >< (greater/less than)
Comparator: Constant
Constants: A = 20, B = 80
With these settings a go short signal is triggered when RSI crosses above 80. And a go long signal is triggered when RSI crosses below 20.
Relative Strength Indicator: The RSI from the public TradingView library provides a directional trade signal. You can adjust the price source and period length in the indicator settings.
Stochastic Relative Strength Indicator: As above the Stoch RSI offers a trade signal with direction. It is calculated out of the RSI, the stochastic derivation and the SMA from the Tradingview library. You can set the in-going price source and the period length for the RSI, for the Stochastic Derivation and for the SMA as blurring in the Indicator settings section.
Money Flow Indicator: As above the MFI from the public Tradingview library offers a trade signal with direction. You can set the in-going price source and the period length in the Indicator settings section.
Price: The Price as Indicator is as simple as it can be. You can chose Open, High, Low or Close or combinations of them like HLC3 or even you can import an external Indicator. The absolute price or value can later be used to generate a trade signals when certain constant thresholds or other indicators signals are crossed.
Volume: Similar as above the Volume as Indicator offers the average volume as absolute value. You can set the period length for the smoothing and you can chose where it is presented in the base currency $ or is the other. For example the trade pair BTCUSD you can chose to present the value in $ or in BTC.
Volume Oscillator: The Volume Oscillator Indicator offers a value in the range of . Whereby a value close to 0 means that the volume is very low. A value around 1 means the volume is same high as before and Values higher as 1 means the volume is bigger then before. You can set the period length for the smoothing and you can chose where it is presented in the base currency $ or is the other. For example the trade pair BTCUSD you can chose to present the value in $ or in BTC.
Pressure Indicator: The Pressure is an adapted version of LazyBear's script (Squeeze Momentum Indicator) Pressure is a Filter that highlight bars before a bigger price move in any direction. The result are integer numbers between 0 and 4 whereby 0 means no bigger price move excepted, while 4 means huge price move expected. You can set the in-going price source and the period length in the Indicator settings section.
Bilson Gann Trend: The Bilson Gann Trend Indicator is a specific re-implementation of the widely known Bilson Gann Count Algorithm to detect Highs and Lows. On base of the last four Highs and Lows a trend direction can be calculated. It is based on 2 rules to confirm a local pivot candidate. When a local pivot candidate is confirmed, let it be a High then it looks for Lows to confirm. The result range is whereby -1 means down trend, 1 means uptrend and 0 sideways.
Confluence: The Confluence Indicator is a simplified version of Dale Legan's "Confluence" indicator written by Gary Fritz. It uses five SMAs with different periods lengths. Whereby the faster SMA get compared with the (slower) SMA with the next higher period lengths. Is the faster SMA smaller then the slower SMA then -1, otherwise +1. This is done with all SMAs and the final sum range between . Whereby values around 0 means price is going side way, Crossing under 0 means trend change from bull to bear. Is the value>2 means a strong bull trend and <-2 a strong bear trend.
Trades Dynamic Index: The TDI is an adapted version from the "Traders Dynamic Index" of LazyBear. The range of the result is whereby 2 means Top goShort, -2 means Bottom goLong, 0 is neutral, 1 is up trend, -1 is down trend.
Simple Moving Average: The SMA is the one from the Tradingview library. You can compare it with the last close price or any other moving average indicator to indicate up and down trends. You can set the in-going price source and the period length in the Indicator settings section.
Exponential Moving Average: The EMA as above is the one from the Tradingview library. You can compare it with the last close price or any other moving average indicator to indicate up and down trends. You can set the in-going price source and the period length in the Indicator settings section.
Weighted Moving Average: The WMA as above is the one from the Tradingview library. You can compare it with the last close price or any other moving average indicator to indicate up and down trends. You can set the in-going price source and the period length in the Indicator settings section.
Hull Moving Average: HMA as above is the one from the Tradingview library. You can compare it with the last close price or any other moving average indicator to indicate up and down trends. You can set the in-going price source and the period length in the Indicator settings section.
Volume Weighted Average Price: The VWAP as above is the one from the Tradingview library. You can compare it with the last close price or any other moving average indicator to indicate up and down trends. You can set the in-going price source in the Indicator settings section.
Zero Lag Moving Average: The ZLMA by John Ehlers and Ric Way describe in their paper: www.mesasoftware.com
As the other moving averages you can compare it with the last close price or any other moving average indicator to indicate up and down trends. You can set the in-going price source and the period length in the Indicator settings section.
T3 Moving Average: The T3MA is the one from the Tradingview library. You can compare it with the last close price or any other moving average indicator to indicate up and down trends. You can set the in-going price source, the period length and a factor in the Indicator settings section. Keep this factor at 1 and the T3MA swing in the same range as the input. Bigger 1 and it swings over. Factors close to 0 and the T3MA becomes a center line.
All MA's following the price. The function to compare any MA Indicators would be < or > to generate a trade direction. An example follows in the next section.
4. Example and Usage
In this section, you see how to set up the strategy using a simple example. This example was intentionally chosen at random and has not undergone any iterations to refine the trade results.
We use the RSI as the trade signal indicator and apply a filter using a combination of two moving averages (MAs). The faster MA is an EMA, while the slower MA is an SMA. By comparing these two MAs, we determine a trend direction. If the faster MA is above the slower MA the trend is upwards etc. This trend direction can then be used for filtering trades.
The strategy follows these rules:
If the RSI is below 20, a buy signal is generated.
If the RSI is above 80, a sell signal is generated.
However, this RSI trade signal is filtered so that a trade is only given the maximum voting weight if the RSI trade direction aligns with the trend direction determined by the MA filter.
So first, you need to add your chosen assets or simply keep the default ones. In Image 2, you can see one of the eight asset input sections.
Image 2
This strategy offers some general trade settings that apply equally to all assets and some asset-specific settings. This distinction is necessary because some assets have higher volatility than others, requiring asset-specific Take Profit and Stop Loss levels.
Once you have made your selections, proceed to the Indicators and Compare Functions for the voting. Image 3 shows an example of this setup.
Image 3
Later on go to the Indicator specific settings shown in Image 4 to refine the trade results.
Image 4
For refine the trade results take also a look on the result summary table, development of capital plot, on the list of closed and open trades and screener table shown in Image 5.
Image 5
To locate any trade for any asset in the chronological and scroll-able trade list, each trade is marked with a label:
An opening label displaying the trade direction, ticker ID, trade number, invested amount, and remaining cash reserves.
A closing label showing the closing reason, ticker ID, trade number, trade profit (%), trade revenue ($), and updated cash reserves.
Additionally: a green line marks each Take Profit level. An orange line indicates the (trailing) Stop Loss.
The summary table in the bottom-left corner provides insights into how effective the trade strategy is. By analyzing the trade list, you can identify trades that should be avoided.
To find those bad trades on the chart, use the trade number or timestamp. With replay mode, you can go back in time to review a specific trade in detail.
Image 6
In Image 6, you can see an example where replay mode and the start time filter are used to display specific trades within a narrow time range. By identifying a large number of bad trades, you may recognize patterns and formulate conditions to avoid them in the future.
This is the backtesting tool that allows you to develop and refine your trading strategy continuously. With each iteration—from general adjustments to detailed optimizations—you can use these tools to improve your strategy. You can:
Add other indicators with trade signals and direction
Add more indicators signals as filter
Adjust the settings of your indicators to optimize results
Configure key strategy settings, such as Time and Session Filters, Stop Loss, Take Profit, and more
By doing so, you can identify a profitable strategy and its optimal settings.
5. Settings Menu
In the settings menu you will find the following high-lighted sections. Most of the settings have a i mark on their right side. Move over it with the cursor to read specific explanation.
Backtest Results: Here you can decide about visibility of the trade list, of the Screener Table and of the Results Summary. And the colors for bullish, side ways, bearish and no signal. Go above and see Image 5.
Time Filter: You can set a Start time or deactivate it by leave it unhooked. The same with End Time and Duration Days . Duration Days can also count from End time in case you deactivate Start time.
Session Filter: Here, you can chose to activate trading on a weekly basis, specifying which days of the week trading is allowed and which are excluded. Additionally, you can configure trading on a daily basis, setting the start and end times for when trades are permitted. If activated, no new trades will be initiated outside the defined times and sessions.
Trade Logic: Here you can set an extra time frame for all indicators. You can enable Longs or Shorts or both trades.
The min Criteria percentage setting defines the minimum number of voices an asset has to get to be traded. So if you set this to 50% or less also weak winners of the voting get traded while 100% means that the winner of the voting has to get all possible voices.
Additionally, you have the option to delay entry signals. This feature is particularly useful when trade signals exhibit noise and require smoothing.
Enable Trailing Stop and force the strategy to trade only at bar closing. Other-ways the strategy trade intrabar, so when ever a voting present an asset to trade, it will send the alert and the webhooks.
The Hedging is basic as shown in the following Image 7 and serves as a catch if price moves fast in the wrong direction. You can activate a hedging mechanism, which opens a trade in the opposite direction if the price moves x% against the entry price. If both the Stop Loss and Hedging are triggered within the same bar, the hedging action will always take precedence.
Image 6
Indicators to use for Trade Signal Generating: Here you chose the Indicators and their Compare Function for the Voting . Any activated asset will get their indicator valuation which get compared over all assets. The asset with the highest valuation is elected for the trade as long free cash is present and as long the minimum criteria are met.
The Screener Table will show all indicators results of the last bar of all assets. Those indicator values which met the threshold get a background color to high light it. Green for bullish, red for bearish and orange for trade signals without direction. If you chose an Indicator here but without any compare function it will show also their results but with just gray background.
Indicator Settings: here you can setup the indicator specific settings. for deeper insights see 3. Included Indicators and Compare-Functions .
Assets, TP & SL Settings: Asset specific settings. Chose here the TickerID of all Assets you wanna trade. Take Profit 1&2 set the target prices of any trade in relation to the entry price. The Take Profit 1 exit a part of the position defined by the quantity value. Stop Loss set the price to step out when a trade goes the wrong direction.
Invest Settings: Here, you can set the initial amount of cash to start with. The Quantity Percentage determines how much of the available cash is allocated to each trade, while the Fee percentage specifies the trading fee applied to both opening and closing positions.
Webhooks: Here, you configure the License ID and the Comment . This is particularly useful if you plan to use multiple instances of the script, ensuring the webhooks target the correct positions. The Take Profit and Stop Loss values are displayed as prices.
6. Declaration for Tradingview House Rules on Script Publishing
The unique feature of this Democratic Multi-Asset Strategy is its ability to trade multiple assets simultaneously. Equipped with a set of different standard Indicators, it's new democratic Voting System does more robust trading decisions compared to single-asset. Interchangeable Indicators and customizable strategy settings allowing for a wide range of trading strategies.
This script is closed-source and invite-only to support and compensate for over a year of development work. Unlike other single asset strategies, this one cannot use TradingView's strategy functions. Instead, it is designed as an indicator.
7. Disclaimer
Trading is risky, and traders do lose money, eventually all. This script is for informational and educational purposes only. All content should be considered hypothetical, selected post-factum and is not to be construed as financial advice. Decisions to buy, sell, hold, or trade in securities, commodities, and other investments involve risk and are best made based on the advice of qualified financial professionals. Past performance does not guarantee future results. Using this script on your own risk. This script may have bugs and I declare don't be responsible for any losses.
8. Conclusion
Now it’s your turn! Chose an asset class and pick 8 of them and chose some indicators to see the trading results of this democratic voting system. Refine your multi-asset strategy to favorable settings. Once you find a promising configuration, you can set up alerts to send webhooks directly. Configure all parameters, test and validate them in paper trading, and if results align with your expectations, you even can deploy this script as your trading bit.
Cheers
Enhanced Order Flow Pressure GaugeShort Description:
Estimates bullish/bearish pressure by analyzing each candle’s close position within its range, then weighting that by volume. Detects potential trend shifts and provides real-time signals.
Full Description:
1. Purpose
The Enhanced Order Flow Pressure Gauge (OFPG+) is designed to approximate buy vs. sell pressure within each bar, even if you don’t have full Level II / order flow data. By measuring the candle’s close relative to its high-low range and multiplying by volume, OFPG+ provides insights into which side of the market (bulls or bears) is more aggressive in a given interval.
2. Key Components
Pressure Score (Histogram):
Raw measure of each bar’s close position (rangePos) minus midpoint, multiplied by volume. If the bar closes near its high with decent volume, the score is positive (bullish). Conversely, a close near its low yields a negative (bearish) reading.
Cumulative Pressure:
Sum of all pressure readings over time (similar to cumulative delta), reflecting the overall market bias.
Pressure Delta:
The change in cumulative pressure from one bar to the next, plotted as a line. Rising values suggest increasing bullish momentum, while falling values show growing bearish influence.
3. Visual Cues & Signals
Histogram (Pressure Profile): A color-coded bar for each candle, indicating net bullish (blue) or bearish (gray) intrabar pressure.
Pressure Delta Line: Plotted over the histogram. Turns bullish (blue) when net buy pressure is increasing, or bearish (gray) when net selling accelerates.
Background Highlights:
Turns lightly blue if the smoothed pressure line exceeds the positive threshold, or lightly gray if it goes below the negative threshold.
Bullish / Bearish Signals:
Bullish Signal occurs when the smoothed pressure line crosses above the positive threshold, combined with a positive Delta.
Bearish Signal occurs when the smoothed pressure line crosses below the negative threshold, combined with a negative Delta.
Confirmed Signals:
After a bullish/bearish signal, OFPG+ checks the highest or lowest smoothed pressure values over a user-defined number of bars (signalLookback) to confirm momentum.
Plotshapes (diamond icons) appear on the chart to mark these confirmed reversals.
4. Usage Scenarios
Trend-Following / Momentum: Watch for transitions from negative to positive net pressure or vice versa. Helps identify potential turning points.
Reversal Confirmation: The threshold-based signals plus the “confirmed” checks can help filter choppy conditions.
Volume-Weighted Insights: By factoring in volume, strong closes near the highs or lows are weighted more heavily, capturing sentiment shifts.
5. Inputs & Parameters
Smoothing Length (length): The EMA period for smoothing the raw pressure score.
Volume Weight (volWeight): Scales the volume impact on pressure calculations.
Pressure Threshold (threshold): Defines when pressure is considered significantly bullish or bearish.
Signal Lookback (signalLookback): Number of bars to confirm momentum after a signal.
6. Alerts
Bullish Signal & Confirmed Bullish
Bearish Signal & Confirmed Bearish
These alerts can notify you in real-time about potential shifts in the market’s buying or selling pressure.
7. Disclaimer
This script provides an approximation of order flow by analyzing candle structure and volume. It does not represent actual exchange-level order data.
Past performance is not necessarily indicative of future results. Always conduct thorough analysis and use proper risk management.
Not financial advice. Use at your own discretion.
WIG20 Total Value-Weighted VolumeThis Pine Script creates a custom indicator for TradingView that calculates and visualizes the total "value-weighted volume" of the 20 stocks in the WIG20 index (a major Polish stock market index). Here's a breakdown of what it does:
Functionality:
Stock Selection:
The script allows you to input the ticker symbols for the 20 stocks that make up the WIG20 index (e.g., "PKO" for PKO Bank Polski, "PKN" for PKN Orlen, etc.). These are customizable via input fields, so you can adjust them to match the current WIG20 constituents.
Data Retrieval:
For each of the 20 stocks, it fetches two pieces of data from the current chart timeframe (e.g., daily, hourly):
Volume: The number of shares traded (e.g., v01 for the first stock).
Average Price: The midpoint price of the candle, calculated as (open + close) / 2 (e.g., p01 for the first stock). This represents a typical price for that period.
Value-Weighted Volume Calculation:
For each stock, it multiplies the volume by its average price (e.g., vw01 = v01 * p01). This converts the raw volume (in shares) into a monetary value (e.g., in Polish złoty, PLN, assuming the prices are in PLN).
The result, called "value-weighted volume," reflects the total monetary amount traded for each stock rather than just the number of shares.
Total Value-Weighted Volume:
It sums the value-weighted volumes of all 20 stocks into a single value, totalValueVolume. This represents the combined monetary trading activity across the WIG20 index for each time period (e.g., each candle on the chart).
Statistical Analysis:
The script calculates a rolling mean and standard deviation of the totalValueVolume over a user-defined lookback period (default is 20 bars, adjustable via input).
It then computes a "3-sigma" threshold, which is the mean plus three times the standard deviation. This threshold identifies unusually high trading activity (statistically significant outliers).
Candle Direction:
It checks whether the current candle on the chart (e.g., the WIG20 index itself) is bullish or bearish:
Bullish: If the close price is higher than the open price (close > open).
Bearish: If the close price is lower than the open price (close < open).
Color-Coded Visualization:
The totalValueVolume is plotted as a histogram on the chart with dynamic colors:
Blue: If the value-weighted volume is below the 3-sigma threshold (normal trading activity).
Green: If the value-weighted volume exceeds the 3-sigma threshold and the candle is bullish (indicating unusually high buying activity).
Red: If the value-weighted volume exceeds the 3-sigma threshold and the candle is bearish (indicating unusually high selling activity).
Purpose:
What It Shows: The indicator highlights the total monetary trading volume across the WIG20 stocks, adjusted for each stock’s price, and flags periods of exceptional activity (above 3 sigma) with colors that indicate market direction (bullish or bearish).
Use Case: Traders or analysts might use this to:
Identify significant market events where trading volume spikes (e.g., news-driven moves).
Assess whether those spikes align with bullish (green) or bearish (red) sentiment, based on the WIG20 index’s price movement.
Compare monetary trading activity across different periods, rather than just share volume, which gives more weight to higher-priced stocks.
Key Features:
Customizable: You can tweak the stock symbols and lookback period to fit your needs.
Statistical Insight: The 3-sigma rule helps spot outliers in trading activity.
Visual Clarity: The histogram’s color changes make it easy to see when volume spikes occur and whether they’re tied to upward or downward price moves.
Example Output:
On a daily WIG20 chart, if one day’s total value-weighted volume is exceptionally high (above 3 sigma) and the WIG20 closes higher than it opened, the histogram bar for that day turns green. If it closes lower, it turns red. Otherwise, it stays blue.
In essence, this script transforms raw volume data into a price-adjusted, statistically informed indicator that visually emphasizes significant trading events with directional context!
Price-Aligned Trend Indicator - Saerthak AnandThis is a Pine Script (version 6) for TradingView that creates a "Price-Aligned Trend Indicator" with three different T3 moving averages (Fast, Medium, and Slow). The indicator colors the lines based on the trend (bullish, bearish, or neutral) and adds "BREAKOUT" or "BREAKDOWN" labels when the fast moving average crosses the medium moving average.
Explanation:
T3 Moving Average Calculation: The function calculates the T3 moving average by recursively applying the exponential moving average (EMA) multiple times.
Trend Conditions:
Bullish: Fast > Medium > Slow.
Bearish: Fast < Medium < Slow.
Neutral: Any other condition.
Plotting:
The three T3 moving averages are plotted with different levels of opacity based on the trend.
A colored cloud is filled between the fast and medium lines, indicating the current trend.
Breakout and Breakdown Labels:
A "BREAKOUT" label is displayed when the fast T3 crosses above the medium T3 and the overall trend is bullish.
A "BREAKDOWN" label is displayed when the fast T3 crosses below the medium T3 and the overall trend is bearish.
Suggestions for Improvement:
Performance Optimization: You may want to experiment with higher T3 lengths for smoother trend visualization.
Customization: Consider adding options for users to customize colors and label display.
Alert Conditions: You can add alertcondition for breakouts and breakdowns for real-time alerts in TradingView.
Signal Confirmation: Add further trend confirmation (e.g., volume analysis or RSI) to reduce false signals.
SPY vs TQQQ Candle Divergence# SPY vs TQQQ Candle Divergence Indicator
## Description
This indicator monitors and visualizes candlestick divergences between SPY (S&P 500 ETF) and TQQQ (ProShares UltraPro QQQ ETF). It identifies situations where one security is showing bullish movement (green candle) while the other is showing bearish movement (red candle) within the same time period.
## Features
- Real-time divergence detection between SPY and TQQQ
- Visual markers with distinct colors for each type of divergence
- Built-in alert conditions for automated monitoring
- Works on any timeframe
- Overlay indicator that plots directly on the chart
## Divergence Types
### SPY Bullish / TQQQ Bearish
- Condition: SPY forms a green candle while TQQQ forms a red candle
- Marker: Green label with "SPY" text above the bar
- Alert Message: "SPY is green while TQQQ is red"
### SPY Bearish / TQQQ Bullish
- Condition: SPY forms a red candle while TQQQ forms a green candle
- Marker: Red label with "SPY" text below the bar
- Alert Message: "TQQQ is green while SPY is red"
### TQQQ Bullish / SPY Bearish
- Visualization: Blue label with "TQQQ" text above the bar
- Indicates TQQQ strength relative to SPY
### TQQQ Bearish / SPY Bullish
- Visualization: Purple label with "TQQQ" text below the bar
- Indicates TQQQ weakness relative to SPY
## Technical Implementation
- Built on Pine Script version 5
- Uses `request.security()` to fetch data for both symbols
- Implements simple candle color detection (1 for green, -1 for red, 0 for doji)
- Plots markers using `plotshape()` with different colors and positions
## Visual Elements
- Label Colors:
- SPY Bullish: Green
- SPY Bearish: Red
- TQQQ Bullish: Blue
- TQQQ Bearish: Purple
- All labels use white text for visibility
- Small label size for clean chart appearance
- Labels positioned above/below bars for clear identification
## Alert System
Two built-in alert conditions:
1. "SPY Green TQQQ Red Divergence"
2. "TQQQ Green SPY Red Divergence"
## Usage
1. Add the indicator to any chart (preferably SPY or TQQQ)
2. Look for colored labels indicating divergences
3. Set up alerts for automated monitoring
4. Use divergences as potential signals for:
- Market sector rotation
- Relative strength analysis
- Trading opportunities
- Risk management
## Notes
- Best used in conjunction with other technical indicators
- Consider overall market conditions when interpreting signals
- Useful for identifying potential market reversals or continuations
- Can help in timing entries and exits
## Limitations
- Requires data feed for both SPY and TQQQ
- Only considers candle color, not candle size or volume
- May generate frequent signals in choppy markets
## Disclaimer
This indicator is for informational purposes only. Always use proper risk management and consider multiple factors when making trading decisions.
Uptrick: FRAMA Matrix RSIUptrick: FRAMA Matrix RSI
Introduction
The Uptrick: FRAMA Matrix RSI is a momentum-based indicator that integrates the Relative Strength Index (RSI) with the Fractal Adaptive Moving Average (FRAMA). By applying FRAMA's adaptive smoothing to RSI—and further refining it with a Zero-Lag Moving Average (ZLMA)—this script creates a refined and reliable momentum oscillator. The indicator now includes enhanced divergence detection, potential reversal signals, customizable buy/sell signal options, an internal stats table, and a fully customizable bar coloring system for an enhanced visual trading experience.
Why Combine RSI with FRAMA
Traditional RSI is a well-known momentum indicator but has several limitations. It is highly sensitive to price fluctuations, often generating false signals in choppy or volatile markets. FRAMA, in contrast, adapts dynamically to price changes by adjusting its smoothing factor based on market conditions.
By integrating FRAMA into RSI calculations, this indicator reduces noise while preserving RSI's ability to track momentum, adapts to volatility by reducing lag in trending markets and smoothing out choppiness in ranging conditions, enhances trend-following capability for more reliable momentum shifts, and refines overbought and oversold signals by adjusting to the current market structure.
With the new enhancements, such as a manual alpha input, noise filtering, divergence detection, and multiple buy/sell signal options, the indicator offers even greater flexibility and precision for traders. This combination improves the standard RSI by making it more adaptive and responsive to market changes.
Originality
This indicator is unique because it applies FRAMA's adaptive smoothing technique to RSI, creating a dynamic momentum oscillator that adjusts to different market conditions. Many traditional RSI-based indicators either use fixed smoothing methods like exponential moving averages or employ basic RSI calculations without adjusting for volatility.
This script stands out by integrating several elements, including the fractal dimension-based smoothing of FRAMA to reduce noise while retaining responsiveness, the use of Zero-Lag Moving Average smoothing to enhance trend sensitivity and reduce lag, divergence detection to highlight mismatches between price action and RSI momentum, a noise filter and manual alpha option to prevent minor fluctuations from generating false signals, customizable buy/sell signal options that let traders choose between ZLMA-based or FRAMA RSI-based signals, an internal stats table displaying real-time FRAMA calculations such as fractal dimension and the adaptive alpha factor, and a fully customizable bar coloring system to visually distinguish bullish, bearish, and neutral conditions.
Features
Adaptive FRAMA RSI
The indicator applies FRAMA to RSI values, making the momentum oscillator adaptive to volatility while filtering out noise. Unlike a traditional RSI that reacts equally to all price movements, FRAMA RSI adjusts its smoothing factor based on market structure, making it more effective for identifying true momentum shifts.
Zero-Lag Moving Average (ZLMA)
A smoothing technique that minimizes lag while preserving the responsiveness of price movements. It is applied to the FRAMA RSI to further refine signals and ensure smoother trend detection.
Bullish and Bearish Threshold Crossovers
This system compares FRAMA RSI to a user-defined threshold (default is 50). When FRAMA RSI moves above the threshold, it indicates bullish momentum, while movement below signals bearish conditions. The enhanced noise filter ensures that only significant moves trigger signals.
Noise Filter and Manual Alpha
A new noise filter input prevents tiny fluctuations from triggering false signals. In addition, a manual alpha option allows traders to override the automatically computed smoothing factor with a custom value, providing extra control over the indicator’s sensitivity.
Divergence Detection
The indicator identifies divergence patterns by comparing FRAMA RSI pivots to price action. Bullish divergence occurs when price makes a lower low while FRAMA RSI makes a higher low, and bearish divergence occurs when price makes a higher high while FRAMA RSI makes a lower high. These signals can help traders anticipate potential reversals.
Reversal Signals
Labels appear on the chart when FRAMA RSI confirms classic RSI overbought (70) or oversold (30) conditions, providing visual cues for potential trend reversals.
Buy and Sell Signal Options
Traders can now choose between two signal-generation methods. ZLMA-based signals trigger when the ZLMA of FRAMA RSI crosses key overbought (70) or oversold (30) levels, while FRAMA RSI-based signals trigger when FRAMA RSI itself crosses these levels. This added flexibility allows users to tailor the indicator to their preferred trading style.
ZLMA:
FRAMA:
Customizable Alerts
Alerts notify traders when FRAMA RSI crosses key levels, divergence signals occur, reversal conditions are met, or buy/sell signals trigger. This ensures that important trading events are not missed.
Fully Customizable Bar Coloring System
Users can color bars based on different conditions, enhancing visual clarity. Bar coloring modes include: FRAMA RSI threshold (bars change color based on whether FRAMA RSI is above or below the threshold), ZLMA crossover (bars change when ZLMA crosses overbought or oversold levels), buy/sell signals (bars change when official signals trigger), divergence (bars highlight when bullish or bearish divergence is detected), and reversals (bars indicate when RSI reaches overbought or oversold conditions confirmed by FRAMA RSI). The system also remembers the last applied bar color, ensuring a smooth visual transition.
Input Parameters and Features
Core Inputs
RSI Length (default: 14) defines the period for RSI calculations.
FRAMA Lookback (default: 16) determines the length for the FRAMA smoothing function.
RSI Bull Threshold (default: 50) sets the level above which the market is considered bullish and below which it is bearish.
Noise Filter (default: 1.0) ensures that small fluctuations do not trigger false bullish or bearish signals.
Additional Features
Show Bull and Bear Alerts (default: true) enables notifications when FRAMA RSI crosses the threshold.
Enable Divergence Detection (default: false) highlights bullish and bearish divergences based on price and FRAMA RSI pivots.
Show Potential Reversal Signals (default: false) identifies overbought (70) and oversold (30) levels as possible trend reversal points.
Buy and Sell Signal Option (default: ZLMA) allows traders to choose between ZLMA-based signals or FRAMA RSI-based signals for trade entry.
ZLMA Enhancements
ZLMA Length (default: 14) determines the period for the Zero-Lag Moving Average applied to FRAMA RSI.
Visualization Options
Show Internal Stats Table (default: false) displays real-time FRAMA calculations, including fractal dimension and the adaptive alpha smoothing factor.
Show Threshold FRAMA Signals (default: false) plots buy and sell labels when FRAMA RSI crosses the threshold level.
How It Works
FRAMA Calculation
FRAMA dynamically adjusts smoothing based on the price fractal dimension. The alpha smoothing factor is derived from the fractal dimension or can be set manually to maintain responsiveness.
RSI with FRAMA Smoothing
RSI is calculated using the user-defined lookback period. FRAMA is then applied to the RSI to make it more adaptive to volatility. Optionally, ZLMA is applied to further refine the signals and reduce lag.
Bullish and Bearish Threshold Crosses
A bullish condition occurs when FRAMA RSI crosses above the threshold, while a bearish condition occurs when it falls below. The noise filter ensures that only significant trend shifts generate signals.
Buy and Sell Signal Options
Traders can choose between ZLMA crossovers or FRAMA RSI crossovers as the basis for buy and sell signals, offering flexibility in trade entry timing.
Divergence Detection
The indicator identifies divergences where price action and FRAMA RSI momentum do not align, potentially signaling upcoming reversals.
Reversal Signal Labels
When classic RSI overbought or oversold levels are confirmed by FRAMA RSI conditions, reversal labels are added on the chart to highlight potential exhaustion points.
Bar Coloring System
Bars are dynamically colored based on various conditions such as RSI thresholds, ZLMA crossovers, buy/sell signals, divergence, and reversals, allowing traders to quickly interpret market sentiment.
Alerts and Internal Stats
Customizable alerts notify traders of key events, and an optional internal stats table displays real-time calculations (fractal dimension, alpha value, and RSI values) to help users understand the underlying dynamics of the indicator.
Summary
The Uptrick: FRAMA Matrix RSI offers an enhanced approach to momentum analysis by combining RSI with adaptive FRAMA smoothing and additional layers of signal refinement. The indicator now includes adaptive RSI smoothing to reduce noise and improve responsiveness, Zero-Lag Moving Average filtering to minimize lag, divergence and reversal detection to identify potential turning points, customizable buy/sell signal options that let traders choose between different signal methodologies, a fully customizable bar coloring system to visually distinguish market conditions, and an internal stats table for real-time insight into FRAMA calculation parameters.
Whether used for trend confirmation, divergence detection, or momentum-based strategies, this indicator provides a powerful and adaptive approach to trading.
Disclaimer
This script is for informational and educational purposes only. Trading involves risk, and past performance does not guarantee future results. Always conduct proper research and consult with a financial advisor before making trading decisions.
ZenAlgo - Heavy DeltaThe ZenAlgo - Heavy Delta indicator is a comprehensive technical analysis tool designed for traders seeking a deeper understanding of market dynamics. It combines multiple advanced sub-indicators, including Order Blocks, Moving Averages, VWAP, and Delta Volume analysis, and more to provide actionable insights. This indicator is particularly useful for identifying potential trade entries and exits based on institutional order flow and price action patterns.
Features
Order Block Detection: Identifies bullish and bearish order blocks with detailed visualization and volume analysis.
VWAP (Volume Weighted Average Price): Tracks the average price of a security weighted by volume over various anchor periods.
Moving Averages (MA): Customizable MAs (13, 21, 50, 200 periods) to detect trends and momentum shifts.
Daily Open and Monday Range: Highlights key levels like daily open and intraday/multi-day high-low ranges for better price context.
Delta Volume Analysis: Measures the net difference between buying and selling volume for market sentiment insights.
Divergence Detection: Detects regular and hidden bullish/bearish divergences for trend reversal opportunities.
Visual Alerts: Displays intuitive symbols for potential buy/sell signals and key price levels.
Added Value: Why Is This Indicator Original/Why Shall You Pay for This Indicator?
The ZenAlgo - Heavy Delta indicator offers a distinct advantage by integrating multiple analysis techniques into one cohesive tool. While many individual indicators are freely available, this script goes beyond simple overlays to provide an advanced analytical framework. Here’s why it stands out:
1. Synergy of Indicators
Order Blocks: These are not static; the indicator dynamically calculates zones where institutional activity likely occurred, supported by volume-weighted metrics.
Delta Volume Analysis: Freely available delta volume tools typically show raw data, but this script filters noise, categorizes volume into meaningful up/down segments, and integrates it with other signals for context.
VWAP and Moving Averages: VWAP and customizable MAs are enhanced with divergence checks, color-coded trends, and market state classifications. This integration helps confirm trends and reversals with higher precision.
2. Volume-Based Insights
Traditional volume indicators often fail to show the "intent" behind price moves. This script combines delta volume and order block data to highlight areas of significant buying or selling pressure and their potential impacts on future price action.
3. Visual Simplicity with Advanced Logic
Unlike using several separate tools, which can clutter your chart, this indicator presents a streamlined interface. Every plotted element serves a clear purpose, minimizing distractions while maximizing actionable insights.
4. Customized for Active Traders
The indicator doesn’t just provide standard calculations. It includes proprietary adjustments like mitigation thresholds in order blocks, percentage-based signals for VWAP, and delta volume intensity levels that align better with active market conditions.
5. Why Pay for It?
Time and effort savings: Instead of setting up and calibrating multiple tools, this indicator combines them into a single efficient package.
Enhanced accuracy: Each sub-indicator validates the others, reducing false signals.
Unique features: For instance, the script automatically adjusts for multi-timeframe inconsistencies and uses gradient color fills to convey volume strength in order blocks—a feature absent in free indicators.
How It Works
The indicator combines individual sub-indicators into a logical framework where each part contributes to the overall analysis. Here’s how each feature operates:
1. Order Blocks
Identification: Uses specific price action patterns to locate zones of likely institutional interest (bullish or bearish blocks).
Dynamic Updates: The blocks adjust as new price data comes in, ensuring their relevance. Volume within these zones is weighted, helping assess their strength and potential price reactions.
Visual Enhancements: Blocks are color-coded and filled with gradients based on volume intensity, providing immediate visual cues about their importance.
2. VWAP (Volume Weighted Average Price)
Calculation: Anchored to user-selected periods (daily, weekly, etc.), VWAP is recalculated in real-time, showing the "fair" price based on traded volume.
Integration: Acts as a dynamic support/resistance line, particularly useful in intraday and swing trading. Labels provide percentage deviation for quick interpretation.
3. Moving Averages (MAs)
Customization: Supports various types (EMA, SMA, etc.) and lengths (13, 21, 50, 200). Traders can configure these to suit their strategies.
Market Status: By comparing the price to these MAs, the indicator classifies the market as Full Bull, Bullish, Neutral, Bearish, or Full Bear. This high-level summary helps traders quickly gauge market sentiment.
4. Delta Volume
Core Logic: Calculates the net difference between buying and selling pressure (volume) for each candle.
Visual Signals: Plots symbols when significant delta volume changes coincide with other indicator signals, like divergence or order block activity.
5. Daily Open and Monday Range
Purpose: Identifies key psychological levels like the daily open and the high/low range for the first trading day of the week.
Context: Highlights these levels with dynamic percentage changes, helping traders understand how price is behaving relative to them.
6. Divergence Detection
Logic: Tracks discrepancies between price movement and momentum (via Moving Averages, Delta Volume, and Order Blocks). These divergences often precede reversals.
Validation: Divergences are only flagged when other features, like delta volume shifts or order block interactions, confirm the setup.
By combining these tools in a meaningful way, ZenAlgo - Heavy Delta transforms raw data into actionable intelligence, giving traders a comprehensive view of market dynamics and a significant edge in decision-making.
Why Use Heikin Ashi for Heavy Delta?
The ZenAlgo - Heavy Delta indicator is optimized for Heikin Ashi (HA) candles, which smooth out market noise and make trends more visually apparent. Heikin Ashi works best for this strategy for several key reasons:
Why Heikin Ashi Works Best
Trend Clarity: Unlike traditional candlesticks, Heikin Ashi averages price data to create smoother transitions. This helps the indicator better identify sustained trends and reduces false signals caused by short-term price fluctuations.
Noise Reduction: HA candles filter out minor fluctuations and emphasize the overall market direction, making it easier to align the indicator’s signals (like Delta Volume and Order Blocks) with larger market movements.
Improved Visual Insights: Features like Order Blocks and Delta Volume align well with Heikin Ashi's smoothed representation, as it avoids the erratic movements that traditional candles sometimes display.
Better Support for Trend Strategies: Heikin Ashi candles naturally highlight key reversals and continuation patterns, which complement the analytical goals of this indicator.
Important Notes About Heikin Ashi:
Synthetic Nature of HA Candles: Heikin Ashi values are calculated differently than traditional candles. For example: a) The open is the average of the prior candle's open and close. b) The close is the average of the high, low, open, and close. This synthetic nature means that HA candles do not reflect actual market prices but rather smoothed averages, which can slightly lag real-time price movements.
Lagging Effect: Because HA candles use averaged data, they can lag behind actual price action. This is beneficial for identifying trends but less effective for precise entry/exit timing.
Inaccuracy in Low Volatility: In low-volume or low-volatility conditions, HA candles may distort actual price dynamics, leading to less reliable insights.
No Direct Alerts or Buy/Sell Signals : Issuing explicit buy or sell signals based on Heikin Ashi candles is not possible due to their averaged, synthetic nature. As such, the ZenAlgo - Heavy Delta indicator does not generate direct trading signals. Instead, the indicator is a decision-support tool that provides insights into trends, volume dynamics, and potential key levels, leaving trade execution to the trader's discretion.
Usage Examples
Trend Confirmation: Use the MA market status to identify if the market is in a Full Bull or Bear state.
Reversal Zones: Monitor order block zones for price rejection or absorption, signaling a potential reversal.
Breakout Trading: Trade breakouts when price surpasses VWAP or Monday Range highs/lows.
Delta Divergence: Look for positive/negative delta volume divergences during consolidations for breakout cues.
Mean Reversion: Use VWAP or MAs as dynamic support/resistance for mean reversion setups.
Intraday Scalping: Utilize daily open and intraday levels for short-term trades.
Swing Trading: Employ order blocks and multi-day ranges to frame swing trade setups.
Volume Climax: Identify volume spikes using Delta Volume to confirm trend continuation or reversal.
Momentum Trading: Combine divergence signals with Delta Volume for high-conviction entries.
Risk Management: Use defined order block boundaries to set stop losses and targets.
Settings
Order Blocks: Customize label visibility, label offsets, and block appearance.
VWAP: Adjust anchor period and toggle visibility.
Moving Averages: Configure length, type (EMA, SMA, etc.), and visibility of MAs (13, 21, 50, 200).
Delta Volume: Enable/disable delta symbols and labels, adjust sensitivity multipliers.
Daily Open/Monday Range: Toggle visibility and customize display preferences.
General Visuals: Adjust label offsets, color schemes, and transparency.
Important Notes
This indicator is a technical analysis tool and does not guarantee trading success.
Use it in conjunction with other indicators and fundamental analysis for a more comprehensive trading strategy.
Performance may vary in low-liquidity markets or during sudden news events.
Divergence signals might fail in strongly trending markets.
SCE - Single Candle EntryThe SCE - Single Candle Entry Strategy indicator is designed for traders looking to capitalize on powerful single-candle patterns and their combinations to identify potential entries and reversals. This indicator focuses specifically on The Strat methodology, making it accessible for both scalpers and swing traders across any timeframe.
Key Features
Identifies and marks number 3 candles (outside bars)
Detects powerful 3-2 combinations
Shows extra strong setups with potential reversal signals
Clean and uncluttered visual design
Customizable display options
Comprehensive alert system
Understanding the Signals
Number 3 Candles
A number 3 is an outside bar that makes both a higher high AND lower low than the previous candle
Bullish 3: closes above its open (marked with green '3')
Bearish 3: closes below its open (marked with red '3')
3-2 Combinations (★)
A powerful setup occurs when a number 2 follows a number 3 in the same direction:
Bullish: A bullish 3 followed by a bullish 2 that closes above the high of the 3
Bearish: A bearish 3 followed by a bearish 2 that closes below the low of the 3
Strong 3-2 Combinations (⚡)
Even more powerful setups that could indicate potential reversal points:
Strong Bullish: A bullish 3-2 that forms after a bearish candle
Strong Bearish: A bearish 3-2 that forms after a bullish candle
Settings
The indicator allows you to toggle:
Number 3 candles display
Regular 3-2 combinations
Strong 3-2 combinations
Tips for Usage
Look for strong 3-2 combinations (⚡) as potential reversal signals
Combine with other indicators or price action for confirmation
Use the alerts function to ensure you never miss a setup
Works effectively on any timeframe
Can be used for both scalping and swing trading
Disclaimer
This indicator is meant for educational and informational purposes only. Always conduct your own analysis and manage your risk appropriately.
Get ready to simplify your entries.
CVD OscillatorCVD Delta Oscillator
A momentum oscillator that measures buying and selling pressure through volume analysis, based on the principle that volume precedes price (cause and effect).
How It Works
Volume Analysis
Measures the force of buying and selling by analyzing how volume interacts with price movement within each bar
When price closes higher in a bar's range with strong volume, this indicates stronger buying pressure
When price closes lower in a bar's range with strong volume, this indicates stronger selling pressure
Momentum Measurement
Uses two EMAs (fast and slow) to smooth the volume delta
The difference between these EMAs creates an oscillator that shows:
Rising values = Buying pressure increasing
Falling values = Selling pressure increasing
Zero line crossovers = Potential shift in control between buyers and sellers
Signal Generation
Divergences
Bullish: Price falls to new lows while buying pressure increases (potential reversal up)
Bearish: Price rises to new highs while selling pressure increases (potential reversal down)
Zero-Line Crossovers
Bullish: Buying pressure overtakes selling pressure
Bearish: Selling pressure overtakes buying pressure
Practical Application
Reading the Indicator
Green columns above zero = Net buying pressure
Red columns below zero = Net selling pressure
Larger columns = Stronger pressure
Divergences and crossovers = Potential turning points
Trading Context
Helps identify when price movement has strong or weak volume support
Shows potential exhaustion points through divergences
Confirms trend changes through zero-line crossovers
Customization
Adjustable EMA periods for different trading styles
Toggle-able visual signals
Automatic alerts for all signals
Pearson's R TrendPearson's R Trend Indicator
Overview
The Pearson's R Trend Indicator is an advanced technical analysis tool that measures the strength and direction of price trends using statistical correlation. By comparing fast and slow-period Pearson correlation coefficients, this indicator helps identify trend momentum, potential reversals, and overbought/oversold conditions.
Key Features
Dual timeframe correlation analysis (Fast and Slow periods)
Signal line with crossover alerts
Dynamic histogram for trend visualization
Configurable overbought/oversold levels
Multiple visual components with customizable colors
Comprehensive alert system
Technical Details
Core Calculations
Fast R: Calculates Pearson's correlation coefficient over the faster period (default: 21 periods)
Slow R: Calculates Pearson's correlation coefficient over the slower period (default: 34 periods)
R-Diff: Normalized difference between Fast and Slow R values (range: -1 to 1)
Signal Line: Smoothed average of R-Diff (default: 3-period SMA)
Histogram: Difference between R-Diff and Signal Line
Signal Generation
Zero Line Crosses
• Bullish: R-Diff crosses above zero
• Bearish: R-Diff crosses below zero
Signal Line Crosses
• Bullish: R-Diff crosses above Signal Line
• Bearish: R-Diff crosses below Signal Line
Overbought/Oversold Conditions
• Overbought: R-Diff above 0.45 (default)
• Oversold: R-Diff below -0.45 (default)
Customization Options
Calculation Settings
Fast Length: Period for fast correlation calculation (default: 21)
Slow Length: Period for slow correlation calculation (default: 34)
Signal Smoothing: Moving average period for signal line (default: 3)
Price Source: Configurable input source (default: close)
Visual Settings
Histogram display toggle
Signal line display toggle
Crossing markers toggle
Line width adjustments
Custom color schemes for bullish/bearish signals
Configurable overbought/oversold levels
Interpretation
Bullish Signals
R-Diff crossing above zero
R-Diff crossing above signal line
R-Diff emerging from oversold territory
Positive histogram expansion
Bearish Signals
R-Diff crossing below zero
R-Diff crossing below signal line
R-Diff dropping from overbought territory
Negative histogram expansion
Alert Conditions
Zero line crosses (both directions)
Signal line crosses (both directions)
Overbought zone entry
Oversold zone entry
Best Practices
Use multiple timeframe analysis for confirmation
Combine with volume and price action analysis
Watch for divergences between R-Diff and price
Pay attention to histogram momentum changes
Use overbought/oversold levels as dynamic support/resistance zones
Notes
The indicator uses statistical correlation to measure trend strength
Normalized calculations ensure consistent -1 to 1 range
Built-in alert system for all major signal types
Customizable visual elements for optimal chart analysis
Disclaimer
This technical indicator is designed to supplement your trading analysis and should not be used as the sole decision-making tool. Always combine with other forms of analysis and proper risk management techniques.
Sector Trend MapThe Sector Trend Map is a powerful tool designed to provide a sentiment heatmap for major market sectors. This indicator tracks the average trend direction across 11 key sectors, including Technology, Financials, Healthcare, Energy, and more. By monitoring each sector's sentiment, the Sector Trend Map helps traders quickly assess whether sectors are bullish or bearish, allowing for better-informed trading decisions.
This indicator plots a visual heatmap showing the sentiment strength for each sector on a scale from 0 to 100. The colors range from green for bullish sentiment to red for bearish sentiment. Additionally, it displays a real-time percentage of sectors that are bullish and bearish in a dynamic table located in the bottom right corner of the chart.
This indicator simplifies sector sentiment analysis by providing clear visual cues, making it easy to stay on top of market dynamics and make data-driven trading decisions.
Key Features:
Sentiment Heatmap: Displays a heatmap of sector sentiment ranging from bullish (green) to bearish (red).
Bullish/Bearish Percentages: A dynamic table showing the percentage of sectors that are bullish or bearish.
Tracks 11 Key Sectors: Monitors sectors such as Technology, Financials, Energy, Healthcare, and more.
Simple and Clear Visuals: Provides easy-to-read color coding for quick decision-making.
Customizable Moving Averages: Select between SMA, EMA, WMA, or DEMA for the trend calculation.
Market Hours Sensitivity: Indicator operates during regular market hours, ensuring relevance for day traders and active traders.
Overlay Sentiment Colors on Candles:
This feature allows you to overlay the sentiment (green for bullish, red for bearish) directly onto the price chart candles. You can enable or disable this option based on your preference.
How to Use the Sector Trend Map:
The heatmap is divided into different sectors. Each sector is colored based on its current sentiment:
🟢 Green (Bullish sentiment)
🔴 Red (Bearish sentiment)
Sentiment is calculated on a scale from 0 to 100, with 50 being the neutral point. Sectors above 50 are bullish, while sectors below 50 are bearish.
Bullish/Bearish Percentage Table:
A table is displayed in the bottom right corner of the screen, showing the percentage of sectors that are currently bullish and bearish.
Bullish %: The percentage of sectors above 50 on the sentiment scale.
Bearish %: The percentage of sectors below 50 on the sentiment scale.
Market Hours Activity:
The indicator only calculates and displays data during market hours (09:30 AM to 4:00 PM EST), ensuring it stays relevant to intraday trading. Outside of market hours, the indicator remains inactive.
Best Used For:
Intraday Traders: Get real-time sector sentiment during market hours and make better trading decisions based on sector strength or weakness.
Swing Traders: Monitor sector trends to spot shifts in market sentiment over time.
Sector Rotation Strategies: Use the indicator to identify which sectors are gaining or losing strength, aiding in sector rotation strategies.
Practical Example:
If 7 out of the 11 sectors display a bullish sentiment, the table will show 63.64% as bullish and 36.36% as bearish. The heatmap will show green sectors for those above the 50 sentiment threshold, allowing you to visually spot the sectors leading the market.
Trading IQ - ICT LibraryLibrary "ICTlibrary"
Used to calculate various ICT related price levels and strategies. An ongoing project.
Hello Coders!
This library is meant for sourcing ICT related concepts. While some functions might generate more output than you require, you can specify "Lite Mode" as "true" in applicable functions to slim down necessary inputs.
isLastBar(userTF)
Identifies the last bar on the chart before a timeframe change
Parameters:
userTF (simple int) : the timeframe you wish to calculate the last bar for, must be converted to integer using 'timeframe.in_seconds()'
Returns: bool true if bar on chart is last bar of higher TF, dalse if bar on chart is not last bar of higher TF
necessaryData(atrTF)
returns necessaryData UDT for historical data access
Parameters:
atrTF (float) : user-selected timeframe ATR value.
Returns: logZ. log return Z score, used for calculating order blocks.
method gradBoxes(gradientBoxes, idColor, timeStart, bottom, top, rightCoordinate)
creates neon like effect for box drawings
Namespace types: array
Parameters:
gradientBoxes (array) : an array.new() to store the gradient boxes
idColor (color)
timeStart (int) : left point of box
bottom (float) : bottom of box price point
top (float) : top of box price point
rightCoordinate (int) : right point of box
Returns: void
checkIfTraded(tradeName)
checks if recent trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent trade id matches target name, false otherwise
checkIfClosed(tradeName)
checks if recent closed trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent closed trade id matches target name, false otherwise
IQZZ(atrMult, finalTF)
custom ZZ to quickly determine market direction.
Parameters:
atrMult (float) : an atr multiplier used to determine the required price move for a ZZ direction change
finalTF (string) : the timeframe used for the atr calcuation
Returns: dir market direction. Up => 1, down => -1
method drawBos(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showBOS, isUp)
calculates and draws Break Of Structure
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the BoS line / label
showBOS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether BoS happened during price increase or price decrease.
Returns: void
method drawMSS(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showMSS, isUp, upRejections, dnRejections, highArr, lowArr, timeArr, closeArr, openArr, atrTFarr, upRejectionsPrices, dnRejectionsPrices)
calculates and draws Market Structure Shift. This data is also used to calculate Rejection Blocks.
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the MSS line / label
showMSS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether MSS happened during price increase or price decrease.
upRejections (array)
dnRejections (array)
highArr (array) : array containing historical highs, should be taken from the UDT "necessaryData" defined above
lowArr (array) : array containing historical lows, should be taken from the UDT "necessaryData" defined above
timeArr (array) : array containing historical times, should be taken from the UDT "necessaryData" defined above
closeArr (array) : array containing historical closes, should be taken from the UDT "necessaryData" defined above
openArr (array) : array containing historical opens, should be taken from the UDT "necessaryData" defined above
atrTFarr (array) : array containing historical atr values (of user-selected TF), should be taken from the UDT "necessaryData" defined above
upRejectionsPrices (array) : array containing up rejections prices. Is sorted and used to determine selective looping for invalidations.
dnRejectionsPrices (array) : array containing down rejections prices. Is sorted and used to determine selective looping for invalidations.
Returns: void
method getTime(id, compare, timeArr)
gets time of inputted price (compare) in an array of data
this is useful when the user-selected timeframe for ICT concepts is greater than the chart's timeframe
Namespace types: array
Parameters:
id (array) : the array of data to search through, to find which index has the same value as "compare"
compare (float) : the target data point to find in the array
timeArr (array) : array of historical times
Returns: the time that the data point in the array was recorded
method OB(id, highArr, signArr, lowArr, timeArr, sign)
store bullish orderblock data
Namespace types: array
Parameters:
id (array)
highArr (array) : array of historical highs
signArr (array) : array of historical price direction "math.sign(close - open)"
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
sign (int) : orderblock direction, -1 => bullish, 1 => bearish
Returns: void
OTEstrat(OTEstart, future, closeArr, highArr, lowArr, timeArr, longOTEPT, longOTESL, longOTElevel, shortOTEPT, shortOTESL, shortOTElevel, structureDirection, oteLongs, atrTF, oteShorts)
executes the OTE strategy
Parameters:
OTEstart (chart.point)
future (int) : future time point for drawings
closeArr (array) : array of historical closes
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
longOTEPT (string) : user-selected long OTE profit target, please create an input.string() for this using the example below
longOTESL (int) : user-selected long OTE stop loss, please create an input.string() for this using the example below
longOTElevel (float) : long entry price of selected retracement ratio for OTE
shortOTEPT (string) : user-selected short OTE profit target, please create an input.string() for this using the example below
shortOTESL (int) : user-selected short OTE stop loss, please create an input.string() for this using the example below
shortOTElevel (float) : short entry price of selected retracement ratio for OTE
structureDirection (string) : current market structure direction, this should be "Up" or "Down". This is used to cancel pending orders if market structure changes
oteLongs (bool) : input.bool() for whether OTE longs can be executed
atrTF (float) : atr of the user-seleceted TF
oteShorts (bool) : input.bool() for whether OTE shorts can be executed
@exampleInputs
oteLongs = input.bool(defval = false, title = "OTE Longs", group = "Optimal Trade Entry")
longOTElevel = input.float(defval = 0.79, title = "Long Entry Retracement Level", options = , group = "Optimal Trade Entry")
longOTEPT = input.string(defval = "-0.5", title = "Long TP", options = , group = "Optimal Trade Entry")
longOTESL = input.int(defval = 0, title = "How Many Ticks Below Swing Low For Stop Loss", group = "Optimal Trade Entry")
oteShorts = input.bool(defval = false, title = "OTE Shorts", group = "Optimal Trade Entry")
shortOTElevel = input.float(defval = 0.79, title = "Short Entry Retracement Level", options = , group = "Optimal Trade Entry")
shortOTEPT = input.string(defval = "-0.5", title = "Short TP", options = , group = "Optimal Trade Entry")
shortOTESL = input.int(defval = 0, title = "How Many Ticks Above Swing Low For Stop Loss", group = "Optimal Trade Entry")
Returns: void (0)
displacement(logZ, atrTFreg, highArr, timeArr, lowArr, upDispShow, dnDispShow, masterCoords, labelLevels, dispUpcol, rightCoordinate, dispDncol, noBorders)
calculates and draws dispacements
Parameters:
logZ (float) : log return of current price, used to determine a "significant price move" for a displacement
atrTFreg (float) : atr of user-seleceted timeframe
highArr (array) : array of historical highs
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
upDispShow (int) : amount of historical upside displacements to show
dnDispShow (int) : amount of historical downside displacements to show
masterCoords (map) : a map to push the most recent displacement prices into, useful for having key levels in one data structure
labelLevels (string) : used to determine label placement for the displacement, can be inside box, outside box, or none, example below
dispUpcol (color) : upside displacement color
rightCoordinate (int) : future time for displacement drawing, best is "last_bar_time"
dispDncol (color) : downside displacement color
noBorders (bool) : input.bool() to remove box borders, example below
@exampleInputs
labelLevels = input.string(defval = "Inside" , title = "Box Label Placement", options = )
noBorders = input.bool(defval = false, title = "No Borders On Levels")
Returns: void
method getStrongLow(id, startIndex, timeArr, lowArr, strongLowPoints)
unshift strong low data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the low before an upside BoS
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
strongLowPoints (array) : array of strong low prices. Used to retrieve highest strong low price and see if need for
removal of invalidated strong lows
Returns: void
method getStrongHigh(id, startIndex, timeArr, highArr, strongHighPoints)
unshift strong high data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the high before a downside BoS
timeArr (array) : array of historical times
highArr (array) : array of historical highs
strongHighPoints (array)
Returns: void
equalLevels(highArr, lowArr, timeArr, rightCoordinate, equalHighsCol, equalLowsCol, liteMode)
used to calculate recent equal highs or equal lows
Parameters:
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
rightCoordinate (int) : a future time (right for boxes, x2 for lines)
equalHighsCol (color) : user-selected color for equal highs drawings
equalLowsCol (color) : user-selected color for equal lows drawings
liteMode (bool) : optional for a lite mode version of an ICT strategy. For more control over drawings leave as "True", "False" will apply neon effects
Returns: void
quickTime(timeString)
used to quickly determine if a user-inputted time range is currently active in NYT time
Parameters:
timeString (string) : a time range
Returns: true if session is active, false if session is inactive
macros(showMacros, noBorders)
used to calculate and draw session macros
Parameters:
showMacros (bool) : an input.bool() or simple bool to determine whether to activate the function
noBorders (bool) : an input.bool() to determine whether the box anchored to the session should have borders
Returns: void
po3(tf, left, right, show)
use to calculate HTF po3 candle
@tip only call this function on "barstate.islast"
Parameters:
tf (simple string)
left (int) : the left point of the candle, calculated as bar_index + left,
right (int) : :the right point of the candle, calculated as bar_index + right,
show (bool) : input.bool() whether to show the po3 candle or not
Returns: void
silverBullet(silverBulletStratLong, silverBulletStratShort, future, userTF, H, L, H2, L2, noBorders, silverBulletLongTP, historicalPoints, historicalData, silverBulletLongSL, silverBulletShortTP, silverBulletShortSL)
used to execute the Silver Bullet Strategy
Parameters:
silverBulletStratLong (simple bool)
silverBulletStratShort (simple bool)
future (int) : a future time, used for drawings, example "last_bar_time"
userTF (simple int)
H (float) : the high price of the user-selected TF
L (float) : the low price of the user-selected TF
H2 (float) : the high price of the user-selected TF
L2 (float) : the low price of the user-selected TF
noBorders (bool) : an input.bool() used to remove the borders from box drawings
silverBulletLongTP (series silverBulletLevels)
historicalPoints (array)
historicalData (necessaryData)
silverBulletLongSL (series silverBulletLevels)
silverBulletShortTP (series silverBulletLevels)
silverBulletShortSL (series silverBulletLevels)
Returns: void
method invalidFVGcheck(FVGarr, upFVGpricesSorted, dnFVGpricesSorted)
check if existing FVGs are still valid
Namespace types: array
Parameters:
FVGarr (array)
upFVGpricesSorted (array) : an array of bullish FVG prices, used to selective search through FVG array to remove invalidated levels
dnFVGpricesSorted (array) : an array of bearish FVG prices, used to selective search through FVG array to remove invalidated levels
Returns: void (0)
method drawFVG(counter, FVGshow, FVGname, FVGcol, data, masterCoords, labelLevels, borderTransp, liteMode, rightCoordinate)
draws FVGs on last bar
Namespace types: map
Parameters:
counter (map) : a counter, as map, keeping count of the number of FVGs drawn, makes sure that there aren't more FVGs drawn
than int FVGshow
FVGshow (int) : the number of FVGs to show. There should be a bullish FVG show and bearish FVG show. This function "drawFVG" is used separately
for bearish FVG and bullish FVG.
FVGname (string) : the name of the FVG, "FVG Up" or "FVG Down"
FVGcol (color) : desired FVG color
data (FVG)
masterCoords (map) : a map containing the names and price points of key levels. Used to define price ranges.
labelLevels (string) : an input.string with options "Inside", "Outside", "Remove". Determines whether FVG labels should be inside box, outside,
or na.
borderTransp (int)
liteMode (bool)
rightCoordinate (int) : the right coordinate of any drawings. Must be a time point.
Returns: void
invalidBlockCheck(bullishOBbox, bearishOBbox, userTF)
check if existing order blocks are still valid
Parameters:
bullishOBbox (array) : an array declared using the UDT orderBlock that contains bullish order block related data
bearishOBbox (array) : an array declared using the UDT orderBlock that contains bearish order block related data
userTF (simple int)
Returns: void (0)
method lastBarRejections(id, rejectionColor, idShow, rejectionString, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws rejectionBlocks on last bar
Namespace types: array
Parameters:
id (array) : the array, an array of rejection block data declared using the UDT rejection block
rejectionColor (color) : the desired color of the rejection box
idShow (int)
rejectionString (string) : the desired name of the rejection blocks
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
method OBdraw(id, OBshow, BBshow, OBcol, BBcol, bullishString, bearishString, isBullish, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws orderblocks and breaker blocks for data stored in UDT array()
Namespace types: array
Parameters:
id (array) : the array, an array of order block data declared using the UDT orderblock
OBshow (int) : the number of order blocks to show
BBshow (int) : the number of breaker blocks to show
OBcol (color) : color of order blocks
BBcol (color) : color of breaker blocks
bullishString (string) : the title of bullish blocks, which is a regular bullish orderblock or a bearish orderblock that's converted to breakerblock
bearishString (string) : the title of bearish blocks, which is a regular bearish orderblock or a bullish orderblock that's converted to breakerblock
isBullish (bool) : whether the array contains bullish orderblocks or bearish orderblocks. If bullish orderblocks,
the array will naturally contain bearish BB, and if bearish OB, the array will naturally contain bullish BB
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
FVG
UDT for FVG calcualtions
Fields:
H (series float) : high price of user-selected timeframe
L (series float) : low price of user-selected timeframe
direction (series string) : FVG direction => "Up" or "Down"
T (series int) : => time of bar on user-selected timeframe where FVG was created
fvgLabel (series label) : optional label for FVG
fvgLineTop (series line) : optional line for top of FVG
fvgLineBot (series line) : optional line for bottom of FVG
fvgBox (series box) : optional box for FVG
labelLine
quickly pair a line and label together as UDT
Fields:
lin (series line) : Line you wish to pair with label
lab (series label) : Label you wish to pair with line
orderBlock
UDT for order block calculations
Fields:
orderBlockData (array) : array containing order block x and y points
orderBlockBox (series box) : optional order block box
vioCount (series int) : = 0 violation count of the order block. 0 = Order Block, 1 = Breaker Block
traded (series bool)
status (series string) : = "OB" status == "OB" => Level is order block. status == "BB" => Level is breaker block.
orderBlockLab (series label) : options label for the order block / breaker block.
strongPoints
UDT for strong highs and strong lows
Fields:
price (series float) : price of the strong high or strong low
timeAtprice (series int) : time of the strong high or strong low
strongPointLabel (series label) : optional label for strong point
strongPointLine (series line) : optional line for strong point
overlayLine (series line) : optional lines for strong point to enhance visibility
overlayLine2 (series line) : optional lines for strong point to enhance visibility
displacement
UDT for dispacements
Fields:
highPrice (series float) : high price of displacement
lowPrice (series float) : low price of displacement
timeAtPrice (series int) : time of bar where displacement occurred
displacementBox (series box) : optional box to draw displacement
displacementLab (series label) : optional label for displacement
po3data
UDT for po3 calculations
Fields:
dHigh (series float) : higher timeframe high price
dLow (series float) : higher timeframe low price
dOpen (series float) : higher timeframe open price
dClose (series float) : higher timeframe close price
po3box (series box) : box to draw po3 candle body
po3line (array) : line array to draw po3 wicks
po3Labels (array) : label array to label price points of po3 candle
macros
UDT for session macros
Fields:
sessions (array) : Array of sessions, you can populate this array using the "quickTime" function located above "export macros".
prices (matrix) : Matrix of session data -> open, high, low, close, time
sessionTimes (array) : Array of session names. Pairs with array sessions.
sessionLines (matrix) : Optional array for sesion drawings.
OTEtimes
UDT for data storage and drawings associated with OTE strategy
Fields:
upTimes (array) : time of highest point before trade is taken
dnTimes (array) : time of lowest point before trade is taken
tpLineLong (series line) : line to mark tp level long
tpLabelLong (series label) : label to mark tp level long
slLineLong (series line) : line to mark sl level long
slLabelLong (series label) : label to mark sl level long
tpLineShort (series line) : line to mark tp level short
tpLabelShort (series label) : label to mark tp level short
slLineShort (series line) : line to mark sl level short
slLabelShort (series label) : label to mark sl level short
sweeps
UDT for data storage and drawings associated with liquidity sweeps
Fields:
upSweeps (matrix) : matrix containing liquidity sweep price points and time points for up sweeps
dnSweeps (matrix) : matrix containing liquidity sweep price points and time points for down sweeps
upSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
dnSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
raidExitDrawings
UDT for drawings associated with the Liquidity Raid Strategy
Fields:
tpLine (series line) : tp line for the liquidity raid entry
tpLabel (series label) : tp label for the liquidity raid entry
slLine (series line) : sl line for the liquidity raid entry
slLabel (series label) : sl label for the liquidity raid entry
m2022
UDT for data storage and drawings associated with the Model 2022 Strategy
Fields:
mTime (series int) : time of the FVG where entry limit order is placed
mIndex (series int) : array index of FVG where entry limit order is placed. This requires an array of FVG data, which is defined above.
mEntryDistance (series float) : the distance of the FVG to the 50% range. M2022 looks for the fvg closest to 50% mark of range.
mEntry (series float) : the entry price for the most eligible fvg
fvgHigh (series float) : the high point of the eligible fvg
fvgLow (series float) : the low point of the eligible fvg
longFVGentryBox (series box) : long FVG box, used to draw the eligible FVG
shortFVGentryBox (series box) : short FVG box, used to draw the eligible FVG
line50P (series line) : line used to mark 50% of the range
line100P (series line) : line used to mark 100% (top) of the range
line0P (series line) : line used to mark 0% (bottom) of the range
label50P (series label) : label used to mark 50% of the range
label100P (series label) : label used to mark 100% (top) of the range
label0P (series label) : label used to mark 0% (bottom) of the range
sweepData (array)
silverBullet
UDT for data storage and drawings associated with the Silver Bullet Strategy
Fields:
session (series bool)
sessionStr (series string) : name of the session for silver bullet
sessionBias (series string)
sessionHigh (series float) : = high high of session // use math.max(silverBullet.sessionHigh, high)
sessionLow (series float) : = low low of session // use math.min(silverBullet.sessionLow, low)
sessionFVG (series float) : if applicable, the FVG created during the session
sessionFVGdraw (series box) : if applicable, draw the FVG created during the session
traded (series bool)
tp (series float) : tp of trade entered at the session FVG
sl (series float) : sl of trade entered at the session FVG
sessionDraw (series box) : optional draw session with box
sessionDrawLabel (series label) : optional label session with label
silverBulletDrawings
UDT for trade exit drawings associated with the Silver Bullet Strategy
Fields:
tpLine (series line) : tp line drawing for strategy
tpLabel (series label) : tp label drawing for strategy
slLine (series line) : sl line drawing for strategy
slLabel (series label) : sl label drawing for strategy
unicornModel
UDT for data storage and drawings associated with the Unicorn Model Strategy
Fields:
hPoint (chart.point)
hPoint2 (chart.point)
hPoint3 (chart.point)
breakerBlock (series box) : used to draw the breaker block required for the Unicorn Model
FVG (series box) : used to draw the FVG required for the Unicorn model
topBlock (series float) : price of top of breaker block, can be used to detail trade entry
botBlock (series float) : price of bottom of breaker block, can be used to detail trade entry
startBlock (series int) : start time of the breaker block, used to set the "left = " param for the box
includes (array) : used to store the time of the breaker block, or FVG, or the chart point sequence that setup the Unicorn Model.
entry (series float) : // eligible entry price, for longs"math.max(topBlock, FVG.get_top())",
tpLine (series line) : optional line to mark PT
tpLabel (series label) : optional label to mark PT
slLine (series line) : optional line to mark SL
slLabel (series label) : optional label to mark SL
rejectionBlocks
UDT for data storage and drawings associated with rejection blocks
Fields:
rejectionPoint (chart.point)
bodyPrice (series float) : candle body price closest to the rejection point, for "Up" rejections => math.max(open, close),
rejectionBox (series box) : optional box drawing of the rejection block
rejectionLabel (series label) : optional label for the rejection block
equalLevelsDraw
UDT for data storage and drawings associated with equal highs / equal lows
Fields:
connector (series line) : single line placed at the first high or low, y = avgerage of distinguished equal highs/lows
connectorLab (series label) : optional label to be placed at the highs or lows
levels (array) : array containing the equal highs or lows prices
times (array) : array containing the equal highs or lows individual times
startTime (series int) : the time of the first high or low that forms a sequence of equal highs or lows
radiate (array) : options label to "radiate" the label in connector lab. Can be used for anything
necessaryData
UDT for data storage of historical price points.
Fields:
highArr (array) : array containing historical high points
lowArr (array) : array containing historical low points
timeArr (array) : array containing historical time points
logArr (array) : array containing historical log returns
signArr (array) : array containing historical price directions
closeArr (array) : array containing historical close points
binaryTimeArr (array) : array containing historical time points, uses "push" instead of "unshift" to allow for binary search
binaryCloseArr (array) : array containing historical close points, uses "push" instead of "unshift" to allow the correct
binaryOpenArr (array) : array containing historical optn points, uses "push" instead of "unshift" to allow the correct
atrTFarr (array) : array containing historical user-selected TF atr points
openArr (array) : array containing historical open points
Gabriel's Cyclic Smoothed RSI [Enhanced]Overview
Gabriel's Cyclic Smoothed RSI (short title: cRSI ) is a sophisticated technical indicator developed to provide traders with deeper insights into market rhythms and price momentum. Building upon the traditional Relative Strength Index (RSI), this enhanced version incorporates dynamic cycle analysis, divergence detection, and optional stochastic oscillators to deliver a more nuanced understanding of market conditions.
Key Features
Cyclic Smoothed RSI (cRSI):
Adaptive Momentum: The cRSI adapts to the dominant market cycle, providing a smoothed RSI that reacts dynamically to price changes.
Ultra-Smooth & Zero-Lag: Designed to minimize lag, ensuring timely signals that closely follow price movements.
Accurate Divergence Detection: Identifies both regular and hidden bullish/bearish divergences, enhancing signal reliability.
Dynamic Overbought/Oversold Bands:
Customizable Thresholds: Set dynamic overbought and oversold levels based on market rhythm analysis.
Adaptive Bands: Bands adjust according to the dominant cycle, offering a more accurate representation of market extremes.
Stochastic cRSI & KDJ Oscillator (Optional):
Enhanced Oscillators: Incorporate stochastic and KDJ oscillators for additional momentum analysis.
Ribbon Displays: Visual ribbons provide clarity on oscillator trends and potential reversal points.
Divergence Detection:
Regular & Hidden Divergences: Detects both regular and hidden bullish/bearish divergences to anticipate potential trend reversals.
Customizable Lookback: Adjust pivot lookback periods to fine-tune divergence sensitivity.
Visual Enhancements:
Triangles & Labels: Visual signals in the form of triangles and labels indicate buy/sell opportunities and divergence events.
Bar Coloring: Option to color bars based on signal strength, providing immediate visual cues.
Alert Conditions:
Custom Alerts: Set up alerts for various signal types, including strong buy/sell signals and divergence events, ensuring you never miss critical market movements.
Input Settings
cRSI Settings
Source: Select the data source for calculations (e.g., Close, Open, High, Low, HLC3, OHLC4).
Dominant Cycle Length: Define the dominant market cycle length based on rhythm analysis.
Vibration: Adjusts the sensitivity of the cRSI to price changes.
Leveling %: Determines the percentage level for dynamic band adjustments.
Show cRSI Plot: Toggle the display of the cRSI line.
Show Cyclic Smoothed Bands: Toggle the display of dynamic overbought and oversold bands.
Show Trend Fill: Enable or disable the trend fill cloud between upper and lower bands.
MA Settings
MA Type: Choose the type of Moving Average (SMA, Bollinger Bands, EMA, SMMA (RMA), WMA, VWMA) to smooth the cRSI.
MA Length: Set the length of the Moving Average.
BB StdDev: Define the standard deviation multiplier for Bollinger Bands.
Show cRSI-based MA: Toggle the display of the cRSI-based Moving Average line.
Stochastic Settings
Show Stochastic cRSI: Enable the stochastic oscillator based on cRSI.
Ribbon: Enable ribbon display for the Stochastic oscillator.
Show KDJ: Toggle the display of the KDJ oscillator.
KDJ Ribbon: Enable ribbon display for the KDJ oscillator.
Stochastic Length: Set the length for the Stochastic calculation.
%K Smoothing: Define the smoothing period for %K.
%D Smoothing: Define the smoothing period for %D.
Stoch Scaling %: Adjusts the vertical scaling of the stochastic to prevent distortion.
Overbought/Oversold Settings
Overbought: Set the Overbought threshold for the cRSI.
OB Extreme: Define the Extreme Overbought threshold for the Stochastic cRSI.
Oversold: Set the Oversold threshold for the cRSI.
OS Extreme: Define the Extreme Oversold threshold for the Stochastic cRSI.
Divergence Settings
Pivot Lookback Right: Number of bars to the right of the pivot for divergence detection.
Pivot Lookback Left: Number of bars to the left of the pivot for divergence detection.
Max of Lookback Range: Maximum number of bars to look back for divergence detection.
Min of Lookback Range: Minimum number of bars to look back for divergence detection.
Plot Bullish: Enable plotting of bullish divergence signals.
Plot Hidden Bullish: Enable plotting of hidden bullish divergence signals.
Plot Bearish: Enable plotting of bearish divergence signals.
Plot Hidden Bearish: Enable plotting of hidden bearish divergence signals.
Delay Plot Until Candle is Closed: Prevents repainting by delaying the plotting of divergence signals until the candle is fully closed.
The Adaptive Pairwise Momentum System [QuantraSystems]The Adaptive Pairwise Momentum System
QuantraSystems guarantees that the information created and published within this document and on the Tradingview platform is fully compliant with applicable regulations, does not constitute investment advice, and is not exclusively intended for qualified investors.
Important Note!
The system equity curve presented here has been generated as part of the process of testing and verifying the methodology behind this script.
Crucially, it was developed after the system was conceptualized, designed, and created, which helps to mitigate the risk of overfitting to historical data. In other words, the system was built for robustness, not for simply optimizing past performance.
This ensures that the system is less likely to degrade in performance over time, compared to hyper-optimized systems that are tailored to past data. No tweaks or optimizations were made to this system post-backtest.
Even More Important Note!!
The nature of markets is that they change quickly and unpredictably. Past performance does not guarantee future results - this is a fundamental rule in trading and investing.
While this system is designed with broad, flexible conditions to adapt quickly to a range of market environments, it is essential to understand that no assumptions should be made about future returns based on historical data. Markets are inherently uncertain, and this system - like all trading systems - cannot predict future outcomes.
Introduction
The Adaptive Pairwise Momentum System is not just an indicator but a comprehensive asset rotation and trend-following system. In short, it aims to find the highest performing asset from the provided range.
The system dynamically optimizes capital allocation across up to four high-performing assets, ensuring that the portfolio adapts swiftly to changing market conditions. The system logic consists of sophisticated quantitative methods, rapid momentum analysis, and robust trend filtering. The overarching goal is to ensure that the portfolio is always invested in the highest-performing asset based on dynamic market conditions, while at the same time managing risk through broader market filters and internal mechanisms like volatility and beta analysis.
Legend
System Equity Curve:
The equity curve displayed in the chart is dynamically colored based on the asset allocation at any given time. This color-coded approach allows traders to immediately identify transitions between assets and the corresponding impact on portfolio performance.
Highlighting of Current Highest Performer:
The current bar in the chart is highlighted based on the confirmed highest performing asset. This is designed to give traders advanced notice of potential shifts in allocation even before a formal position change occurs. The highlighting enables traders to prepare in real time, making it easier to manage positions without lag, particularly in fast-moving markets.
Highlighted Symbols in the Asset Table:
In the table displayed on the right hand side of the screen, the current top-performing symbol is highlighted. This clear signal at a glance provides immediate insight into which asset is currently being favored by the system. This feature enhances clarity and helps traders make informed decisions quickly, without needing to analyze the underlying data manually.
Performance Overview in Tables:
The left table provides insight into both daily and overall system performance from inception, offering traders a detailed view of short-term fluctuations and long-term growth. The right-hand table breaks down essential metrics such as Sharpe ratio, Sortino ratio, Omega ratio, and maximum drawdown for each asset, as well as for the overall system and HODL strategy.
Asset-Specific Signals:
The signals column in the table indicates whether an asset is currently held or being considered for holding based on the system's dynamic rankings. This is a critical visual aid for asset reallocation decisions, signaling when it may be appropriate to either maintain or change the asset of the portfolio.
Core Features and Methodologies
Flexibility in Asset Selection
One of the major advantages of this system is its flexibility. Users can easily modify the number and type of assets included for comparison. You can quickly input different assets and backtest their performance, allowing you to verify how well this system might fit different tokens or market conditions. This flexibility empowers users to adapt the system to a wide range of market environments and tailor it to their unique preferences.
Whole System Risk Mitigation - Macro Trend Filter
One of the features of this script is its integration of a Macro-level Trend Filter for the entire portfolio. The purpose of this filter is to ensure no capital is allocated to any token in the rotation system unless Bitcoin itself is in a positive trend. The logic here is that Bitcoin, as the cryptocurrency market leader, often sets the tone for the entire cryptocurrency market. By using Bitcoins trend direction as a barometer for overall market conditions, we create a system where capital is not allocated during unfavorable or bearish market conditions - significantly reducing exposure to downside risk.
Users have the ability to toggle this filter on and off in the input menu, with five customizable options for the trend filter, including the option to use no filter. These options are:
Nova QSM - a trend aggregate combining the Rolling VWAP, Wave Pendulum Trend, KRO Overlay, and the Pulse Profiler provides the market trend signal confirmation.
Kilonova QSM - a versatile aggregate combining the Rolling VWAP, KRO Overlay, the KRO Base, RSI Volatility Bands, NNTRSI, Regression Smoothed RSI and the RoC Suite.
Quasar QSM - an enhanced version of the original RSI Pulsar. The Quasar QSM refines the trend following approach by utilizing an aggregated methodology.
Pairwise Momentum and Strength Ranking
The backbone of this system is its ability to identify the strongest-performing asset in the selected pool, ensuring that the portfolio is always exposed to the asset showing the highest relative momentum. The system continually ranks these assets against each other and determines the highest performer by measure of past and coincident outperformance. This process occurs rapidly, allowing for swift responses to shifts in market momentum, which ensures capital is always working in the most efficient manner. The speed and precision of this reallocation strategy make the script particularly well-suited for active, momentum-driven portfolios.
Beta-Adjusted Asset Selection as a Tiebreaker
In the circumstance where two (or more) assets exhibit the same relative momentum score, the system introduces another layer of analysis. In the event of a strength ‘tie’ the system will preference maintaining the current position - that is, if the previously strongest asset is now tied, the system will still allocate to the same asset. If this is not the case, the asset with the higher beta is selected. Beta is a measure of an asset’s volatility relative to Bitcoin (BTC).
This ensures that in bullish conditions, the system favors assets with a higher potential for outsized gains due to their inherent volatility. Beta is calculated based on the Average Daily Return of each asset compared to BTC. By doing this, the system ensures that it is dynamically adjusting to risk and reward, allocating to assets with higher risk in favorable conditions and lower risk in less favorable conditions.
Dynamic Asset Reallocation - Opposed to Multi-Asset Fixed Intervals
One of the standout features of this system is its ability to dynamically reallocate capital. Unlike traditional portfolio allocation strategies that may rebalance between a basket of assets monthly or quarterly, this system recalculates and reallocates capital on the next bar close (if required). As soon as a new asset exhibits superior performance relative to others, the system immediately adjusts, closing the previous position and reallocating funds to the top-ranked asset.
This approach is particularly powerful in volatile markets like cryptocurrencies, where trends can shift quickly. By reallocating swiftly, the system maximizes exposure to high-performing assets while minimizing time spent in underperforming ones. Moreover, this process is entirely automated, freeing the trader from manually tracking and measuring individual token strength.
Our research has demonstrated that, from a risk-adjusted return perspective, concentration into the top-performing asset consistently outperforms broad diversification across longer time horizons. By focusing capital on the highest-performing asset, the system captures outsized returns that are not achievable through traditional diversification. However, a more risk-averse investor, or one seeking to reduce drawdowns, may prefer to move the portfolio further left along the theoretical Capital Allocation Line by incorporating a blend of cash, treasury bonds, or other yield-generating assets or even include market neutral strategies alongside the rotation system. This hybrid approach would effectively lower the overall volatility of the portfolio while still maintaining exposure to the system’s outsized returns. In theory, such an investor can reduce risk without sacrificing too much potential upside, creating a more balanced risk-return profile.
Position Changes and Fees/Slippage
Another critical and often overlooked element of this system is its ability to account for fees and slippage. Given the increased speed and frequency of allocation logic compared to the buy-and-hold strategy, it is of vital importance that the system recognises that switching between assets may incur slippage, especially in highly volatile markets. To account for this, the system integrates realistic slippage and fee estimates directly into the equity curve, simulating expected execution costs under typical market conditions and gives users a more realistic view of expected performance.
Number of Position Changes
Understanding the number of position changes in a strategy is critical to assessing its feasibility in real world trading. Frequent position changes can lead to increased costs due to slippage and fees. Monitoring the number of position changes provides insight into the system’s behavior - helping to evaluate how active the strategy is and whether it aligns with the trader's desired time input for position management.
Equity Curve and Performance Calculations
To provide a benchmark, the script also generates a Buy-and-Hold (or "HODL") equity curve that represents an equal split across the four selected assets. This allows users to easily compare the performance of the dynamic rotation system with that of a more traditional investment strategy.
The script tracks key performance metrics for both the dynamic portfolio and the HODL strategy, including:
Sharpe Ratio
The Sharpe Ratio is a key metric that evaluates a portfolio’s risk-adjusted return by comparing its ‘excess’ return to its volatility. Traditionally, the Sharpe Ratio measures returns relative to a risk-free rate. However, in our system’s calculation, we omit the risk-free rate and instead measure returns above a benchmark of 0%. This adjustment provides a more universal comparison, especially in the context of highly volatile assets like cryptocurrencies, where a traditional risk-free benchmark, such as the usual 3-month T-bills, is often irrelevant or too distant from the realities of the crypto market.
By using 0% as the baseline, we focus purely on the strategy's ability to generate raw returns in the face of market risk, which makes it easier to compare performance across different strategies or asset classes. In an environment like cryptocurrency, where volatility can be extreme, the importance of relative return against a highly volatile backdrop outweighs comparisons to a risk-free rate that bears little resemblance to the risk profile of digital assets.
Sortino Ratio
The Sortino Ratio improves upon the Sharpe Ratio by specifically targeting downside risk and leaves the upside potential untouched. In contrast to the Sharpe Ratio (which penalizes both upside and downside volatility), the Sortino Ratio focuses only on negative return deviations. This makes it a more suitable metric for evaluating strategies like the Adaptive Pairwise Momentum Strategy - that aim to minimize drawdowns without restricting upside capture. By measuring returns relative to a 0% baseline, the Sortino ratio provides a clearer assessment of how well the system generates gains while avoiding substantial losses in highly volatile markets like crypto.
Omega Ratio
The Omega Ratio is calculated as the ratio of gains to losses across all return thresholds, providing a more complete view of how the system balances upside and downside risk even compared to the Sortino Ratio. While it achieves a similar outcome to the Sortino Ratio by emphasizing the system's ability to capture gains while limiting losses, it is technically a mathematically superior method. However, we include both the Omega and Sortino ratios in our metric table, as the Sortino Ratio remains more widely recognized and commonly understood by traders and investors of all levels.
Case Study
Notes
For the sake of brevity, the Important Notes section found in the header of this text will not be rewritten. Instead, it will be highlighted that now is the perfect time to reread these notes. Reading this case study in the context of what has been mentioned above is of key importance.
As a second note, it is worth mentioning that certain market periods are referred to as either “Bull” or “Bear” markets - terms I personally find to be vague and undefinable - and therefore unfavorable. They will be used nevertheless, due to their familiarity and ease of understanding in this context. Substitute phrases could be “Macro Uptrend” or “Macro Downtrend.”
Overview
This case study provides an in-depth performance analysis of the Adaptive Pairwise Momentum System , a long-only system that dynamically allocates to outperforming assets and moves into cash during unfavorable conditions.
This backtest includes realistic assumptions for slippage and fees, applying a 0.5% cost for every position change, which includes both asset reallocation and moving to a cash position. Additionally, the system was tested using the top four cryptocurrencies by market capitalization as of the test start date of 01/01/2022 in order to minimize selection bias.
The top tokens on this date (excluding Stablecoins) were:
Bitcoin
Ethereum
Solana
BNB
This decision was made in order to avoid cherry picking assets that might have exhibited exceptional historical performance - minimizing skew in the back test. Furthermore, although this backtest focuses on these specific assets, the system is built to be flexible and adaptable, capable of being applied to a wide range of assets beyond those initially tested.
Any potential lookahead bias or repainting in the calculations has been addressed by implementing the lookback modifier for all repainting sensitive data, including asset ratios, asset scoring, and beta values. This ensures that no future information is inadvertently used in the asset allocation process.
Additionally, a fixed lookback period of one bar is used for the trend filter during allocations - meaning that the trend filter from the prior bar must be positive for an allocation to occur on the current bar. It is also important to note that all the data displayed by the indicator is based on the last confirmed (closed) bar, ensuring that the entire system is repaint-proof.
The study spans the 2022 cryptocurrency bear market through the subsequent bull market of 2023 and 2024. The stress test highlights how the system reacted to one of the most challenging market downturns in crypto history - which includes events such as:
Luna and TerraUSD crash
Three Arrows Capital liquidation
Celsius bankruptcy
Voyager Digital bankruptcy
FTX collapse
Silicon Valley + Signature + Silvergate banking collapses
Subsequent USDC deppegging
And arguably more important, 2022 was characterized by a tightening of monetary policy after the unprecedented monetary easing in response to the Covid pandemic of 2020/2021. This shift undeniably puts downward pressure on asset prices, most probably to the extent that this had a causal role to many of the above events.
By incorporating these real-world challenges, the backtest provides a more accurate and robust performance evaluation that avoids overfitting or excessive optimization for one specific market condition.
The Bear Market of 2022: Stress Test and System Resilience
During the 2022 bear market, where the overall crypto market experienced deep and consistent corrections, the Adaptive Pairwise Momentum System demonstrated its ability to mitigate downside risk effectively.
Dynamic Allocation and Cash Exposure:
The system rotated in and out of cash, as indicated by the gray period on the system equity curve. This allocation to cash during downtrending periods, specifically in late 2022, acted as the systems ‘risk-off’ exposure - the purest form of such an exposure. This prevented the system from experiencing the magnitude of drawdown suffered by the ‘Buy-and-Hold (HODL) investors.
In contrast, a passive HODL strategy would have suffered a staggering 75.32% drawdown, as it remained fully allocated to chosen assets during the market's decline. The active Pairwise Momentum system’s smaller drawdown of 54.35% demonstrates its more effective capital preservation mechanisms.
The Bull Market of 2023 and 2024: Capturing Market Upside
Following the crypto bear market, the system effectively capitalized on the recovery and subsequent bull market of 2023 and 2024.
Maximizing Market Gains:
As trends began turning bullish in early 2023, the system caught the momentum and promptly allocated capital to only the quantified highest performing asset of the time - resulting in a parabolic rise in the system's equity curve. Notably, the curve transitions from gray to purple during this period, indicating that Solana (SOL) was the top-performing asset selected by the system.
This allocation to Solana is particularly striking because, at the time, it was an asset many in the market shunned due to its association with the FTX collapse just months prior. However, this highlights a key advantage of quantitative systems like the one presented here: decisions are driven purely from objective data - free from emotional or subjective biases. Unlike human traders, who are inclined (whether consciously or subconsciously) to avoid assets that are ‘out of favor,’ this system focuses purely on price performance, often uncovering opportunities that are overlooked by discretionary based investors. This ability to make data-driven decisions ensures that the strategy is always positioned to capture the best risk-adjusted returns, even in scenarios where judgment might fail.
Minimizing Volatility and Drawdown in Uptrends
While the system captured substantial returns during the bull market it also did so with lower volatility compared to HODL. The sharpe ratio of 4.05 (versus HODL’s 3.31) reflects the system's superior risk-adjusted performance. The allocation shifts, combined with tactical periods of cash holding during minor corrections, ensured a smoother equity curve growth compared to the buy-and-hold approach.
Final Summary
The percentage returns are mentioned last for a reason - it is important to emphasize that risk-adjusted performance is paramount. In this backtest, the Pairwise Momentum system consistently outperforms due to its ability to dynamically manage risk (as seen in the superior Sharpe, Sortino and Omega ratios). With a smaller drawdown of 54.35% compared to HODL’s 75.32%, the system demonstrates its resilience during market downturns, while also capturing the highest beta on the upside during bullish phases.
The system delivered 266.26% return since the backtest start date of January 1st 2022, compared to HODL’s 10.24%, resulting in a performance delta of 256.02%
While this backtest goes some of the way to verifying the system’s feasibility, it’s important to note that past performance is not indicative of future results - especially in volatile and evolving markets like cryptocurrencies. Market behavior can shift, and in particular, if the market experiences prolonged sideways action, trend following systems such as the Adaptive Pairwise Momentum Strategy WILL face significant challenges.
Prometheus Topological Persistent EntropyPersistence Entropy falls under the branch of math topology. Topology is a study of shapes as they twist and contort. It can be useful in the context of markets to determine how volatile they may be and different from the past.
The key idea is to create a persistence diagram from these log return segments. The persistence diagram tracks the "birth" and "death" of price features:
A birth occurs when a new price pattern or feature emerges in the data.
A death occurs when that pattern disappears.
By comparing prices within each segment, the script tracks how long specific price features persist before they die out. The lifetime of each feature (difference between death and birth) represents how robust or fleeting the pattern is. Persistent price features tend to reflect stable trends, while shorter-lived features indicate volatility.
Entropy Calculation: The lifetimes of these patterns are then used to compute the entropy of the system. Entropy, in this case, measures the amount of disorder or randomness in the price movements. The more varied the lifetimes, the higher the entropy, indicating a more volatile market. If the price patterns exhibit longer, more consistent lifetimes, the entropy is lower, signaling a more stable market.
Calculation:
We start by getting log returns for a user defined look back value. In the compute_persistent_entropy function we separate the overall log returns into windows. We then compute persistence diagrams of the windows. It tracks the birth and death of price patterns to see how persistent they are. Then we calculate the entropy of the windows.
After we go through that process we get an array of entropies, we then smooth it by taking the sum of all of them and dividing it by how many we have so the indicator can function better.
// Calculate log returns
log_returns = array.new()
for i = 1 to lgr_lkb
array.push(log_returns, math.log(close / close ))
// Function to compute a simplified persistence diagram
compute_persistence_diagram(segment) =>
n = array.size(segment)
lifetimes = array.new()
for i = 0 to n - 1
for j = i + 1 to n - 1
birth = array.get(segment, i)
death = array.get(segment, j-1)
if birth != death
array.push(lifetimes, math.abs(death - birth))
lifetimes
// Function to compute entropy of a list of values
compute_entropy(values) =>
n = array.size(values)
if n == 0
0.0
else
freq_map = map.new()
total_sum = 0.0
for i = 0 to n - 1
value = array.get(values, i)
//freq_map := freq_map.get(value, 0.0) + 1
map.put(freq_map, value, value + 1)
total_sum += 1
entropy = 0.0
for in freq_map
p = count / total_sum
entropy -= p * math.log(p)
entropy
compute_persistent_entropy(log_returns, window_size) =>
n = (lgr_lkb) - (2 * window_size) + 1
entropies = array.new()
for i = 0 to n - 1
segment1 = array.new()
segment2 = array.new()
for j = 0 to window_size - 1
array.push(segment1, array.get(log_returns, i + j))
array.push(segment2, array.get(log_returns, i + window_size + j))
dgm1 = compute_persistence_diagram(segment1)
dgm2 = compute_persistence_diagram(segment2)
combined_diagram = array.concat(dgm1, dgm2)
entropy = compute_entropy(combined_diagram)
array.push(entropies, entropy)
entropies
//---------------------------------------------
//---------------PE----------------------------
//---------------------------------------------
// Calculate Persistent Entropy
entropies = compute_persistent_entropy(log_returns, window_size)
smooth_pe = array.sum(entropies) / array.size(entropies)
This image illustrates how the indicator works for traders. The purple line is the actual indicator value. The line that changes from green to red is a SMA of the indicator value, we use this to determine bullish or bearish. When the smoothed persistence entropy is above it’s SMA that signals bearishness.
The indicator tends to look prettier on higher time frames, we see NASDAQ:TSLA on a 4 hour here and below we see it on the 5 minute.
On a lower time frame it looks a little weird but still functions the same way.
Prometheus encourages users to use indicators as tools along with their own discretion. No indicator is 100% accurate. We encourage comments about requested features and criticism.
Options Series - MTF 1 and 3 Minute
Objective:
The indicator is named "Options Series - MTF 1 and 3 Minute", suggesting it's designed to analyze options series with multiple time frames (MTF), particularly focusing on 1-minute and 3-minute intervals.
OHLC Values Of Candle:
The code fetches the Open, High, Low, and Close (OHLC) values of the current candle for the specified ticker and timeframes (current, 1 minute, and 3 minutes). Additionally, it calculates the 200-period Simple Moving Average (SMA) of the closing prices for each timeframe.
Bull vs. Bear Condition:
It defines conditions for Bullish and Bearish scenarios based on comparing the current close price with the previous 200-period SMA close price for both 1-minute and 3-minute timeframes. If the current close price is higher than the previous 200-period SMA close price, it's considered Bullish, and if it's lower, it's considered Bearish.
Final Color Condition and Plot:
It determines the color of the candlestick based on the Bullish or Bearish condition. If the conditions for a Bullish scenario are met, the candlestick color is set to green (GreenColorCandle). If the conditions for a Bearish scenario are met, the candlestick color is set to red (RedColorCandle). If neither condition is met (i.e., the candle is neither Bullish nor Bearish), the color remains gray.
The code then plots the 200-period SMA values for both 1-minute and 3-minute timeframes and colors them based on the candlestick color. It also colors the bars based on the candlestick color.
Insights:
This indicator focuses on comparing current close prices with the 200-period SMA close prices to determine market sentiment (Bullish or Bearish).
It utilizes multiple time frames (1 minute and 3 minutes) to provide a broader perspective on market movements.
The color-coded candlesticks and bars make it visually easy to identify Bullish and Bearish trends.
This indicator can be used as part trading based on the identified market sentiment.
Swiss Knife [MERT]Introduction
The Swiss Knife indicator is a comprehensive trading tool designed to provide a multi-dimensional analysis of the market. By integrating a wide array of technical indicators across multiple timeframes, it offers traders a holistic view of market sentiment, momentum, and potential reversal points. This indicator is particularly useful for traders looking to combine trend analysis, momentum indicators, volume data, and price action into a single, easy-to-read format.
---
Key Features
Multi-Timeframe Analysis : Evaluates indicators on Daily , 4-Hour , 1-Hour , and 15-Minute timeframes.
Comprehensive Indicator Suite : Incorporates MACD , Awesome Oscillator (AO) , Parabolic SAR , SuperTrend , DPO , RSI , Stochastic Oscillator , Bollinger Bands , Ichimoku Cloud , Chande Momentum Oscillator (CMO) , Donchian Channels , ADX , volume-based momentum indicators, Fractals , and divergence detection.
Market Sentiment Scoring : Aggregates signals from multiple indicators to provide an overall sentiment score.
Visual Aids : Displays EMA lines, trendlines, divergence signals, and a sentiment table directly on the chart.
Super Trend Reversal Signals : Identifies potential market reversal points by assessing the momentum of automated trading bots.
---
Explanation of Each Indicator
Moving Average Convergence Divergence (MACD)
- Purpose : Measures the relationship between two moving averages of price.
- Interpretation : A positive histogram suggests bullish momentum; a negative histogram indicates bearish momentum.
Awesome Oscillator (AO)
- Purpose : Gauges market momentum by comparing recent market movements to historic ones.
- Interpretation : Above zero indicates bullish momentum; below zero indicates bearish momentum.
Parabolic SAR (SAR)
- Purpose : Identifies potential reversal points in price direction.
- Interpretation : Dots below price suggest an uptrend; dots above price suggest a downtrend.
SuperTrend
- Purpose : Determines the prevailing market trend.
- Interpretation : Provides buy or sell signals based on price movements relative to the SuperTrend line.
Detrended Price Oscillator (DPO)
- Purpose : Removes trend from price to identify cycles.
- Interpretation : Values above zero suggest price is above the moving average; values below zero indicate it is below.
Relative Strength Index (RSI)
- Purpose : Measures the speed and change of price movements.
- Interpretation : Values above 50 indicate bullish momentum; values below 50 indicate bearish momentum.
Stochastic Oscillator
- Purpose : Compares a particular closing price to a range of its prices over a certain period.
- Interpretation : Values above 50 indicate bullish conditions; values below 50 indicate bearish conditions.
Bollinger Bands (BB)
- Purpose : Measures market volatility and provides relative price levels.
- Interpretation : Price above the middle band suggests bullishness; below the middle band suggests bearishness.
Ichimoku Cloud
- Purpose : Provides support and resistance levels, trend direction, and momentum.
- Interpretation : Bullish signals when price is above the cloud; bearish signals when price is below the cloud.
Chande Momentum Oscillator (CMO)
- Purpose : Measures momentum on both up and down days.
- Interpretation : Values above 50 indicate strong upward momentum; values below -50 indicate strong downward momentum.
Donchian Channels
- Purpose : Identifies volatility and potential breakouts.
- Interpretation : Price above the upper band suggests bullish breakout; below the lower band suggests bearish breakout.
Average Directional Index (ADX)
- Purpose : Measures the strength of a trend.
- Interpretation : DI+ above DI- indicates bullish trend; DI- above DI+ indicates bearish trend.
Volume Momentum Indicators (VolMom, CumVolMom, POCMom)
- Purpose : Analyze volume to assess buying and selling pressure.
- Interpretation : Positive values suggest bullish volume momentum; negative values indicate bearish volume momentum.
Fractals
- Purpose : Identify potential reversal points in the market.
- Interpretation : Up fractals may indicate a future downtrend; down fractals may indicate a future uptrend.
Divergence Detection
- Purpose : Identifies divergences between price and various indicators (RSI, MACD, Stochastic, OBV, MFI, A/D Line).
- Interpretation : Bullish divergences suggest potential upward reversal; bearish divergences suggest potential downward reversal.
- Note : This functionality utilizes the library from Divergence Indicator .
---
Coloring Scheme
Background Color
- Purpose : Reflects the overall market sentiment by combining sentiment scores from all indicators across different timeframes.
- Interpretation :
- Green Shades : Indicate bullish market sentiment.
- Red Shades : Indicate bearish market sentiment.
- Intensity : The strength of the color corresponds to the strength of the sentiment score.
Sentiment Table
- Purpose : Displays the status of each indicator across different timeframes.
- Interpretation :
- Green Cell : The indicator suggests a bullish signal.
- Red Cell : The indicator suggests a bearish signal.
- Percentage Score : Indicates the overall bullish or bearish sentiment on that timeframe.
Exponential Moving Averages (EMAs)
- Purpose : Provide dynamic support and resistance levels.
- Colors :
- EMA 10 : Lime
- EMA 20 : Yellow
- EMA 50 : Orange
- EMA 100 : Red
- EMA 200 : Purple
Trendlines
- Purpose : Visual representation of support and resistance levels based on pivot points.
- Interpretation :
- Upward Trendlines : Colored green , indicating support levels.
- Downward Trendlines : Colored red , indicating resistance levels.
- Note : Trendlines are drawn using the library from Simple Trendlines .
---
Utility of Market Sentiment
The indicator aggregates signals from multiple technical indicators across various timeframes to compute an overall market sentiment score . This comprehensive approach helps traders understand the prevailing market conditions by:
Confirming Trends : Multiple indicators pointing in the same direction can confirm the strength of a trend.
Identifying Reversals : Divergences and fractals can signal potential turning points.
Timeframe Alignment : Aligning signals across different timeframes can enhance the probability of successful trades.
---
Divergences
Divergence occurs when the price of an asset moves in the opposite direction of a technical indicator, suggesting a potential reversal.
- Bullish Divergence : Price makes a lower low, but the indicator makes a higher low.
- Bearish Divergence : Price makes a higher high, but the indicator makes a lower high.
The indicator detects divergences for:
RSI
MACD
Stochastic Oscillator
On-Balance Volume (OBV)
Money Flow Index (MFI)
Accumulation/Distribution Line (A/D Line)
By identifying these divergences, traders can spot early signs of trend reversals and adjust their strategies accordingly.
---
Trendlines
Trendlines are essential tools for identifying support and resistance levels. The indicator automatically draws trendlines based on pivot points:
- Upward Trendlines (Support) : Connect higher lows, indicating an uptrend.
- Downward Trendlines (Resistance) : Connect lower highs, indicating a downtrend.
These trendlines help traders visualize the trend direction and potential breakout or reversal points.
---
Super Trend Reversals (ST Reversal)
The core idea behind the Super Trend Reversals indicator is to assess the momentum of automated trading bots (often referred to as 'Supertrend bots') that enter the market during critical turning points. Specifically, the indicator is tuned to identify when the market is nearing bottoms or peaks, just before it shifts direction based on the triggered Supertrend signals. This approach helps traders:
Engage Early : Enter the market as reversal momentum builds up.
Optimize Entries and Exits : Enter under favorable conditions and exit before momentum wanes.
By capturing these reversal points, traders can enhance their trading performance.
---
Conclusion
The Swiss Knife indicator serves as a versatile tool that combines multiple technical analysis methods into a single, comprehensive indicator. By assessing various aspects of the market—including trend direction, momentum, volume, and price action—it provides traders with valuable insights to make informed trading decisions.
---
Citations
- Divergence Detection Library : Divergence Indicator by DevLucem
- Trendline Drawing Library : Simple Trendlines by HoanGhetti
---
Note : This indicator is intended for informational purposes and should be used in conjunction with other analysis techniques. Always perform due diligence before making trading decisions.
---
Potential Divergence Checker#### Key Features
1. Potential Divergence Signals:
Potential divergences can signal a change in price movement before it occurs. This indicator identifies potential divergences instead of waiting for full confirmation, allowing it to detect signs of divergence earlier than traditional methods. This provides more flexible entry points and can act as a broader filter for potential setups.
2. Exposing Signals for External Use:
One of its advanced features is the ability to expose signals for use in other scripts. This allows users to integrate divergence signals and related entry/exit points into custom strategies or automated systems.
3. Custom Entry/Exit Timing Based on Years and Days:
The indicator provides entry and exit signals based on years and days, which could be useful for time-specific market behavior, long-term trades, and back testing.
#### Basic Usage
This indicator can check for all types of potential divergences: bullish, hidden bullish, bearish, hidden bearish. All you need to do is choose the type you want to check for under “DIVERGENCE TYPE” in the settings. On the chart, potential bullish divergences will show up as triangles below the price candles. one the chart potential bearish divergences will show up as upside down triangles above the price candles
#### Signals for Advanced Usage
You can use this indicator as a source in other indicators or strategies using the following information:
“ PD: Bull divergence signal ” will return “1” when a divergence is present and “0” when not present
“ PD: HBull divergence(hidden bull) signal ” will return “1” when a divergence is present and “0” when not present
“ PD: Bear divergence signal ” will return “1” when a divergence is present and “0” when not present
“ PD: HBear divergence(hidden bear) signal ” will return “1” when a divergence is present and “0” when not present
“ PD: enter ” signal will return a “1” when both the days and years criteria in the “entry filter settings” are met and “0” when not met.
“ PD: exit ” signal will return a “1” when the days criteria in the “exit filter settings” are met and “0” when not met.
#### Examples of Using Signals
1. If you are testing a long strategy for Bitcoin and do not want it to run during bear market years(e.g., the second year after a US presidential election), you can enable the “year and day filter for entry,” uncheck the following years in the settings: 2010, 2014, 2018, 2022, 2026, and reference the signal below in our strategy
signal: “ PD: enter ”
2. Let’s say you have a good long strategy, but want to make it a bit more profitable, you can tell the strategy not to run on days where there is potential bearish divergence and have it only run on more profitable days using these signals and the appropriate settings in the indicator
signal: “ PD: Bear divergence signal ” will return a ‘0’ with no bearish divergence present
signal: “ PD: enter ” will return a “1” if the entry falls on a specific, more profitable day chosen in the settings
#### Disclaimer
The "Potential Divergence Checker" indicator is a tool designed to identify potential market signals. It may have bugs and not do what it should do. It is not a guarantee of future trading performance, and users should exercise caution when making trading decisions based on its outputs. Always perform your own research and consider consulting with a financial advisor before making any investment decisions. Trading involves significant risk, and past performance is not indicative of future results.
MTF AnalysisMTF Analysis - Multi-Timeframe TradingView Script
Overview: The "MTF Analysis" script provides a comprehensive approach to analyzing price trends across daily, weekly, and monthly timeframes using linear regression channels. It helps traders identify strong and weak bullish or bearish conditions based on the relationship between the current price and regression lines derived from multiple timeframes.
Key Features:
User-Defined Inputs:
Regression Lengths: Customize regression lengths for daily, weekly, and monthly timeframes.
Smoothing Length: Apply smoothing to regression lines.
Near-Zero Threshold: Filter out signals near a defined slope threshold for more refined analysis.
Daily Time Frame Filter: Optional filter to consider daily regression slope in signal generation.
Regression Line Calculation:
The script calculates linear regression lines for each timeframe (daily, weekly, monthly) and applies a smoothing function to refine the signals.
Signal Conditions:
Strong Bullish/Bearish: Signals generated when the price is consistently above/below weekly and monthly regression lines, with the option to apply the daily timeframe filter.
Weak Bullish/Bearish: Signals generated when the price is above/below the monthly regression line alone.
Visual Indicators:
The script plots regression lines on the chart with different colors for easy identification.
It also displays arrows on the chart to indicate strong or weak bullish/bearish signals.
Alerts:
Custom alerts for each signal condition help traders stay informed of potential trading opportunities.
This script is highly customizable, allowing traders to tailor it to their specific trading style and preferences.
This summary can be used to introduce the script to other traders or for publication on platforms like TradingView.
Uptrick: FVG Market Zones**Uptrick: FVG Market Zones**
---
### Introduction
**Uptrick: FVG Market Zones** is a cutting-edge technical analysis tool designed to identify and visualize Fair Value Gaps (FVGs) within financial markets. This indicator focuses on pinpointing critical price levels where significant gaps occur, which can act as potential support and resistance zones. By integrating advanced volatility analysis and user-configurable parameters, the **Uptrick: FVG Market Zones** provides traders with a robust framework for understanding market dynamics and making informed trading decisions.
### Purpose and Functionality
The primary purpose of the **Uptrick: FVG Market Zones** indicator is to detect and highlight Fair Value Gaps, which are areas on a price chart where there is a significant price movement without any trading activity in between. These gaps can provide critical insights into market behavior, as they often indicate areas where the market has not fully accounted for the supply and demand dynamics. Traders use these zones to anticipate potential reversals, breakouts, or consolidations, making this tool highly valuable for both short-term and long-term trading strategies.
### Unique Features and Originality
The **Uptrick: FVG Market Zones** indicator is distinguished by its focus on FVGs and its ability to integrate this concept into a broader market analysis framework. Unlike other indicators that may offer generalized support and resistance levels, this tool specifically identifies and visualizes gaps based on volatility-adjusted criteria. This precision allows traders to focus on the most relevant market zones, improving their ability to anticipate market movements.
One of the standout features of this indicator is its user-configurable settings, which provide a high degree of customization. This flexibility ensures that traders can tailor the indicator to suit their specific trading style and the particular market they are analyzing. Additionally, the indicator's visualization capabilities are enhanced with customizable colors and gap-filling options, making it easier for traders to interpret and act on the information presented.
### Inputs and Configurations
**Uptrick: FVG Market Zones** comes with several user inputs that allow traders to customize the indicator's behavior and appearance. Each input plays a crucial role in determining how the indicator identifies and visualizes FVGs on the chart. Here’s a detailed breakdown of each input:
1. **FVG Analysis Period (fvgPeriod):**
- **Description:** This input determines the period over which the indicator analyzes the chart for identifying FVGs. By adjusting this value, traders can control how far back in time the indicator looks to detect significant gaps.
- **Default Value:** 25
- **Purpose:** A shorter period may focus on more recent market activity, making the indicator more sensitive to recent price movements. In contrast, a longer period allows the indicator to identify gaps that have remained unfilled for an extended time, potentially acting as stronger support or resistance levels.
2. **Analysis Mode (mode):**
- **Description:** The Analysis Mode input allows traders to choose between different methods of analyzing the chart for FVGs.
- **Options:** "Recent Gaps" and "Extended View"
- **Default Option:** "Recent Gaps"
- **Purpose:**
- **Recent Gaps:** Focuses on the latest significant gaps, providing traders with up-to-date information on the most relevant market zones.
- **Extended View:** Considers a broader range of gap patterns, which can be useful in markets where historical gaps may still influence current price action.
3. **Volatility Sensitivity (volatilityFactor):**
- **Description:** This input adjusts the sensitivity of the indicator to market volatility. It is used in calculating the threshold for identifying FVGs.
- **Default Value:** 0.3
- **Step Size:** 0.1
- **Purpose:** A higher sensitivity will cause the indicator to detect smaller gaps, which might be more frequent but less significant. Lower sensitivity focuses on larger, more impactful gaps, which are less frequent but potentially more powerful in predicting market behavior.
4. **Highlight Market Gaps (showGaps):**
- **Description:** A boolean input that determines whether the identified FVGs should be highlighted on the chart.
- **Default Value:** True
- **Purpose:** This input allows traders to toggle the visualization of FVGs. When enabled, the indicator highlights gaps using colored boxes, making them visually prominent on the chart.
5. **Bullish Highlight Color (bullColor):**
- **Description:** Sets the color used to highlight bullish FVGs (gaps that may indicate support).
- **Default Value:** #00FF7F (a shade of green)
- **Purpose:** The color choice is crucial for quickly distinguishing bullish zones from bearish ones. Green is typically associated with upward price movement, making it intuitive for traders to identify potential support areas.
6. **Bearish Highlight Color (bearColor):**
- **Description:** Sets the color used to highlight bearish FVGs (gaps that may indicate resistance).
- **Default Value:** #FF4500 (a shade of red)
- **Purpose:** Red is commonly associated with downward price movement, making it easy for traders to identify potential resistance areas. This color coding helps in quickly assessing the chart.
7. **Fill Gap Areas (fillGaps):**
- **Description:** A boolean input that determines whether the FVGs should be filled with a color on the chart.
- **Default Value:** True
- **Purpose:** Filling the gap areas provides a more solid visual cue for traders. It enhances the visibility of the gaps, making it easier to spot these zones during fast-paced trading sessions.
8. **Hidden Color (hidden):**
- **Description:** A color input that is used when certain elements should be hidden from the chart.
- **Default Value:** color.rgb(0,0,0,100) (a semi-transparent black)
- **Purpose:** This input is useful for controlling the visibility of certain plots or elements on the chart, ensuring that the indicator remains clean and uncluttered.
### Market Gap Detection
The core functionality of the **Uptrick: FVG Market Zones** indicator lies in its ability to detect Fair Value Gaps. These gaps occur when the price makes a significant jump from one level to another without any trading activity in between. The indicator uses a combination of price action analysis and volatility thresholds to identify these gaps.
- **Volatility Measurement:** The indicator begins by measuring market volatility using the Average True Range (ATR). This volatility measurement is then adjusted by the user-defined sensitivity factor, which determines the threshold for identifying significant gaps.
- **Gap Identification:** The indicator checks for instances where the current low is higher than the high two bars ago (bullish gap) or where the current high is lower than the low two bars ago (bearish gap). These conditions signify a potential FVG.
- **Gap Storage and Management:** Once a gap is identified, it is stored in an array. The indicator also manages the size of these arrays based on the selected analysis mode, ensuring that only the most relevant gaps are considered in the analysis.
### Visualization
Visualization is a key component of the **Uptrick: FVG Market Zones** indicator. By providing clear and customizable visual cues, the indicator ensures that traders can quickly and easily interpret the information it provides.
- **Gap Highlighting:** When enabled, the indicator highlights the identified FVGs on the chart using colored boxes. Bullish gaps are highlighted in green, while bearish gaps are highlighted in red. This color coding helps traders instantly recognize potential support and resistance zones.
- **Gap Filling:** The indicator can also fill the identified gaps with a semi-transparent color. This option enhances the visibility of the gaps, making them more prominent on the chart. Filled gaps are particularly useful for traders who want to keep track of these zones over multiple trading sessions.
- **Gap Averages:** The indicator calculates the average level of the identified gaps and plots these averages as lines on the chart. These lines represent the general area of support or resistance based on the detected gaps, providing traders with a reference point for setting their stop losses or profit targets.
- **Text Labels:** The indicator also labels each FVG with the text "FVG" inside the highlighted area. This feature ensures that traders can easily identify these zones even in charts with dense price action.
### Practical Applications
The **Uptrick: FVG Market Zones** indicator is versatile and can be applied to a wide range of trading strategies across different markets and timeframes. Here are a few examples of how this indicator can be used in practice:
1. **Support and Resistance Trading:**
- Traders can use the identified FVGs as dynamic support and resistance levels. By placing their trades based on these levels, they can take advantage of potential reversals or continuations at key market zones.
2. **Gap Filling Strategy:**
- Some traders focus on the concept of gap filling, where the market eventually returns to "fill" the gap created by rapid price movements. The **Uptrick: FVG Market Zones** indicator can
help identify such gaps and anticipate when the market might return to these levels.
3. **Breakout Trading:**
- The indicator can be used to identify breakouts from significant gaps. When the price moves beyond the identified FVGs, it may signal a strong trend continuation, providing an opportunity for breakout traders.
4. **Reversal Trading:**
- By monitoring the signals generated by the indicator, traders can identify potential market reversals. A sell signal after a prolonged uptrend or a buy signal after a downtrend may indicate a reversal, allowing traders to position themselves accordingly.
5. **Risk Management:**
- The average levels of the FVGs can be used to set stop-loss and take-profit levels. By aligning these levels with the FVG zones, traders can improve their risk management practices and enhance their trading discipline.
### Customization and Flexibility
One of the standout features of the **Uptrick: FVG Market Zones** indicator is its high level of customization. Traders can adjust various parameters to tailor the indicator to their specific needs and preferences.
- **Customizable Colors:** The indicator allows traders to choose their preferred colors for highlighting bullish and bearish gaps. This flexibility ensures that the indicator can be integrated seamlessly into any trading setup, regardless of the trader's color scheme preferences.
- **Adjustable Periods and Sensitivity:** By allowing traders to adjust the analysis period and volatility sensitivity, the indicator can be fine-tuned to suit different market conditions. For example, a trader might use a shorter analysis period and higher sensitivity in a volatile market, while opting for a longer period and lower sensitivity in a more stable market.
- **Toggling Visual Elements:** Traders can choose to enable or disable various visual elements of the indicator, such as gap highlighting, gap filling, and text labels. This level of control allows traders to declutter their charts and focus on the information that is most relevant to their trading strategy.
### Advantages and Benefits
The **Uptrick: FVG Market Zones** indicator offers several key advantages that make it a valuable tool for traders:
1. **Precision:** By focusing on Fair Value Gaps, the indicator provides highly precise levels of support and resistance, which are often more reliable than traditional horizontal levels.
2. **Clarity:** The clear visual representation of FVGs, along with the text labels and color coding, ensures that traders can quickly interpret the indicator's signals and incorporate them into their trading decisions.
3. **Adaptability:** The indicator's customizable settings allow it to be adapted to different markets, timeframes, and trading styles. Whether you are a day trader, swing trader, or long-term investor, this indicator can be tailored to meet your needs.
4. **Enhanced Decision-Making:** The trading signals generated by the indicator provide actionable insights that can help traders make more informed decisions. By aligning their trades with the identified FVG zones, traders can improve their chances of success.
5. **Risk Management:** The use of FVG zones as reference points for stop-loss and take-profit levels enhances risk management practices, helping traders protect their capital while maximizing their profit potential.
### Conclusion
The **Uptrick: FVG Market Zones** indicator is a powerful and versatile tool for traders seeking to enhance their market analysis and improve their trading outcomes. By focusing on Fair Value Gaps and providing a high level of customization, this indicator offers a unique blend of precision, clarity, and adaptability. Whether you are looking to identify key market zones, generate trading signals, or improve your risk management practices, the **Uptrick: FVG Market Zones** indicator is a valuable addition to any trader's toolkit.
With its innovative approach to market analysis and user-friendly design, **Uptrick: FVG Market Zones** stands out as an essential tool for traders who want to stay ahead of the market and make more informed trading decisions. Whether you are trading stocks, forex, commodities, or cryptocurrencies, this indicator provides the insights you need to navigate the markets with confidence and success.
Price Action Smart Money Concepts [BigBeluga]THE SMART MONEY CONCEPTS Toolkit
The Smart Money Concepts [ BigBeluga ] is a comprehensive toolkit built around the principles of "smart money" behavior, which refers to the actions and strategies of institutional investors.
The Smart Money Concepts Toolkit brings together a suite of advanced indicators that are all interconnected and built around a unified concept: understanding and trading like institutional investors, or "smart money." These indicators are not just randomly chosen tools; they are features of a single overarching framework, which is why having them all in one place creates such a powerful system.
This all-in-one toolkit provides the user with a unique experience by automating most of the basic and advanced concepts on the chart, saving them time and improving their trading ideas.
Real-time market structure analysis simplifies complex trends by pinpointing key support, resistance, and breakout levels.
Advanced order block analysis leverages detailed volume data to pinpoint high-demand zones, revealing internal market sentiment and predicting potential reversals. This analysis utilizes bid/ask zones to provide supply/demand insights, empowering informed trading decisions.
Imbalance Concepts (FVG and Breakers) allows traders to identify potential market weaknesses and areas where price might be attracted to fill the gap, creating opportunities for entry and exit.
Swing failure patterns help traders identify potential entry points and rejection zones based on price swings.
Liquidity Concepts, our advanced liquidity algorithm, pinpoints high-impact events, allowing you to predict market shifts, strong price reactions, and potential stop-loss hunting zones. This gives traders an edge to make informed trading decisions based on liquidity dynamics.
🔵 FEATURES
The indicator has quite a lot of features that are provided below:
Swing market structure
Internal market structure
Mapping structure
Adjustable market structure
Strong/Weak H&L
Sweep
Volumetric Order block / Breakers
Fair Value Gaps / Breakers (multi-timeframe)
Swing Failure Patterns (multi-timeframe)
Deviation area
Equal H&L
Liquidity Prints
Buyside & Sellside
Sweep Area
Highs and Lows (multi-timeframe)
🔵 BASIC DEMONSTRATION OF ALL FEATURES
1. MARKET STRUCTURE
The preceding image illustrates the market structure functionality within the Smart Money Concepts indicator.
➤ Solid lines: These represent the core indicator's internal structure, forming the foundation for most other components. They visually depict the overall market direction and identify major reversal points marked by significant price movements (denoted as 'x').
➤ Internal Structure: These represent an alternative internal structure with the potential to drive more rapid market shifts. This is particularly relevant when a significant gap exists in the established swing structure, specifically between the Break of Structure (BOS) and the most recent Change of High/Low (CHoCH). Identifying these formations can offer opportunities for quicker entries and potential short-term reversals.
➤ Sweeps (x): These signify potential turning points in the market where liquidity is removed from the structure. This suggests a possible trend reversal and presents crucial entry opportunities. Sweeps are identified within both swing and internal structures, providing valuable insights for informed trading decisions.
➤ Mapping structure: A tool that automatically identifies and connects significant price highs and lows, creating a zig-zag pattern. It visualizes market structure, highlights trends, support/resistance levels, and potential breakouts. Helps traders quickly grasp price action patterns and make informed decisions.
➤ Color-coded candles based on market structure: These colors visually represent the underlying market structure, making it easier for traders to quickly identify trends.
➤ Extreme H&L: It visualizes market structure with extreme high and lows, which gives perspective for macro Market Structure.
2. VOLUMETRIC ORDER BLOCKS
Order blocks are specific areas on a financial chart where significant buying or selling activity has occurred. These are not just simple zones; they contain valuable information about market dynamics. Within each of these order blocks, volume bars represent the actual buying and selling activity that took place. These volume bars offer deeper insights into the strength of the order block by showing how much buying or selling power is concentrated in that specific zone.
Additionally, these order blocks can be transformed into Breaker Blocks. When an order block fails—meaning the price breaks through this zone without reversing—it becomes a breaker block. Breaker blocks are particularly useful for trading breakouts, as they signal that the market has shifted beyond a previously established zone, offering opportunities for traders to enter in the direction of the breakout.
Here's a breakdown:
➤ Bear Order Blocks (Red): These are zones where a lot of selling happened. Traders see these areas as places where sellers were strong, pushing the price down. When the price returns to these zones, it might face resistance and drop again.
➤ Bull Order Blocks (Green): These are zones where a lot of buying happened. Traders see these areas as places where buyers were strong, pushing the price up. When the price returns to these zones, it might find support and rise again.
These Order Blocks help traders identify potential areas for entering or exiting trades based on past market activity. The volume bars inside blocks show the amount of trading activity that occurred in these blocks, giving an idea of the strength of buying or selling pressure.
➤ Breaker Block: When an order block fails, meaning the price breaks through this zone without reversing, it becomes a breaker block. This indicates a significant shift in market liquidity and structure.
➤ A bearish breaker block occurs after a bullish order block fails. This typically happens when there's an upward trend, and a certain level that was expected to support the market's rise instead gives way, leading to a sharp decline. This decline indicates that sellers have overcome the buyers, absorbing liquidity and shifting the sentiment from bullish to bearish.
Conversely, a bullish breaker block is formed from the failure of a bearish order block. In a downtrend, when a level that was expected to act as resistance is breached, and the price shoots up, it signifies that buyers have taken control, overpowering the sellers.
3. FAIR VALUE GAPS:
A fair value gap (FVG), also referred to as an imbalance, is an essential concept in Smart Money trading. It highlights the supply and demand dynamics. This gap arises when there's a notable difference between the volume of buy and sell orders. FVGs can be found across various asset classes, including forex, commodities, stocks, and cryptocurrencies.
FVGs in this toolkit have the ability to detect raids of FVG which helps to identify potential price reversals.
Mitigation option helps to change from what source FVGs will be identified: Close, Wicks or AVG.
4. SWING FAILURE PATTERN (SFP):
The Swing Failure Pattern is a liquidity engineering pattern, generally used to fill large orders. This means, the SFP generally occurs when larger players push the price into liquidity pockets with the sole objective of filling their own positions.
SFP is a technical analysis tool designed to identify potential market reversals. It works by detecting instances where the price briefly breaks a previous high or low but fails to maintain that breakout, quickly reversing direction.
How it works:
Pattern Detection: The indicator scans for price movements that breach recent highs or lows.
Reversal Confirmation: If the price quickly reverses after breaching these levels, it's identified as an SFP.
➤ SFP Display:
Bullish SFP: Marked with a green symbol when price drops below a recent low before reversing upwards.
Bearish SFP: Marked with a red symbol when price rises above a recent high before reversing downwards.
➤ Deviation Levels: After detecting an SFP, the indicator projects white lines showing potential price deviation:
For bullish SFPs, the deviation line appears above the current price.
For bearish SFPs, the deviation line appears below the current price.
These deviation levels can serve as a potential trading opportunity or areas where the reversal might lose momentum.
With Volume Threshold and Filtering of SFP traders can adjust their trading style:
Volume Threshold: This setting allows traders to filter SFPs based on the volume of the reversal candle. By setting a higher volume threshold, traders can focus on potentially more significant reversals that are backed by higher trading activity.
SFP Filtering: This feature enables traders to filter SFP detection. It includes parameters such as:
5. LIQUIDITY CONCEPTS:
➤ Equal Lows (EQL) and Equal Highs (EQH) are important concepts in liquidity-based trading.
EQL: A series of two or more swing lows that occur at approximately the same price level.
EQH: A series of two or more swing highs that occur at approximately the same price level.
EQLs and EQHs are seen as potential liquidity pools where a large number of stop loss orders or limit orders may be clustered. They can be used as potential reverse points for trades.
This multi-period feature allows traders to select less and more significant EQL and EQH:
➤ Liquidity wicks:
Liquidity wicks are a minor representation of a stop-loss hunt during the retracement of a pivot point:
➤ Buy and Sell side liquidity:
The buy side liquidity represents a concentration of potential buy orders below the current price level. When price moves into this area, it can lead to increased buying pressure due to the execution of these orders.
The sell side liquidity indicates a pool of potential sell orders below the current price level. Price movement into this area can result in increased selling pressure as these orders are executed.
➤ Sweep Liquidation Zones:
Sweep Liquidation Zones are crucial for understanding market structure and potential future price movements. They provide insights into areas where significant market participants have been forced out of their positions, potentially setting up new trading opportunities.
🔵 USAGE & EXAMPLES
The core principle behind the success of this toolkit lies in identifying "confluence." This refers to the convergence of multiple trading indicators all signaling the same information at a specific point or area. By seeking such alignment, traders can significantly enhance the likelihood of successful trades.
MS + OBs
The chart illustrates a highly bullish setup where the price is rejecting from a bullish order block (POC), while simultaneously forming a bullish Swing Failure Pattern (SFP). This occurs after an internal structure change, marked by a bullish Change of Character (CHoCH). The price broke through a bearish order block, transforming it into a breaker block, further confirming the bullish momentum.
The combination of these elements—bullish order blocks, SFP, and CHoCH—creates a powerful bullish signal, reinforcing the potential for upward movement in the market.
SFP + Bear OB
This chart above displays a bearish setup with a high probability of a price move lower. The price is currently rejecting from a bear order block, which represents a key resistance area where significant selling pressure has previously occurred. A Swing Failure Pattern (SFP) has also formed near this bear order block, indicating that the price briefly attempted to break above a recent high but failed to sustain that upward movement. This failure suggests that buyers are losing momentum, and the market could be preparing for a move to the downside.
Additionally, we can toggle on the Deviation Area in the SFP section to highlight potential levels where price deviation might occur. These deviation areas represent zones where the price is likely to react after the Swing Failure Pattern:
BUY – SELL sides + EQL
The chart showcases a bullish setup with a high probability of price breaking out of the current sell-side resistance level. The market structure indicates a formation of Equal Lows (EQL), which often suggests a build-up of liquidity that could drive the price higher.
The presence of strong buy-side pressure (69%), indicated by the green zone at the bottom, reinforces this bullish outlook. This area represents a key support zone where buyers are outpacing sellers, providing the foundation for a potential upward breakout.
EQL + Bull ChoCh
This chart illustrates a potential bullish setup, driven by the formation of Equal Lows (EQL) followed by a bullish Change of Character (CHoCH). The presence of Equal Lows often signals a liquidity build-up, which can lead to a reversal when combined with additional bullish signals.
Liquidity grab + Bull ChoCh + FVGs
This chart demonstrates a strong bullish scenario, where several important market dynamics are at play. The price begins its upward momentum from Liquidity grab following a bullish Change of Character (CHoCH), signaling the transition from a bearish phase to a bullish one.
As the price progresses, it performs liquidity grabs, which serve to gather the necessary fuel for further movement. These liquidity grabs often occur before significant price surges, as large market participants exploit these areas to accumulate positions before pushing the price higher.
The chart also highlights a market imbalance area, showing strong momentum as the price moves swiftly through this zone.
In this examples, we see how the combination of multiple “smart money” tools helps identify a potential trade opportunities. This is just one of the many scenarios that traders can spot using this toolkit. Other combinations—such as order blocks, liquidity grabs, fair value gaps, and Swing Failure Patterns (SFPs)—can also be layered on top of these concepts to further refine your trading strategy.
🔵 SETTINGS
Window: limit calculation period
Swing: limit drawing function
Mapping structure: show structural points
Algorithmic Logic: (Extreme-Adjusted) Use max high/low or pivot point calculation
Algorithmic loopback: pivot point look back
Show Last: Amount of Order block to display
Hide Overlap: hide overlapping order blocks
Construction: Size of the order blocks
Fair value gaps: Choose between normal FVG or Breaker FVG
Mitigation: (close - wick - avg) point to mitigate the order block/imbalance
SFP lookback: find a higher / lower point to improve accuracy
Threshold: remove less relevant SFP
Equal H&L: (short-mid-long term) display longer term
Liquidity Prints: Shows wicks of candles where liquidity was grabbed
Sweep Area: Identify Sweep Liquidation areas
By combining these indicators in one toolkit, traders are equipped with a comprehensive suite of tools that address every angle of the Smart Money Concept. Instead of relying on disparate tools spread across various platforms, having them integrated into a single, cohesive system allows traders to easily see confluence and make more informed trading decisions.






















